xbp → version [NORMAL]
✓ Lockfile passes supply-chain policies (verified 6h ago)
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +2 -18
++------------------
Progress: resolved 2, reused 2, downloaded 0, added 2, done
$ node --import tsx --test --test-force-exit test/*.test.ts

dependencies:
- next 16.2.9

Done in 580ms using pnpm v11.8.0
﹣ adapter E2E: insert, select, update, delete on athena_adapter_e2e (0.4515ms) # SKIP
✔ AthenaClient.builder() builds client with url and key (16.0518ms)
✔ createClient(url, key, { client }) still works (0.6561ms)
✔ createClient({ url, key }) routes db, auth, and storage through the unified public base URL (1.8696ms)
✔ createClient({ key, db/auth/storage overrides }) honors explicit per-service URLs without a unified root (0.7913ms)
✔ createClient({ gatewayUrl, authUrl, storageUrl, key }) honors top-level legacy service aliases (0.8919ms)
✔ createClient throws early for malformed gateway URLs (0.3683ms)
✔ createClient throws early for missing API keys even when env-shaped inputs are passed through directly (0.1653ms)
✔ client.verifyConnection probes the configured gateway root (0.4959ms)
✔ select builder honors filters, range, and options (1.1218ms)
✔ mutations support chaining and option propagation (1.5724ms)
✔ select chain supports filters after select (flexible ordering) (1.4463ms)
✔ select chain supports single() after filters (0.5373ms)
✔ select chain supports .order() after .select() (user example) (0.5114ms)
✔ update chain supports filters after update (flexible ordering) (0.5359ms)
✔ AthenaClient.builder() supports auth() for auth namespace routing (0.5615ms)
✔ AthenaClient.builder() supports options() and experimental tracing (6.2972ms)
✔ createClient forceNoCache applies no-cache to gateway auth and storage requests (0.6986ms)
✔ client.withContext binds request-scoped gateway and auth context (0.6745ms)
✔ client.withSession derives auth and scope context from session plus request headers (1.2548ms)
✔ AthenaClient.fromEnvironment resolves common public env aliases (0.9095ms)
✔ AthenaClient.builder() can build from direct service overrides without a unified root URL (0.7352ms)
✔ createClient mirrors auth bearerToken onto gateway requests (0.3725ms)
✔ client.withOptions creates a derived client with merged headers and auth overrides (1.0058ms)
✔ client.withOptions can override unified base url api key and client name (0.4796ms)
✔ client.withOptions keeps base values when optional overrides are undefined (0.4358ms)
✔ AthenaClient.builder() composes auth/experimental/options without clobbering previous values (0.7058ms)
✔ failed AthenaResult values include structured error metadata by default (0.9186ms)
✔ db module exposes from/select/insert/query without changing root behavior (0.7373ms)
✔ db.from supports base schema options (0.352ms)
✔ storage module is exposed only behind experimental athenaStorageBackend flag (0.6948ms)
✔ storage module routes every storage method with expected envelopes and payloads (1.9293ms)
✔ storage proxy returns raw binary response and normalizes non-json errors (1.0245ms)
✔ grouped storage namespaces forward auth context and expose low-level upload helpers (1.6585ms)
✔ storage parity routes map to expected endpoints (1.6261ms)
✔ storage file facade uploads with prefix templates and wraps list download delete (4.3279ms)
✔ createAthenaStorageError produces normalized storage error metadata (0.2754ms)
✔ storage failures invoke global and per-call error callbacks with normalized errors (0.43ms)
✔ e2e: insert, filter, and delete rows in test table (athena_logging client) (705.4246ms)
✔ e2e helpers: requireSuccess + unwrap helpers work on live insert/select flow (437.1547ms)
ℹ Gateway did not return count for count=exact request; skipping requireAffected success assertion
✔ e2e helpers: normalizeAthenaError + requireSuccess handle real query failures (81.5033ms)
✔ e2e helpers: withRetry can recover and complete a live read (70.8949ms)
✔ auth admin limits stay aligned with backend constants (1.219ms)
✔ createClient exposes auth namespace and routes auth calls to configured auth base URL (16.5538ms)
✔ auth.getUser projects the current session into a user payload (0.5365ms)
✔ createClient auth config binds auth context defaults onto client.auth requests (0.5568ms)
✔ auth.requireSession resolves the current session into a typed guard result (0.5324ms)
✔ auth.admin.requirePermission resolves session and permission in one guard call (0.7104ms)
✔ auth.admin.requirePermission returns unauthorized when no current session is present (0.5937ms)
✔ auth.admin.requirePermission returns forbidden when permission check denies access (0.4836ms)
✔ auth.organization.requirePermission targets the organization permission route (0.4873ms)
✔ auth requests include the package sdk version header (0.3473ms)
✔ signIn.email posts to sign-in endpoint with payload (0.4337ms)
✔ signIn.username and signIn.social target correct endpoints (0.363ms)
✔ signOut and logout send empty object payload to sign-out endpoint (0.3722ms)
✔ getSession and listSessions use GET endpoints (0.2687ms)
✔ session revoke aliases target proper endpoints (0.5879ms)
✔ password and email lifecycle methods map to correct endpoints (0.854ms)
✔ user lifecycle methods map to correct endpoints (0.7401ms)
✔ verifyEmail and resolveResetPasswordToken use query routes (0.4996ms)
✔ account linking and token exchange methods map correctly (1.1512ms)
✔ generic request infers methods safely and supports query (0.772ms)
✔ supports fetchOptions compatibility input and call overrides (0.5576ms)
✔ non-2xx responses are normalized into HTTP_ERROR (0.5008ms)
✔ invalid JSON responses are normalized into INVALID_JSON (0.2149ms)
✔ network failures are normalized into NETWORK_ERROR (0.249ms)
✔ auth namespace exposes session-level bindings (0.2269ms)
✔ auth namespace user/session/oauth bindings map to expected endpoints (0.9176ms)
✔ auth.user.email.list falls back to legacy route on 404 (0.2876ms)
✔ auth.health falls back to ok route on 404 (0.2441ms)
✔ auth.session.revoke collapses single and list payloads to correct endpoints (0.3522ms)
✔ auth.twoFactor and auth.passkey bindings map to expected endpoints (0.7687ms)
✔ auth.admin and auth.apiKey bindings map to expected endpoints (2.2324ms)
✔ auth.admin.email.create renders react email payload into htmlBody/textBody (74.0445ms)
✔ auth admin email-template routes reject variables above the published SDK limits (0.4839ms)
✔ auth admin email-template routes reject derived variable names above the published SDK limits (6.7237ms)
✔ auth.admin email-template routes render react email payload and preserve explicit text template (8.5867ms)
✔ defineAuthEmailTemplate builds create/update payloads with component props (0.2559ms)
✔ react email runtime defaults and observer events are applied for admin email payloads (5.7268ms)
✔ renderAthenaReactEmail supports runtime observer and default includePlainText (4.0446ms)
✔ auth.admin.user.session.revoke enforces non-empty userId and a single plural userId (0.2518ms)
✔ auth.organization bindings map to expected endpoints (0.9935ms)
✔ auth.callback.provider resolves dynamic provider endpoint (0.2358ms)
✔ defineAthenaAuthConfig keeps auth bootstrap config typed (0.8681ms)
✔ athenaAuth resolves database factories and secure cookie defaults from baseURL (0.8284ms)
✔ athenaAuth exposes the Better Auth-style top-level contract (0.2818ms)
✔ athenaAuth context resolves trusted origins/providers (0.7838ms)
✔ athenaAuth handler resolves dynamic baseURL and applies cookie hooks to handler results (13.9836ms)
✔ athenaAuth applyResponseCookies sets session cookies using native cookie helpers (5.6599ms)
✔ custom after plugin can apply auth response cookies through after hooks (0.3261ms)
✔ custom after plugin can clear auth cookies through after hooks (0.5619ms)
✔ isOk detects successful Athena results (1.2705ms)
✔ unwrapRows returns arrays and coerces single rows (1.7672ms)
✔ unwrapRows throws AthenaGatewayError on failed result (1.5905ms)
✔ unwrap and unwrapOne enforce non-null by default (0.4514ms)
✔ unwrapOne can require exactly one row (0.1893ms)
✔ requireSuccess returns result for successful operations (0.1468ms)
✔ requireSuccess throws AthenaGatewayError for failed operations (0.1427ms)
✔ requireSuccess uses contextual fallback message when status fails without explicit error (0.2421ms)
✔ requireAffected enforces mutation count minimum (0.262ms)
✔ requireAffected throws when count is missing (0.2762ms)
✔ requireAffected treats null count as missing and surfaces guidance (0.1923ms)
✔ normalizeAthenaError maps unique and transient kinds (0.2088ms)
✔ normalizeAthenaError maps auth, rate_limit, not_found, and validation by status (0.1634ms)
✔ normalizeAthenaError supports raw Error and unknown input (0.1468ms)
✔ coerceInt and assertInt handle mixed integer values safely (0.3031ms)
✔ parseBooleanFlag supports common truthy and falsey variants (0.1328ms)
✔ parseBooleanFlag falls back for missing or unrecognized values (0.0691ms)
✔ withRetry retries transient failures and eventually succeeds (0.4666ms)
✔ withRetry does not retry non-retriable errors by default (0.296ms)
✔ withRetry respects retry count and custom backoff function (0.2584ms)
✔ withRetry passes attempt number to shouldRetry and stops when false (0.2529ms)
✔ unwrapRows uses fallback failure message when status fails without explicit error (0.1614ms)
✔ package metadata uses athena-js branding (6.7614ms)
✔ browser entry keeps core client exports available (0.5542ms)
✔ browser entry keeps generator config identity helper (0.5413ms)
✔ browser entry node-only exports throw explicit errors (0.5041ms)
✔ package root export maps browser condition to browser bundle (4.9467ms)
✔ parseCommand supports generate subcommand help flag (1.0754ms)
✔ parseCommand supports help generate alias (0.0893ms)
✔ usage returns generate help text for topic generate (0.1299ms)
✔ runCLI prints generate help output (0.1682ms)
✔ runCLI prints dry-run output for legacy define-model artifacts (1.183ms)
✔ runCLI prints dry-run output for table-builder artifacts (0.1866ms)
✔ runCLI prints safer direct registry targets without handwritten-seam warning (0.1466ms)
✔ runCLI prints filter summary when table filters are active (0.1796ms)
✔ runCLI prints protected skip lines for registry/database artifacts (0.1926ms)
✔ runCLI normalizes postgres missing database errors with actionable guidance (0.5309ms)
✔ getSessionCookie resolves athena-auth and secure cookie names by default (11.2718ms)
✔ getSessionCookie supports explicit cookiePrefix override (0.1177ms)
✔ getSessionCookie does not apply implicit legacy prefix fallback (0.0839ms)
✔ setSessionCookie writes token + compact cache and getCookieCache validates it (13.7803ms)
✔ setRequestCookie mutates request cookie header without comma-joining (0.316ms)
✔ splitSetCookieHeader and parseSetCookieHeader handle combined set-cookie values (0.3604ms)
✔ setCookieToHeader merges response set-cookie into downstream request cookie header (1.0145ms)
✔ package exports expose ./cookies entrypoint (3.2373ms)
✔ AthenaError captures classification metadata and retryability (0.4896ms)
✔ normalizeAthenaError includes expanded classification details (0.6491ms)
✔ range sets limit/offset (14.2535ms)
✔ match expands to multiple eq conditions (1.0435ms)
✔ not with operator/value encodes dot syntax (0.4365ms)
✔ not with raw expression passes through (0.3502ms)
✔ or expression is forwarded (0.3523ms)
✔ gt/gte/lt/lte payloads (0.3779ms)
✔ like/ilike payloads (0.3319ms)
✔ is null payload (0.3383ms)
✔ in array payload (0.351ms)
✔ contains payload (0.4519ms)
✔ containedBy payload (0.3709ms)
✔ offset/limit chaining after filters (0.3847ms)
✔ defaultToNull option passes to insert (0.5178ms)
✔ count/head options pass through select (0.2004ms)
✔ upsert propagates update_body and on_conflict (0.3715ms)
✔ delete without filters throws (0.1729ms)
✔ delete with resourceId option skips throw (0.3082ms)
✔ buildHeaders sets client and strip nulls by default (1.2287ms)
✔ buildHeaders includes standard sdk identification header (0.1707ms)
✔ buildHeaders sets api key (0.1062ms)
✔ buildHeaders merges custom headers and preserves athena client (0.1124ms)
✔ buildHeaders forwards publish event (0.0749ms)
✔ buildHeaders sets backend type (0.0872ms)
✔ buildHeaders accepts stripNulls override (0.0874ms)
✔ buildHeaders sets user and organization ids (0.0657ms)
✔ buildHeaders allows overriding client per call (0.0822ms)
✔ buildHeaders per-call userId overrides config (0.1272ms)
✔ buildHeaders per-call organizationId overrides config (0.108ms)
✔ buildHeaders honors stripNulls true per-call (0.0842ms)
✔ fetchGateway uses default client header when none provided (14.4605ms)
✔ buildHeaders per-call apiKey overrides config (0.1125ms)
✔ buildHeaders per-call publishEvent overrides config (0.0623ms)
✔ buildHeaders merges options headers (0.0734ms)
✔ buildHeaders forceNoCache sets Cache-Control and overrides cache-control headers (0.0744ms)
✔ buildHeaders mirrors auth session token from cookie headers (0.4469ms)
✔ buildHeaders mirrors bearer token from authorization headers (0.093ms)
✔ buildHeaders keeps stripNulls default when option undefined (0.0583ms)
✔ buildHeaders sets backend when string provided (0.0496ms)
✔ fetchGateway trims baseUrl trailing slash (0.2821ms)
✔ fetchGateway sends payload body (0.6408ms)
✔ updateGateway sends update payload (0.2693ms)
✔ insertGateway sends insert payload (0.2289ms)
✔ deleteGateway sends delete payload (0.2427ms)
✔ rpcGateway sends rpc payload (0.2562ms)
✔ rpcGateway supports planned and estimated count payload values (0.3841ms)
✔ rpcGateway forwards head when provided (0.2724ms)
✔ rpcGateway surfaces count from response envelope (0.2956ms)
✔ rpcGateway includes schema and forwards call-level client override (0.1762ms)
✔ rpcGateway ignores non-numeric count in envelope (1.2145ms)
✔ rpcGateway supports GET mode with args, filters, and modifiers (0.8481ms)
✔ rpcGateway GET mode preserves repeated same-column filters in order (0.4749ms)
✔ rpcGateway GET mode throws on arg/filter column conflict (0.56ms)
✔ fetchGateway merges config and call headers (0.3162ms)
✔ default baseUrl is used when not provided (0.1976ms)
✔ createAthenaGatewayClient throws on malformed baseUrl (0.1768ms)
✔ normalizeAthenaGatewayBaseUrl rejects missing values (0.0699ms)
✔ fetchGateway returns INVALID_URL for malformed per-call baseUrl override (0.3269ms)
✔ verifyConnection probes the configured baseUrl root (0.2965ms)
✔ verifyConnection reports unreachable hosts as network failures (0.2875ms)
✔ verifyAthenaGatewayUrl normalizes trailing slashes and probes root (0.1916ms)
✔ non-2xx response includes structured HTTP error details (0.2964ms)
✔ network failures include structured NETWORK_ERROR details (0.1546ms)
✔ invalid json responses are classified as INVALID_JSON (0.2575ms)
✔ AthenaFetchPayload accepts minimal required fields (0.6614ms)
✔ AthenaFetchPayload accepts full options (0.5321ms)
✔ AthenaInsertPayload requires table_name and insert_body (0.0689ms)
✔ AthenaInsertPayload accepts optional update_body for upserts (0.1885ms)
✔ AthenaDeletePayload requires table_name and resource_id (0.0929ms)
✔ AthenaUpdatePayload extends fetch payload with update_body (0.0851ms)
✔ AthenaGatewayHookConfig accepts optional user context fields (0.0737ms)
✔ AthenaGatewayCallOptions accepts per-call overrides (0.0579ms)
✔ AthenaGatewayCondition supports multiple operators and values (0.0693ms)
✔ fetch payload conditions default to empty array pattern (0.1062ms)
✔ update payload conditions default to empty array pattern (0.0716ms)
✔ select builds fetch payload with Athena-style filters (16.1317ms)
✔ x-athena-client header is sent for routing when client option is set (0.6329ms)
✔ insert mutation supports select() and returning rows (0.9198ms)
✔ eq filter sends operator/column/value plus legacy eq_column/eq_value (0.6274ms)
✔ insert success message on 2xx does not surface as error (0.4505ms)
✔ non-2xx message still surfaces as error (0.9155ms)
✔ eqCast serializes cast hints on fetch payload when query fallback is disabled (0.605ms)
✔ findGeneratorConfigPath locates athena.config.ts in project root (2.6048ms)
✔ loadGeneratorConfig resolves default export from ts config file (105.5809ms)
✔ loadGeneratorConfig applies athena folder defaults when output targets are omitted (15.7231ms)
✔ loadGeneratorConfig supports the athena-direct output preset (11.354ms)
✔ loadGeneratorConfig supports provider-only config files with default output settings (12.4426ms)
✔ normalizeSchemaSelection trims comma-separated values and removes duplicates (0.1501ms)
✔ loadGeneratorConfig normalizes env-style multiple schemas (12.0078ms)
✔ loadGeneratorConfig normalizes table filters from config (11.3733ms)
✔ loadGeneratorConfig builds a direct postgres config from environment when no config file exists (3.6471ms)
✔ loadGeneratorConfig restores staged project env values after env-only resolution (3.2643ms)
✔ loadGeneratorConfig builds a gateway postgres config from environment when no config file exists (3.1597ms)
✔ loadGeneratorConfig normalizes string boolean feature flags (10.4859ms)
✔ defineGeneratorConfig is an identity helper for typed configs (0.1226ms)
✔ generatorEnv resolves typed env-backed config fields across generator sections (269.5391ms)
✔ loadGeneratorConfig resolves CJS transpiler-style nested default exports (5.2495ms)
✔ loadGeneratorConfig resolves named object exports such as generatorConfig (9.1738ms)
✔ loadGeneratorConfig loads .env and .env.local values before config evaluation (9.7134ms)
✔ loadGeneratorConfig backfills postgres password from env when URL has no password segment (8.742ms)
✔ loadGeneratorConfig uses runtime indirection instead of direct dynamic import call (0.3606ms)
✔ runSchemaGenerator loads athena.config.ts and writes generated artifacts (127.0819ms)
✔ runSchemaGenerator supports table-builder output format (15.7771ms)
✔ runSchemaGenerator works without a config file when environment defaults are present (3.6143ms)
✔ runSchemaGenerator passes normalized multi-schema selection to custom providers (10.2002ms)
✔ runSchemaGenerator can operate in gateway-only mode without direct pg_url access (37.5353ms)
✔ runSchemaGenerator does not overwrite existing database/registry files but can overwrite model/schema files (17.2181ms)
✔ runSchemaGenerator can filter generated tables down to a smaller surface (11.1216ms)
✔ resolveGeneratorProvider supports direct postgres provider from pg_url connection strings (6.0455ms)
✔ resolveGeneratorProvider direct postgres mode uses config schemas when inspect options are omitted (0.3658ms)
✔ resolveGeneratorProvider supports gateway-only postgres introspection over /gateway/query (17.8552ms)
✔ resolveGeneratorProvider gateway mode normalizes config schemas when inspect options are omitted (1.0409ms)
✔ resolveGeneratorProvider gateway mode normalizes string-literal foreign key arrays (1.2913ms)
✔ resolveGeneratorProvider gateway mode works without experimental postgres flag (0.6945ms)
✔ generateArtifactsFromSnapshot renders model/schema/database/registry outputs with placeholder paths (2.3277ms)
✔ generateArtifactsFromSnapshot can disable registry emission with feature flags (0.3374ms)
✔ generateArtifactsFromSnapshot default targets are safe for multiple schemas with shared table names (0.4541ms)
✔ generateArtifactsFromSnapshot auto-scopes colliding multi-schema output paths (0.448ms)
✔ generateArtifactsFromSnapshot keeps built-in placeholders stable when placeholderMap redefines schema/model keys (0.486ms)
✔ generateArtifactsFromSnapshot can render the zero-style table builder format (0.3747ms)
✔ generateArtifactsFromSnapshot renders withoutPrimaryKey for tables without a primary key (0.3805ms)
✔ toModelFormDefaults converts nullable null fields to empty strings by default (0.9027ms)
✔ toModelFormDefaults supports undefined and null nullish modes (0.1278ms)
✔ toModelPayload converts empty strings back to null for nullable columns (0.1159ms)
✔ toModelPayload strips undefined keys by default and can preserve them (0.0934ms)
✔ createModelFormAdapter exposes reusable defaults/insert/update helpers (0.1327ms)
✔ createAthenaServerClient forwards request cookie and bearer context (18.3271ms)
✔ createAthenaServerClient scopes user and organization from the provided session (1.641ms)
✔ createAthenaServerClient can opt into the storage module (0.7371ms)
✔ resolveAthenaServerContext resolves the current organization and returns a session-scoped client (1.0886ms)
✔ createAthenaBrowserClient resolves public env aliases and defaults auth credentials to include (0.4828ms)
✔ createAthenaBrowserClient memoizes the zero-override singleton client (0.2999ms)
✔ package exports include the Next adapter subpaths (6.9234ms)
﹣ postgres introspection provider captures exhaustive type metadata and relations (0.482ms) # PG_INTROSPECTION_URL is required for integration tests
✔ postgres introspection provider assembles relations and enum metadata from catalog rows (3.571ms)
✔ resolvePostgresColumnType covers scalar families and advanced postgres datatypes (1.1933ms)
✔ compileSelectShape supports explicit schema targeting on relation nodes (1.1186ms)
✔ compileSelectShape rejects relation nodes that combine schema and via (0.5721ms)
✔ compileSelectShape rejects schema targeting when the relation key is already qualified (0.2796ms)
✔ selectShapeUsesRelationSchema detects nested schema-targeted relations (0.1962ms)
✔ select defaults to * when columns omitted (17.1749ms)
✔ select accepts array columns (1.307ms)
✔ offset before select is applied (0.5629ms)
✔ limit before select is applied (0.3612ms)
✔ reset clears filters and pagination (1.4732ms)
✔ conditions are cloned per request (0.7448ms)
✔ delete honors eq id without resourceId option (0.59ms)
✔ update propagates strip_nulls default (0.587ms)
✔ update honors stripNulls override (0.4139ms)
✔ select honors stripNulls override (0.2907ms)
✔ insert without select returns mutation promise (0.167ms)
✔ mutation select passes columns through (0.396ms)
✔ upsert forwards head/count to payload (0.3679ms)
✔ upsert merges defaultToNull (0.2171ms)
✔ select with head option omits conditions when none set (0.2158ms)
✔ single wraps select result (0.2291ms)
✔ maybeSingle delegates to single (0.1508ms)
✔ delete with columns returns select columns (0.1705ms)
✔ range overrides previous limit/offset (0.1886ms)
✔ match after other filters appends conditions (0.2497ms)
✔ builder state is isolated per table (0.1768ms)
✔ client.from returns new builder each call (0.0569ms)
✔ update merges options from select call (0.1917ms)
✔ insert merges options from select call (0.1653ms)
✔ mutation select-level headers merge with constructor headers (0.4184ms)
✔ upsert merges select options (0.2176ms)
✔ delete uses resourceId when provided alongside filters (0.3058ms)
✔ delete derives resource_id from eq(resource_id) (0.232ms)
✔ delete derives resource_id from eq(id) (0.1653ms)
✔ select with count option sets count field (0.1606ms)
✔ update select passes columns into payload (0.1677ms)
✔ upsert supports onConflict array (0.1864ms)
✔ insert select carries count option (0.1634ms)
✔ range used after filters still sets limit/offset (0.1636ms)
✔ or after filters appends to conditions (0.2647ms)
✔ like after match keeps both conditions (0.2211ms)
✔ canonical select filter order works: select(...).eq(...) (0.1848ms)
✔ canonical chained range filters work: gte + lt after select (0.2055ms)
✔ select switches to structured transport for schema-qualified relation strings (0.6105ms)
✔ structured select transport forwards simple filters and ordering for schema-qualified relations (0.3411ms)
✔ schema-qualified relation selects stay off query fallback for uuid-aware equality filters (0.3446ms)
✔ schema-qualified relation select rejects unsupported structured-filter operators clearly (0.3694ms)
✔ schema-qualified relation select rejects head/count options clearly (0.0996ms)
✔ findMany compiles nested select trees into gateway columns (0.4649ms)
✔ findMany supports aliased via relation nodes (0.1839ms)
✔ findMany relation nodes support explicit schema targeting (0.1776ms)
✔ findMany relation nodes reject combining schema and via (0.1118ms)
✔ findMany appends where conditions and overrides existing order/limit state (0.4951ms)
✔ findMany preserves uuid-aware equality fallback inside where objects (0.4191ms)
✔ findManyAst experimental flag normalizes shorthand where filters before fetch (0.5652ms)
✔ findManyAst experimental flag preserves uuid-aware equality fallback inside where objects (0.3807ms)
✔ findManyAst experimental flag falls back when relation nodes target an explicit schema (0.328ms)
✔ findManyAst experimental flag falls back when chained filters already exist (0.3216ms)
✔ findMany rejects unsupported boolean AST shapes (0.1582ms)
✔ uuid-like eq on *_id uses query fallback with ::text comparison (0.2492ms)
✔ eqUuid uses explicit ::uuid value cast (0.206ms)
✔ eqCast forwards explicit cast via query fallback (0.1967ms)
✔ non-uuid eq on *_id stays on /gateway/fetch (0.162ms)
✔ currentPage and pageSize serialize as current_page and page_size on select (0.1833ms)
✔ totalPages serializes as total_pages on select (0.1419ms)
✔ currentPage/pageSize/totalPages combine with limit on select (0.1603ms)
✔ pagination helpers work before .select() (0.1451ms)
✔ update chain forwards currentPage/pageSize/totalPages (0.2159ms)
✔ select without pagination helpers omits page fields (0.1843ms)
✔ reset clears currentPage/pageSize/totalPages (0.1494ms)
✔ select chain supports .order() after .select() (desc) with limit (0.2212ms)
✔ order defaults to ascending when options omitted (0.1731ms)
✔ order defaults to ascending when { ascending: true } (0.1406ms)
✔ order before .select() is also serialized (0.1858ms)
✔ select without .order() omits sort_by from payload (0.1471ms)
✔ update chain supports .order() and serializes sort_by (0.2532ms)
✔ reset clears .order() state (0.325ms)
✔ table select options support schema qualification (0.3844ms)
✔ from options support schema qualification for selects (0.1809ms)
✔ from options support schema qualification for findMany base tables (0.2337ms)
✔ table mutation select options support schema qualification (0.2948ms)
✔ from options reject conflicting schema-qualified tables immediately (0.1879ms)
✔ table options keep pre-qualified table when schema matches (0.1895ms)
✔ table options keep quoted pre-qualified table when schema matches (0.1648ms)
✔ table options deduplicate matching schema for insert/upsert/update/delete (0.5053ms)
✔ table options compare unquoted schema names case-insensitively (0.1602ms)
✔ table options reject conflicting schema and schema-qualified table (0.1591ms)
✔ typed equality query fallback uses schema-qualified table name (0.191ms)
✔ rpc is awaitable and executes once (0.5176ms)
✔ rpc chain builds strict filters and selection payload (0.3807ms)
✔ rpc order, limit, and offset map to payload (0.2239ms)
✔ rpc count exact is sent and surfaced on result (0.2571ms)
✔ rpc supports planned and estimated count options (0.239ms)
✔ rpc head option is forwarded to payload (0.1712ms)
✔ rpc single and maybeSingle return first row (0.478ms)
✔ rpc table-return filters with single are supported (0.2343ms)
✔ rpc throws when function name is blank (0.0744ms)
✔ rpc select-level options override constructor options (0.1681ms)
✔ rpc select-level headers merge with constructor headers (0.3384ms)
✔ rpc get mode calls compatibility endpoint with filters (0.4284ms)
✔ rpc select-level count can be set without constructor options (0.2121ms)
✔ rpc order defaults ascending to true when not provided (0.1655ms)
✔ rpc with no filters omits filters field (0.1454ms)
✔ rpc result with count keeps count after single() (0.2041ms)
✔ query calls /gateway/query with { query } payload (0.2449ms)
✔ query handles error propagation (0.8288ms)
✔ rpc get mode preserves repeated same-column filters (0.4031ms)
✔ experimental.retryReads retries select after a retryable network failure (98.7414ms)
✔ experimental.retryReads retries query after a retryable network failure (122.2104ms)
✔ experimental.retryReads retries findManyAst reads after a retryable network failure (124.7875ms)
✔ experimental.retryReads does not retry writes by default (0.4414ms)
✔ experimental.debugAst attaches compiled select ASTs to results (18.558ms)
✔ experimental.debugAst captures direct findMany AST transport on results (1.2573ms)
✔ experimental.traceQueries=true logs select traces with sql, outcome, and callsite (28.956ms)
✔ traceQueries captures direct single and findMany callsites at the public API seam (3.5813ms)
✔ traceQueries custom logger receives upsert/rpc/query events (2.5672ms)
✔ traceQueries logs thrown rpc get validation failures (1.0478ms)
✔ traceQueries includes debug ASTs when experimental.debugAst is enabled (0.9866ms)
✔ resolvePagination derives limit and offset from currentPage/pageSize (1.0008ms)
✔ resolvePagination preserves explicit limit while deriving a missing offset (0.0963ms)
✔ createSelectTransportPlan prefers query transport for typed equality comparisons (0.3232ms)
✔ createSelectTransportPlan keeps typed equality reads on fetch when count is requested (0.1858ms)
✔ createSelectTransportPlan keeps typed equality reads on fetch for nested relation select strings (0.4003ms)
✔ createSelectTransportPlan uses structured fetch transport for schema-qualified nested select strings (0.1479ms)
✔ createSelectTransportPlan rejects unsupported count/head combinations for schema-qualified nested select strings (0.2948ms)
✔ canUseFindManyAstTransport only allows clean builder state (0.0779ms)
✔ toFindManyAstOrder maps Athena sort state to AST orderBy input (0.0993ms)
✔ normalizeFindManyAstWhere expands shorthand equality into explicit operator objects (0.2495ms)
✔ findManyAstWhereRequiresLegacyTransport detects UUID equality filters that need query fallback (0.2713ms)
✔ useQuery supports initialData without immediate execution when disabled (10.2587ms)
✔ useQuery applies select transform (2.8237ms)
✔ useQuery success callbacks fire with normalized result (1.1121ms)
✔ useQuery error callbacks fire with normalized error (1.7905ms)
✔ useQuery retry option retries failed queryFn and eventually succeeds (1.2568ms)
✔ useQuery does not refetch on remount when cached and refetchOnMount=false (2.062ms)
✔ useQuery suppresses stale onSuccess callbacks from outdated query keys (1.5804ms)
✔ useQuery refetches on focus and reconnect when enabled (4.2376ms)
✔ useMutation applies select transform and returns transformed data (1.7752ms)
✔ useMutation error callbacks fire in correct order (1.0201ms)
✔ useMutation retry re-executes failed mutationFn and succeeds (0.8482ms)
✔ useQuery loads then succeeds (11.6348ms)
✔ useQuery disabled does not run until refetch (2.0817ms)
✔ useQuery normalizes Athena envelope response shape (1.0727ms)
✔ useQuery handles thrown errors (2.8756ms)
✔ useQuery older slower request does not overwrite newer request on key change (1.9914ms)
✔ useMutation mutateAsync success and callbacks (1.354ms)
✔ useStorageUpload reports upload progress and result state (1.6394ms)
✔ useMutation mutateAsync error throws normalized error (0.7663ms)
✔ useMutation mutate updates status and reset clears state (0.9131ms)
✔ useQuery unmount safety: no setState warning after unmount (0.747ms)
✔ useSession returns data and refetch parity fields (0.835ms)
✔ useSession accepts createClient-style auth namespace input (0.4124ms)
✔ useSession surfaces error details on failed session request (0.3657ms)
✔ useAthenaSessionClient derives a scoped client and current organization id (0.67ms)
✔ useAthenaSessionClient returns the base client when the user is unauthorized (0.3685ms)
✔ query client memory cache returns fresh cached data when force=false (1.5669ms)
✔ query client memory cache bypasses cache when force=true (0.2253ms)
✔ query client executes retry policy for query failures (0.2517ms)
✔ query client normalizes envelope errors and keeps status (0.2679ms)
✔ query client resetQuery returns state to idle and emits reset event (0.1792ms)
✔ query client emits mutation reset event and clears mutation state (0.3282ms)
✔ mutation client applies select transform and retry on mutation (0.2008ms)
✔ adapter detach stops receiving subsequent events (0.2374ms)
✔ query gc event fires after last unsubscribe with gcTime=0 (3.4244ms)
✔ query client returns default mutation key token when mutation key is omitted (0.1602ms)
✔ query client keeps success status during background refetch when data already exists (0.2417ms)
✔ query reset invalidates in-flight request completion (0.1411ms)
✔ mutation reset invalidates in-flight mutation completion (0.1109ms)
✔ query client dedupes inflight requests for the same key (1.4397ms)
✔ query client keeps newest request result when slow older request finishes later (0.2419ms)
✔ query client emits adapter and event bus updates (0.2346ms)
✔ mutation client keeps newest mutation state (last invocation wins) (0.3653ms)
GET    /demo/products 200 3ms
✔ react runtime integration: useQuery loads data from test-sdk demo route (46.2777ms)
GET    /demo/products 200 0ms
POST   /demo/products 201 0ms
GET    /demo/products 200 0ms
✔ react runtime integration: useMutation creates product and refetches query in test-sdk flow (69.392ms)
✔ safeSerializeQueryKey handles primitive arrays and strings consistently (0.926ms)
✔ safeSerializeQueryKey handles circular objects safely (0.2011ms)
✔ safeSerializeQueryKey avoids primitive-array token collisions with delimiter characters (0.1417ms)
✔ normalizeAthenaResult unwraps envelope success and applies select (1.5722ms)
✔ normalizeAthenaResult maps envelope errors to AthenaQueryError (0.2499ms)
✔ normalizeAthenaResult treats non-envelope status fields as raw data (0.1374ms)
✔ normalizeAthenaResult preserves explicit null data from Athena envelopes (0.1119ms)
✔ normalizeAthenaError converts AthenaGatewayError to query error shape (0.1658ms)
✔ runWithRetry retries until success with retryDelay callback (0.4353ms)
✔ query fallback quotes reserved-word columns from array selection (17.052ms)
✔ query fallback quotes mixed-case and spaced identifiers (0.5035ms)
✔ query fallback quotes simple comma-separated identifier strings (0.5152ms)
✔ query fallback does not rewrite complex select SQL expressions with commas (0.5342ms)
✔ query fallback auto-quotes simple aliased identifiers (0.4574ms)
✔ query fallback auto-quotes colon response aliases (0.4227ms)
✔ query fallback auto-quotes colon response aliases from array selection (0.3899ms)
✔ storageSdkManifest covers the current storage OpenAPI route matrix (0.9528ms)
✔ storage visibility helpers route PATCH, POST, and bulk POST correctly (17.4918ms)
✔ table builder stores schema-aware metadata and explicit column mappings (0.9043ms)
✔ table builder allows zero-arg primaryKey for tables without a primary key (0.3822ms)
✔ table builder exposes withoutPrimaryKey as the canonical no-pk helper (0.278ms)
✔ table builder supports separate schema() and from() mapping (0.2015ms)
✔ table builder still supports schema-qualified from() inputs (0.1934ms)
✔ table builder rejects conflicting explicit schema and schema-qualified from() targets (0.2935ms)
✔ table builder derives row, insert, and update schemas from column flags (1.9251ms)
✔ table builder form schema normalizes empty strings and model adapters stay compatible (0.7243ms)
✔ typed client routes fromModel() to schema-qualified table names (15.9007ms)
✔ typed client fromModel() supports findMany object selects (1.9413ms)
✔ typed client forwards mapped tenant context headers (0.8115ms)
✔ typed client preserves existing tenant context and applies incremental context updates (0.6215ms)
✔ typed client withContext forwards request-scoped headers and cache directives (0.8199ms)
✔ typed client withSession derives request-scoped context from session and cookies (1.0778ms)
✔ typed client uses explicit tableName override when provided (0.4197ms)
✔ typed client still supports regular from() calls (0.4328ms)
✔ typed client regular from() supports base schema options (0.5199ms)
✔ root client accepts Athena model targets directly (2.9284ms)
✔ typed client throws precise errors for unknown database/schema/model (0.5211ms)
✔ identifier helper returns a safely quoted SQL identifier (0.1106ms)
✔ slugify normalizes and trims values (0.7248ms)
✔ trimTrailingSlashes removes one or more trailing slash characters (0.14ms)
✔ parseBooleanFlag supports common truthy/falsey values with fallback (0.115ms)
✔ generator kebab naming uses shared slugify behavior (0.1855ms)
✔ asString coerces finite numbers, bigint, and trimmed strings (0.2262ms)
✔ asBoolean and asBooleanOrNull coerce booleans, numbers, and string tokens (0.1217ms)
✔ asRecord returns plain records and rejects arrays/null/primitives (0.2502ms)
✔ asIdentifier and firstString expose id-like and first-present string values (0.1081ms)
✔ readTrimmedString, asNumber, and asStringArray coerce utility payloads safely (0.4173ms)
✔ sqlText wraps values in a deterministic dollar-quoted literal (0.345ms)
✔ sqlText preserves payload contents when the initial tag collides with the value (0.1779ms)
✔ escapeLikePatternValue escapes backslash, percent, and underscore (0.1088ms)
✔ quoteSqlStringLiteral wraps and escapes apostrophes (0.0808ms)
✔ sqlNullableText returns NULL for nullish values and quotes strings (0.1517ms)
✔ sqlJsonbLiteral serializes payloads and casts to jsonb (0.1141ms)
✔ sqlBigInt renders explicit bigint casts for bigint and number inputs (0.0563ms)
✔ isLocalHostname detects localhost, loopback ipv4 and ipv6 (0.1552ms)
✔ clearAuthCookies is a no-op in non-browser runtimes (0.1499ms)
✔ clearAuthCookies clears athena/better-auth cookie prefixes across domain candidates (0.3694ms)
✔ clearAuthCookies avoids domain attributes for local hostnames (0.114ms)
✔ package exports expose ./utils entrypoint (7.7293ms)
✔ proxyRequestHeaders removes host and applies forwarded headers from request URL (13.4067ms)
✔ proxyRequestHeaders removes x-forwarded-port when URL has no explicit port (0.2601ms)
ℹ tests 507
ℹ suites 0
ℹ pass 505
ℹ fail 0
ℹ cancelled 0
ℹ skipped 2
ℹ todo 0
ℹ duration_ms 3719.962

> @xylex-group/athena@2.9.0 prepublishOnly
> pnpm typecheck && pnpm build

Already up to date
$ tsc -p tsconfig.typecheck.json
Done in 280ms using pnpm v11.8.0
Already up to date
$ tsup
Done in 281ms using pnpm v11.8.0
CLI Building entry: {"index":"src/index.ts","browser":"src/browser.ts","react":"src/react/index.ts","next/client":"src/next/client.ts","next/server":"src/next/server.ts","cookies":"src/cookies/index.ts","utils":"src/utils/index.ts","cli/index":"src/cli/index.ts"}
▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:43:8:
      43 │         "import": "./dist/browser.js",
         ╵         ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:42:8:
      42 │         "default": "./dist/browser.js",
         ╵         ~~~~~~~~~

CLI Using tsconfig: tsconfig.json
CLI tsup v8.5.1
CLI Using tsup config: C:\Users\floris\Documents\GitHub\athena-js\tsup.config.ts
CLI Target: es2022
CLI Cleaning output folder
CJS Build start
ESM Build start
▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:48:6:
      48 │       "import": "./dist/index.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:47:6:
      47 │       "default": "./dist/index.js",
         ╵       ~~~~~~~~~

▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:54:6:
      54 │       "import": "./dist/browser.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:53:6:
      53 │       "default": "./dist/browser.js",
         ╵       ~~~~~~~~~

▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:60:6:
      60 │       "import": "./dist/cookies.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:59:6:
      59 │       "default": "./dist/cookies.js",
         ╵       ~~~~~~~~~

▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:66:6:
      66 │       "import": "./dist/next/client.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:65:6:
      65 │       "default": "./dist/next/client.js",
         ╵       ~~~~~~~~~

▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:72:6:
      72 │       "import": "./dist/next/server.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:71:6:
      71 │       "default": "./dist/next/server.js",
         ╵       ~~~~~~~~~

▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:79:6:
      79 │       "import": "./dist/react.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:78:6:
      78 │       "default": "./dist/react.js",
         ╵       ~~~~~~~~~

▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:85:6:
      85 │       "import": "./dist/utils.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:84:6:
      84 │       "default": "./dist/utils.js",
         ╵       ~~~~~~~~~


 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:43:8:
      43 │         "import": "./dist/browser.js",
         ╵         ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:42:8:
      42 │         "default": "./dist/browser.js",
         ╵         ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:48:6:
      48 │       "import": "./dist/index.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:47:6:
      47 │       "default": "./dist/index.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:54:6:
      54 │       "import": "./dist/browser.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:53:6:
      53 │       "default": "./dist/browser.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:60:6:
      60 │       "import": "./dist/cookies.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:59:6:
      59 │       "default": "./dist/cookies.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:66:6:
      66 │       "import": "./dist/next/client.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:65:6:
      65 │       "default": "./dist/next/client.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:72:6:
      72 │       "import": "./dist/next/server.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:71:6:
      71 │       "default": "./dist/next/server.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:79:6:
      79 │       "import": "./dist/react.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:78:6:
      78 │       "default": "./dist/react.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:85:6:
      85 │       "import": "./dist/utils.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:84:6:
      84 │       "default": "./dist/utils.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:43:8:
      43 │         "import": "./dist/browser.js",
         ╵         ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:42:8:
      42 │         "default": "./dist/browser.js",
         ╵         ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:48:6:
      48 │       "import": "./dist/index.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:47:6:
      47 │       "default": "./dist/index.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:54:6:
      54 │       "import": "./dist/browser.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:53:6:
      53 │       "default": "./dist/browser.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:60:6:
      60 │       "import": "./dist/cookies.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:59:6:
      59 │       "default": "./dist/cookies.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:66:6:
      66 │       "import": "./dist/next/client.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:65:6:
      65 │       "default": "./dist/next/client.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:72:6:
      72 │       "import": "./dist/next/server.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:71:6:
      71 │       "default": "./dist/next/server.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:79:6:
      79 │       "import": "./dist/react.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:78:6:
      78 │       "default": "./dist/react.js",
         ╵       ~~~~~~~~~




 WARN  ▲ [WARNING] The conditions "import" and "require" and "types" here will never be used as they come after "default" [package.json]

    package.json:85:6:
      85 │       "import": "./dist/utils.js",
         ╵       ~~~~~~~~

  The "default" condition comes earlier and will always be chosen:

    package.json:84:6:
      84 │       "default": "./dist/utils.js",
         ╵       ~~~~~~~~~



DTS Build start
CJS dist\cookies.cjs         28.22 KB
CJS dist\react.cjs           67.95 KB
CJS dist\utils.cjs           8.92 KB
CJS dist\browser.cjs         327.37 KB
CJS dist\next\client.cjs     254.72 KB
CJS dist\index.cjs           389.16 KB
CJS dist\cli\index.cjs       323.42 KB
CJS dist\next\server.cjs     258.61 KB
CJS dist\utils.cjs.map       19.82 KB
CJS dist\cookies.cjs.map     65.52 KB
CJS dist\react.cjs.map       193.98 KB
CJS dist\next\client.cjs.map 725.10 KB
CJS dist\browser.cjs.map     903.80 KB
CJS dist\next\server.cjs.map 732.01 KB
CJS dist\cli\index.cjs.map   882.29 KB
CJS dist\index.cjs.map       1.01 MB
CJS ⚡️ Build success in 2771ms
ESM dist\react.js           66.66 KB
ESM dist\index.js           387.17 KB
ESM dist\utils.js           8.42 KB
ESM dist\cookies.js         27.68 KB
ESM dist\next\client.js     254.67 KB
ESM dist\next\server.js     258.53 KB
ESM dist\browser.js         325.39 KB
ESM dist\cli\index.js       323.35 KB
ESM dist\react.js.map       193.83 KB
ESM dist\utils.js.map       19.82 KB
ESM dist\cookies.js.map     65.51 KB
ESM dist\next\client.js.map 725.10 KB
ESM dist\next\server.js.map 732.00 KB
ESM dist\browser.js.map     903.78 KB
ESM dist\index.js.map       1.01 MB
ESM dist\cli\index.js.map   882.18 KB
ESM ⚡️ Build success in 2772ms
DTS ⚡️ Build success in 9242ms
DTS dist\index.d.cts                15.57 KB
DTS dist\browser.d.cts              14.37 KB
DTS dist\react.d.cts                14.90 KB
DTS dist\next\client.d.cts          1.37 KB
DTS dist\next\server.d.cts          3.14 KB
DTS dist\utils.d.cts                2.58 KB
DTS dist\cli\index.d.cts            781.00 B
DTS dist\cookies.d.cts              675.00 B
DTS dist\react-email-BvJ3fj_F.d.cts 27.04 KB
DTS dist\model-form-DACdBLYG.d.cts  4.73 KB
DTS dist\shared-BW6hoLBY.d.cts      1.39 KB
DTS dist\client-CfAE_QOj.d.cts      181.26 KB
DTS dist\index-CVcQCGyG.d.cts       7.19 KB
DTS dist\pipeline-CmUZsXsi.d.cts    329.00 B
DTS dist\types-C-YvfgYh.d.cts       7.19 KB
DTS dist\types-BeZIHduP.d.cts       15.72 KB
DTS dist\index.d.ts                 15.56 KB
DTS dist\browser.d.ts               14.37 KB
DTS dist\react.d.ts                 14.90 KB
DTS dist\next\client.d.ts           1.37 KB
DTS dist\next\server.d.ts           3.14 KB
DTS dist\utils.d.ts                 2.58 KB
DTS dist\cli\index.d.ts             778.00 B
DTS dist\cookies.d.ts               674.00 B
DTS dist\react-email-PLAJuZuO.d.ts  27.03 KB
DTS dist\model-form-ByvyyvxB.d.ts   4.73 KB
DTS dist\shared-BiJvoURI.d.ts       1.39 KB
DTS dist\client-D6EIJdQS.d.ts       181.26 KB
DTS dist\index-CVcQCGyG.d.ts        7.19 KB
DTS dist\pipeline-DZMsPxUg.d.ts     328.00 B
DTS dist\types-CRjDwmtJ.d.ts        7.19 KB
DTS dist\types-BeZIHduP.d.ts        15.72 KB
npm warn publish npm auto-corrected some errors in your package.json when publishing.  Please run "npm pkg fix" to address these errors.
npm warn publish errors corrected:
npm warn publish "bin[athena-js]" script name bin/athena-js.js was invalid and removed
npm notice
npm notice package: @xylex-group/athena@2.9.0
npm notice Tarball Contents
npm notice 1.1kB LICENSE
npm notice 44.7kB README.md
npm notice 2.2kB bin/athena-js.js
npm notice 335.2kB dist/browser.cjs
npm notice 925.5kB dist/browser.cjs.map
npm notice 14.7kB dist/browser.d.cts
npm notice 14.7kB dist/browser.d.ts
npm notice 333.2kB dist/browser.js
npm notice 925.5kB dist/browser.js.map
npm notice 331.2kB dist/cli/index.cjs
npm notice 903.5kB dist/cli/index.cjs.map
npm notice 781B dist/cli/index.d.cts
npm notice 778B dist/cli/index.d.ts
npm notice 331.1kB dist/cli/index.js
npm notice 903.4kB dist/cli/index.js.map
npm notice 185.6kB dist/client-CfAE_QOj.d.cts
npm notice 185.6kB dist/client-D6EIJdQS.d.ts
npm notice 28.9kB dist/cookies.cjs
npm notice 67.1kB dist/cookies.cjs.map
npm notice 675B dist/cookies.d.cts
npm notice 674B dist/cookies.d.ts
npm notice 28.3kB dist/cookies.js
npm notice 67.1kB dist/cookies.js.map
npm notice 7.4kB dist/index-CVcQCGyG.d.cts
npm notice 7.4kB dist/index-CVcQCGyG.d.ts
npm notice 398.5kB dist/index.cjs
npm notice 1.1MB dist/index.cjs.map
npm notice 15.9kB dist/index.d.cts
npm notice 15.9kB dist/index.d.ts
npm notice 396.5kB dist/index.js
npm notice 1.1MB dist/index.js.map
npm notice 4.8kB dist/model-form-ByvyyvxB.d.ts
npm notice 4.8kB dist/model-form-DACdBLYG.d.cts
npm notice 260.8kB dist/next/client.cjs
npm notice 742.5kB dist/next/client.cjs.map
npm notice 1.4kB dist/next/client.d.cts
npm notice 1.4kB dist/next/client.d.ts
npm notice 260.8kB dist/next/client.js
npm notice 742.5kB dist/next/client.js.map
npm notice 264.8kB dist/next/server.cjs
npm notice 749.6kB dist/next/server.cjs.map
npm notice 3.2kB dist/next/server.d.cts
npm notice 3.2kB dist/next/server.d.ts
npm notice 264.7kB dist/next/server.js
npm notice 749.6kB dist/next/server.js.map
npm notice 329B dist/pipeline-CmUZsXsi.d.cts
npm notice 328B dist/pipeline-DZMsPxUg.d.ts
npm notice 27.7kB dist/react-email-BvJ3fj_F.d.cts
npm notice 27.7kB dist/react-email-PLAJuZuO.d.ts
npm notice 69.6kB dist/react.cjs
npm notice 198.6kB dist/react.cjs.map
npm notice 15.3kB dist/react.d.cts
npm notice 15.3kB dist/react.d.ts
npm notice 68.3kB dist/react.js
npm notice 198.5kB dist/react.js.map
npm notice 1.4kB dist/shared-BiJvoURI.d.ts
npm notice 1.4kB dist/shared-BW6hoLBY.d.cts
npm notice 16.1kB dist/types-BeZIHduP.d.cts
npm notice 16.1kB dist/types-BeZIHduP.d.ts
npm notice 7.4kB dist/types-C-YvfgYh.d.cts
npm notice 7.4kB dist/types-CRjDwmtJ.d.ts
npm notice 9.1kB dist/utils.cjs
npm notice 20.3kB dist/utils.cjs.map
npm notice 2.6kB dist/utils.d.cts
npm notice 2.6kB dist/utils.d.ts
npm notice 8.6kB dist/utils.js
npm notice 20.3kB dist/utils.js.map
npm notice 5.0kB package.json
npm notice Tarball Details
npm notice name: @xylex-group/athena
npm notice version: 2.9.0
npm notice filename: xylex-group-athena-2.9.0.tgz
npm notice package size: 2.4 MB
npm notice unpacked size: 13.4 MB
npm notice shasum: 6186abb7c713dfe7aeb823e678a7f8deeaed5cc2
npm notice integrity: sha512-v7pAQ+PvkTom7[...]mosdYIHE9yCoQ==
npm notice total files: 68
npm notice
npm notice Publishing to https://registry.npmjs.org/ with tag latest and default access
+ @xylex-group/athena@2.9.0
Published @xylex-group/athena@2.9.0 via npm
Auto-commit created for xbp version release on main
  Repo athena-js (C:/Users/floris/Documents/GitHub/athena-js)
  Commit f306b31 (f306b3154c661a3fda4aa40f5ba4d2fd9211ed97)
  Message docs(release): sync release docs for v2.9.0
  Files CHANGELOG.md, SECURITY.md
Released v2.9.0 successfully.
GitHub release: https://github.com/xylex-group/athena-js/releases/tag/v2.9.0
Published release update to Linear initiative(s): Changelog
Updated release docs: CHANGELOG.md and SECURITY.md
