primitive-admin 1.2.0-alpha.4 → 1.2.0-alpha.5

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 (114) hide show
  1. package/assets/skill/skills/primitive-platform/SKILL.md +17 -0
  2. package/dist/src/commands/auth.js +7 -4
  3. package/dist/src/commands/auth.js.map +1 -1
  4. package/dist/src/commands/connections.js +11 -12
  5. package/dist/src/commands/connections.js.map +1 -1
  6. package/dist/src/commands/database-type-configs.js +2 -76
  7. package/dist/src/commands/database-type-configs.js.map +1 -1
  8. package/dist/src/commands/database-types.js +313 -13
  9. package/dist/src/commands/database-types.js.map +1 -1
  10. package/dist/src/commands/databases.d.ts +9 -0
  11. package/dist/src/commands/databases.js +67 -367
  12. package/dist/src/commands/databases.js.map +1 -1
  13. package/dist/src/commands/documents.d.ts +32 -2
  14. package/dist/src/commands/documents.js +281 -685
  15. package/dist/src/commands/documents.js.map +1 -1
  16. package/dist/src/commands/functions.js +2 -2
  17. package/dist/src/commands/functions.js.map +1 -1
  18. package/dist/src/commands/llm.js +6 -9
  19. package/dist/src/commands/llm.js.map +1 -1
  20. package/dist/src/commands/settings.d.ts +9 -12
  21. package/dist/src/commands/settings.js +79 -31
  22. package/dist/src/commands/settings.js.map +1 -1
  23. package/dist/src/commands/sync.d.ts +31 -81
  24. package/dist/src/commands/sync.js +228 -1113
  25. package/dist/src/commands/sync.js.map +1 -1
  26. package/dist/src/lib/api-client.d.ts +30 -199
  27. package/dist/src/lib/api-client.js +31 -297
  28. package/dist/src/lib/api-client.js.map +1 -1
  29. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +6 -7
  30. package/dist/src/lib/codegen-shared/generatedFiles.js +2 -2
  31. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
  32. package/dist/src/lib/codegen-shared/prettierStable.d.ts +1 -1
  33. package/dist/src/lib/codegen-shared/prettierStable.js +1 -1
  34. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +2 -2
  35. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +2 -2
  36. package/dist/src/lib/config-object-descriptor.js +1 -5
  37. package/dist/src/lib/config-object-descriptor.js.map +1 -1
  38. package/dist/src/lib/config-surface.d.ts +2 -1
  39. package/dist/src/lib/config-surface.js +4 -1
  40. package/dist/src/lib/config-surface.js.map +1 -1
  41. package/dist/src/lib/connections-list.d.ts +10 -0
  42. package/dist/src/lib/connections-list.js +18 -0
  43. package/dist/src/lib/connections-list.js.map +1 -0
  44. package/dist/src/lib/csv.d.ts +8 -9
  45. package/dist/src/lib/csv.js +3 -4
  46. package/dist/src/lib/csv.js.map +1 -1
  47. package/dist/src/lib/db-codegen/dbNaming.d.ts +2 -1
  48. package/dist/src/lib/db-codegen/dbNaming.js +2 -1
  49. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
  50. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +2 -2
  51. package/dist/src/lib/db-codegen/dbTsTypes.js +2 -2
  52. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +59 -1
  53. package/dist/src/lib/db-codegen/dbTypeIR.js +12 -1
  54. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -1
  55. package/dist/src/lib/document-export-record-log.d.ts +57 -0
  56. package/dist/src/lib/document-export-record-log.js +215 -0
  57. package/dist/src/lib/document-export-record-log.js.map +1 -0
  58. package/dist/src/lib/document-ingest-artifact.d.ts +13 -2
  59. package/dist/src/lib/document-ingest-artifact.js +7 -3
  60. package/dist/src/lib/document-ingest-artifact.js.map +1 -1
  61. package/dist/src/lib/document-ingest-rows.d.ts +16 -0
  62. package/dist/src/lib/document-ingest-rows.js +17 -0
  63. package/dist/src/lib/document-ingest-rows.js.map +1 -1
  64. package/dist/src/lib/document-ingest.d.ts +22 -0
  65. package/dist/src/lib/document-ingest.js +33 -0
  66. package/dist/src/lib/document-ingest.js.map +1 -1
  67. package/dist/src/lib/function-triggers.d.ts +3 -15
  68. package/dist/src/lib/function-triggers.js +10 -72
  69. package/dist/src/lib/function-triggers.js.map +1 -1
  70. package/dist/src/lib/generated-allowlist.js +0 -20
  71. package/dist/src/lib/generated-allowlist.js.map +1 -1
  72. package/dist/src/lib/generated-config-surfaces.d.ts +40 -2
  73. package/dist/src/lib/generated-config-surfaces.js +160 -94
  74. package/dist/src/lib/generated-config-surfaces.js.map +1 -1
  75. package/dist/src/lib/generated-sdk-types.d.ts +1 -1
  76. package/dist/src/lib/generated-sdk-types.js +1 -1
  77. package/dist/src/lib/generated-sdk-types.js.map +1 -1
  78. package/dist/src/lib/login-scope-lines.d.ts +15 -0
  79. package/dist/src/lib/login-scope-lines.js +22 -0
  80. package/dist/src/lib/login-scope-lines.js.map +1 -0
  81. package/dist/src/lib/paginate.d.ts +0 -5
  82. package/dist/src/lib/paginate.js +0 -5
  83. package/dist/src/lib/paginate.js.map +1 -1
  84. package/dist/src/lib/refresh-admin-credentials.d.ts +7 -0
  85. package/dist/src/lib/refresh-admin-credentials.js +16 -4
  86. package/dist/src/lib/refresh-admin-credentials.js.map +1 -1
  87. package/dist/src/lib/root-import-decision.d.ts +15 -14
  88. package/dist/src/lib/root-import-decision.js +44 -51
  89. package/dist/src/lib/root-import-decision.js.map +1 -1
  90. package/dist/src/lib/snapshot-build-rows.d.ts +21 -0
  91. package/dist/src/lib/snapshot-build-rows.js +22 -0
  92. package/dist/src/lib/snapshot-build-rows.js.map +1 -1
  93. package/dist/src/lib/snapshot-build.js +8 -3
  94. package/dist/src/lib/snapshot-build.js.map +1 -1
  95. package/dist/src/lib/swift-codegen/banners.d.ts +34 -7
  96. package/dist/src/lib/swift-codegen/banners.js +37 -7
  97. package/dist/src/lib/swift-codegen/banners.js.map +1 -1
  98. package/dist/src/lib/swift-codegen/functionGenerator.d.ts +3 -3
  99. package/dist/src/lib/swift-codegen/functionGenerator.js +22 -17
  100. package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -1
  101. package/dist/src/lib/swift-codegen/generator.js +27 -27
  102. package/dist/src/lib/swift-codegen/generator.js.map +1 -1
  103. package/dist/src/lib/toml-database-config.d.ts +14 -75
  104. package/dist/src/lib/toml-database-config.js +14 -305
  105. package/dist/src/lib/toml-database-config.js.map +1 -1
  106. package/dist/src/lib/workflow-toml-validator.js +15 -1
  107. package/dist/src/lib/workflow-toml-validator.js.map +1 -1
  108. package/package.json +3 -5
  109. package/dist/src/lib/generated-workflow-model-fields.d.ts +0 -20
  110. package/dist/src/lib/generated-workflow-model-fields.js +0 -53
  111. package/dist/src/lib/generated-workflow-model-fields.js.map +0 -1
  112. package/dist/src/lib/workflow-field-descriptor.d.ts +0 -91
  113. package/dist/src/lib/workflow-field-descriptor.js +0 -153
  114. package/dist/src/lib/workflow-field-descriptor.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"generated-sdk-types.js","sourceRoot":"","sources":["../../../src/lib/generated-sdk-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,ogkIAAogkI,CAAC"}
