primitive-admin 1.0.53 → 1.0.55

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 (173) hide show
  1. package/README.md +38 -10
  2. package/dist/bin/primitive.js +8 -0
  3. package/dist/bin/primitive.js.map +1 -1
  4. package/dist/src/commands/apps.js +54 -2
  5. package/dist/src/commands/apps.js.map +1 -1
  6. package/dist/src/commands/auth.js +16 -6
  7. package/dist/src/commands/auth.js.map +1 -1
  8. package/dist/src/commands/blob-buckets.js +84 -7
  9. package/dist/src/commands/blob-buckets.js.map +1 -1
  10. package/dist/src/commands/catalog.js +3 -3
  11. package/dist/src/commands/catalog.js.map +1 -1
  12. package/dist/src/commands/collections.js +12 -9
  13. package/dist/src/commands/collections.js.map +1 -1
  14. package/dist/src/commands/databases.js +220 -82
  15. package/dist/src/commands/databases.js.map +1 -1
  16. package/dist/src/commands/documents.js +77 -0
  17. package/dist/src/commands/documents.js.map +1 -1
  18. package/dist/src/commands/group-type-configs.js +1 -9
  19. package/dist/src/commands/group-type-configs.js.map +1 -1
  20. package/dist/src/commands/groups.js +12 -6
  21. package/dist/src/commands/groups.js.map +1 -1
  22. package/dist/src/commands/guides.d.ts +161 -0
  23. package/dist/src/commands/guides.js +502 -84
  24. package/dist/src/commands/guides.js.map +1 -1
  25. package/dist/src/commands/integrations.js +2 -2
  26. package/dist/src/commands/integrations.js.map +1 -1
  27. package/dist/src/commands/metadata.d.ts +2 -0
  28. package/dist/src/commands/metadata.js +344 -0
  29. package/dist/src/commands/metadata.js.map +1 -0
  30. package/dist/src/commands/prompts.js +2 -2
  31. package/dist/src/commands/prompts.js.map +1 -1
  32. package/dist/src/commands/rule-sets.d.ts +1 -0
  33. package/dist/src/commands/rule-sets.js +25 -3
  34. package/dist/src/commands/rule-sets.js.map +1 -1
  35. package/dist/src/commands/scripts.d.ts +2 -0
  36. package/dist/src/commands/scripts.js +667 -0
  37. package/dist/src/commands/scripts.js.map +1 -0
  38. package/dist/src/commands/settings.d.ts +15 -0
  39. package/dist/src/commands/settings.js +102 -0
  40. package/dist/src/commands/settings.js.map +1 -0
  41. package/dist/src/commands/sync-app-settings.d.ts +105 -0
  42. package/dist/src/commands/sync-app-settings.js +339 -0
  43. package/dist/src/commands/sync-app-settings.js.map +1 -0
  44. package/dist/src/commands/sync.d.ts +204 -9
  45. package/dist/src/commands/sync.js +1706 -371
  46. package/dist/src/commands/sync.js.map +1 -1
  47. package/dist/src/commands/vars.d.ts +8 -0
  48. package/dist/src/commands/vars.js +110 -0
  49. package/dist/src/commands/vars.js.map +1 -0
  50. package/dist/src/commands/webhooks.js +17 -3
  51. package/dist/src/commands/webhooks.js.map +1 -1
  52. package/dist/src/commands/workflows.d.ts +30 -0
  53. package/dist/src/commands/workflows.js +667 -59
  54. package/dist/src/commands/workflows.js.map +1 -1
  55. package/dist/src/lib/api-client.d.ts +122 -18
  56. package/dist/src/lib/api-client.js +131 -2
  57. package/dist/src/lib/api-client.js.map +1 -1
  58. package/dist/src/lib/app-settings-descriptor.d.ts +108 -0
  59. package/dist/src/lib/app-settings-descriptor.js +250 -0
  60. package/dist/src/lib/app-settings-descriptor.js.map +1 -0
  61. package/dist/src/lib/batch.d.ts +26 -0
  62. package/dist/src/lib/batch.js +32 -0
  63. package/dist/src/lib/batch.js.map +1 -0
  64. package/dist/src/lib/block-layout.d.ts +160 -0
  65. package/dist/src/lib/block-layout.js +451 -0
  66. package/dist/src/lib/block-layout.js.map +1 -0
  67. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +76 -0
  68. package/dist/src/lib/codegen-shared/generatedFiles.js +144 -0
  69. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
  70. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +68 -0
  71. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +168 -0
  72. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
  73. package/dist/src/lib/config-toml.d.ts +10 -0
  74. package/dist/src/lib/config-toml.js +42 -0
  75. package/dist/src/lib/config-toml.js.map +1 -0
  76. package/dist/src/lib/config.d.ts +16 -0
  77. package/dist/src/lib/config.js +41 -0
  78. package/dist/src/lib/config.js.map +1 -1
  79. package/dist/src/lib/constants.d.ts +9 -0
  80. package/dist/src/lib/constants.js +9 -0
  81. package/dist/src/lib/constants.js.map +1 -1
  82. package/dist/src/lib/csv.d.ts +1 -2
  83. package/dist/src/lib/csv.js +3 -8
  84. package/dist/src/lib/csv.js.map +1 -1
  85. package/dist/src/lib/db-codegen/dbGenerator.d.ts +21 -65
  86. package/dist/src/lib/db-codegen/dbGenerator.js +117 -321
  87. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
  88. package/dist/src/lib/db-codegen/dbNaming.d.ts +37 -0
  89. package/dist/src/lib/db-codegen/dbNaming.js +70 -0
  90. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
  91. package/dist/src/lib/db-codegen/dbTemplates.d.ts +165 -5
  92. package/dist/src/lib/db-codegen/dbTemplates.js +292 -16
  93. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
  94. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +7 -3
  95. package/dist/src/lib/db-codegen/dbTsTypes.js +23 -1
  96. package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -1
  97. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
  98. package/dist/src/lib/db-codegen/dbTypeIR.js +517 -0
  99. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
  100. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +101 -0
  101. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +200 -0
  102. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
  103. package/dist/src/lib/generated-allowlist.js +43 -0
  104. package/dist/src/lib/generated-allowlist.js.map +1 -1
  105. package/dist/src/lib/init-config.js +2 -2
  106. package/dist/src/lib/init-config.js.map +1 -1
  107. package/dist/src/lib/output.d.ts +25 -5
  108. package/dist/src/lib/output.js +32 -4
  109. package/dist/src/lib/output.js.map +1 -1
  110. package/dist/src/lib/query-operators.d.ts +43 -0
  111. package/dist/src/lib/query-operators.js +80 -0
  112. package/dist/src/lib/query-operators.js.map +1 -0
  113. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +68 -0
  114. package/dist/src/lib/swift-codegen/dbGenerator.js +380 -0
  115. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
  116. package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
  117. package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
  118. package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
  119. package/dist/src/lib/swift-codegen/generator.d.ts +84 -0
  120. package/dist/src/lib/swift-codegen/generator.js +178 -0
  121. package/dist/src/lib/swift-codegen/generator.js.map +1 -0
  122. package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +72 -0
  123. package/dist/src/lib/swift-codegen/schemaToSwift.js +644 -0
  124. package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
  125. package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
  126. package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
  127. package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
  128. package/dist/src/lib/sync-resource-types.d.ts +225 -0
  129. package/dist/src/lib/sync-resource-types.js +394 -0
  130. package/dist/src/lib/sync-resource-types.js.map +1 -0
  131. package/dist/src/lib/toml-database-config.d.ts +10 -19
  132. package/dist/src/lib/toml-database-config.js +28 -59
  133. package/dist/src/lib/toml-database-config.js.map +1 -1
  134. package/dist/src/lib/toml-metadata-config.d.ts +147 -0
  135. package/dist/src/lib/toml-metadata-config.js +463 -0
  136. package/dist/src/lib/toml-metadata-config.js.map +1 -0
  137. package/dist/src/lib/toml-native-form.d.ts +46 -0
  138. package/dist/src/lib/toml-native-form.js +78 -0
  139. package/dist/src/lib/toml-native-form.js.map +1 -0
  140. package/dist/src/lib/toml-params-validator.d.ts +34 -0
  141. package/dist/src/lib/toml-params-validator.js +118 -3
  142. package/dist/src/lib/toml-params-validator.js.map +1 -1
  143. package/dist/src/lib/workflow-apply.d.ts +86 -0
  144. package/dist/src/lib/workflow-apply.js +127 -0
  145. package/dist/src/lib/workflow-apply.js.map +1 -0
  146. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
  147. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
  148. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
  149. package/dist/src/lib/workflow-codegen/generator.d.ts +87 -0
  150. package/dist/src/lib/workflow-codegen/generator.js +290 -0
  151. package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
  152. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +85 -0
  153. package/dist/src/lib/workflow-codegen/invokerIR.js +71 -0
  154. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
  155. package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
  156. package/dist/src/lib/workflow-codegen/naming.js +81 -0
  157. package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
  158. package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +64 -0
  159. package/dist/src/lib/workflow-codegen/schemaToTs.js +282 -0
  160. package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
  161. package/dist/src/lib/workflow-fragments.js +3 -3
  162. package/dist/src/lib/workflow-fragments.js.map +1 -1
  163. package/dist/src/lib/workflow-payload.d.ts +68 -0
  164. package/dist/src/lib/workflow-payload.js +150 -0
  165. package/dist/src/lib/workflow-payload.js.map +1 -0
  166. package/dist/src/lib/workflow-toml-validator.d.ts +1 -1
  167. package/dist/src/lib/workflow-toml-validator.js +37 -1
  168. package/dist/src/lib/workflow-toml-validator.js.map +1 -1
  169. package/dist/src/types/index.d.ts +11 -0
  170. package/dist/src/validators.d.ts +4 -3
  171. package/dist/src/validators.js +6 -5
  172. package/dist/src/validators.js.map +1 -1
  173. package/package.json +7 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/commands/scripts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `primitive settings` — the app-settings sync surface (issue #1033, Phase 2).
3
+ *
4
+ * A focused command for the app-settings TOML round-trip that `sync` handles as
5
+ * part of the whole-config export/import. `settings pull` / `push` / `diff`
6
+ * operate on the SAME `app.toml` and the SAME single `entities.app.contentHash`
7
+ * as `sync`, so the two are interchangeable and idempotent together. `settings
8
+ * show` renders the current server-effective settings (with `googleClientSecret`
9
+ * redacted).
10
+ *
11
+ * The command logic lives in `sync-app-settings.ts` so `sync` and `settings`
12
+ * share one implementation; this file only wires up the commander surface.
13
+ */
14
+ import { Command } from "commander";
15
+ export declare function registerSettingsCommands(program: Command): void;
@@ -0,0 +1,102 @@
1
+ /**
2
+ * `primitive settings` — the app-settings sync surface (issue #1033, Phase 2).
3
+ *
4
+ * A focused command for the app-settings TOML round-trip that `sync` handles as
5
+ * part of the whole-config export/import. `settings pull` / `push` / `diff`
6
+ * operate on the SAME `app.toml` and the SAME single `entities.app.contentHash`
7
+ * as `sync`, so the two are interchangeable and idempotent together. `settings
8
+ * show` renders the current server-effective settings (with `googleClientSecret`
9
+ * redacted).
10
+ *
11
+ * The command logic lives in `sync-app-settings.ts` so `sync` and `settings`
12
+ * share one implementation; this file only wires up the commander surface.
13
+ */
14
+ import { ApiClient } from "../lib/api-client.js";
15
+ import { resolveAppId } from "../lib/config.js";
16
+ import { resolveSyncDir, isAutoResolvedSyncDir, checkLegacySyncMigration, } from "../lib/sync-paths.js";
17
+ import { info, warn } from "../lib/output.js";
18
+ import { showAppSettings, pullAppSettings, pushAppSettings, diffAppSettings, } from "./sync-app-settings.js";
19
+ /**
20
+ * Resolve the sync directory and print the per-environment hint the way `sync`
21
+ * does (suppressed under `--json` so stdout stays pure JSON).
22
+ */
23
+ function resolveConfigDir(appId, options) {
24
+ const configDir = resolveSyncDir({ appId, userDir: options.dir });
25
+ if (isAutoResolvedSyncDir(options.dir) && !options.json) {
26
+ info(`Using per-environment sync directory: ${configDir}`);
27
+ const legacyHint = checkLegacySyncMigration(configDir);
28
+ if (legacyHint)
29
+ warn(legacyHint);
30
+ }
31
+ return configDir;
32
+ }
33
+ export function registerSettingsCommands(program) {
34
+ const settings = program
35
+ .command("settings")
36
+ .description("View and sync app settings through app.toml")
37
+ .addHelpText("after", `
38
+ Examples:
39
+ $ primitive settings show # Render current server settings
40
+ $ primitive settings show --json # Machine-readable (secret redacted)
41
+ $ primitive settings pull # Write server settings to app.toml
42
+ $ primitive settings diff # Show local app.toml vs server
43
+ $ primitive settings push # Apply app.toml edits to the server
44
+
45
+ app.toml is the primary way to manage app configuration. The Google OAuth
46
+ client secret is intentionally excluded from app.toml; set it with
47
+ 'primitive apps update <app-id> --google-client-secret <secret>'.
48
+ `);
49
+ // settings show
50
+ settings
51
+ .command("show")
52
+ .description("Show the current server-effective app settings")
53
+ .argument("[app-id]", "App ID (uses current app if not specified)")
54
+ .option("--app <app-id>", "App ID")
55
+ .option("--json", "Output as JSON (googleClientSecret redacted)")
56
+ .action(async (appId, options) => {
57
+ const resolvedAppId = resolveAppId(appId, options);
58
+ await showAppSettings(new ApiClient(), resolvedAppId, options);
59
+ });
60
+ // settings pull
61
+ settings
62
+ .command("pull")
63
+ .description("Write the current server settings to app.toml")
64
+ .argument("[app-id]", "App ID (uses current app if not specified)")
65
+ .option("--app <app-id>", "App ID")
66
+ .option("--dir <path>", "Config directory (overrides the auto-resolved per-env path)")
67
+ .option("--json", "Output as JSON")
68
+ .action(async (appId, options) => {
69
+ const resolvedAppId = resolveAppId(appId, options);
70
+ const configDir = resolveConfigDir(resolvedAppId, options);
71
+ await pullAppSettings(new ApiClient(), resolvedAppId, configDir, options);
72
+ });
73
+ // settings diff
74
+ settings
75
+ .command("diff")
76
+ .description("Show per-field differences between app.toml and the server")
77
+ .argument("[app-id]", "App ID (uses current app if not specified)")
78
+ .option("--app <app-id>", "App ID")
79
+ .option("--dir <path>", "Config directory (overrides the auto-resolved per-env path)")
80
+ .option("--json", "Output as JSON")
81
+ .action(async (appId, options) => {
82
+ const resolvedAppId = resolveAppId(appId, options);
83
+ const configDir = resolveConfigDir(resolvedAppId, options);
84
+ await diffAppSettings(new ApiClient(), resolvedAppId, configDir, options);
85
+ });
86
+ // settings push
87
+ settings
88
+ .command("push")
89
+ .description("Apply app.toml settings to the server")
90
+ .argument("[app-id]", "App ID (uses current app if not specified)")
91
+ .option("--app <app-id>", "App ID")
92
+ .option("--dir <path>", "Config directory (overrides the auto-resolved per-env path)")
93
+ .option("--force", "Push even if app.toml is unchanged since the last sync")
94
+ .option("--dry-run", "Show what would be changed without applying")
95
+ .option("--json", "Output as JSON")
96
+ .action(async (appId, options) => {
97
+ const resolvedAppId = resolveAppId(appId, options);
98
+ const configDir = resolveConfigDir(resolvedAppId, options);
99
+ await pushAppSettings(new ApiClient(), resolvedAppId, configDir, options);
100
+ });
101
+ }
102
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/commands/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Shared app-settings sync helpers (issue #1033, Phase 2).
3
+ *
4
+ * The descriptor-driven `app.toml` round-trip (issue #1033, Phase 1) was born
5
+ * inside the big `sync pull` / `sync push` command flow. Phase 2 lifts the
6
+ * app-settings-specific pieces here so BOTH surfaces drive them:
7
+ *
8
+ * - `sync pull` / `sync push` call the low-level helpers
9
+ * (`serializeAppSettings`, `collectAppSettingsPushErrors`) — behavior
10
+ * unchanged from Phase 1.
11
+ * - the new `primitive settings show|pull|push|diff` command
12
+ * (`cli/src/commands/settings.ts`) calls the higher-level orchestrators
13
+ * (`pullAppSettings`, `pushAppSettings`, `diffAppSettings`, `showAppSettings`).
14
+ *
15
+ * Both directions share the same `app.toml`, the same field descriptor
16
+ * (`cli/src/lib/app-settings-descriptor.ts`), and the same single
17
+ * `entities.app.contentHash` sync-state entry, so `settings push` then
18
+ * `sync push` (or the reverse) is idempotent — the second one skips on the
19
+ * unchanged hash.
20
+ *
21
+ * `googleClientSecret` never leaves the server through here: pull omits it,
22
+ * push errors on it (pointing at `primitive apps update --google-client-secret`),
23
+ * and `settings show` redacts it in both the rendered and `--json` views.
24
+ */
25
+ import type { ApiClient } from "../lib/api-client.js";
26
+ import { type AppSettingSection } from "../lib/app-settings-descriptor.js";
27
+ /** The app-settings file name inside a sync directory. */
28
+ export declare const APP_TOML_FILENAME = "app.toml";
29
+ /** Absolute path to `app.toml` inside a sync directory. */
30
+ export declare function appTomlPath(configDir: string): string;
31
+ /**
32
+ * Serialize server settings into the `app.toml` string (pull direction).
33
+ * Descriptor-driven; `googleClientSecret` is never emitted. This is the single
34
+ * serializer both `sync pull` and `settings pull` use.
35
+ */
36
+ export declare function serializeAppSettings(settings: any): string;
37
+ /**
38
+ * Write `app.toml` from server settings and return its content hash. Shared by
39
+ * `sync pull` and `settings pull` so the two produce byte-identical files and
40
+ * the same hash.
41
+ */
42
+ export declare function writeAppSettingsToml(configDir: string, settings: any): string;
43
+ /**
44
+ * Validate a parsed `app.toml` for push and return the fatal errors (a
45
+ * hand-added secret key, a type mismatch). An empty array means the push may
46
+ * proceed. Warnings (unrecognized keys) are intentionally not returned here —
47
+ * the caller surfaces those at apply time. Shared by the `sync push` preflight
48
+ * and `settings push`.
49
+ */
50
+ export declare function collectAppSettingsPushErrors(tomlData: Record<string, any>, options?: {
51
+ isCrossAppPush?: boolean;
52
+ }): string[];
53
+ /** Placeholder shown in `settings show` in place of any secret field value. */
54
+ export declare const REDACTED_PLACEHOLDER = "[redacted \u2014 set via: primitive apps update <appId> --google-client-secret]";
55
+ /**
56
+ * Return a copy of the server settings with every secret descriptor field
57
+ * (currently `googleClientSecret`) redacted when it holds a value. `null`/empty
58
+ * values are left untouched — there is no secret to hide. Used for BOTH the
59
+ * rendered and `--json` outputs of `settings show` so the real secret never
60
+ * leaves the server through this command (codex design-review concern #2).
61
+ */
62
+ export declare function redactSecretFields(settings: Record<string, any>): Record<string, any>;
63
+ /**
64
+ * `settings show` — render the current server-effective settings grouped by
65
+ * `app.toml` section, with `googleClientSecret` redacted. `--json` emits the
66
+ * full (redacted) server response.
67
+ */
68
+ export declare function showAppSettings(client: ApiClient, appId: string, options?: {
69
+ json?: boolean;
70
+ }): Promise<void>;
71
+ /**
72
+ * `settings pull` — fetch the server settings, write `app.toml`, and stamp the
73
+ * shared `entities.app.contentHash`. Same file and hash as `sync pull`.
74
+ */
75
+ export declare function pullAppSettings(client: ApiClient, appId: string, configDir: string, options?: {
76
+ json?: boolean;
77
+ }): Promise<void>;
78
+ /**
79
+ * `settings push` — read `app.toml`, validate (abort before any PUT on a secret
80
+ * key or a type mismatch), skip when unchanged since the last sync unless
81
+ * `--force`, then apply via `PUT /settings` and re-stamp the shared content
82
+ * hash. Cross-app pushes (state's app differs from the target) always apply and
83
+ * strip `name`, matching `sync push`.
84
+ */
85
+ export declare function pushAppSettings(client: ApiClient, appId: string, configDir: string, options?: {
86
+ json?: boolean;
87
+ force?: boolean;
88
+ dryRun?: boolean;
89
+ }): Promise<void>;
90
+ export interface AppSettingsFieldDiff {
91
+ field: string;
92
+ section: AppSettingSection;
93
+ key: string;
94
+ local: unknown;
95
+ remote: unknown;
96
+ }
97
+ /**
98
+ * `settings diff` — report per-field differences between the local `app.toml`
99
+ * push payload and the current server settings. Only keys present in the TOML
100
+ * are compared, so a server value that equals a descriptor default (and is
101
+ * therefore omitted from `app.toml`) is never flagged as a spurious difference.
102
+ */
103
+ export declare function diffAppSettings(client: ApiClient, appId: string, configDir: string, options?: {
104
+ json?: boolean;
105
+ }): Promise<void>;
@@ -0,0 +1,339 @@
1
+ /**
2
+ * Shared app-settings sync helpers (issue #1033, Phase 2).
3
+ *
4
+ * The descriptor-driven `app.toml` round-trip (issue #1033, Phase 1) was born
5
+ * inside the big `sync pull` / `sync push` command flow. Phase 2 lifts the
6
+ * app-settings-specific pieces here so BOTH surfaces drive them:
7
+ *
8
+ * - `sync pull` / `sync push` call the low-level helpers
9
+ * (`serializeAppSettings`, `collectAppSettingsPushErrors`) — behavior
10
+ * unchanged from Phase 1.
11
+ * - the new `primitive settings show|pull|push|diff` command
12
+ * (`cli/src/commands/settings.ts`) calls the higher-level orchestrators
13
+ * (`pullAppSettings`, `pushAppSettings`, `diffAppSettings`, `showAppSettings`).
14
+ *
15
+ * Both directions share the same `app.toml`, the same field descriptor
16
+ * (`cli/src/lib/app-settings-descriptor.ts`), and the same single
17
+ * `entities.app.contentHash` sync-state entry, so `settings push` then
18
+ * `sync push` (or the reverse) is idempotent — the second one skips on the
19
+ * unchanged hash.
20
+ *
21
+ * `googleClientSecret` never leaves the server through here: pull omits it,
22
+ * push errors on it (pointing at `primitive apps update --google-client-secret`),
23
+ * and `settings show` redacts it in both the rendered and `--json` views.
24
+ */
25
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
26
+ import { join } from "path";
27
+ import { createHash } from "crypto";
28
+ import { parseConfigToml, stringifyConfigToml } from "../lib/config-toml.js";
29
+ import { APP_SETTINGS_DESCRIPTOR, APP_SETTINGS_SECTIONS, serializeAppSettingsToToml, parseTomlToAppSettings, } from "../lib/app-settings-descriptor.js";
30
+ import { getServerUrl } from "../lib/config.js";
31
+ import { success, error, info, warn, json, result as printResult, divider, } from "../lib/output.js";
32
+ /** The app-settings file name inside a sync directory. */
33
+ export const APP_TOML_FILENAME = "app.toml";
34
+ /** Absolute path to `app.toml` inside a sync directory. */
35
+ export function appTomlPath(configDir) {
36
+ return join(configDir, APP_TOML_FILENAME);
37
+ }
38
+ /**
39
+ * Serialize server settings into the `app.toml` string (pull direction).
40
+ * Descriptor-driven; `googleClientSecret` is never emitted. This is the single
41
+ * serializer both `sync pull` and `settings pull` use.
42
+ */
43
+ export function serializeAppSettings(settings) {
44
+ return stringifyConfigToml(serializeAppSettingsToToml(settings));
45
+ }
46
+ /** SHA-256 of a file's bytes — the per-file content hash tracked in sync state. */
47
+ function contentHashOfFile(filePath) {
48
+ return createHash("sha256").update(readFileSync(filePath)).digest("hex");
49
+ }
50
+ function ensureDir(dirPath) {
51
+ if (!existsSync(dirPath))
52
+ mkdirSync(dirPath, { recursive: true });
53
+ }
54
+ /**
55
+ * Write `app.toml` from server settings and return its content hash. Shared by
56
+ * `sync pull` and `settings pull` so the two produce byte-identical files and
57
+ * the same hash.
58
+ */
59
+ export function writeAppSettingsToml(configDir, settings) {
60
+ const path = appTomlPath(configDir);
61
+ writeFileSync(path, serializeAppSettings(settings));
62
+ return contentHashOfFile(path);
63
+ }
64
+ /**
65
+ * Validate a parsed `app.toml` for push and return the fatal errors (a
66
+ * hand-added secret key, a type mismatch). An empty array means the push may
67
+ * proceed. Warnings (unrecognized keys) are intentionally not returned here —
68
+ * the caller surfaces those at apply time. Shared by the `sync push` preflight
69
+ * and `settings push`.
70
+ */
71
+ export function collectAppSettingsPushErrors(tomlData, options = {}) {
72
+ return parseTomlToAppSettings(tomlData, options).errors;
73
+ }
74
+ // --- Shared single sync-state entry (entities.app) -------------------------
75
+ // `settings pull/push` read and write the SAME `.primitive-sync.json` that
76
+ // `sync` maintains, touching only `entities.app` and preserving every other
77
+ // entity. Kept as small local load/save helpers (rather than importing
78
+ // `sync.ts`) to avoid an import cycle — `sync.ts` imports the serializer above.
79
+ function syncStatePath(configDir) {
80
+ return join(configDir, ".primitive-sync.json");
81
+ }
82
+ function loadSyncState(configDir) {
83
+ const p = syncStatePath(configDir);
84
+ if (!existsSync(p))
85
+ return null;
86
+ try {
87
+ return JSON.parse(readFileSync(p, "utf-8"));
88
+ }
89
+ catch {
90
+ return null;
91
+ }
92
+ }
93
+ function saveSyncState(configDir, state) {
94
+ writeFileSync(syncStatePath(configDir), JSON.stringify(state, null, 2));
95
+ }
96
+ /**
97
+ * Update `entities.app.contentHash`, preserving all other entities.
98
+ *
99
+ * On a cross-app stamp (the loaded state belongs to a different app than the
100
+ * one we just pulled from / pushed to) this mirrors `sync push` (see
101
+ * `sync.ts`): it rebinds the sync state to the target app with fresh entities,
102
+ * then records the app-settings hash. Without the rebind the stored
103
+ * `state.appId` would stay pointing at the source app, so every later
104
+ * `settings push <target>` would keep computing `isCrossAppPush` as true — it
105
+ * would ignore the stored hash and keep stripping `[app].name`, making it
106
+ * impossible to rename the target app via `app.toml`.
107
+ */
108
+ function stampAppContentHash(configDir, appId, contentHash) {
109
+ const now = new Date().toISOString();
110
+ const existing = loadSyncState(configDir);
111
+ const isCrossAppStamp = !!(existing && existing.appId !== appId);
112
+ const state = existing && !isCrossAppStamp
113
+ ? existing
114
+ : {
115
+ appId,
116
+ serverUrl: existing?.serverUrl ?? getServerUrl(),
117
+ lastSyncedAt: now,
118
+ entities: {},
119
+ };
120
+ state.entities.app = { modifiedAt: now, contentHash };
121
+ saveSyncState(configDir, state);
122
+ }
123
+ // --- googleClientSecret redaction (settings show) --------------------------
124
+ /** Placeholder shown in `settings show` in place of any secret field value. */
125
+ export const REDACTED_PLACEHOLDER = "[redacted — set via: primitive apps update <appId> --google-client-secret]";
126
+ /**
127
+ * Return a copy of the server settings with every secret descriptor field
128
+ * (currently `googleClientSecret`) redacted when it holds a value. `null`/empty
129
+ * values are left untouched — there is no secret to hide. Used for BOTH the
130
+ * rendered and `--json` outputs of `settings show` so the real secret never
131
+ * leaves the server through this command (codex design-review concern #2).
132
+ */
133
+ export function redactSecretFields(settings) {
134
+ const out = { ...settings };
135
+ for (const d of APP_SETTINGS_DESCRIPTOR) {
136
+ if (d.secret && out[d.field])
137
+ out[d.field] = REDACTED_PLACEHOLDER;
138
+ }
139
+ return out;
140
+ }
141
+ // --- Display helpers -------------------------------------------------------
142
+ function formatValue(value) {
143
+ if (value === undefined)
144
+ return "(not set)";
145
+ if (value === null)
146
+ return "(null)";
147
+ if (Array.isArray(value))
148
+ return value.length === 0 ? "[]" : `[${value.join(", ")}]`;
149
+ if (typeof value === "object")
150
+ return JSON.stringify(value);
151
+ return String(value);
152
+ }
153
+ /** Order-insensitive-free deep equality good enough for settings scalars/arrays. */
154
+ function settingsEqual(a, b) {
155
+ return JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
156
+ }
157
+ // --- Command orchestrators (used by cli/src/commands/settings.ts) ----------
158
+ /**
159
+ * `settings show` — render the current server-effective settings grouped by
160
+ * `app.toml` section, with `googleClientSecret` redacted. `--json` emits the
161
+ * full (redacted) server response.
162
+ */
163
+ export async function showAppSettings(client, appId, options = {}) {
164
+ try {
165
+ const settings = await client.getAppSettings(appId);
166
+ const redacted = redactSecretFields(settings ?? {});
167
+ if (options.json) {
168
+ json(redacted);
169
+ return;
170
+ }
171
+ for (const section of APP_SETTINGS_SECTIONS) {
172
+ const descriptors = APP_SETTINGS_DESCRIPTOR.filter((d) => d.section === section);
173
+ divider();
174
+ info(`[${section}]`);
175
+ for (const d of descriptors) {
176
+ printResult(` ${d.key}`, formatValue(redacted[d.field]));
177
+ }
178
+ }
179
+ }
180
+ catch (err) {
181
+ error(err.message);
182
+ process.exit(1);
183
+ }
184
+ }
185
+ /**
186
+ * `settings pull` — fetch the server settings, write `app.toml`, and stamp the
187
+ * shared `entities.app.contentHash`. Same file and hash as `sync pull`.
188
+ */
189
+ export async function pullAppSettings(client, appId, configDir, options = {}) {
190
+ try {
191
+ const settings = await client.getAppSettings(appId);
192
+ if (!settings) {
193
+ error(`No settings returned for app ${appId}.`);
194
+ process.exit(1);
195
+ }
196
+ ensureDir(configDir);
197
+ const contentHash = writeAppSettingsToml(configDir, settings);
198
+ stampAppContentHash(configDir, appId, contentHash);
199
+ if (options.json) {
200
+ json({ wrote: true, path: appTomlPath(configDir), contentHash });
201
+ return;
202
+ }
203
+ success(`Wrote ${appTomlPath(configDir)}`);
204
+ }
205
+ catch (err) {
206
+ error(err.message);
207
+ process.exit(1);
208
+ }
209
+ }
210
+ /**
211
+ * `settings push` — read `app.toml`, validate (abort before any PUT on a secret
212
+ * key or a type mismatch), skip when unchanged since the last sync unless
213
+ * `--force`, then apply via `PUT /settings` and re-stamp the shared content
214
+ * hash. Cross-app pushes (state's app differs from the target) always apply and
215
+ * strip `name`, matching `sync push`.
216
+ */
217
+ export async function pushAppSettings(client, appId, configDir, options = {}) {
218
+ try {
219
+ const path = appTomlPath(configDir);
220
+ if (!existsSync(path)) {
221
+ error(`No ${APP_TOML_FILENAME} found at ${path}. Run 'primitive settings pull' first.`);
222
+ process.exit(1);
223
+ }
224
+ const state = loadSyncState(configDir);
225
+ const isCrossAppPush = !!(state && state.appId !== appId);
226
+ let tomlData;
227
+ try {
228
+ tomlData = parseConfigToml(readFileSync(path, "utf-8"));
229
+ }
230
+ catch (err) {
231
+ error(`Aborting push: could not parse ${APP_TOML_FILENAME}: ${err?.message || String(err)}`);
232
+ process.exit(1);
233
+ }
234
+ const { settings, warnings, errors } = parseTomlToAppSettings(tomlData, {
235
+ isCrossAppPush,
236
+ });
237
+ // Fail before any mutation on a secret key or a type mismatch.
238
+ if (errors.length > 0) {
239
+ error(`Aborting push: ${errors.length} validation error(s) in ${APP_TOML_FILENAME} — no changes were applied.`);
240
+ for (const e of errors)
241
+ error(` ${e}`);
242
+ process.exit(1);
243
+ }
244
+ // Skip when nothing changed since the last sync (shared content hash).
245
+ const storedHash = isCrossAppPush
246
+ ? undefined
247
+ : state?.entities?.app?.contentHash;
248
+ const changed = options.force || !storedHash || contentHashOfFile(path) !== storedHash;
249
+ if (!changed) {
250
+ if (options.json) {
251
+ json({ applied: false, skipped: true, reason: "unchanged" });
252
+ }
253
+ else {
254
+ info("Skipped app settings (unchanged). Use --force to push anyway.");
255
+ }
256
+ return;
257
+ }
258
+ for (const w of warnings)
259
+ warn(` ${w}`);
260
+ if (options.dryRun) {
261
+ if (options.json) {
262
+ json({ applied: false, dryRun: true, settings });
263
+ }
264
+ else {
265
+ info("[dry-run] Would update app settings.");
266
+ }
267
+ return;
268
+ }
269
+ await client.updateAppSettings(appId, settings);
270
+ stampAppContentHash(configDir, appId, contentHashOfFile(path));
271
+ if (options.json) {
272
+ json({ applied: true, fields: Object.keys(settings) });
273
+ return;
274
+ }
275
+ success("Updated app settings.");
276
+ }
277
+ catch (err) {
278
+ error(err.message);
279
+ process.exit(1);
280
+ }
281
+ }
282
+ /**
283
+ * `settings diff` — report per-field differences between the local `app.toml`
284
+ * push payload and the current server settings. Only keys present in the TOML
285
+ * are compared, so a server value that equals a descriptor default (and is
286
+ * therefore omitted from `app.toml`) is never flagged as a spurious difference.
287
+ */
288
+ export async function diffAppSettings(client, appId, configDir, options = {}) {
289
+ try {
290
+ const path = appTomlPath(configDir);
291
+ if (!existsSync(path)) {
292
+ error(`No ${APP_TOML_FILENAME} found at ${path}. Run 'primitive settings pull' first.`);
293
+ process.exit(1);
294
+ }
295
+ const remote = (await client.getAppSettings(appId)) ?? {};
296
+ const tomlData = parseConfigToml(readFileSync(path, "utf-8"));
297
+ // Present-only push payload — omitted keys are absent, so they can't be
298
+ // flagged against a server default.
299
+ const { settings: local } = parseTomlToAppSettings(tomlData, {});
300
+ const diffs = [];
301
+ for (const d of APP_SETTINGS_DESCRIPTOR) {
302
+ if (d.secret)
303
+ continue;
304
+ if (!(d.field in local))
305
+ continue;
306
+ const localVal = local[d.field];
307
+ const remoteVal = remote[d.field];
308
+ if (!settingsEqual(localVal, remoteVal)) {
309
+ diffs.push({
310
+ field: d.field,
311
+ section: d.section,
312
+ key: d.key,
313
+ local: localVal,
314
+ remote: remoteVal,
315
+ });
316
+ }
317
+ }
318
+ if (options.json) {
319
+ json({ diffs });
320
+ return;
321
+ }
322
+ if (diffs.length === 0) {
323
+ success(`No differences — ${APP_TOML_FILENAME} matches server settings.`);
324
+ return;
325
+ }
326
+ info(`${diffs.length} field(s) differ between ${APP_TOML_FILENAME} and the server:`);
327
+ for (const df of diffs) {
328
+ divider();
329
+ info(`[${df.section}].${df.key}`);
330
+ printResult(" local", formatValue(df.local));
331
+ printResult(" remote", formatValue(df.remote));
332
+ }
333
+ }
334
+ catch (err) {
335
+ error(err.message);
336
+ process.exit(1);
337
+ }
338
+ }
339
+ //# sourceMappingURL=sync-app-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-app-settings.js","sourceRoot":"","sources":["../../../src/commands/sync-app-settings.ts"],"names":[],"mappings":"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"}