@everystack/cli 0.4.60 → 0.4.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/package.json +19 -2
  2. package/src/backfill.ts +3 -3
  3. package/src/cli/alter-type-dependents.ts +1 -1
  4. package/src/cli/apply-authority.ts +1 -1
  5. package/src/cli/apply-execute.ts +10 -10
  6. package/src/cli/audit-api.ts +4 -4
  7. package/src/cli/audit-source-api.ts +2 -2
  8. package/src/cli/authz-adoption-class.ts +4 -4
  9. package/src/cli/authz-baseline.ts +2 -2
  10. package/src/cli/authz-canonical.ts +2 -2
  11. package/src/cli/authz-compile.ts +3 -3
  12. package/src/cli/authz-contract-io.ts +2 -2
  13. package/src/cli/authz-contract.ts +4 -4
  14. package/src/cli/authz-derive.ts +2 -2
  15. package/src/cli/authz-identity.ts +1 -1
  16. package/src/cli/authz-ownership.ts +1 -1
  17. package/src/cli/authz-reconcile.ts +4 -4
  18. package/src/cli/authz-redteam.ts +1 -1
  19. package/src/cli/authz-render.ts +2 -2
  20. package/src/cli/aws.ts +57 -4
  21. package/src/cli/backfill.ts +3 -3
  22. package/src/cli/branch-db.ts +5 -5
  23. package/src/cli/bundle-weight.ts +2 -2
  24. package/src/cli/commands/analyze.ts +2 -2
  25. package/src/cli/commands/audit.ts +10 -10
  26. package/src/cli/commands/bundle.ts +6 -6
  27. package/src/cli/commands/cache.ts +75 -3
  28. package/src/cli/commands/console.ts +6 -6
  29. package/src/cli/commands/db-apply.ts +25 -25
  30. package/src/cli/commands/db-approvers.ts +4 -4
  31. package/src/cli/commands/db-authz.ts +15 -15
  32. package/src/cli/commands/db-backfill.ts +10 -10
  33. package/src/cli/commands/db-backup.ts +7 -7
  34. package/src/cli/commands/db-branch.ts +8 -8
  35. package/src/cli/commands/db-build.ts +7 -7
  36. package/src/cli/commands/db-check.ts +16 -16
  37. package/src/cli/commands/db-diff.ts +6 -6
  38. package/src/cli/commands/db-exec.ts +8 -8
  39. package/src/cli/commands/db-export.ts +10 -10
  40. package/src/cli/commands/db-fingerprint.ts +14 -14
  41. package/src/cli/commands/db-fork.ts +6 -6
  42. package/src/cli/commands/db-generate.ts +19 -19
  43. package/src/cli/commands/db-plan.ts +25 -25
  44. package/src/cli/commands/db-pull.ts +18 -18
  45. package/src/cli/commands/db-reconcile.ts +14 -14
  46. package/src/cli/commands/db-refresh.ts +7 -7
  47. package/src/cli/commands/db-snapshot.ts +5 -5
  48. package/src/cli/commands/db-swap.ts +26 -26
  49. package/src/cli/commands/db-sync.ts +18 -18
  50. package/src/cli/commands/db.ts +283 -18
  51. package/src/cli/commands/deploy.ts +39 -5
  52. package/src/cli/commands/diag.ts +10 -10
  53. package/src/cli/commands/lighthouse.ts +3 -3
  54. package/src/cli/commands/logs.ts +5 -5
  55. package/src/cli/commands/pipeline-run.ts +7 -7
  56. package/src/cli/commands/runbook.ts +5 -5
  57. package/src/cli/commands/secrets.ts +5 -5
  58. package/src/cli/commands/security-probe.ts +4 -4
  59. package/src/cli/commands/security.ts +6 -6
  60. package/src/cli/commands/status.ts +3 -3
  61. package/src/cli/commands/task-probe.ts +4 -4
  62. package/src/cli/commands/ui-audit.ts +5 -5
  63. package/src/cli/commands/update.ts +64 -8
  64. package/src/cli/component-audit.ts +5 -5
  65. package/src/cli/config.ts +2 -2
  66. package/src/cli/db-build.ts +6 -6
  67. package/src/cli/db-source.ts +2 -2
  68. package/src/cli/declared-derived.ts +5 -5
  69. package/src/cli/declared-diff.ts +5 -5
  70. package/src/cli/deploy-probe.ts +3 -3
  71. package/src/cli/derived-apply.ts +5 -5
  72. package/src/cli/derived-compile.ts +4 -4
  73. package/src/cli/derived-grants.ts +1 -1
  74. package/src/cli/derived-introspect.ts +3 -3
  75. package/src/cli/derived-lint.ts +2 -2
  76. package/src/cli/derived-plan.ts +5 -5
  77. package/src/cli/derived-render.ts +6 -6
  78. package/src/cli/direct-venue.ts +2 -2
  79. package/src/cli/discover.ts +2 -2
  80. package/src/cli/edge-plan.ts +8 -8
  81. package/src/cli/exec-digest.ts +1 -1
  82. package/src/cli/exec-execute.ts +1 -1
  83. package/src/cli/exec-log.ts +1 -1
  84. package/src/cli/exec-run.ts +2 -2
  85. package/src/cli/git-descent.ts +5 -5
  86. package/src/cli/index.ts +48 -47
  87. package/src/cli/migration-compile.ts +7 -7
  88. package/src/cli/migration-generate.ts +6 -6
  89. package/src/cli/model-api.ts +16 -16
  90. package/src/cli/model-render.ts +6 -6
  91. package/src/cli/mutation-lease.ts +1 -1
  92. package/src/cli/observability.ts +1 -1
  93. package/src/cli/refresh-execute.ts +2 -2
  94. package/src/cli/runbook/generate.ts +3 -3
  95. package/src/cli/runbook/index.ts +7 -7
  96. package/src/cli/runbook/sections.ts +2 -2
  97. package/src/cli/schema-compile.ts +4 -4
  98. package/src/cli/schema-diff.ts +1 -1
  99. package/src/cli/schema-fingerprint.ts +7 -7
  100. package/src/cli/schema-introspect.ts +3 -3
  101. package/src/cli/schema-source.ts +1 -1
  102. package/src/cli/schema-swap.ts +4 -4
  103. package/src/cli/security-catalog.ts +1 -1
  104. package/src/cli/stage-backup.ts +3 -3
  105. package/src/cli/stage-read-consistency.ts +6 -6
  106. package/src/cli/state-apply.ts +7 -7
  107. package/src/cli/swap-execute.ts +3 -3
  108. package/src/cli/swap-heartbeat.ts +1 -1
  109. package/src/cli/swap-pair.ts +7 -7
  110. package/src/cli/task-poll.ts +2 -2
  111. package/src/cli/ui-bloat.ts +1 -1
  112. package/src/cli/utils/secrets.ts +1 -1
  113. package/src/exec.ts +7 -7
  114. package/src/reconcile.ts +2 -2
  115. package/src/refresh.ts +2 -2
  116. package/src/sst.ts +1 -1