1
+ {"version":3,"file":"generated-sdk-types.js","sourceRoot":"","sources":["../../../src/lib/generated-sdk-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,4j6HAA4j6H,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * What `primitive login` prints about the session it saved (#3891): its scope
3
+ * and pins, and, when it cannot take destructive actions, how to step up.
4
+ */
5
+ /** The step-up hint for a login without `admin`. */
6
+ export declare const STEP_UP_HINT = "Deleting apps or databases, removing collaborators and changing user roles need a 15-minute step-up: primitive login --scope admin";
7
+ /**
8
+ * The lines to print after `Logged in as …` for an exchange's `scope` and
9
+ * `apps`. None when the exchange names no scope: an older server, whose login
10
+ * is unscoped.
11
+ */
12
+ export declare function loginScopeLines(exchange: {
13
+ scope?: string[];
14
+ apps?: string[];
15
+ }): string[];
@@ -0,0 +1,22 @@
1
+ /**
2
+ * What `primitive login` prints about the session it saved (#3891): its scope
3
+ * and pins, and, when it cannot take destructive actions, how to step up.
4
+ */
5
+ /** The step-up hint for a login without `admin`. */
6
+ export const STEP_UP_HINT = "Deleting apps or databases, removing collaborators and changing user roles need a 15-minute step-up: primitive login --scope admin";
7
+ /**
8
+ * The lines to print after `Logged in as …` for an exchange's `scope` and
9
+ * `apps`. None when the exchange names no scope: an older server, whose login
10
+ * is unscoped.
11
+ */
12
+ export function loginScopeLines(exchange) {
13
+ const scope = exchange.scope ?? [];
14
+ if (scope.length === 0)
15
+ return [];
16
+ const apps = exchange.apps ?? [];
17
+ const lines = [`Scope: ${scope.join(", ")}; apps: ${apps.length > 0 ? apps.join(", ") : "unpinned"}`];
18
+ if (!scope.includes("admin"))
19
+ lines.push(STEP_UP_HINT);
20
+ return lines;
21
+ }
22
+ //# sourceMappingURL=login-scope-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-scope-lines.js","sourceRoot":"","sources":["../../../src/lib/login-scope-lines.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oDAAoD;AACpD,MAAM,CAAC,MAAM,YAAY,GACvB,oIAAoI,CAAC;AAEvI;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAA+C;IAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IACtG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -40,11 +40,6 @@ export interface ListEnvelope<T = any> {
40
40
  * `normalizeListEnvelope` (`src/client/internal/listEnvelope.ts`). The two are
41
41
  * unrelated — the client helper is not re-exported from `src/client/index.ts`
42
42
  * and the CLI does not depend on the client package.
43
- *
44
- * `databases operations execute` routes through here too, but conditionally: a
45
- * registered operation is only sometimes a list, so
46
- * `normalizeDatabaseOperationResult()` (`api-client.ts`) tests the result shape
47
- * first and calls this helper only for a Durable Object query page (#2440).
48
43
  */
49
44
  export declare function normalizeCliListEnvelope<T = any>(raw: unknown): ListEnvelope<T>;
50
45
  /**
@@ -26,11 +26,6 @@
26
26
  * `normalizeListEnvelope` (`src/client/internal/listEnvelope.ts`). The two are
27
27
  * unrelated — the client helper is not re-exported from `src/client/index.ts`
28
28
  * and the CLI does not depend on the client package.
29
- *
30
- * `databases operations execute` routes through here too, but conditionally: a
31
- * registered operation is only sometimes a list, so
32
- * `normalizeDatabaseOperationResult()` (`api-client.ts`) tests the result shape
33
- * first and calls this helper only for a Durable Object query page (#2440).
34
29
  */
35
30
  export function normalizeCliListEnvelope(raw) {
36
31
  const page = raw;
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../../src/lib/paginate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkBH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,wBAAwB,CAAU,GAAY;IAC5D,MAAM,IAAI,GAAG,GAA6C,CAAC;IAC3D,MAAM,QAAQ,GACZ,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACtD,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACjD,MAAM,QAAQ,GAAoB;QAChC,KAAK,EAAE,QAAe;QACtB,OAAO,EACL,OAAO,IAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;KAC3E,CAAC;IACF,IAAI,UAAU;QAAE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAsC;IAEtC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC3E,CAAC;AAaD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAyB,EACzB,UAA2B,EAAE;IAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,IAAI,MAA0B,CAAC;IAE/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,iDAAiD,CACnG,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,iEAAiE,CACjG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../../src/lib/paginate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkBH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,wBAAwB,CAAU,GAAY;IAC5D,MAAM,IAAI,GAAG,GAA6C,CAAC;IAC3D,MAAM,QAAQ,GACZ,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACtD,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IACjD,MAAM,QAAQ,GAAoB;QAChC,KAAK,EAAE,QAAe;QACtB,OAAO,EACL,OAAO,IAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;KAC3E,CAAC;IACF,IAAI,UAAU;QAAE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAsC;IAEtC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC3E,CAAC;AAaD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAyB,EACzB,UAA2B,EAAE;IAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,IAAI,MAA0B,CAAC;IAE/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,iDAAiD,CACnG,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,iEAAiE,CACjG,CAAC;AACJ,CAAC"}
@@ -55,6 +55,13 @@ export declare class RefreshError extends Error {
55
55
  export declare const SESSION_REVOKED_MESSAGE = "This session was revoked. Run 'primitive login'.";
56
56
  /** Any other refused refresh. */
57
57
  export declare const REFRESH_EXPIRED_MESSAGE = "Refresh token expired. Run 'primitive login'.";
58
+ /**
59
+ * The login was made before scoped sessions: the server no longer refreshes
60
+ * an unscoped CLI session, and a new login holds the default scope.
61
+ */
62
+ export declare const SESSION_UNSCOPED_MESSAGE = "Your login predates scoped sessions and can no longer be refreshed. Run 'primitive login' to sign in again.";
63
+ /** What to tell the developer about a refresh the server refused with `code`. */
64
+ export declare function refreshRefusalMessage(code: string | undefined): string;
58
65
  /**
59
66
  * Exchange the stored refresh token for a fresh `accessToken`. Returns a new
60
67
  * `Credentials` object — the caller is responsible for persistence via
@@ -53,6 +53,19 @@ export class RefreshError extends Error {
53
53
  export const SESSION_REVOKED_MESSAGE = "This session was revoked. Run 'primitive login'.";
54
54
  /** Any other refused refresh. */
55
55
  export const REFRESH_EXPIRED_MESSAGE = "Refresh token expired. Run 'primitive login'.";
56
+ /**
57
+ * The login was made before scoped sessions: the server no longer refreshes
58
+ * an unscoped CLI session, and a new login holds the default scope.
59
+ */
60
+ export const SESSION_UNSCOPED_MESSAGE = "Your login predates scoped sessions and can no longer be refreshed. Run 'primitive login' to sign in again.";
61
+ /** What to tell the developer about a refresh the server refused with `code`. */
62
+ export function refreshRefusalMessage(code) {
63
+ if (code === "SESSION_UNSCOPED")
64
+ return SESSION_UNSCOPED_MESSAGE;
65
+ if (code === "SESSION_REVOKED")
66
+ return SESSION_REVOKED_MESSAGE;
67
+ return REFRESH_EXPIRED_MESSAGE;
68
+ }
56
69
  /**
57
70
  * Exchange the stored refresh token for a fresh `accessToken`. Returns a new
58
71
  * `Credentials` object — the caller is responsible for persistence via
@@ -95,7 +108,8 @@ export async function refreshAdminCredentials(credentials) {
95
108
  }
96
109
  if (!response.ok) {
97
110
  // #3885: a refresh of a revoked session answers 401 with code
98
- // SESSION_REVOKED; say so, rather than calling the token expired.
111
+ // SESSION_REVOKED; say so, rather than calling the token expired. #3891:
112
+ // an unscoped login answers SESSION_UNSCOPED.
99
113
  let code;
100
114
  try {
101
115
  const body = (await response.json());
@@ -104,9 +118,7 @@ export async function refreshAdminCredentials(credentials) {
104
118
  catch {
105
119
  // Not JSON: no code to report.
106
120
  }
107
- throw new RefreshError(code === "SESSION_REVOKED"
108
- ? SESSION_REVOKED_MESSAGE
109
- : REFRESH_EXPIRED_MESSAGE, "unauthorized", response.status, undefined, code);
121
+ throw new RefreshError(refreshRefusalMessage(code), "unauthorized", response.status, undefined, code);
110
122
  }
111
123
  const data = (await response.json());
112
124
  const accessToken = data?.accessToken || data?.jwt;
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-admin-credentials.js","sourceRoot":"","sources":["../../../src/lib/refresh-admin-credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refresh-admin-credentials.js","sourceRoot":"","sources":["../../../src/lib/refresh-admin-credentials.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,18 @@
2
2
  * What `documents import` does with a root document export, by format
3
3
  * (#4195).
4
4
  *
5
- * A root document is either a legacy document (its export is one Yjs state,
6
- * MERGED into the target user's root) or a large document (its export is a
7
- * chain, INSTALLED into the target user's root, and only into one that holds
8
- * nothing yet). Neither can go into the other, so a mismatch is refused before
9
- * the run writes anything. When the target user has no root yet, the app's
10
- * `rootDocumentFormat` setting predicts the format the mint will produce; the
11
- * root the mint actually returns is decided again against that prediction.
5
+ * A legacy root export is one Yjs state, MERGED into the target user's root.
6
+ * A large-document root export (format 2) cannot go anywhere: the platform no
7
+ * longer serves the format, so it is refused, naming the way across — its
8
+ * snapshot row chunks, loaded into a record-log document. A target root that
9
+ * is itself a large document is refused the same way. When the target user
10
+ * has no root yet, the app's `rootDocumentFormat` setting predicts the format
11
+ * the mint will produce; the root the mint actually returns is decided again
12
+ * against that prediction.
12
13
  *
13
14
  * Pure, so every branch is pinned without a server.
14
15
  */
15
- /** A root document's storage format: 1 (legacy) or 2 (large document). */
16
+ /** A root document's storage format: 1 (legacy) or 2 (large document, refused). */
16
17
  export type RootDocumentFormat = 1 | 2;
17
18
  /** The facts a root import is decided from. */
18
19
  export interface RootImportDecisionInput {
@@ -36,7 +37,7 @@ export interface RootImportDecisionInput {
36
37
  }
37
38
  /** What to do with a root export. */
38
39
  export type RootImportDecision = {
39
- outcome: "install" | "merge";
40
+ outcome: "merge";
40
41
  targetFormat: RootDocumentFormat;
41
42
  } | {
42
43
  outcome: "skip" | "refuse";
@@ -48,12 +49,12 @@ export declare function rootDocumentFormatOf(value: unknown): RootDocumentFormat
48
49
  /**
49
50
  * Decide what a root export does in the target app.
50
51
  *
51
- * - The formats match: `install` (large) or `merge` (legacy) — into an
52
- * existing root only with `overwrite`, otherwise `skip`.
53
- * - They differ: `refuse`, naming both formats, whatever `overwrite` says.
54
- * - No root yet: the app's setting predicts the mint (2 is large, absent or 1
55
- * legacy) and the same rule applies to the prediction.
52
+ * - The export is a large document: `refuse`, naming the migration.
53
+ * - The target root (existing, predicted from the app's setting, or minted)
54
+ * is a large document: `refuse`.
56
55
  * - A `predictedFormat` that the minted root contradicts: `refuse` — the
57
56
  * setting changed while the import ran.
57
+ * - Otherwise `merge` — into an existing root only with `overwrite`,
58
+ * otherwise `skip`.
58
59
  */
59
60
  export declare function decideRootImport(input: RootImportDecisionInput): RootImportDecision;
@@ -2,13 +2,14 @@
2
2
  * What `documents import` does with a root document export, by format
3
3
  * (#4195).
4
4
  *
5
- * A root document is either a legacy document (its export is one Yjs state,
6
- * MERGED into the target user's root) or a large document (its export is a
7
- * chain, INSTALLED into the target user's root, and only into one that holds
8
- * nothing yet). Neither can go into the other, so a mismatch is refused before
9
- * the run writes anything. When the target user has no root yet, the app's
10
- * `rootDocumentFormat` setting predicts the format the mint will produce; the
11
- * root the mint actually returns is decided again against that prediction.
5
+ * A legacy root export is one Yjs state, MERGED into the target user's root.
6
+ * A large-document root export (format 2) cannot go anywhere: the platform no
7
+ * longer serves the format, so it is refused, naming the way across — its
8
+ * snapshot row chunks, loaded into a record-log document. A target root that
9
+ * is itself a large document is refused the same way. When the target user
10
+ * has no root yet, the app's `rootDocumentFormat` setting predicts the format
11
+ * the mint will produce; the root the mint actually returns is decided again
12
+ * against that prediction.
12
13
  *
13
14
  * Pure, so every branch is pinned without a server.
14
15
  */
@@ -16,80 +17,72 @@
16
17
  export function rootDocumentFormatOf(value) {
17
18
  return Number(value) === 2 ? 2 : 1;
18
19
  }
19
- /** How a reason names a format. */
20
- function describe(format) {
21
- return format === 2
22
- ? "a large document (documentFormat 2)"
23
- : "a legacy document (documentFormat 1)";
24
- }
25
- const REMEDY = "A large-document export is installed as a chain and a legacy export is " +
26
- "merged as a Yjs state, so neither can go into the other. Import it into " +
27
- "an app whose rootDocumentFormat matches the export, or into a user whose " +
28
- "root document has the export's format. Nothing was imported for it.";
20
+ /** Why a large document goes nowhere, and the way across for an export. */
21
+ const NO_LONGER_SERVED = "a large document (documentFormat 2), which the platform no longer serves";
22
+ const MIGRATION = "Create a record-log document and run `primitive documents ingest " +
23
+ "<document-id> --input <export-dir>` to load its row chunks. Nothing was imported " +
24
+ "for it.";
29
25
  /**
30
26
  * Decide what a root export does in the target app.
31
27
  *
32
- * - The formats match: `install` (large) or `merge` (legacy) — into an
33
- * existing root only with `overwrite`, otherwise `skip`.
34
- * - They differ: `refuse`, naming both formats, whatever `overwrite` says.
35
- * - No root yet: the app's setting predicts the mint (2 is large, absent or 1
36
- * legacy) and the same rule applies to the prediction.
28
+ * - The export is a large document: `refuse`, naming the migration.
29
+ * - The target root (existing, predicted from the app's setting, or minted)
30
+ * is a large document: `refuse`.
37
31
  * - A `predictedFormat` that the minted root contradicts: `refuse` — the
38
32
  * setting changed while the import ran.
33
+ * - Otherwise `merge` — into an existing root only with `overwrite`,
34
+ * otherwise `skip`.
39
35
  */
40
36
  export function decideRootImport(input) {
41
37
  const whose = (input.owner
42
38
  ? `the root document of ${input.owner}`
43
39
  : "the target user's root document") +
44
40
  (input.targetRootDocId ? ` (${input.targetRootDocId})` : "");
45
- const exportIs = `it is a root document exported as ${describe(input.exportFormat)}`;
41
+ const target = input.existingRootFormat ?? rootDocumentFormatOf(input.appSetting);
42
+ if (input.exportFormat === 2) {
43
+ return {
44
+ outcome: "refuse",
45
+ targetFormat: target,
46
+ reason: `it is a root document exported as ${NO_LONGER_SERVED}. ${MIGRATION}`,
47
+ };
48
+ }
46
49
  if (input.existingRootFormat === null) {
47
- const predicted = rootDocumentFormatOf(input.appSetting);
48
- if (predicted !== input.exportFormat) {
50
+ if (target === 2) {
49
51
  return {
50
52
  outcome: "refuse",
51
- targetFormat: predicted,
52
- reason: `${exportIs}, and this app's rootDocumentFormat would mint ` +
53
- `${whose} as ${describe(predicted)}. ${REMEDY}`,
53
+ targetFormat: target,
54
+ reason: `this app's rootDocumentFormat would mint ${whose} as ` +
55
+ `${NO_LONGER_SERVED}. Nothing was imported for it.`,
54
56
  };
55
57
  }
56
- return {
57
- outcome: predicted === 2 ? "install" : "merge",
58
- targetFormat: predicted,
59
- };
58
+ return { outcome: "merge", targetFormat: target };
60
59
  }
61
- const actual = input.existingRootFormat;
62
60
  if (input.predictedFormat !== undefined &&
63
- input.predictedFormat !== actual) {
61
+ input.predictedFormat !== input.existingRootFormat) {
64
62
  return {
65
63
  outcome: "refuse",
66
- targetFormat: actual,
67
- reason: `${exportIs}, and ${whose} came back from the server as ` +
68
- `${describe(actual)} rather than ${describe(input.predictedFormat)} — ` +
69
- `the app's rootDocumentFormat changed while this import ran, or a ` +
70
- `sign-in minted the root first. ${REMEDY}`,
64
+ targetFormat: input.existingRootFormat,
65
+ reason: `${whose} came back from the server as a different format than the ` +
66
+ `app's rootDocumentFormat predicted — the setting changed while this ` +
67
+ `import ran, or a sign-in minted the root first. Nothing was imported ` +
68
+ `for it.`,
71
69
  };
72
70
  }
73
- if (actual !== input.exportFormat) {
71
+ if (input.existingRootFormat === 2) {
74
72
  return {
75
73
  outcome: "refuse",
76
- targetFormat: actual,
77
- reason: `${exportIs}, and ${whose} is ${describe(actual)}. ${REMEDY}`,
74
+ targetFormat: 2,
75
+ reason: `${whose} is ${NO_LONGER_SERVED}. Nothing was imported for it.`,
78
76
  };
79
77
  }
80
78
  if (!input.overwrite) {
81
79
  return {
82
80
  outcome: "skip",
83
- targetFormat: actual,
84
- reason: actual === 2
85
- ? `${whose} already exists as a large document; a large-document ` +
86
- `root export is installed, not merged, and only into a root that ` +
87
- `holds nothing yet — use --overwrite to install it if the root is ` +
88
- `still empty`
89
- : `${whose} already exists; use --overwrite to merge the exported ` +
90
- `content into it`,
81
+ targetFormat: 1,
82
+ reason: `${whose} already exists; use --overwrite to merge the exported ` +
83
+ `content into it`,
91
84
  };
92
85
  }
93
- return { outcome: actual === 2 ? "install" : "merge", targetFormat: actual };
86
+ return { outcome: "merge", targetFormat: 1 };
94
87
  }
95
88
  //# sourceMappingURL=root-import-decision.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root-import-decision.js","sourceRoot":"","sources":["../../../src/lib/root-import-decision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root-import-decision.js","sourceRoot":"","sources":["../../../src/lib/root-import-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmCH,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,2EAA2E;AAC3E,MAAM,gBAAgB,GACpB,0EAA0E,CAAC;AAC7E,MAAM,SAAS,GACb,mEAAmE;IACnE,mFAAmF;IACnF,SAAS,CAAC;AAEZ;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA8B;IAE9B,MAAM,KAAK,GACT,CAAC,KAAK,CAAC,KAAK;QACV,CAAC,CAAC,wBAAwB,KAAK,CAAC,KAAK,EAAE;QACvC,CAAC,CAAC,iCAAiC,CAAC;QACtC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,MAAM,MAAM,GACV,KAAK,CAAC,kBAAkB,IAAI,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAErE,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,qCAAqC,gBAAgB,KAAK,SAAS,EAAE;SAC9E,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACtC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,QAAQ;gBACjB,YAAY,EAAE,MAAM;gBACpB,MAAM,EACJ,4CAA4C,KAAK,MAAM;oBACvD,GAAG,gBAAgB,gCAAgC;aACtD,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,IACE,KAAK,CAAC,eAAe,KAAK,SAAS;QACnC,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,kBAAkB,EAClD,CAAC;QACD,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,KAAK,CAAC,kBAAkB;YACtC,MAAM,EACJ,GAAG,KAAK,4DAA4D;gBACpE,sEAAsE;gBACtE,uEAAuE;gBACvE,SAAS;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,KAAK,OAAO,gBAAgB,gCAAgC;SACxE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,CAAC;YACf,MAAM,EACJ,GAAG,KAAK,yDAAyD;gBACjE,iBAAiB;SACpB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC"}
@@ -58,3 +58,24 @@ export interface SnapshotBuildPayload {
58
58
  };
59
59
  }
60
60
  export declare function snapshotBuildRows(build: SnapshotBuildPayload): SnapshotBuildRow[];
61
+ /**
62
+ * The rows `documents snapshots get` and `build` print for a record-log
63
+ * (format 3) document's segment (#4310): where its export began (`B`), the
64
+ * log number its corrections were read at (`C`), and what it holds.
65
+ */
66
+ export declare function segmentRows(segment: {
67
+ segmentId: string;
68
+ state: string;
69
+ lsn: number;
70
+ completedLsn: number | null;
71
+ rows: number;
72
+ chunks: number;
73
+ corrections: number | null;
74
+ bytes: number;
75
+ startedAt: number;
76
+ completedAt: number | null;
77
+ failure?: {
78
+ code: string;
79
+ reason: string;
80
+ } | null;
81
+ }): SnapshotBuildRow[];
@@ -84,4 +84,26 @@ export function snapshotBuildRows(build) {
84
84
  }
85
85
  return rows;
86
86
  }
87
+ /**
88
+ * The rows `documents snapshots get` and `build` print for a record-log
89
+ * (format 3) document's segment (#4310): where its export began (`B`), the
90
+ * log number its corrections were read at (`C`), and what it holds.
91
+ */
92
+ export function segmentRows(segment) {
93
+ const rows = [
94
+ ["Segment", segment.segmentId],
95
+ ["State", segment.state],
96
+ ["Log number", segment.lsn],
97
+ ["Completed at log number", segment.completedLsn ?? "—"],
98
+ ["Rows", segment.rows],
99
+ ["Chunks", segment.chunks],
100
+ ["Corrections", segment.corrections ?? "—"],
101
+ ["Bytes", segment.bytes],
102
+ ["Started", formatDate(segment.startedAt)],
103
+ ["Completed", segment.completedAt ? formatDate(segment.completedAt) : "—"],
104
+ ];
105
+ if (segment.failure)
106
+ rows.push(["Failure", `${segment.failure.code} — ${segment.failure.reason}`]);
107
+ return rows;
108
+ }
87
109
  //# sourceMappingURL=snapshot-build-rows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-build-rows.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build-rows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot-build-rows.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2CzC,kEAAkE;AAClE,MAAM,MAAM,GAA4B;IACtC,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,aAAa,EAAE,UAAU,CAAC;IAC3B,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,aAAa,EAAE,UAAU,CAAC;IAC3B,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,kBAAkB,EAAE,cAAc,CAAC;IACpC,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;IACxC,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;CAC7C,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,KAA2B;IAE3B,MAAM,IAAI,GAAuB;QAC/B,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QACxB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QACtB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QACtB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC,kBAAkB,EAAE,KAAK,CAAC,eAAe,CAAC;QAC3C,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,SAA4B,CAAC,CAAC;QAC3D;YACE,WAAW;YACX,KAAK,CAAC,WAAW;gBACf,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAA8B,CAAC;gBAClD,CAAC,CAAC,GAAG;SACR;QACD,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QACtB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,wEAAwE;QACxE,yEAAyE;QACzE,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC;QACxC,CAAC,eAAe,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1C,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;KACvC,CAAC;IAEF,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,0DAA0D;IAC1D,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/E,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,SAA4B,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1D,IAAI,YAAY,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,YAAY,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,YAAY,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAqB,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC;gBACR,WAAW;gBACX,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;aACpE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAY3B;IACC,MAAM,IAAI,GAAuB;QAC/B,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;QAC9B,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;QACxB,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC;QAC3B,CAAC,yBAAyB,EAAE,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;QACxD,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;QAC3C,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;QACxB,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAA4B,CAAC,CAAC;QAC7D,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,WAA8B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KAC9F,CAAC;IACF,IAAI,OAAO,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnG,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -58,8 +58,13 @@ export async function driveSnapshotBuild(options) {
58
58
  onProgress?.("The open epoch carried nothing, so it was not sealed and no build was started.");
59
59
  return { exitCode: 0, response, build: null };
60
60
  }
61
- const buildId = String(response?.buildId ?? "");
62
- onProgress?.(`Sealed epoch ${response?.sealedEpoch}; build ${buildId}.`);
61
+ // A record-log (format 3) document answers with the segment export it
62
+ // started (#4310); it is watched the same way, to `complete` or `failed`.
63
+ const segmentId = typeof response?.segmentId === "string" ? response.segmentId : null;
64
+ const buildId = String(segmentId ?? response?.buildId ?? "");
65
+ onProgress?.(segmentId
66
+ ? `Segment ${segmentId} exporting from log number ${response?.lsn}.`
67
+ : `Sealed epoch ${response?.sealedEpoch}; build ${buildId}.`);
63
68
  if (!wait || !buildId)
64
69
  return { exitCode: 0, response, build: null };
65
70
  const startedAt = now();
@@ -99,7 +104,7 @@ export async function driveSnapshotBuild(options) {
99
104
  continue;
100
105
  }
101
106
  const verification = build?.verification;
102
- if (verification?.state === "passed") {
107
+ if (segmentId ? build?.state === "complete" : verification?.state === "passed") {
103
108
  return { exitCode: 0, response, build };
104
109
  }
105
110
  if (verification?.state === "failed" || build?.state === "failed") {
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-build.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot-build.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmCH,MAAM,OAAO,GAAG,KAAK,CAAC;AAEtB;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAG,OAAO,CAAC;AACvC,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,mDAAmD;AACnD,SAAS,aAAa,CAAC,QAAa;IAClC,OAAO,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;AACpC,CAAC;AAED,gFAAgF;AAChF,SAAS,aAAa,CAAC,KAAU;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,MAAM,KAAK,GAAG,CAAC;AACxB,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,KAAU;IAC7B,MAAM,MAAM,GAAG,KAAK,EAAE,YAAY,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;IAC7F,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACnD,CAAC,CAAC,4BAA4B,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,EACJ,MAAM,EACN,UAAU,EACV,IAAI,GAAG,KAAK,EACZ,SAAS,GAAG,IAAI,EAChB,MAAM,EACN,UAAU,GACX,GAAG,OAAO,CAAC;IACZ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAE1D,uEAAuE;IACvE,8DAA8D;IAC9D,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,UAAU,EAAE,CACV,gFAAgF,CACjF,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,MAAM,SAAS,GAAG,OAAO,QAAQ,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAC7D,UAAU,EAAE,CACV,SAAS;QACP,CAAC,CAAC,WAAW,SAAS,8BAA8B,QAAQ,EAAE,GAAG,GAAG;QACpE,CAAC,CAAC,gBAAgB,QAAQ,EAAE,WAAW,WAAW,OAAO,GAAG,CAC/D,CAAC;IACF,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAErE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,YAAY,GAAG,iCAAiC,OAAO,IAAI;QAC/D,4CAA4C,UAAU,IAAI,OAAO,KAAK,CAAC;IACzE,IAAI,YAAY,GAAkB,IAAI,CAAC;IAEvC,SAAS,CAAC;QACR,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QACzE,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;YACzD,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QACzE,CAAC;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACtD,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,qEAAqE;gBACrE,4DAA4D;gBAC5D,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,YAAY,KAAK,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,EAAE,GAAG,YAAY,IAAI,sBAAsB,EAAE,CAAC;gBACnD,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,QAAQ;oBACR,KAAK,EAAE,IAAI;oBACX,OAAO,EACL,mCAAmC,IAAI,CAAC,KAAK,CAC3C,sBAAsB,GAAG,IAAI,CAC9B,MAAM,KAAK,EAAE,OAAO,IAAI,KAAK,MAAM,YAAY,EAAE;iBACrD,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,EAAE,YAAY,CAAC;QACzC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/E,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;QACD,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,13 +1,17 @@
1
1
  /**
2
2
  * Ownership banners the CLI's Swift generators stamp and guard against.
3
3
  *
4
- * Three generators now write `.generated.swift` files that may share one
5
- * output directory — workflows, database types and (since #3344) server
6
- * functions. Each one sweeps only the files carrying its OWN banner and
7
- * refuses to overwrite a file carrying another's, so each has to name the
8
- * other two. The functions banner lives here, with no imports of its own, so
9
- * `generator.ts` and `dbGenerator.ts` can both name it without deepening the
10
- * import cycle those two already have.
4
+ * Two generators write `.generated.swift` files that may share one output
5
+ * directory — workflows and (since #3344) server functions. Each one sweeps
6
+ * only the files carrying its OWN banner and refuses to overwrite a file
7
+ * carrying the other's. The banners live here, with no imports of their own,
8
+ * so both generators can name them without an import cycle.
9
+ *
10
+ * A third generator, the database one, was retired with `primitive databases
11
+ * codegen` (#3189). Its banners stay RECOGNIZED: a database file left in an
12
+ * output directory belongs to no generator any more, so both surviving
13
+ * generators treat it as stale generated output to sweep — never as a file the
14
+ * author wrote, and never as another live generator's.
11
15
  */
12
16
  /**
13
17
  * Banner prefix stamped at the top of every `functions codegen --lang swift`
@@ -22,3 +26,26 @@ export declare const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM func
22
26
  * invokers but from `prompts/`, so the two are told apart by content too.
23
27
  */
24
28
  export declare const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
29
+ /**
30
+ * Banner prefix the retired database Swift generator stamped on every
31
+ * `.generated.swift` file it wrote. RECOGNITION ONLY since #3189 — nothing
32
+ * emits it. Distinct from the workflow and function banners and from the model
33
+ * codegen's (`// Generated by swift-bao-codegen`), so recognizing it claims no
34
+ * live generator's file.
35
+ */
36
+ export declare const DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-type-configs/";
37
+ /**
38
+ * The banner the database generator stamped before issue #2760 renamed the
39
+ * source directory. RECOGNITION ONLY — nothing emits it.
40
+ *
41
+ * Ownership everywhere is `contents.startsWith(banner)`, so without this a file
42
+ * generated before the rename would match no banner at all and be left behind
43
+ * as if the author had written it.
44
+ */
45
+ export declare const LEGACY_DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-types/";
46
+ /**
47
+ * Both spellings of the retired database banner. A surviving generator counts
48
+ * a file carrying either as its own STALE output: a full run deletes it, a
49
+ * `--check` reports it stale, and a run writing the same name replaces it.
50
+ */
51
+ export declare const DB_SWIFT_BANNER_PREFIXES: string[];
@@ -1,13 +1,17 @@
1
1
  /**
2
2
  * Ownership banners the CLI's Swift generators stamp and guard against.
3
3
  *
4
- * Three generators now write `.generated.swift` files that may share one
5
- * output directory — workflows, database types and (since #3344) server
6
- * functions. Each one sweeps only the files carrying its OWN banner and
7
- * refuses to overwrite a file carrying another's, so each has to name the
8
- * other two. The functions banner lives here, with no imports of its own, so
9
- * `generator.ts` and `dbGenerator.ts` can both name it without deepening the
10
- * import cycle those two already have.
4
+ * Two generators write `.generated.swift` files that may share one output
5
+ * directory — workflows and (since #3344) server functions. Each one sweeps
6
+ * only the files carrying its OWN banner and refuses to overwrite a file
7
+ * carrying the other's. The banners live here, with no imports of their own,
8
+ * so both generators can name them without an import cycle.
9
+ *
10
+ * A third generator, the database one, was retired with `primitive databases
11
+ * codegen` (#3189). Its banners stay RECOGNIZED: a database file left in an
12
+ * output directory belongs to no generator any more, so both surviving
13
+ * generators treat it as stale generated output to sweep — never as a file the
14
+ * author wrote, and never as another live generator's.
11
15
  */
12
16
  /**
13
17
  * Banner prefix stamped at the top of every `functions codegen --lang swift`
@@ -22,4 +26,30 @@ export const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM functions/";
22
26
  * invokers but from `prompts/`, so the two are told apart by content too.
23
27
  */
24
28
  export const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
29
+ /**
30
+ * Banner prefix the retired database Swift generator stamped on every
31
+ * `.generated.swift` file it wrote. RECOGNITION ONLY since #3189 — nothing
32
+ * emits it. Distinct from the workflow and function banners and from the model
33
+ * codegen's (`// Generated by swift-bao-codegen`), so recognizing it claims no
34
+ * live generator's file.
35
+ */
36
+ export const DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-type-configs/";
37
+ /**
38
+ * The banner the database generator stamped before issue #2760 renamed the
39
+ * source directory. RECOGNITION ONLY — nothing emits it.
40
+ *
41
+ * Ownership everywhere is `contents.startsWith(banner)`, so without this a file
42
+ * generated before the rename would match no banner at all and be left behind
43
+ * as if the author had written it.
44
+ */
45
+ export const LEGACY_DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-types/";
46
+ /**
47
+ * Both spellings of the retired database banner. A surviving generator counts
48
+ * a file carrying either as its own STALE output: a full run deletes it, a
49
+ * `--check` reports it stale, and a run writing the same name replaces it.
50
+ */
51
+ export const DB_SWIFT_BANNER_PREFIXES = [
52
+ DB_SWIFT_BANNER_PREFIX,
53
+ LEGACY_DB_SWIFT_BANNER_PREFIX,
54
+ ];
25
55
  //# sourceMappingURL=banners.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banners.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/banners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC"}
1
+ {"version":3,"file":"banners.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/banners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,+CAA+C,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,wCAAwC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,sBAAsB;IACtB,6BAA6B;CAC9B,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * `functions codegen --lang swift` — the third CLI Swift generator (#3344).
2
+ * `functions codegen --lang swift` — a CLI Swift generator (#3344).
3
3
  *
4
4
  * The Swift counterpart of `function-schema-codegen.ts`'s TypeScript invoker,
5
- * and the sibling of `generator.ts` (workflows) and `dbGenerator.ts`
6
- * (database types). Reads the SAME `functions/<key>.toml` files and emits one
5
+ * and the sibling of `generator.ts` (workflows). Reads the SAME
6
+ * `functions/<key>.toml` files and emits one
7
7
  * `<key>.generated.swift` per function carrying:
8
8
  *
9
9
  * - `<Key>Input` / `<Key>Output`, rendered from the declared schemas by the