primitive-admin 1.0.61 → 1.0.62
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.
- package/README.md +125 -69
- package/assets/skill/skills/primitive-platform/SKILL.md +336 -37
- package/dist/bin/primitive.js +25 -14
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/analytics.js +36 -16
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps.js +49 -188
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/blob-buckets.js +13 -153
- package/dist/src/commands/blob-buckets.js.map +1 -1
- package/dist/src/commands/collection-type-configs.js +14 -100
- package/dist/src/commands/collection-type-configs.js.map +1 -1
- package/dist/src/commands/collections.js +47 -8
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/config.d.ts +46 -0
- package/dist/src/commands/config.js +479 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/commands/connections.js +12 -7
- package/dist/src/commands/connections.js.map +1 -1
- package/dist/src/commands/cron-triggers.js +84 -176
- package/dist/src/commands/cron-triggers.js.map +1 -1
- package/dist/src/commands/database-type-configs.d.ts +2 -0
- package/dist/src/commands/database-type-configs.js +171 -0
- package/dist/src/commands/database-type-configs.js.map +1 -0
- package/dist/src/commands/database-types.js +4 -4
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.d.ts +63 -0
- package/dist/src/commands/databases.js +649 -87
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.js +869 -12
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.js +18 -125
- package/dist/src/commands/email-templates.js.map +1 -1
- package/dist/src/commands/env.d.ts +12 -1
- package/dist/src/commands/env.js +98 -25
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/feature-flags.d.ts +14 -0
- package/dist/src/commands/feature-flags.js +116 -0
- package/dist/src/commands/feature-flags.js.map +1 -0
- package/dist/src/commands/group-type-configs.js +14 -109
- package/dist/src/commands/group-type-configs.js.map +1 -1
- package/dist/src/commands/init.d.ts +9 -1
- package/dist/src/commands/init.js +1056 -277
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +136 -421
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/metadata-category-configs.d.ts +12 -0
- package/dist/src/commands/metadata-category-configs.js +112 -0
- package/dist/src/commands/metadata-category-configs.js.map +1 -0
- package/dist/src/commands/metadata.js +33 -141
- package/dist/src/commands/metadata.js.map +1 -1
- package/dist/src/commands/prompts.js +206 -563
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.d.ts +1 -1
- package/dist/src/commands/rule-sets.js +16 -132
- package/dist/src/commands/rule-sets.js.map +1 -1
- package/dist/src/commands/scripts.js +67 -234
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/sessions.js +17 -5
- package/dist/src/commands/sessions.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +113 -70
- package/dist/src/commands/sync-app-settings.js +193 -242
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +1932 -49
- package/dist/src/commands/sync.js +9521 -1769
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.js +8 -2
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.js +92 -1
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/vars.js +44 -58
- package/dist/src/commands/vars.js.map +1 -1
- package/dist/src/commands/webhooks.js +318 -156
- package/dist/src/commands/webhooks.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +49 -12
- package/dist/src/commands/workflows.js +652 -1086
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/access-rule-display.d.ts +21 -0
- package/dist/src/lib/access-rule-display.js +34 -0
- package/dist/src/lib/access-rule-display.js.map +1 -0
- package/dist/src/lib/api-client.d.ts +541 -61
- package/dist/src/lib/api-client.js +559 -102
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +180 -25
- package/dist/src/lib/app-settings-descriptor.js +403 -82
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/canonical-json.d.ts +12 -0
- package/dist/src/lib/canonical-json.js +35 -0
- package/dist/src/lib/canonical-json.js.map +1 -0
- package/dist/src/lib/cli-manifest.d.ts +8 -0
- package/dist/src/lib/cli-manifest.js +1 -0
- package/dist/src/lib/cli-manifest.js.map +1 -1
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +6 -2
- package/dist/src/lib/codegen-shared/generatedFiles.js +9 -2
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +6 -6
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +8 -8
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -1
- package/dist/src/lib/config-object-descriptor.d.ts +127 -0
- package/dist/src/lib/config-object-descriptor.js +658 -0
- package/dist/src/lib/config-object-descriptor.js.map +1 -0
- package/dist/src/lib/config-payload.d.ts +85 -0
- package/dist/src/lib/config-payload.js +116 -0
- package/dist/src/lib/config-payload.js.map +1 -0
- package/dist/src/lib/config-surface.d.ts +130 -0
- package/dist/src/lib/config-surface.js +300 -0
- package/dist/src/lib/config-surface.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +10 -0
- package/dist/src/lib/credentials-store.js +23 -0
- package/dist/src/lib/credentials-store.js.map +1 -1
- package/dist/src/lib/data-input.d.ts +23 -0
- package/dist/src/lib/data-input.js +50 -0
- package/dist/src/lib/data-input.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTemplates.js +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +1 -1
- package/dist/src/lib/env-resolver-core.d.ts +147 -0
- package/dist/src/lib/env-resolver-core.js +265 -0
- package/dist/src/lib/env-resolver-core.js.map +1 -0
- package/dist/src/lib/env-resolver.d.ts +28 -6
- package/dist/src/lib/env-resolver.js +44 -32
- package/dist/src/lib/env-resolver.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +12 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +682 -0
- package/dist/src/lib/generated-config-surfaces.js +4058 -0
- package/dist/src/lib/generated-config-surfaces.js.map +1 -0
- package/dist/src/lib/generated-template-lint.d.ts +212 -0
- package/dist/src/lib/generated-template-lint.js +624 -0
- package/dist/src/lib/generated-template-lint.js.map +1 -0
- package/dist/src/lib/init-adopt.d.ts +16 -0
- package/dist/src/lib/init-adopt.js +34 -0
- package/dist/src/lib/init-adopt.js.map +1 -0
- package/dist/src/lib/init-assets.d.ts +39 -0
- package/dist/src/lib/init-assets.js +97 -0
- package/dist/src/lib/init-assets.js.map +1 -0
- package/dist/src/lib/init-config.d.ts +44 -5
- package/dist/src/lib/init-config.js +80 -7
- package/dist/src/lib/init-config.js.map +1 -1
- package/dist/src/lib/init-ios-links.d.ts +50 -0
- package/dist/src/lib/init-ios-links.js +153 -0
- package/dist/src/lib/init-ios-links.js.map +1 -0
- package/dist/src/lib/init-plan.d.ts +80 -0
- package/dist/src/lib/init-plan.js +95 -0
- package/dist/src/lib/init-plan.js.map +1 -0
- package/dist/src/lib/init-production-env.d.ts +48 -0
- package/dist/src/lib/init-production-env.js +59 -0
- package/dist/src/lib/init-production-env.js.map +1 -0
- package/dist/src/lib/init-schema.d.ts +74 -0
- package/dist/src/lib/init-schema.js +358 -0
- package/dist/src/lib/init-schema.js.map +1 -0
- package/dist/src/lib/init-xcode.d.ts +33 -0
- package/dist/src/lib/init-xcode.js +114 -0
- package/dist/src/lib/init-xcode.js.map +1 -0
- package/dist/src/lib/integration-request-config.d.ts +30 -0
- package/dist/src/lib/integration-request-config.js +145 -0
- package/dist/src/lib/integration-request-config.js.map +1 -0
- package/dist/src/lib/local-state.d.ts +55 -0
- package/dist/src/lib/local-state.js +167 -0
- package/dist/src/lib/local-state.js.map +1 -0
- package/dist/src/lib/log-inspection.d.ts +568 -0
- package/dist/src/lib/log-inspection.js +639 -0
- package/dist/src/lib/log-inspection.js.map +1 -0
- package/dist/src/lib/migration-nag.d.ts +2 -2
- package/dist/src/lib/migration-nag.js +3 -3
- package/dist/src/lib/object-status-filter.d.ts +22 -0
- package/dist/src/lib/object-status-filter.js +45 -0
- package/dist/src/lib/object-status-filter.js.map +1 -0
- package/dist/src/lib/output.d.ts +24 -1
- package/dist/src/lib/output.js +42 -1
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/package-manager.d.ts +140 -0
- package/dist/src/lib/package-manager.js +305 -0
- package/dist/src/lib/package-manager.js.map +1 -0
- package/dist/src/lib/paginate.d.ts +50 -0
- package/dist/src/lib/paginate.js +53 -0
- package/dist/src/lib/paginate.js.map +1 -1
- package/dist/src/lib/platform-owned.d.ts +29 -3
- package/dist/src/lib/platform-owned.js +42 -3
- package/dist/src/lib/platform-owned.js.map +1 -1
- package/dist/src/lib/project-config.js +13 -5
- package/dist/src/lib/project-config.js.map +1 -1
- package/dist/src/lib/query-operators.d.ts +1 -1
- package/dist/src/lib/query-operators.js +1 -1
- package/dist/src/lib/record-filter.d.ts +18 -0
- package/dist/src/lib/record-filter.js +55 -0
- package/dist/src/lib/record-filter.js.map +1 -0
- package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
- package/dist/src/lib/resolve-init-dev-port.js +55 -0
- package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
- package/dist/src/lib/resolve-init-server.d.ts +64 -0
- package/dist/src/lib/resolve-init-server.js +77 -0
- package/dist/src/lib/resolve-init-server.js.map +1 -0
- package/dist/src/lib/resolve-platform.d.ts +43 -14
- package/dist/src/lib/resolve-platform.js +74 -12
- package/dist/src/lib/resolve-platform.js.map +1 -1
- package/dist/src/lib/run-status.d.ts +19 -0
- package/dist/src/lib/run-status.generated.d.ts +39 -0
- package/dist/src/lib/run-status.generated.js +66 -0
- package/dist/src/lib/run-status.generated.js.map +1 -0
- package/dist/src/lib/run-status.js +19 -0
- package/dist/src/lib/run-status.js.map +1 -0
- package/dist/src/lib/server-text-normalization.d.ts +51 -0
- package/dist/src/lib/server-text-normalization.js +90 -0
- package/dist/src/lib/server-text-normalization.js.map +1 -0
- package/dist/src/lib/server-url.d.ts +22 -0
- package/dist/src/lib/server-url.js +33 -0
- package/dist/src/lib/server-url.js.map +1 -0
- package/dist/src/lib/signing-secret-status.d.ts +81 -0
- package/dist/src/lib/signing-secret-status.js +116 -0
- package/dist/src/lib/signing-secret-status.js.map +1 -0
- package/dist/src/lib/skill-installer.js +6 -3
- package/dist/src/lib/skill-installer.js.map +1 -1
- package/dist/src/lib/snapshots.d.ts +2 -2
- package/dist/src/lib/snapshots.js +2 -2
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +15 -2
- package/dist/src/lib/swift-codegen/dbGenerator.js +250 -18
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/generator.d.ts +11 -2
- package/dist/src/lib/swift-codegen/generator.js +181 -7
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +7 -3
- package/dist/src/lib/swift-codegen/siblingSymbols.js +4 -1
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -1
- package/dist/src/lib/sync-dir-selector.d.ts +21 -0
- package/dist/src/lib/sync-dir-selector.js +30 -0
- package/dist/src/lib/sync-dir-selector.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +39 -0
- package/dist/src/lib/sync-paths.js +70 -2
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/sync-resource-types.d.ts +138 -31
- package/dist/src/lib/sync-resource-types.js +241 -47
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/sync-selectors.d.ts +95 -0
- package/dist/src/lib/sync-selectors.js +228 -0
- package/dist/src/lib/sync-selectors.js.map +1 -0
- package/dist/src/lib/template.d.ts +62 -4
- package/dist/src/lib/template.js +147 -39
- package/dist/src/lib/template.js.map +1 -1
- package/dist/src/lib/test-case-keys.d.ts +29 -0
- package/dist/src/lib/test-case-keys.js +55 -0
- package/dist/src/lib/test-case-keys.js.map +1 -0
- package/dist/src/lib/test-case-variables.d.ts +15 -0
- package/dist/src/lib/test-case-variables.js +29 -0
- package/dist/src/lib/test-case-variables.js.map +1 -0
- package/dist/src/lib/toml-database-config.d.ts +4 -4
- package/dist/src/lib/toml-database-config.js +27 -34
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/toml-metadata-config.d.ts +9 -5
- package/dist/src/lib/toml-metadata-config.js +40 -45
- package/dist/src/lib/toml-metadata-config.js.map +1 -1
- package/dist/src/lib/toml-native-form.d.ts +1 -1
- package/dist/src/lib/toml-native-form.js +1 -1
- package/dist/src/lib/toml-params-validator.d.ts +1 -1
- package/dist/src/lib/toml-params-validator.js +1 -1
- package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
- package/dist/src/lib/toml-scalar-edit.js +283 -0
- package/dist/src/lib/toml-scalar-edit.js.map +1 -0
- package/dist/src/lib/user-selector.d.ts +24 -0
- package/dist/src/lib/user-selector.js +33 -0
- package/dist/src/lib/user-selector.js.map +1 -0
- package/dist/src/lib/version-check.d.ts +25 -0
- package/dist/src/lib/version-check.js +77 -8
- package/dist/src/lib/version-check.js.map +1 -1
- package/dist/src/lib/watch.d.ts +121 -0
- package/dist/src/lib/watch.js +169 -0
- package/dist/src/lib/watch.js.map +1 -0
- package/dist/src/lib/workflow-apply.d.ts +69 -45
- package/dist/src/lib/workflow-apply.js +99 -72
- package/dist/src/lib/workflow-apply.js.map +1 -1
- package/dist/src/lib/workflow-codegen/generator.js +4 -4
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +11 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js +5 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
- package/dist/src/lib/workflow-config-apply.d.ts +70 -0
- package/dist/src/lib/workflow-config-apply.js +137 -0
- package/dist/src/lib/workflow-config-apply.js.map +1 -0
- package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
- package/dist/src/lib/workflow-config-sidecar.js +96 -0
- package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
- package/dist/src/lib/workflow-defaults.d.ts +29 -0
- package/dist/src/lib/workflow-defaults.js +41 -0
- package/dist/src/lib/workflow-defaults.js.map +1 -0
- package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
- package/dist/src/lib/workflow-include-preserve.js +286 -0
- package/dist/src/lib/workflow-include-preserve.js.map +1 -0
- package/dist/src/lib/workflow-payload.d.ts +31 -20
- package/dist/src/lib/workflow-payload.js +100 -110
- package/dist/src/lib/workflow-payload.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +37 -16
- package/dist/src/lib/workflow-toml-validator.js +141 -16
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +78 -22
- package/dist/src/validators.d.ts +7 -7
- package/dist/src/validators.js +6 -6
- package/package.json +11 -6
- package/dist/src/commands/settings.d.ts +0 -15
- package/dist/src/commands/settings.js +0 -102
- package/dist/src/commands/settings.js.map +0 -1
package/dist/src/validators.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Public subpath export: `primitive-admin/validators` (issue #983).
|
|
3
3
|
*
|
|
4
|
-
* Re-exports the TOML validators that `
|
|
4
|
+
* Re-exports the TOML validators that `config push` runs as its load-bearing
|
|
5
5
|
* gate, so external tooling (e.g. `primitive-docs`) can validate the exact
|
|
6
6
|
* same way the published CLI does — instead of re-implementing the parse /
|
|
7
7
|
* expand / validate flow against submodule source and silently drifting.
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
*
|
|
11
11
|
* 1. `validateWorkflowTomlSource(raw, filePath)` — the **source-level**
|
|
12
12
|
* wrapper. Runs the identical parse → fragment-expand → validate → format
|
|
13
|
-
* path that `
|
|
13
|
+
* path that `config push` runs for workflow TOML (`cli/src/commands/sync.ts`:
|
|
14
14
|
* `parseTomlFile()` → `validateWorkflowToml()` → `formatWorkflowTomlErrors()`).
|
|
15
15
|
* Use this when you have the raw TOML string and want zero divergence from
|
|
16
|
-
* `
|
|
16
|
+
* `config push`, including `include` fragment expansion.
|
|
17
17
|
*
|
|
18
18
|
* 2. The raw validators (`validateWorkflowToml`, `validateOperations`) and
|
|
19
19
|
* their formatters (`formatWorkflowTomlErrors`, `formatIssue`). These are
|
|
@@ -38,21 +38,21 @@ export interface WorkflowTomlSourceResult {
|
|
|
38
38
|
/** The structured errors (empty when the source is valid). */
|
|
39
39
|
errors: WorkflowTomlError[];
|
|
40
40
|
/**
|
|
41
|
-
* A human-readable, multi-line error string (the same text `
|
|
41
|
+
* A human-readable, multi-line error string (the same text `config push`
|
|
42
42
|
* prints), or `null` when there are no errors.
|
|
43
43
|
*/
|
|
44
44
|
formatted: string | null;
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
|
-
* Validate a workflow TOML **source string** the exact way `
|
|
47
|
+
* Validate a workflow TOML **source string** the exact way `config push` does.
|
|
48
48
|
*
|
|
49
|
-
* Runs the identical pipeline `
|
|
49
|
+
* Runs the identical pipeline `config push` runs on every workflow file:
|
|
50
50
|
* `parseConfigToml(raw)` → `expandWorkflowTomlData(parsed, filePath)`
|
|
51
51
|
* → `validateWorkflowToml(expanded)` → `formatWorkflowTomlErrors(...)`.
|
|
52
52
|
*
|
|
53
53
|
* The `include` fragment expansion resolves fragments relative to
|
|
54
54
|
* `<filePath>/../../workflow-fragments/` — pass the real (or intended) on-disk
|
|
55
|
-
* path of the workflow so fragment resolution matches `
|
|
55
|
+
* path of the workflow so fragment resolution matches `config push`. If the
|
|
56
56
|
* source uses no `include` key the expander is a no-op and `filePath` is only
|
|
57
57
|
* used for error attribution.
|
|
58
58
|
*
|
package/dist/src/validators.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Public subpath export: `primitive-admin/validators` (issue #983).
|
|
3
3
|
*
|
|
4
|
-
* Re-exports the TOML validators that `
|
|
4
|
+
* Re-exports the TOML validators that `config push` runs as its load-bearing
|
|
5
5
|
* gate, so external tooling (e.g. `primitive-docs`) can validate the exact
|
|
6
6
|
* same way the published CLI does — instead of re-implementing the parse /
|
|
7
7
|
* expand / validate flow against submodule source and silently drifting.
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
*
|
|
11
11
|
* 1. `validateWorkflowTomlSource(raw, filePath)` — the **source-level**
|
|
12
12
|
* wrapper. Runs the identical parse → fragment-expand → validate → format
|
|
13
|
-
* path that `
|
|
13
|
+
* path that `config push` runs for workflow TOML (`cli/src/commands/sync.ts`:
|
|
14
14
|
* `parseTomlFile()` → `validateWorkflowToml()` → `formatWorkflowTomlErrors()`).
|
|
15
15
|
* Use this when you have the raw TOML string and want zero divergence from
|
|
16
|
-
* `
|
|
16
|
+
* `config push`, including `include` fragment expansion.
|
|
17
17
|
*
|
|
18
18
|
* 2. The raw validators (`validateWorkflowToml`, `validateOperations`) and
|
|
19
19
|
* their formatters (`formatWorkflowTomlErrors`, `formatIssue`). These are
|
|
@@ -34,15 +34,15 @@ import { expandWorkflowTomlData } from "./lib/workflow-fragments.js";
|
|
|
34
34
|
export { validateWorkflowToml, formatWorkflowTomlErrors, } from "./lib/workflow-toml-validator.js";
|
|
35
35
|
export { validateOperations, formatIssue, } from "./lib/toml-params-validator.js";
|
|
36
36
|
/**
|
|
37
|
-
* Validate a workflow TOML **source string** the exact way `
|
|
37
|
+
* Validate a workflow TOML **source string** the exact way `config push` does.
|
|
38
38
|
*
|
|
39
|
-
* Runs the identical pipeline `
|
|
39
|
+
* Runs the identical pipeline `config push` runs on every workflow file:
|
|
40
40
|
* `parseConfigToml(raw)` → `expandWorkflowTomlData(parsed, filePath)`
|
|
41
41
|
* → `validateWorkflowToml(expanded)` → `formatWorkflowTomlErrors(...)`.
|
|
42
42
|
*
|
|
43
43
|
* The `include` fragment expansion resolves fragments relative to
|
|
44
44
|
* `<filePath>/../../workflow-fragments/` — pass the real (or intended) on-disk
|
|
45
|
-
* path of the workflow so fragment resolution matches `
|
|
45
|
+
* path of the workflow so fragment resolution matches `config push`. If the
|
|
46
46
|
* source uses no `include` key the expander is a no-op and `filePath` is only
|
|
47
47
|
* used for error attribution.
|
|
48
48
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "primitive-admin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.62",
|
|
4
4
|
"description": "CLI for administering Primitive applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -24,17 +24,21 @@
|
|
|
24
24
|
"gen:workflow-descriptor:check": "node scripts/gen-workflow-schema-descriptor.mjs --check",
|
|
25
25
|
"gen:operation-def-descriptor": "node scripts/gen-operation-def-descriptor.mjs",
|
|
26
26
|
"gen:operation-def-descriptor:check": "node scripts/gen-operation-def-descriptor.mjs --check",
|
|
27
|
-
"
|
|
27
|
+
"gen:config-surfaces": "node scripts/gen-config-surfaces.mjs",
|
|
28
|
+
"gen:config-surfaces:check": "node scripts/gen-config-surfaces.mjs --check",
|
|
29
|
+
"gen:template-lint": "node scripts/gen-template-lint.mjs",
|
|
30
|
+
"gen:template-lint:check": "node scripts/gen-template-lint.mjs --check",
|
|
31
|
+
"gen:config-write-surface": "node scripts/gen-config-write-surface.mjs",
|
|
32
|
+
"gen:config-write-surface:check": "node scripts/gen-config-write-surface.mjs --check",
|
|
33
|
+
"prebuild": "node scripts/gen-allowlist.mjs && node scripts/gen-template-lint.mjs && node scripts/gen-workflow-schema-descriptor.mjs && node scripts/gen-operation-def-descriptor.mjs && node scripts/gen-config-surfaces.mjs && node scripts/gen-primitive-env-resolver.mjs",
|
|
28
34
|
"build": "tsc",
|
|
29
35
|
"typecheck": "tsc --noEmit",
|
|
30
36
|
"prepublishOnly": "pnpm run build",
|
|
31
37
|
"test": "vitest run --config vitest.config.ts",
|
|
32
38
|
"test:unit": "vitest run --config vitest.config.ts tests/unit",
|
|
33
39
|
"test:integration": "vitest run --config vitest.config.ts tests/integration",
|
|
34
|
-
"test:llm": "vitest run --config vitest.config.ts tests/integration/llm.test.ts",
|
|
35
40
|
"test:batch": "vitest run --config vitest.config.ts tests/integration/batch-tests.test.ts",
|
|
36
41
|
"test:prompt-tests": "vitest run --config vitest.config.ts tests/integration/prompt-tests.test.ts",
|
|
37
|
-
"test:workflow-tests": "vitest run --config vitest.config.ts tests/integration/workflow-tests.test.ts",
|
|
38
42
|
"test:sync-test-cases": "vitest run --config vitest.config.ts tests/integration/sync-test-cases.test.ts",
|
|
39
43
|
"cli:test:sync-db": "vitest run --config vitest.config.ts tests/integration/sync-database-config.test.ts --pool forks --poolOptions.forks.singleFork",
|
|
40
44
|
"test:email-templates": "vitest run --config vitest.config.ts tests/integration/email-templates.test.ts"
|
|
@@ -59,7 +63,7 @@
|
|
|
59
63
|
"mime-types": "^2.1.35",
|
|
60
64
|
"open": "^10.0.3",
|
|
61
65
|
"smol-toml": "1.7.0",
|
|
62
|
-
"tar": "^7.5.
|
|
66
|
+
"tar": "^7.5.22",
|
|
63
67
|
"ulid": "^2.4.0"
|
|
64
68
|
},
|
|
65
69
|
"devDependencies": {
|
|
@@ -70,6 +74,7 @@
|
|
|
70
74
|
"prettier": "3.8.4",
|
|
71
75
|
"tsx": "^4.20.3",
|
|
72
76
|
"typescript": "^5.7.2",
|
|
73
|
-
"vitest": "^1.6.1"
|
|
77
|
+
"vitest": "^1.6.1",
|
|
78
|
+
"yaml": "^2.9.0"
|
|
74
79
|
}
|
|
75
80
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
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;
|
|
@@ -1,102 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/commands/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC;;;GAGG;AACH,SAAS,gBAAgB,CACvB,KAAa,EACb,OAAyC;IAEzC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,IAAI,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,UAAU;YAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWL,CACI,CAAC;IAEJ,gBAAgB;IAChB,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gDAAgD,CAAC;SAC7D,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,8CAA8C,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,eAAe,CAAC,IAAI,SAAS,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+CAA+C,CAAC;SAC5D,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,cAAc,EAAE,6DAA6D,CAAC;SACrF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,eAAe,CAAC,IAAI,SAAS,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4DAA4D,CAAC;SACzE,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,cAAc,EAAE,6DAA6D,CAAC;SACrF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,eAAe,CAAC,IAAI,SAAS,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,cAAc,EAAE,6DAA6D,CAAC;SACrF,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;SAC3E,MAAM,CAAC,WAAW,EAAE,6CAA6C,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,eAAe,CAAC,IAAI,SAAS,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC"}
|