@@ -16,12 +16,12 @@
16
16
  */
17
17
 
18
18
  import type { ModelDescriptor, SequenceDescriptor } from '@everystack/model';
19
- import type { SchemaSnapshot } from './schema-introspect.js';
20
- import type { AuthzContract } from './authz-contract.js';
21
- import { compileTableSchema, compileRenames, compileTableRenames, compileTableMoves, compileCreateTable, compileEnums, compileSequences } from './schema-compile.js';
22
- import { compileTableContract } from './authz-compile.js';
23
- import { emitReconcileSql, governedRoleSet } from './authz-reconcile.js';
24
- import { diffSchema, emitSchemaSql, type SchemaChange } from './schema-diff.js';
19
+ import type { SchemaSnapshot } from './schema-introspect';
20
+ import type { AuthzContract } from './authz-contract';
21
+ import { compileTableSchema, compileRenames, compileTableRenames, compileTableMoves, compileCreateTable, compileEnums, compileSequences } from './schema-compile';
22
+ import { compileTableContract } from './authz-compile';
23
+ import { emitReconcileSql, governedRoleSet } from './authz-reconcile';
24
+ import { diffSchema, emitSchemaSql, type SchemaChange } from './schema-diff';
25
25
 
26
26
  export interface GenerateOptions {
27
27
  /** The Postgres schema the Models live in. Default: `public`. */
@@ -15,25 +15,25 @@
15
15
  */
16
16
 
17
17
  // --- data layer: compile, introspect, diff, render -------------------------
18
- export * from './schema-compile.js';
19
- export * from './schema-introspect.js';
20
- export * from './schema-diff.js';
21
- export * from './schema-source.js';
22
- export * from './model-render.js';
23
- export * from './migration-compile.js';
24
- export * from './migration-generate.js';
18
+ export * from './schema-compile';
19
+ export * from './schema-introspect';
20
+ export * from './schema-diff';
21
+ export * from './schema-source';
22
+ export * from './model-render';
23
+ export * from './migration-compile';
24
+ export * from './migration-generate';
25
25
 
26
26
  // --- authz layer: contract compile/introspect/diff/reconcile ---------------
27
- export * from './authz-compile.js';
28
- export * from './authz-contract.js';
29
- export * from './authz-reconcile.js';
27
+ export * from './authz-compile';
28
+ export * from './authz-contract';
29
+ export * from './authz-reconcile';
30
30
 
31
31
  // --- red-team: grant enforcement + owner isolation -------------------------
32
- export * from './authz-redteam.js';
33
- export * from './authz-owner-probe.js';
32
+ export * from './authz-redteam';
33
+ export * from './authz-owner-probe';
34
34
 
35
35
  // --- the SECDEF function catalog the contract introspection needs -----------
36
- export { FUNCTIONS_SQL, catalogFunctionToDescriptor } from './security-catalog.js';
36
+ export { FUNCTIONS_SQL, catalogFunctionToDescriptor } from './security-catalog';
37
37
 
38
38
  // --- how you HAND a database to the VERIFY calls ---------------------------
39
39
  // `introspectSchema` and `introspectContract` take a `SessionRunner`, not a `QueryRunner`:
@@ -47,7 +47,7 @@ export { FUNCTIONS_SQL, catalogFunctionToDescriptor } from './security-catalog.j
47
47
  // `sessionRunnerOver(sql)` wraps a postgres.js client whose pool is a SINGLE connection.
48
48
  // `INTROSPECTION_SESSION` is the options both introspections expect — read only, repeatable
49
49
  // read, canonical `search_path`. Pass it through; do not re-derive it.
50
- export { sessionRunnerOver } from './db-source.js';
50
+ export { sessionRunnerOver } from './db-source';
51
51
  export {
52
52
  INTROSPECTION_SESSION,
53
53
  borrowedSessionRunner,
@@ -57,11 +57,11 @@ export {
57
57
  type SessionStatement,
58
58
  type SessionOptions,
59
59
  type SessionResult,
60
- } from './session.js';
60
+ } from './session';
61
61
 
62
62
  // --- databases FROM the declared state: ephemeral test DBs + the builder ----
63
63
  // `createEphemeralDatabase(adminUrl, models, { sources })` is the packaged
64
64
  // create-sync-drop shape for consumer test suites: a fresh database at the
65
65
  // declared state (state + authz + derived), verified to fingerprint MATCH,
66
66
  // dropped when you're done — never long-lived, never poisoned.
67
- export * from './db-build.js';
67
+ export * from './db-build';
@@ -15,12 +15,12 @@
15
15
  * Pure and deterministic — the command shell (commands/db-pull.ts) does the IO.
16
16
  */
17
17
 
18
- import type { SchemaSnapshot, TableSchema, ColumnSchema, CheckConstraint } from './schema-introspect.js';
19
- import type { DerivedRenderResult } from './derived-render.js';
20
- import type { TableContract } from './authz-contract.js';
21
- import { deriveAbilities, renderDerivedAbilities } from './authz-derive.js';
22
- import { normalizeDefault, normalizeCheck } from './schema-diff.js';
23
- import { generatedIndexName, generatedForeignKeyName } from './schema-compile.js';
18
+ import type { SchemaSnapshot, TableSchema, ColumnSchema, CheckConstraint } from './schema-introspect';
19
+ import type { DerivedRenderResult } from './derived-render';
20
+ import type { TableContract } from './authz-contract';
21
+ import { deriveAbilities, renderDerivedAbilities } from './authz-derive';
22
+ import { normalizeDefault, normalizeCheck } from './schema-diff';
23
+ import { generatedIndexName, generatedForeignKeyName } from './schema-compile';
24
24
  // The soft-delete RULE itself — one boolean combination, shared with `defineModel`'s refusal.
25
25
  // Only the FACT EXTRACTION is duplicated here (this renderer holds text, not descriptors);
26
26
  // the rule is not, so the two surfaces cannot drift on when a declaration is required.
@@ -20,7 +20,7 @@
20
20
  * lives in `pg_locks`, discoverable from the catalog rather than bookkeeping that can lie.
21
21
  */
22
22
 
23
- import type { QueryRunner } from './authz-contract.js';
23
+ import type { QueryRunner } from './authz-contract';
24
24
 
25
25
  /**
26
26
  * The fixed lease key: `('ES','TK')` as two 16-bit ints — 0x4553, 0x544B. One key covers
@@ -17,7 +17,7 @@
17
17
  * pulls React Native (admin/ui) through its peer graph — wrong for a standalone CLI.
18
18
  */
19
19
 
20
- import { listS3, getFromS3 } from './aws.js';
20
+ import { listS3, getFromS3 } from './aws';
21
21
 
22
22
  /** Severity ordering — mirrors LogLevel in @everystack/logging core/types. */
23
23
  const LOG_LEVELS: Record<string, number> = {
@@ -13,8 +13,8 @@
13
13
  * deliberate follow-on, not a silent default.
14
14
  */
15
15
 
16
- import { quoteQualified } from './pg-ident.js';
17
- import type { SourceObject } from './derived-source.js';
16
+ import { quoteQualified } from './pg-ident';
17
+ import type { SourceObject } from './derived-source';
18
18
 
19
19
  export type RefreshRunner = (sql: string) => Promise<any[]>;
20
20
 
@@ -9,9 +9,9 @@
9
9
  * idempotent: unchanged project → byte-identical output.
10
10
  */
11
11
 
12
- import type { ProjectReality } from './detect.js';
13
- import { parseRunbook, composeRunbook, sha8, type Block } from './markers.js';
14
- import { buildStructure, headerStamp, PLACEHOLDER_PREFIX, type RunbookContext } from './sections.js';
12
+ import type { ProjectReality } from './detect';
13
+ import { parseRunbook, composeRunbook, sha8, type Block } from './markers';
14
+ import { buildStructure, headerStamp, PLACEHOLDER_PREFIX, type RunbookContext } from './sections';
15
15
 
16
16
  export interface RunbookResult {
17
17
  text: string;
@@ -11,10 +11,10 @@
11
11
  * expect(status).toBe('current');
12
12
  */
13
13
 
14
- export * from './detect.js';
15
- export * from './markers.js';
16
- export * from './sections.js';
17
- export * from './generate.js';
18
- export * from './model-section.js';
19
- export { runRunbook, checkRunbook, diffSummary } from '../commands/runbook.js';
20
- export type { RunbookRun, RunbookCheck, RunbookDiffSummary } from '../commands/runbook.js';
14
+ export * from './detect';
15
+ export * from './markers';
16
+ export * from './sections';
17
+ export * from './generate';
18
+ export * from './model-section';
19
+ export { runRunbook, checkRunbook, diffSummary } from '../commands/runbook';
20
+ export type { RunbookRun, RunbookCheck, RunbookDiffSummary } from '../commands/runbook';
@@ -10,8 +10,8 @@
10
10
  * markdown) → same blocks, so `runbook --check` is trustworthy in CI.
11
11
  */
12
12
 
13
- import type { ProjectReality } from './detect.js';
14
- import type { Block } from './markers.js';
13
+ import type { ProjectReality } from './detect';
14
+ import type { Block } from './markers';
15
15
 
16
16
  export interface RunbookContext {
17
17
  cliVersion: string;
@@ -20,9 +20,9 @@
20
20
  */
21
21
 
22
22
  import type { ModelDescriptor, FieldSpec, SequenceDescriptor } from '@everystack/model';
23
- import type { TableSchema, EnumType, SequenceSchema, UniqueConstraint, CheckConstraint, IndexSchema, ForeignKey } from './schema-introspect.js';
24
- import { nextvalSequence, identityClause, type RenameMap } from './schema-diff.js';
25
- import { normalizeDeparsedExpr } from './deparse-normal.js';
23
+ import type { TableSchema, EnumType, SequenceSchema, UniqueConstraint, CheckConstraint, IndexSchema, ForeignKey } from './schema-introspect';
24
+ import { nextvalSequence, identityClause, type RenameMap } from './schema-diff';
25
+ import { normalizeDeparsedExpr } from './deparse-normal';
26
26
 
27
27
  /** `authorId` -> `author_id`. SQL identifiers are snake_case. */
28
28
  export function toSnakeCase(name: string): string {
@@ -606,7 +606,7 @@ export function compileSequences(sequences: readonly SequenceDescriptor[]): Sequ
606
606
 
607
607
  // The DDL renderer lives in schema-diff (emitOne needs it; this file already imports
608
608
  // schema-diff, so defining it there avoids a cycle) — re-exported here beside its compiler.
609
- export { sequenceCreateSql } from './schema-diff.js';
609
+ export { sequenceCreateSql } from './schema-diff';
610
610
 
611
611
  /**
612
612
  * Foreign-key constraints for a model — its `.references()` fields and its table-level
@@ -31,7 +31,7 @@ import type {
31
31
  EnumType,
32
32
  IndexSchema,
33
33
  SequenceSchema,
34
- } from './schema-introspect.js';
34
+ } from './schema-introspect';
35
35
 
36
36
  // ---------------------------------------------------------------------------
37
37
  // The change set.
@@ -50,14 +50,14 @@
50
50
  */
51
51
 
52
52
  import { createHash } from 'node:crypto';
53
- import { canonicalAuthz } from './authz-canonical.js';
53
+ import { canonicalAuthz } from './authz-canonical';
54
54
  import type { ModelDescriptor, SequenceDescriptor } from '@everystack/model';
55
- import type { SchemaSnapshot, TableSchema } from './schema-introspect.js';
56
- import type { AuthzContract, TableContract } from './authz-contract.js';
57
- import { compileTableSchema, compileEnums, compileSequences } from './schema-compile.js';
58
- import { compileTableContract } from './authz-compile.js';
59
- import { governedRoleSet } from './authz-reconcile.js';
60
- import { normalizeDefault, normalizeCheck, indexKey } from './schema-diff.js';
55
+ import type { SchemaSnapshot, TableSchema } from './schema-introspect';
56
+ import type { AuthzContract, TableContract } from './authz-contract';
57
+ import { compileTableSchema, compileEnums, compileSequences } from './schema-compile';
58
+ import { compileTableContract } from './authz-compile';
59
+ import { governedRoleSet } from './authz-reconcile';
60
+ import { normalizeDefault, normalizeCheck, indexKey } from './schema-diff';
61
61
 
62
62
  // v2: expression fields (defaults, checks, partial-index WHERE) normalize through
63
63
  // the diff's pg-deparse normalizers before hashing, so the model form and the live
@@ -13,9 +13,9 @@
13
13
  * 'numeric(12,2)', 'uuid' the Model compiler also emits), so the two sides diff.
14
14
  */
15
15
 
16
- import { IGNORED_SCHEMAS, coerceBool, type QueryRunner } from './authz-contract.js';
17
- import { INTROSPECTION_SESSION, type SessionRunner } from './session.js';
18
- import { normalizeDeparsedExpr } from './deparse-normal.js';
16
+ import { IGNORED_SCHEMAS, coerceBool, type QueryRunner } from './authz-contract';
17
+ import { INTROSPECTION_SESSION, type SessionRunner } from './session';
18
+ import { normalizeDeparsedExpr } from './deparse-normal';
19
19
 
20
20
  // ---------------------------------------------------------------------------
21
21
  // The data-layer snapshot — the structured shape both producers target.
@@ -26,7 +26,7 @@
26
26
  */
27
27
 
28
28
  import type { ModelDescriptor, FieldSpec, DerivedDescriptor, ViewDescriptor, MaterializedViewDescriptor } from '@everystack/model';
29
- import { parseQualified } from './derived-source.js';
29
+ import { parseQualified } from './derived-source';
30
30
 
31
31
  /** `author_id` is the SQL identifier; `authorId` the field key. The single snake-case rule. */
32
32
  function toSnakeCase(name: string): string {
@@ -31,10 +31,10 @@
31
31
  */
32
32
 
33
33
  import type { ModelDescriptor } from '@everystack/model';
34
- import { modelForeignKeys, qualifiedTable } from './schema-compile.js';
35
- import { compileTableContract } from './authz-compile.js';
36
- import { emitSwapAuthzSql } from './authz-reconcile.js';
37
- import { schemaOf } from './schema-fingerprint.js';
34
+ import { modelForeignKeys, qualifiedTable } from './schema-compile';
35
+ import { compileTableContract } from './authz-compile';
36
+ import { emitSwapAuthzSql } from './authz-reconcile';
37
+ import { schemaOf } from './schema-fingerprint';
38
38
 
39
39
  const SAFE_SCHEMA = /^[a-z_][a-z0-9_$]*$/;
40
40
 
@@ -14,7 +14,7 @@ import type {
14
14
  FunctionDescriptor,
15
15
  ViewDescriptor,
16
16
  ReturnClass,
17
- } from './security-audit.js';
17
+ } from './security-audit';
18
18
 
19
19
  /**
20
20
  * Enumerate every function with its security context. Excludes system schemas and
@@ -22,8 +22,8 @@
22
22
  * without AWS.
23
23
  */
24
24
 
25
- import { invokeAction, lambdaSessionRunner } from './aws.js';
26
- import { pollTaskUntilStopped } from './task-poll.js';
25
+ import { invokeAction, lambdaSessionRunner } from './aws';
26
+ import { pollTaskUntilStopped } from './task-poll';
27
27
 
28
28
  /** The verdict on a completed dump's fingerprint pair. Pure — the heart of the sandwich. */
29
29
  export type SandwichVerdict = { ok: true } | { ok: false; reason: string };
@@ -188,7 +188,7 @@ export function stageBackupDeps(
188
188
  // override both.
189
189
  readFingerprint: async () => {
190
190
  // The SAME helper db:apply's concurrency lock uses — that shared definition is the point.
191
- const { liveBaseFingerprint } = await import('./apply-execute.js');
191
+ const { liveBaseFingerprint } = await import('./apply-execute');
192
192
  return (await liveBaseFingerprint(lambdaSessionRunner(config.region, opsFn))).hash;
193
193
  },
194
194
  dispatch: async (fingerprint) => {
@@ -30,12 +30,12 @@
30
30
  * Lambda's db:apply action, for refusals that reach it.
31
31
  */
32
32
 
33
- import type { AuthzContract } from './authz-contract.js';
34
- import type { SessionRunner } from './session.js';
35
- import { introspectContract } from './authz-contract.js';
36
- import { introspectSchema, type SchemaSnapshot } from './schema-introspect.js';
37
- import { FUNCTIONS_SQL, contractFunctionRow } from './security-catalog.js';
38
- import { fingerprintLive } from './schema-fingerprint.js';
33
+ import type { AuthzContract } from './authz-contract';
34
+ import type { SessionRunner } from './session';
35
+ import { introspectContract } from './authz-contract';
36
+ import { introspectSchema, type SchemaSnapshot } from './schema-introspect';
37
+ import { FUNCTIONS_SQL, contractFunctionRow } from './security-catalog';
38
+ import { fingerprintLive } from './schema-fingerprint';
39
39
 
40
40
  /** One complete read of a target's base state, with its content address. */
41
41
  export interface StageReadPair {
@@ -19,14 +19,14 @@
19
19
 
20
20
  import { execSync } from 'node:child_process';
21
21
  import type { ModelDescriptor } from '@everystack/model';
22
- import { introspectContract, type AuthzContract, type QueryRunner } from './authz-contract.js';
23
- import type { SessionRunner } from './session.js';
24
- import { introspectSchema, type SchemaSnapshot } from './schema-introspect.js';
25
- import { FUNCTIONS_SQL, contractFunctionRow } from './security-catalog.js';
26
- import { generateMigrationSql, HELD_DROP_PREFIX } from './migration-generate.js';
22
+ import { introspectContract, type AuthzContract, type QueryRunner } from './authz-contract';
23
+ import type { SessionRunner } from './session';
24
+ import { introspectSchema, type SchemaSnapshot } from './schema-introspect';
25
+ import { FUNCTIONS_SQL, contractFunctionRow } from './security-catalog';
26
+ import { generateMigrationSql, HELD_DROP_PREFIX } from './migration-generate';
27
27
  import type { SequenceDescriptor } from '@everystack/model';
28
- import { fingerprintLive } from './schema-fingerprint.js';
29
- import { ENSURE_RECONCILER_SQL, renderSchemaLogInsert, renderSchemaLogFingerprintUpdate } from './derived-apply.js';
28
+ import { fingerprintLive } from './schema-fingerprint';
29
+ import { ENSURE_RECONCILER_SQL, renderSchemaLogInsert, renderSchemaLogFingerprintUpdate } from './derived-apply';
30
30
 
31
31
  const NOTICE_PREFIX = '-- NOTICE';
32
32
 
@@ -20,9 +20,9 @@
20
20
  */
21
21
 
22
22
  import type { ModelDescriptor } from '@everystack/model';
23
- import type { QueryRunner } from './authz-contract.js';
24
- import type { SessionRunner } from './session.js';
25
- import { renderSchemaSwap, dropRetiringSql } from './schema-swap.js';
23
+ import type { QueryRunner } from './authz-contract';
24
+ import type { SessionRunner } from './session';
25
+ import { renderSchemaSwap, dropRetiringSql } from './schema-swap';
26
26
 
27
27
  /** One validator's result. A `fatal` (default) failure rolls back; a `warn` failure is surfaced only. */
28
28
  export interface SwapCheck {
@@ -39,7 +39,7 @@
39
39
  * waiting for a client that has stopped sending. `Lock` is never healthy here and reports at once.
40
40
  */
41
41
 
42
- import type { QueryRunner } from './authz-contract.js';
42
+ import type { QueryRunner } from './authz-contract';
43
43
 
44
44
  /** One poll: what has landed, and what the loading backend is doing. */
45
45
  export interface HeartbeatSample {
@@ -50,13 +50,13 @@
50
50
  */
51
51
 
52
52
  import type { ModelDescriptor, DerivedDescriptor } from '@everystack/model';
53
- import { parseQualified } from './derived-source.js';
54
- import type { SourceObject } from './derived-source.js';
55
- import { rewriteStatementLineMulti, splitCodeSpans } from './schema-rewrite.js';
56
- import { parseGrantAttachments } from './derived-grants.js';
57
- import { derivedSearchPath, renderSetSearchPath, renderProvenanceUpsert, ENSURE_RECONCILER_SQL } from './derived-apply.js';
58
- import type { LiveObject } from './derived-introspect.js';
59
- import { compileTableContract } from './authz-compile.js';
53
+ import { parseQualified } from './derived-source';
54
+ import type { SourceObject } from './derived-source';
55
+ import { rewriteStatementLineMulti, splitCodeSpans } from './schema-rewrite';
56
+ import { parseGrantAttachments } from './derived-grants';
57
+ import { derivedSearchPath, renderSetSearchPath, renderProvenanceUpsert, ENSURE_RECONCILER_SQL } from './derived-apply';
58
+ import type { LiveObject } from './derived-introspect';
59
+ import { compileTableContract } from './authz-compile';
60
60
 
61
61
  const SAFE_SCHEMA = /^[a-z_][a-z0-9_$]*$/;
62
62
 
@@ -9,8 +9,8 @@
9
9
  * row + ECS both carry it). This owns the loop; the caller owns the success/failure messaging.
10
10
  */
11
11
 
12
- import { invokeAction } from './aws.js';
13
- import { info } from './output.js';
12
+ import { invokeAction } from './aws';
13
+ import { info } from './output';
14
14
 
15
15
  const POLL_INTERVAL_MS = 5_000;
16
16
  /** Backup/export/restore can run minutes on large databases — far longer than the probe's handshake. */
@@ -29,7 +29,7 @@
29
29
  * mangled, pathless) — that is the local source auditor's job; this proves magnitude.
30
30
  */
31
31
 
32
- import type { AuditFinding } from './bundle-audit.js';
32
+ import type { AuditFinding } from './bundle-audit';
33
33
 
34
34
  /** Thresholds for the design-bloat gates. All counts are occurrences in the bundle. */
35
35
  export interface UiBloatBudget {
@@ -15,7 +15,7 @@
15
15
 
16
16
  import crypto from 'node:crypto';
17
17
  import { gunzipSync } from 'node:zlib';
18
- import { ensureOptionalAws } from '../aws.js';
18
+ import { ensureOptionalAws } from '../aws';
19
19
 
20
20
  /**
21
21
  * Preflight the two optional-peer clients EVERY secrets operation needs (ssm for the passphrase,
package/src/exec.ts CHANGED
@@ -8,13 +8,13 @@
8
8
  * URL on the operator's machine.
9
9
  */
10
10
 
11
- export { executeExec, assertNoTxnControl, execSha } from './cli/exec-execute.js';
12
- export type { ExecIntent, ExecOutcome, ExecuteExecOptions, ExecResult } from './cli/exec-execute.js';
11
+ export { executeExec, assertNoTxnControl, execSha } from './cli/exec-execute';
12
+ export type { ExecIntent, ExecOutcome, ExecuteExecOptions, ExecResult } from './cli/exec-execute';
13
13
 
14
- export { runExecInTx, SchemaChangedError, railStatements, EXEC_RAIL_DEFAULTS } from './cli/exec-run.js';
15
- export type { TxRunner, ExecStmtResult, ExecRails, RunExecInTxOptions } from './cli/exec-run.js';
14
+ export { runExecInTx, SchemaChangedError, railStatements, EXEC_RAIL_DEFAULTS } from './cli/exec-run';
15
+ export type { TxRunner, ExecStmtResult, ExecRails, RunExecInTxOptions } from './cli/exec-run';
16
16
 
17
- export { catalogDigestQuery } from './cli/exec-digest.js';
17
+ export { catalogDigestQuery } from './cli/exec-digest';
18
18
 
19
- export { ENSURE_EXEC_LOG_SQL, renderExecIntentInsert, renderExecOutcomeUpdate } from './cli/exec-log.js';
20
- export type { ExecIntentRow, ExecOutcomeRow } from './cli/exec-log.js';
19
+ export { ENSURE_EXEC_LOG_SQL, renderExecIntentInsert, renderExecOutcomeUpdate } from './cli/exec-log';
20
+ export type { ExecIntentRow, ExecOutcomeRow } from './cli/exec-log';
package/src/reconcile.ts CHANGED
@@ -7,5 +7,5 @@
7
7
  * --stage` needs no raw admin URL on the deployer's machine.
8
8
  */
9
9
 
10
- export { executeReconcile, buildReconcileReport } from './cli/commands/db-reconcile.js';
11
- export type { ReconcileRun, ExecuteOptions } from './cli/commands/db-reconcile.js';
10
+ export { executeReconcile, buildReconcileReport } from './cli/commands/db-reconcile';
11
+ export type { ReconcileRun, ExecuteOptions } from './cli/commands/db-reconcile';
package/src/refresh.ts CHANGED
@@ -7,5 +7,5 @@
7
7
  * machine. The CLI ships the declared matview identities (dependency order); this refreshes them.
8
8
  */
9
9
 
10
- export { executeRefresh, matviewIdentities } from './cli/refresh-execute.js';
11
- export type { RefreshRun, RefreshRunner } from './cli/refresh-execute.js';
10
+ export { executeRefresh, matviewIdentities } from './cli/refresh-execute';
11
+ export type { RefreshRun, RefreshRunner } from './cli/refresh-execute';
package/src/sst.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  * @module
12
12
  */
13
13
 
14
- import { loadEnvConfig, type EnvConfig } from './env.js';
14
+ import { loadEnvConfig, type EnvConfig } from './env';
15
15
 
16
16
  export { loadEnvConfig, type EnvConfig };
17
17