primitive-admin 1.1.0-alpha.8 → 1.1.0-alpha.80
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 +444 -106
- package/assets/skill/skills/primitive-platform/SKILL.md +811 -0
- package/dist/bin/primitive.d.ts +2 -0
- package/dist/bin/primitive.js +373 -21
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/admins.d.ts +2 -0
- package/dist/src/commands/admins.js +128 -19
- package/dist/src/commands/admins.js.map +1 -1
- package/dist/src/commands/analytics.d.ts +2 -0
- package/dist/src/commands/analytics.js +700 -55
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps.d.ts +2 -0
- package/dist/src/commands/apps.js +54 -96
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth.d.ts +2 -0
- package/dist/src/commands/auth.js +196 -105
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/blob-buckets.d.ts +2 -0
- package/dist/src/commands/blob-buckets.js +330 -0
- package/dist/src/commands/blob-buckets.js.map +1 -0
- package/dist/src/commands/catalog.d.ts +2 -0
- package/dist/src/commands/catalog.js +37 -38
- package/dist/src/commands/catalog.js.map +1 -1
- package/dist/src/commands/collection-type-configs.d.ts +2 -0
- package/dist/src/commands/collection-type-configs.js +84 -0
- package/dist/src/commands/collection-type-configs.js.map +1 -0
- package/dist/src/commands/collections.d.ts +2 -0
- package/dist/src/commands/collections.js +565 -0
- package/dist/src/commands/collections.js.map +1 -0
- package/dist/src/commands/comparisons.d.ts +2 -0
- package/dist/src/commands/comparisons.js +6 -6
- package/dist/src/commands/comparisons.js.map +1 -1
- package/dist/src/commands/config.d.ts +46 -0
- package/dist/src/commands/config.js +465 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/commands/connections.d.ts +2 -0
- package/dist/src/commands/connections.js +100 -0
- package/dist/src/commands/connections.js.map +1 -0
- package/dist/src/commands/cron-triggers.d.ts +2 -0
- package/dist/src/commands/cron-triggers.js +265 -0
- package/dist/src/commands/cron-triggers.js.map +1 -0
- package/dist/src/commands/database-type-configs.d.ts +2 -0
- package/dist/src/commands/database-type-configs.js +163 -0
- package/dist/src/commands/database-type-configs.js.map +1 -0
- package/dist/src/commands/database-types.d.ts +2 -0
- package/dist/src/commands/database-types.js +171 -0
- package/dist/src/commands/database-types.js.map +1 -0
- package/dist/src/commands/databases.d.ts +65 -0
- package/dist/src/commands/databases.js +1859 -238
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.d.ts +2 -0
- package/dist/src/commands/documents.js +2062 -19
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.d.ts +2 -0
- package/dist/src/commands/email-templates.js +174 -0
- package/dist/src/commands/email-templates.js.map +1 -0
- package/dist/src/commands/env.d.ts +23 -0
- package/dist/src/commands/env.js +385 -0
- package/dist/src/commands/env.js.map +1 -0
- 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/functions.d.ts +20 -0
- package/dist/src/commands/functions.js +672 -0
- package/dist/src/commands/functions.js.map +1 -0
- package/dist/src/commands/group-type-configs.d.ts +2 -0
- package/dist/src/commands/group-type-configs.js +86 -0
- package/dist/src/commands/group-type-configs.js.map +1 -0
- package/dist/src/commands/groups.d.ts +2 -0
- package/dist/src/commands/groups.js +39 -108
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.d.ts +223 -0
- package/dist/src/commands/guides.js +617 -65
- package/dist/src/commands/guides.js.map +1 -1
- package/dist/src/commands/init.d.ts +37 -0
- package/dist/src/commands/init.js +1693 -208
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.d.ts +2 -0
- package/dist/src/commands/integrations.js +402 -182
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/llm.d.ts +2 -0
- package/dist/src/commands/llm.js +13 -8
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/locks.d.ts +8 -0
- package/dist/src/commands/locks.js +160 -0
- package/dist/src/commands/locks.js.map +1 -0
- 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.d.ts +2 -0
- package/dist/src/commands/metadata.js +281 -0
- package/dist/src/commands/metadata.js.map +1 -0
- package/dist/src/commands/prompts.d.ts +2 -0
- package/dist/src/commands/prompts.js +275 -621
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.d.ts +3 -0
- package/dist/src/commands/rule-sets.js +137 -147
- package/dist/src/commands/rule-sets.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +30 -0
- package/dist/src/commands/scripts.js +679 -0
- package/dist/src/commands/scripts.js.map +1 -0
- package/dist/src/commands/secrets.d.ts +2 -0
- package/dist/src/commands/secrets.js +108 -0
- package/dist/src/commands/secrets.js.map +1 -0
- package/dist/src/commands/sessions.d.ts +2 -0
- package/dist/src/commands/sessions.js +75 -0
- package/dist/src/commands/sessions.js.map +1 -0
- package/dist/src/commands/settings.d.ts +18 -0
- package/dist/src/commands/settings.js +54 -0
- package/dist/src/commands/settings.js.map +1 -0
- package/dist/src/commands/skill.d.ts +2 -0
- package/dist/src/commands/skill.js +29 -0
- package/dist/src/commands/skill.js.map +1 -0
- package/dist/src/commands/sync-app-settings.d.ts +158 -0
- package/dist/src/commands/sync-app-settings.js +328 -0
- package/dist/src/commands/sync-app-settings.js.map +1 -0
- package/dist/src/commands/sync.d.ts +2514 -0
- package/dist/src/commands/sync.js +16106 -848
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.d.ts +2 -0
- package/dist/src/commands/tokens.js +130 -21
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.d.ts +2 -0
- package/dist/src/commands/users.js +532 -23
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/vars.d.ts +8 -0
- package/dist/src/commands/vars.js +96 -0
- package/dist/src/commands/vars.js.map +1 -0
- package/dist/src/commands/waitlist.d.ts +2 -0
- package/dist/src/commands/waitlist.js +10 -10
- package/dist/src/commands/waitlist.js.map +1 -1
- package/dist/src/commands/webhooks.d.ts +2 -0
- package/dist/src/commands/webhooks.js +562 -0
- package/dist/src/commands/webhooks.js.map +1 -0
- package/dist/src/commands/workflows.d.ts +116 -0
- package/dist/src/commands/workflows.js +1638 -729
- 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 +2147 -0
- package/dist/src/lib/api-client.js +2042 -160
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-match-guard.d.ts +44 -0
- package/dist/src/lib/app-match-guard.js +72 -0
- package/dist/src/lib/app-match-guard.js.map +1 -0
- package/dist/src/lib/app-settings-descriptor.d.ts +263 -0
- package/dist/src/lib/app-settings-descriptor.js +584 -0
- package/dist/src/lib/app-settings-descriptor.js.map +1 -0
- package/dist/src/lib/auth-flow.d.ts +8 -0
- package/dist/src/lib/batch.d.ts +26 -0
- package/dist/src/lib/batch.js +32 -0
- package/dist/src/lib/batch.js.map +1 -0
- package/dist/src/lib/block-layout.d.ts +160 -0
- package/dist/src/lib/block-layout.js +451 -0
- package/dist/src/lib/block-layout.js.map +1 -0
- package/dist/src/lib/block-selector.d.ts +58 -0
- package/dist/src/lib/block-selector.js +92 -0
- package/dist/src/lib/block-selector.js.map +1 -0
- 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/channel.d.ts +30 -0
- package/dist/src/lib/channel.js +68 -0
- package/dist/src/lib/channel.js.map +1 -0
- package/dist/src/lib/cli-manifest.d.ts +68 -0
- package/dist/src/lib/cli-manifest.js +71 -0
- package/dist/src/lib/cli-manifest.js.map +1 -0
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +101 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js +191 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
- package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
- package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
- package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +38 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +46 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
- package/dist/src/lib/config-json-field.d.ts +28 -0
- package/dist/src/lib/config-json-field.js +56 -0
- package/dist/src/lib/config-json-field.js.map +1 -0
- package/dist/src/lib/config-object-descriptor.d.ts +127 -0
- package/dist/src/lib/config-object-descriptor.js +696 -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 +140 -0
- package/dist/src/lib/config-surface.js +317 -0
- package/dist/src/lib/config-surface.js.map +1 -0
- package/dist/src/lib/config-toml.d.ts +10 -0
- package/dist/src/lib/config-toml.js +42 -0
- package/dist/src/lib/config-toml.js.map +1 -0
- package/dist/src/lib/config.d.ts +71 -0
- package/dist/src/lib/config.js +71 -68
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/confirm-prompt.d.ts +83 -0
- package/dist/src/lib/confirm-prompt.js +110 -0
- package/dist/src/lib/confirm-prompt.js.map +1 -0
- package/dist/src/lib/constants.d.ts +11 -0
- package/dist/src/lib/constants.js +12 -0
- package/dist/src/lib/constants.js.map +1 -0
- package/dist/src/lib/crash-handlers.d.ts +20 -0
- package/dist/src/lib/crash-handlers.js +49 -0
- package/dist/src/lib/crash-handlers.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +104 -0
- package/dist/src/lib/credentials-store.js +336 -0
- package/dist/src/lib/credentials-store.js.map +1 -0
- package/dist/src/lib/csv.d.ts +47 -0
- package/dist/src/lib/csv.js +172 -0
- package/dist/src/lib/csv.js.map +1 -0
- 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/dbFingerprint.d.ts +10 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.d.ts +67 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +170 -0
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/db-codegen/dbNaming.d.ts +87 -0
- package/dist/src/lib/db-codegen/dbNaming.js +180 -0
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +272 -0
- package/dist/src/lib/db-codegen/dbTemplates.js +480 -0
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +73 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js +139 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js +517 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
- package/dist/src/lib/document-export-permissions.d.ts +30 -0
- package/dist/src/lib/document-export-permissions.js +54 -0
- package/dist/src/lib/document-export-permissions.js.map +1 -0
- package/dist/src/lib/env-resolver-core.d.ts +253 -0
- package/dist/src/lib/env-resolver-core.js +459 -0
- package/dist/src/lib/env-resolver-core.js.map +1 -0
- package/dist/src/lib/env-resolver.d.ts +99 -0
- package/dist/src/lib/env-resolver.js +153 -0
- package/dist/src/lib/env-resolver.js.map +1 -0
- package/dist/src/lib/fetch.d.ts +5 -0
- package/dist/src/lib/function-bundle.d.ts +141 -0
- package/dist/src/lib/function-bundle.js +333 -0
- package/dist/src/lib/function-bundle.js.map +1 -0
- package/dist/src/lib/function-collect.d.ts +123 -0
- package/dist/src/lib/function-collect.js +594 -0
- package/dist/src/lib/function-collect.js.map +1 -0
- package/dist/src/lib/function-db-types.d.ts +187 -0
- package/dist/src/lib/function-db-types.js +782 -0
- package/dist/src/lib/function-db-types.js.map +1 -0
- package/dist/src/lib/function-document-types.d.ts +50 -0
- package/dist/src/lib/function-document-types.js +163 -0
- package/dist/src/lib/function-document-types.js.map +1 -0
- package/dist/src/lib/function-grants-preflight.d.ts +64 -0
- package/dist/src/lib/function-grants-preflight.js +100 -0
- package/dist/src/lib/function-grants-preflight.js.map +1 -0
- package/dist/src/lib/function-log-tail.d.ts +83 -0
- package/dist/src/lib/function-log-tail.js +115 -0
- package/dist/src/lib/function-log-tail.js.map +1 -0
- package/dist/src/lib/function-schema-codegen.d.ts +118 -0
- package/dist/src/lib/function-schema-codegen.js +402 -0
- package/dist/src/lib/function-schema-codegen.js.map +1 -0
- package/dist/src/lib/function-sync.d.ts +263 -0
- package/dist/src/lib/function-sync.js +604 -0
- package/dist/src/lib/function-sync.js.map +1 -0
- package/dist/src/lib/function-triggers.d.ts +66 -0
- package/dist/src/lib/function-triggers.js +285 -0
- package/dist/src/lib/function-triggers.js.map +1 -0
- package/dist/src/lib/function-typecheck.d.ts +86 -0
- package/dist/src/lib/function-typecheck.js +370 -0
- package/dist/src/lib/function-typecheck.js.map +1 -0
- package/dist/src/lib/generated-allowlist.d.ts +28 -0
- package/dist/src/lib/generated-allowlist.js +281 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -0
- package/dist/src/lib/generated-config-surfaces.d.ts +1445 -0
- package/dist/src/lib/generated-config-surfaces.js +5836 -0
- package/dist/src/lib/generated-config-surfaces.js.map +1 -0
- package/dist/src/lib/generated-sdk-types.d.ts +12 -0
- package/dist/src/lib/generated-sdk-types.js +13 -0
- package/dist/src/lib/generated-sdk-types.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/generated-workflow-model-fields.d.ts +20 -0
- package/dist/src/lib/generated-workflow-model-fields.js +53 -0
- package/dist/src/lib/generated-workflow-model-fields.js.map +1 -0
- package/dist/src/lib/google-client-secret-status.d.ts +35 -0
- package/dist/src/lib/google-client-secret-status.js +56 -0
- package/dist/src/lib/google-client-secret-status.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-client-platforms.d.ts +14 -0
- package/dist/src/lib/init-client-platforms.js +71 -0
- package/dist/src/lib/init-client-platforms.js.map +1 -0
- package/dist/src/lib/init-config.d.ts +98 -0
- package/dist/src/lib/init-config.js +186 -0
- package/dist/src/lib/init-config.js.map +1 -0
- package/dist/src/lib/init-email-redirect-uris.d.ts +37 -0
- package/dist/src/lib/init-email-redirect-uris.js +46 -0
- package/dist/src/lib/init-email-redirect-uris.js.map +1 -0
- package/dist/src/lib/init-ios-links.d.ts +91 -0
- package/dist/src/lib/init-ios-links.js +219 -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 +34 -0
- package/dist/src/lib/init-xcode.js +138 -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/integration-selector.d.ts +42 -0
- package/dist/src/lib/integration-selector.js +46 -0
- package/dist/src/lib/integration-selector.js.map +1 -0
- package/dist/src/lib/ios-app-id.d.ts +34 -0
- package/dist/src/lib/ios-app-id.js +69 -0
- package/dist/src/lib/ios-app-id.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/local-test-cases.d.ts +63 -0
- package/dist/src/lib/local-test-cases.js +136 -0
- package/dist/src/lib/local-test-cases.js.map +1 -0
- package/dist/src/lib/log-inspection.d.ts +680 -0
- package/dist/src/lib/log-inspection.js +784 -0
- package/dist/src/lib/log-inspection.js.map +1 -0
- package/dist/src/lib/migration-nag.d.ts +49 -0
- package/dist/src/lib/migration-nag.js +164 -0
- package/dist/src/lib/migration-nag.js.map +1 -0
- 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 +109 -0
- package/dist/src/lib/output.js +191 -8
- 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 +83 -0
- package/dist/src/lib/paginate.js +95 -0
- package/dist/src/lib/paginate.js.map +1 -0
- package/dist/src/lib/platform-owned.d.ts +63 -0
- package/dist/src/lib/platform-owned.js +85 -0
- package/dist/src/lib/platform-owned.js.map +1 -0
- package/dist/src/lib/project-config.d.ts +122 -0
- package/dist/src/lib/project-config.js +244 -0
- package/dist/src/lib/project-config.js.map +1 -0
- package/dist/src/lib/query-operators.d.ts +43 -0
- package/dist/src/lib/query-operators.js +80 -0
- package/dist/src/lib/query-operators.js.map +1 -0
- 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/refresh-admin-credentials.d.ts +65 -0
- package/dist/src/lib/refresh-admin-credentials.js +103 -0
- package/dist/src/lib/refresh-admin-credentials.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 +74 -0
- package/dist/src/lib/resolve-platform.js +105 -0
- package/dist/src/lib/resolve-platform.js.map +1 -0
- 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.d.ts +25 -0
- package/dist/src/lib/skill-installer.js +266 -0
- package/dist/src/lib/skill-installer.js.map +1 -0
- package/dist/src/lib/snapshots.d.ts +98 -0
- package/dist/src/lib/snapshots.js +294 -0
- package/dist/src/lib/snapshots.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js +914 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
- package/dist/src/lib/swift-codegen/generator.d.ts +94 -0
- package/dist/src/lib/swift-codegen/generator.js +440 -0
- package/dist/src/lib/swift-codegen/generator.js.map +1 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +72 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js +644 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +94 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js +155 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
- package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
- 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 +123 -0
- package/dist/src/lib/sync-paths.js +193 -0
- package/dist/src/lib/sync-paths.js.map +1 -0
- package/dist/src/lib/sync-resource-types.d.ts +563 -0
- package/dist/src/lib/sync-resource-types.js +1073 -0
- package/dist/src/lib/sync-resource-types.js.map +1 -0
- 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 +170 -0
- package/dist/src/lib/template.js +484 -68
- package/dist/src/lib/template.js.map +1 -1
- package/dist/src/lib/test-case-file-names.d.ts +40 -0
- package/dist/src/lib/test-case-file-names.js +91 -0
- package/dist/src/lib/test-case-file-names.js.map +1 -0
- 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 +29 -0
- package/dist/src/lib/test-case-variables.js +71 -0
- package/dist/src/lib/test-case-variables.js.map +1 -0
- package/dist/src/lib/token-inject.d.ts +56 -0
- package/dist/src/lib/token-inject.js +204 -0
- package/dist/src/lib/token-inject.js.map +1 -0
- package/dist/src/lib/toml-database-config.d.ts +123 -0
- package/dist/src/lib/toml-database-config.js +544 -0
- package/dist/src/lib/toml-database-config.js.map +1 -0
- package/dist/src/lib/toml-metadata-config.d.ts +151 -0
- package/dist/src/lib/toml-metadata-config.js +476 -0
- package/dist/src/lib/toml-metadata-config.js.map +1 -0
- package/dist/src/lib/toml-native-form.d.ts +46 -0
- package/dist/src/lib/toml-native-form.js +78 -0
- package/dist/src/lib/toml-native-form.js.map +1 -0
- package/dist/src/lib/toml-params-validator.d.ts +129 -0
- package/dist/src/lib/toml-params-validator.js +298 -0
- package/dist/src/lib/toml-params-validator.js.map +1 -0
- 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 +35 -0
- package/dist/src/lib/version-check.js +241 -0
- package/dist/src/lib/version-check.js.map +1 -0
- 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/web-url.d.ts +40 -0
- package/dist/src/lib/web-url.js +76 -0
- package/dist/src/lib/web-url.js.map +1 -0
- package/dist/src/lib/workflow-apply.d.ts +110 -0
- package/dist/src/lib/workflow-apply.js +164 -0
- package/dist/src/lib/workflow-apply.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generator.d.ts +96 -0
- package/dist/src/lib/workflow-codegen/generator.js +361 -0
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +94 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js +76 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
- package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
- package/dist/src/lib/workflow-codegen/naming.js +81 -0
- package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +80 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js +303 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
- 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-field-descriptor.d.ts +91 -0
- package/dist/src/lib/workflow-field-descriptor.js +153 -0
- package/dist/src/lib/workflow-field-descriptor.js.map +1 -0
- package/dist/src/lib/workflow-fragments.d.ts +64 -0
- package/dist/src/lib/workflow-fragments.js +342 -0
- package/dist/src/lib/workflow-fragments.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 +98 -0
- package/dist/src/lib/workflow-payload.js +178 -0
- package/dist/src/lib/workflow-payload.js.map +1 -0
- package/dist/src/lib/workflow-toml-validator.d.ts +207 -0
- package/dist/src/lib/workflow-toml-validator.js +762 -0
- package/dist/src/lib/workflow-toml-validator.js.map +1 -0
- package/dist/src/lib/workflow-usage.d.ts +198 -0
- package/dist/src/lib/workflow-usage.js +312 -0
- package/dist/src/lib/workflow-usage.js.map +1 -0
- package/dist/src/types/index.d.ts +591 -0
- package/dist/src/validators.d.ts +65 -0
- package/dist/src/validators.js +64 -0
- package/dist/src/validators.js.map +1 -0
- package/package.json +34 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-db-types.js","sourceRoot":"","sources":["../../../src/lib/function-db-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The typed document handle's generated declaration — #3281, project
|
|
3
|
+
* `server-functions` phase 4 (the sponsor's 2026-09-10 note).
|
|
4
|
+
*
|
|
5
|
+
* `ctx.db` is typed from the database schemas through `primitive-db-types.d.ts`
|
|
6
|
+
* (#3182). `ctx.doc(documentId).model("<Model>")` gets the same treatment
|
|
7
|
+
* from the project's DOCUMENT schema: the one `models/models.toml` at the
|
|
8
|
+
* project root (the canonical file `primitive init` wires; the web client's
|
|
9
|
+
* `src/models/models.toml` is the fallback), in the `[models.<name>.fields.<f>]`
|
|
10
|
+
* vocabulary the same js-bao loader reads for database types. So this is the
|
|
11
|
+
* same walk `renderDbTypesDeclaration` makes, over the same IR, into a
|
|
12
|
+
* `DocumentSchemas` augmentation — no second parser and no second idea of
|
|
13
|
+
* what a model is.
|
|
14
|
+
*
|
|
15
|
+
* No schema file → a declaration with no augmentation, and the handle stays
|
|
16
|
+
* open (`DocumentModelNames` widens to `string`, the `DatabaseTypeKeys`
|
|
17
|
+
* rule). A file that does not parse contributes no augmentation either, and
|
|
18
|
+
* the declaration says which file, so the failure is not "my types just
|
|
19
|
+
* don't work".
|
|
20
|
+
*/
|
|
21
|
+
/** The regenerated declaration beside `primitive-db-types.d.ts`. */
|
|
22
|
+
export declare const DOCUMENT_TYPES_DECLARATION_FILE = "primitive-document-types.d.ts";
|
|
23
|
+
/** The canonical document schema, relative to the project root. */
|
|
24
|
+
export declare const DOCUMENT_SCHEMA_RELATIVE: string;
|
|
25
|
+
/** The web client's starter schema, the fallback. */
|
|
26
|
+
export declare const WEB_DOCUMENT_SCHEMA_RELATIVE: string;
|
|
27
|
+
export interface DocumentSchemaSource {
|
|
28
|
+
/** Absolute path of the file that was read. */
|
|
29
|
+
path: string;
|
|
30
|
+
content: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The project root a config tree belongs to: the directory holding
|
|
34
|
+
* `primitive/config.json`, walking up from the tree. Null when the tree is a
|
|
35
|
+
* bare directory with no project around it (`--dir` at a scratch path).
|
|
36
|
+
*/
|
|
37
|
+
export declare function projectRootFor(configDir: string): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* The document schema a tree's functions are typed against, or null when the
|
|
40
|
+
* project has none: the canonical `models/models.toml` first, the web
|
|
41
|
+
* client's copy as the fallback.
|
|
42
|
+
*/
|
|
43
|
+
export declare function documentSchemaSource(configDir: string): DocumentSchemaSource | null;
|
|
44
|
+
/**
|
|
45
|
+
* The declaration for a project's document schema.
|
|
46
|
+
*
|
|
47
|
+
* Sorted by model so the bytes depend on the schema and not on the order the
|
|
48
|
+
* loader answered in — push rewrites this on every run.
|
|
49
|
+
*/
|
|
50
|
+
export declare function renderDocumentTypesDeclaration(source: DocumentSchemaSource | null): string;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The typed document handle's generated declaration — #3281, project
|
|
3
|
+
* `server-functions` phase 4 (the sponsor's 2026-09-10 note).
|
|
4
|
+
*
|
|
5
|
+
* `ctx.db` is typed from the database schemas through `primitive-db-types.d.ts`
|
|
6
|
+
* (#3182). `ctx.doc(documentId).model("<Model>")` gets the same treatment
|
|
7
|
+
* from the project's DOCUMENT schema: the one `models/models.toml` at the
|
|
8
|
+
* project root (the canonical file `primitive init` wires; the web client's
|
|
9
|
+
* `src/models/models.toml` is the fallback), in the `[models.<name>.fields.<f>]`
|
|
10
|
+
* vocabulary the same js-bao loader reads for database types. So this is the
|
|
11
|
+
* same walk `renderDbTypesDeclaration` makes, over the same IR, into a
|
|
12
|
+
* `DocumentSchemas` augmentation — no second parser and no second idea of
|
|
13
|
+
* what a model is.
|
|
14
|
+
*
|
|
15
|
+
* No schema file → a declaration with no augmentation, and the handle stays
|
|
16
|
+
* open (`DocumentModelNames` widens to `string`, the `DatabaseTypeKeys`
|
|
17
|
+
* rule). A file that does not parse contributes no augmentation either, and
|
|
18
|
+
* the declaration says which file, so the failure is not "my types just
|
|
19
|
+
* don't work".
|
|
20
|
+
*/
|
|
21
|
+
import { existsSync, readFileSync } from "fs";
|
|
22
|
+
import { dirname, join, resolve, sep } from "path";
|
|
23
|
+
import { loadSchemaFromTomlString } from "js-bao";
|
|
24
|
+
import { parseConfigToml, stringifyConfigToml } from "./config-toml.js";
|
|
25
|
+
import { tsTypeForDbFieldType } from "./db-codegen/dbTsTypes.js";
|
|
26
|
+
import { objectPropertyKey } from "./db-codegen/dbNaming.js";
|
|
27
|
+
import { PROJECT_CONFIG_FILENAME, PROJECT_TREE_DIR } from "./env-resolver-core.js";
|
|
28
|
+
/** The regenerated declaration beside `primitive-db-types.d.ts`. */
|
|
29
|
+
export const DOCUMENT_TYPES_DECLARATION_FILE = "primitive-document-types.d.ts";
|
|
30
|
+
/** The canonical document schema, relative to the project root. */
|
|
31
|
+
export const DOCUMENT_SCHEMA_RELATIVE = join("models", "models.toml");
|
|
32
|
+
/** The web client's starter schema, the fallback. */
|
|
33
|
+
export const WEB_DOCUMENT_SCHEMA_RELATIVE = join("src", "models", "models.toml");
|
|
34
|
+
const HEADER = `// GENERATED by \`primitive config push\` from the project's models/models.toml.
|
|
35
|
+
// DO NOT EDIT — your changes are overwritten on the next push.
|
|
36
|
+
//
|
|
37
|
+
// It gives \`ctx.doc(documentId).model("<Model>")\` the model names and field
|
|
38
|
+
// types the app's document schema declares. Inline filter typing arrives with
|
|
39
|
+
// unified schemas; until then a filter is an ordinary object.
|
|
40
|
+
`;
|
|
41
|
+
function quote(value) {
|
|
42
|
+
return JSON.stringify(value);
|
|
43
|
+
}
|
|
44
|
+
/** A model or field name as a TYPE member key — the database renderer's rule. */
|
|
45
|
+
function memberKey(name) {
|
|
46
|
+
const key = objectPropertyKey(name);
|
|
47
|
+
return key.startsWith("[") ? quote(name) : key;
|
|
48
|
+
}
|
|
49
|
+
/** A TS string-literal union, or the field type's TS spelling. */
|
|
50
|
+
function fieldType(type, enumValues) {
|
|
51
|
+
if (type === "string" && Array.isArray(enumValues) && enumValues.length > 0) {
|
|
52
|
+
return enumValues.map((v) => quote(v)).join(" | ");
|
|
53
|
+
}
|
|
54
|
+
return tsTypeForDbFieldType(type);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The project root a config tree belongs to: the directory holding
|
|
58
|
+
* `primitive/config.json`, walking up from the tree. Null when the tree is a
|
|
59
|
+
* bare directory with no project around it (`--dir` at a scratch path).
|
|
60
|
+
*/
|
|
61
|
+
export function projectRootFor(configDir) {
|
|
62
|
+
let dir = resolve(configDir);
|
|
63
|
+
for (;;) {
|
|
64
|
+
if (existsSync(join(dir, PROJECT_TREE_DIR, PROJECT_CONFIG_FILENAME)))
|
|
65
|
+
return dir;
|
|
66
|
+
const parent = dirname(dir);
|
|
67
|
+
if (parent === dir)
|
|
68
|
+
return null;
|
|
69
|
+
dir = parent;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The document schema a tree's functions are typed against, or null when the
|
|
74
|
+
* project has none: the canonical `models/models.toml` first, the web
|
|
75
|
+
* client's copy as the fallback.
|
|
76
|
+
*/
|
|
77
|
+
export function documentSchemaSource(configDir) {
|
|
78
|
+
const root = projectRootFor(configDir);
|
|
79
|
+
if (!root)
|
|
80
|
+
return null;
|
|
81
|
+
for (const candidate of [DOCUMENT_SCHEMA_RELATIVE, WEB_DOCUMENT_SCHEMA_RELATIVE]) {
|
|
82
|
+
const path = join(root, candidate);
|
|
83
|
+
if (!existsSync(path))
|
|
84
|
+
continue;
|
|
85
|
+
try {
|
|
86
|
+
return { path, content: readFileSync(path, "utf-8") };
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
/** The file as a message names it: the project-relative spelling it was found under. */
|
|
95
|
+
function fileLabel(source) {
|
|
96
|
+
for (const candidate of [WEB_DOCUMENT_SCHEMA_RELATIVE, DOCUMENT_SCHEMA_RELATIVE]) {
|
|
97
|
+
if (source.path.endsWith(candidate))
|
|
98
|
+
return candidate.split(sep).join("/");
|
|
99
|
+
}
|
|
100
|
+
return source.path;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The declaration for a project's document schema.
|
|
104
|
+
*
|
|
105
|
+
* Sorted by model so the bytes depend on the schema and not on the order the
|
|
106
|
+
* loader answered in — push rewrites this on every run.
|
|
107
|
+
*/
|
|
108
|
+
export function renderDocumentTypesDeclaration(source) {
|
|
109
|
+
const lines = [HEADER];
|
|
110
|
+
if (!source) {
|
|
111
|
+
lines.push("// No models/models.toml in this project: the handle is open.");
|
|
112
|
+
lines.push("export interface PrimitiveDocumentSchemas {}");
|
|
113
|
+
lines.push("");
|
|
114
|
+
return lines.join("\n");
|
|
115
|
+
}
|
|
116
|
+
let schemas = [];
|
|
117
|
+
let problem = null;
|
|
118
|
+
try {
|
|
119
|
+
const data = parseConfigToml(source.content);
|
|
120
|
+
schemas = data?.models
|
|
121
|
+
? loadSchemaFromTomlString(stringifyConfigToml({ models: data.models }), {
|
|
122
|
+
strict: false,
|
|
123
|
+
})
|
|
124
|
+
: [];
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
problem = String(error?.message ?? error);
|
|
128
|
+
}
|
|
129
|
+
if (problem !== null) {
|
|
130
|
+
// No augmentation: an untyped handle is what a schemaless project gets
|
|
131
|
+
// anyway, and the file is named so the author knows where to look.
|
|
132
|
+
lines.push(`// ${fileLabel(source)} does not parse, so it contributes no types:`);
|
|
133
|
+
for (const line of problem.split("\n").slice(0, 3))
|
|
134
|
+
lines.push(`// ${line}`);
|
|
135
|
+
lines.push("export interface PrimitiveDocumentSchemas {}");
|
|
136
|
+
lines.push("");
|
|
137
|
+
return lines.join("\n");
|
|
138
|
+
}
|
|
139
|
+
const models = [...schemas].sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
140
|
+
lines.push("export interface PrimitiveDocumentSchemas {");
|
|
141
|
+
for (const model of models) {
|
|
142
|
+
const fields = Object.entries(model.fields ?? {});
|
|
143
|
+
if (fields.length === 0) {
|
|
144
|
+
lines.push(` ${memberKey(model.name)}: Record<string, unknown>;`);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
lines.push(` ${memberKey(model.name)}: {`);
|
|
148
|
+
for (const [name, options] of fields) {
|
|
149
|
+
const opts = options;
|
|
150
|
+
const required = opts?.required === true || (opts?.autoAssign === true && name === "id");
|
|
151
|
+
lines.push(` ${memberKey(name)}${required ? "" : "?"}: ${fieldType(String(opts?.type ?? "any"), opts?.enum)};`);
|
|
152
|
+
}
|
|
153
|
+
lines.push(` };`);
|
|
154
|
+
}
|
|
155
|
+
lines.push("}");
|
|
156
|
+
lines.push("");
|
|
157
|
+
lines.push(`declare module "primitive-functions" {`);
|
|
158
|
+
lines.push(` interface DocumentSchemas extends PrimitiveDocumentSchemas {}`);
|
|
159
|
+
lines.push(`}`);
|
|
160
|
+
lines.push("");
|
|
161
|
+
return lines.join("\n");
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=function-document-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-document-types.js","sourceRoot":"","sources":["../../../src/lib/function-document-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `config push`'s local check of a function's capabilities — #3182,
|
|
3
|
+
* project `server-functions` phase 1, rewritten by #3279.
|
|
4
|
+
*
|
|
5
|
+
* The server is authoritative (the raw admin route exists, and it derives the
|
|
6
|
+
* capabilities from the TOML inside the envelope). This is the other
|
|
7
|
+
* enforcement point: an author who writes a retired grant string, or an
|
|
8
|
+
* `integration:` naming an integration the tree does not declare, should see
|
|
9
|
+
* it against their own file, in the front-loaded preflight pass, with nothing
|
|
10
|
+
* applied — not as a server refusal partway through a push that has already
|
|
11
|
+
* created three other things.
|
|
12
|
+
*
|
|
13
|
+
* The GRAMMAR is not restated here. It is the vendored `function-grants.ts` —
|
|
14
|
+
* the same module the server imports — so the two checks cannot drift into
|
|
15
|
+
* two rules. Since #3279 that grammar keeps three kinds (`integration:<key>`,
|
|
16
|
+
* `secret:<NAME>`, the high-blast opt-ins) and refuses everything it retired
|
|
17
|
+
* with the retirement, so a file still declaring a `database:` grant is
|
|
18
|
+
* told what changed rather than "unknown family".
|
|
19
|
+
*
|
|
20
|
+
* ── What "the app has this integration" means locally ────────────────────
|
|
21
|
+
*
|
|
22
|
+
* The tree is the intent: an integration declared in `integrations/` will
|
|
23
|
+
* exist after this push (objects are applied before functions). One that
|
|
24
|
+
* exists only on the server is real too, so the caller merges the live
|
|
25
|
+
* listing in when it could fetch one. When neither is available the target
|
|
26
|
+
* check is SKIPPED rather than guessed — the server will still refuse, and a
|
|
27
|
+
* preflight that refuses a valid tree because it could not reach the network
|
|
28
|
+
* would be worse than one that defers.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* The integration keys this push will leave in place — #3183.
|
|
32
|
+
*
|
|
33
|
+
* A set rather than a map because an `integration:` grant names one object
|
|
34
|
+
* and nothing about its inside. `secret:` has no target set (D3183-002): its
|
|
35
|
+
* values are provisioned per environment, out of band, so a tree can never
|
|
36
|
+
* answer for them.
|
|
37
|
+
*/
|
|
38
|
+
export interface KnownConfigObjectKeys {
|
|
39
|
+
integrations: Set<string>;
|
|
40
|
+
}
|
|
41
|
+
/** The set, read from the tree's `integrations/`. */
|
|
42
|
+
export declare function configObjectKeysFromTree(configDir: string): KnownConfigObjectKeys;
|
|
43
|
+
/** The server's keys, then the tree's — the tree is what this push applies. */
|
|
44
|
+
export declare function mergeKnownGrantTargets(fromServer: KnownConfigObjectKeys, fromTree: KnownConfigObjectKeys): KnownConfigObjectKeys;
|
|
45
|
+
export interface FunctionGrantPreflightInput {
|
|
46
|
+
/** Absolute path of `functions/<key>.toml`, for the message. */
|
|
47
|
+
filePath: string;
|
|
48
|
+
/** The already-parsed document, so the file is read once. */
|
|
49
|
+
tomlData: any;
|
|
50
|
+
/**
|
|
51
|
+
* Integration keys this push will leave in place, or null when the live
|
|
52
|
+
* listing could not be fetched and the tree declares none — in which case
|
|
53
|
+
* only the grammar is checked here, and the server has the last word.
|
|
54
|
+
*/
|
|
55
|
+
knownTargets?: KnownConfigObjectKeys | null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Everything wrong with one function file's capabilities, as push-ready lines.
|
|
59
|
+
*
|
|
60
|
+
* Each message names the file, because the preflight pass reports every file's
|
|
61
|
+
* errors together and "unknown integration 'stripe'" on its own does not say
|
|
62
|
+
* which function asked for it.
|
|
63
|
+
*/
|
|
64
|
+
export declare function functionGrantErrors(input: FunctionGrantPreflightInput): string[];
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `config push`'s local check of a function's capabilities — #3182,
|
|
3
|
+
* project `server-functions` phase 1, rewritten by #3279.
|
|
4
|
+
*
|
|
5
|
+
* The server is authoritative (the raw admin route exists, and it derives the
|
|
6
|
+
* capabilities from the TOML inside the envelope). This is the other
|
|
7
|
+
* enforcement point: an author who writes a retired grant string, or an
|
|
8
|
+
* `integration:` naming an integration the tree does not declare, should see
|
|
9
|
+
* it against their own file, in the front-loaded preflight pass, with nothing
|
|
10
|
+
* applied — not as a server refusal partway through a push that has already
|
|
11
|
+
* created three other things.
|
|
12
|
+
*
|
|
13
|
+
* The GRAMMAR is not restated here. It is the vendored `function-grants.ts` —
|
|
14
|
+
* the same module the server imports — so the two checks cannot drift into
|
|
15
|
+
* two rules. Since #3279 that grammar keeps three kinds (`integration:<key>`,
|
|
16
|
+
* `secret:<NAME>`, the high-blast opt-ins) and refuses everything it retired
|
|
17
|
+
* with the retirement, so a file still declaring a `database:` grant is
|
|
18
|
+
* told what changed rather than "unknown family".
|
|
19
|
+
*
|
|
20
|
+
* ── What "the app has this integration" means locally ────────────────────
|
|
21
|
+
*
|
|
22
|
+
* The tree is the intent: an integration declared in `integrations/` will
|
|
23
|
+
* exist after this push (objects are applied before functions). One that
|
|
24
|
+
* exists only on the server is real too, so the caller merges the live
|
|
25
|
+
* listing in when it could fetch one. When neither is available the target
|
|
26
|
+
* check is SKIPPED rather than guessed — the server will still refuse, and a
|
|
27
|
+
* preflight that refuses a valid tree because it could not reach the network
|
|
28
|
+
* would be worse than one that defers.
|
|
29
|
+
*/
|
|
30
|
+
import { existsSync, readdirSync, readFileSync } from "fs";
|
|
31
|
+
import { basename, join } from "path";
|
|
32
|
+
import { parseConfigToml } from "./config-toml.js";
|
|
33
|
+
import { parseCapabilities, validateKeyedGrantsAgainstTargets, } from "./generated-config-surfaces.js";
|
|
34
|
+
/** The set, read from the tree's `integrations/`. */
|
|
35
|
+
export function configObjectKeysFromTree(configDir) {
|
|
36
|
+
return {
|
|
37
|
+
integrations: keysFromDir(configDir, "integrations", "integration"),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* One directory's object keys.
|
|
42
|
+
*
|
|
43
|
+
* The key is the `[<table>].key` the file declares, falling back to the file
|
|
44
|
+
* name — the same precedence the push path resolves an object's identity by.
|
|
45
|
+
*/
|
|
46
|
+
function keysFromDir(configDir, dirName, table) {
|
|
47
|
+
const keys = new Set();
|
|
48
|
+
const dir = join(configDir, dirName);
|
|
49
|
+
if (!existsSync(dir))
|
|
50
|
+
return keys;
|
|
51
|
+
for (const file of readdirSync(dir).filter((f) => f.endsWith(".toml"))) {
|
|
52
|
+
let data;
|
|
53
|
+
try {
|
|
54
|
+
data = parseConfigToml(readFileSync(join(dir, file), "utf-8"));
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// A file that does not parse is reported by its own preflight.
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
keys.add(String(data?.[table]?.key || basename(file, ".toml")));
|
|
61
|
+
}
|
|
62
|
+
return keys;
|
|
63
|
+
}
|
|
64
|
+
/** The server's keys, then the tree's — the tree is what this push applies. */
|
|
65
|
+
export function mergeKnownGrantTargets(fromServer, fromTree) {
|
|
66
|
+
return {
|
|
67
|
+
integrations: new Set([...fromServer.integrations, ...fromTree.integrations]),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Everything wrong with one function file's capabilities, as push-ready lines.
|
|
72
|
+
*
|
|
73
|
+
* Each message names the file, because the preflight pass reports every file's
|
|
74
|
+
* errors together and "unknown integration 'stripe'" on its own does not say
|
|
75
|
+
* which function asked for it.
|
|
76
|
+
*/
|
|
77
|
+
export function functionGrantErrors(input) {
|
|
78
|
+
const { filePath, tomlData, knownTargets } = input;
|
|
79
|
+
const table = tomlData?.function ?? {};
|
|
80
|
+
const where = `${filePath}:`;
|
|
81
|
+
const messages = [];
|
|
82
|
+
const parsed = parseCapabilities(table.capabilities);
|
|
83
|
+
if (!parsed.ok) {
|
|
84
|
+
for (const error of parsed.errors)
|
|
85
|
+
messages.push(`${where} ${error}`);
|
|
86
|
+
return messages;
|
|
87
|
+
}
|
|
88
|
+
// #3183 — `integration:` names a config-tree object, so the same "does this
|
|
89
|
+
// app have it" question applies. The rule is the shared one; what is
|
|
90
|
+
// CLI-side is reading the tree for it.
|
|
91
|
+
if (knownTargets) {
|
|
92
|
+
for (const error of validateKeyedGrantsAgainstTargets(parsed.allGrants, {
|
|
93
|
+
integrations: knownTargets.integrations,
|
|
94
|
+
})) {
|
|
95
|
+
messages.push(`${where} ${error}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return messages;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=function-grants-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-grants-preflight.js","sourceRoot":"","sources":["../../../src/lib/function-grants-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { FollowSource } from "./watch.js";
|
|
2
|
+
/**
|
|
3
|
+
* The tail's backlog walk — #3287, CR3287-007, CR3287-016, CR3287-017.
|
|
4
|
+
*
|
|
5
|
+
* `primitive functions logs --follow` polls a listing that answers NEWEST
|
|
6
|
+
* first, and `followLoop` carries one opaque checkpoint. The naive source
|
|
7
|
+
* reads one page and advances the mark to the newest row on it — which is
|
|
8
|
+
* correct only while fewer than one page of invocations arrive between two
|
|
9
|
+
* polls. A function at its admitted rate can record far more than that in two
|
|
10
|
+
* seconds, and every row the tail skipped past would be gone for good: the
|
|
11
|
+
* mark moved over them, so no later tick can reach back.
|
|
12
|
+
*
|
|
13
|
+
* So a call walks BACKWARD, page by page, until it meets the mark, and emits
|
|
14
|
+
* everything it collected oldest-first. The walk is bounded per call, and a
|
|
15
|
+
* call whose budget runs out before it meets the mark does NOT skip the gap
|
|
16
|
+
* (CR3287-017): it keeps what it collected, hands back a checkpoint carrying
|
|
17
|
+
* the page cursor it stopped at, and the next call resumes from there. The
|
|
18
|
+
* mark advances only once the whole backlog between it and the walk's top has
|
|
19
|
+
* been collected, so no row is passed over, and the rows are still printed in
|
|
20
|
+
* the order they were written.
|
|
21
|
+
*
|
|
22
|
+
* The one thing that means holding across calls is the collected-but-unemitted
|
|
23
|
+
* backlog, which lives in this closure rather than in the checkpoint: a page
|
|
24
|
+
* of inspection items is not a string to round-trip. The checkpoint is still
|
|
25
|
+
* the only thing `followLoop` carries, and it is self-describing: a bare mark
|
|
26
|
+
* means "walk from the top to here", a mark with a cursor means "a walk is in
|
|
27
|
+
* progress, continue it".
|
|
28
|
+
*
|
|
29
|
+
* An EMPTY listing is an initialized tail, not an uninitialized one
|
|
30
|
+
* (CR3287-016). `followLoop` reads an empty checkpoint as "bootstrap again",
|
|
31
|
+
* so a tail started before a function's first invocation would swallow that
|
|
32
|
+
* invocation as its baseline — the first failure the operator was waiting
|
|
33
|
+
* for. The mark for "nothing yet" is a sentinel that sorts below every ULID.
|
|
34
|
+
*
|
|
35
|
+
* It lives here rather than inside the command because the walk is the part
|
|
36
|
+
* with a bug in it, and a bug in paging is decidable without a server.
|
|
37
|
+
*/
|
|
38
|
+
/** One page of the listing, as the route answers it. */
|
|
39
|
+
export interface LogPage<T> {
|
|
40
|
+
items: T[];
|
|
41
|
+
nextCursor?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface LogPager<T> {
|
|
44
|
+
(args: {
|
|
45
|
+
cursor?: string;
|
|
46
|
+
}): Promise<LogPage<T>>;
|
|
47
|
+
}
|
|
48
|
+
export interface LogTailOptions<T> {
|
|
49
|
+
/** The row's ULID — string order IS creation order. */
|
|
50
|
+
idOf: (row: T) => string;
|
|
51
|
+
/**
|
|
52
|
+
* How many pages one CALL will walk toward the mark. `followLoop` calls
|
|
53
|
+
* again within the same tick while the checkpoint says a walk is still in
|
|
54
|
+
* progress, up to its own page bound, then waits for the next tick.
|
|
55
|
+
*/
|
|
56
|
+
maxPagesPerTick: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The mark of a tail that has seen no row yet — CR3287-016.
|
|
60
|
+
*
|
|
61
|
+
* A ULID is 26 characters of Crockford base32, so this single character sorts
|
|
62
|
+
* below every one of them and above nothing: `idOf(row) <= EMPTY_TAIL_MARK`
|
|
63
|
+
* is false for every row, which is exactly "everything is new". It is a
|
|
64
|
+
* non-empty string, which is what keeps `followLoop` from reading it as an
|
|
65
|
+
* uninitialized tail.
|
|
66
|
+
*/
|
|
67
|
+
export declare const EMPTY_TAIL_MARK = "0";
|
|
68
|
+
/** What the checkpoint string carries. */
|
|
69
|
+
interface TailCheckpoint {
|
|
70
|
+
/** The newest id already emitted (or the empty sentinel). */
|
|
71
|
+
mark: string;
|
|
72
|
+
/** Set while a walk toward `mark` is in progress: the page to resume at. */
|
|
73
|
+
cursor?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A bare mark stays a bare mark — the common case, and what an operator sees
|
|
77
|
+
* in a debug print. A walk in progress is JSON, which a ULID cannot start
|
|
78
|
+
* with, so the two are told apart by their first character.
|
|
79
|
+
*/
|
|
80
|
+
export declare function encodeTailCheckpoint(checkpoint: TailCheckpoint): string;
|
|
81
|
+
export declare function decodeTailCheckpoint(token: string): TailCheckpoint;
|
|
82
|
+
export declare function buildLogFollowSource<T>(fetchPage: LogPager<T>, options: LogTailOptions<T>): FollowSource<T>;
|
|
83
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mark of a tail that has seen no row yet — CR3287-016.
|
|
3
|
+
*
|
|
4
|
+
* A ULID is 26 characters of Crockford base32, so this single character sorts
|
|
5
|
+
* below every one of them and above nothing: `idOf(row) <= EMPTY_TAIL_MARK`
|
|
6
|
+
* is false for every row, which is exactly "everything is new". It is a
|
|
7
|
+
* non-empty string, which is what keeps `followLoop` from reading it as an
|
|
8
|
+
* uninitialized tail.
|
|
9
|
+
*/
|
|
10
|
+
export const EMPTY_TAIL_MARK = "0";
|
|
11
|
+
/**
|
|
12
|
+
* A bare mark stays a bare mark — the common case, and what an operator sees
|
|
13
|
+
* in a debug print. A walk in progress is JSON, which a ULID cannot start
|
|
14
|
+
* with, so the two are told apart by their first character.
|
|
15
|
+
*/
|
|
16
|
+
export function encodeTailCheckpoint(checkpoint) {
|
|
17
|
+
if (checkpoint.cursor === undefined && checkpoint.mark.length > 0)
|
|
18
|
+
return checkpoint.mark;
|
|
19
|
+
return JSON.stringify(checkpoint);
|
|
20
|
+
}
|
|
21
|
+
export function decodeTailCheckpoint(token) {
|
|
22
|
+
if (token.startsWith("{")) {
|
|
23
|
+
try {
|
|
24
|
+
const parsed = JSON.parse(token);
|
|
25
|
+
if (parsed && typeof parsed.mark === "string") {
|
|
26
|
+
return typeof parsed.cursor === "string"
|
|
27
|
+
? { mark: parsed.mark, cursor: parsed.cursor }
|
|
28
|
+
: { mark: parsed.mark };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Not ours; fall through and treat it as a mark.
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return { mark: token.length > 0 ? token : EMPTY_TAIL_MARK };
|
|
36
|
+
}
|
|
37
|
+
export function buildLogFollowSource(fetchPage, options) {
|
|
38
|
+
const { idOf, maxPagesPerTick } = options;
|
|
39
|
+
// The backlog of a walk in progress: rows newer than the mark, newest-first,
|
|
40
|
+
// collected but not yet emitted because the walk has not met the mark. Only
|
|
41
|
+
// meaningful for the mark it was collected against.
|
|
42
|
+
let pending = [];
|
|
43
|
+
let pendingMark = null;
|
|
44
|
+
return {
|
|
45
|
+
fetchAfter: async (resumeAfter) => {
|
|
46
|
+
// The bootstrap poll establishes the mark and emits nothing: a tail
|
|
47
|
+
// shows what happens FROM NOW. An empty listing is a mark too.
|
|
48
|
+
if (resumeAfter === undefined) {
|
|
49
|
+
const page = await fetchPage({});
|
|
50
|
+
const newest = page.items.length ? idOf(page.items[0]) : EMPTY_TAIL_MARK;
|
|
51
|
+
pending = [];
|
|
52
|
+
pendingMark = null;
|
|
53
|
+
return { items: [], hasMore: false, resumeAfter: encodeTailCheckpoint({ mark: newest }) };
|
|
54
|
+
}
|
|
55
|
+
const checkpoint = decodeTailCheckpoint(resumeAfter);
|
|
56
|
+
const { mark } = checkpoint;
|
|
57
|
+
// Resume the walk only if the backlog held here is the one this
|
|
58
|
+
// checkpoint describes; otherwise start from the top.
|
|
59
|
+
let cursor;
|
|
60
|
+
if (checkpoint.cursor !== undefined && pendingMark === mark) {
|
|
61
|
+
cursor = checkpoint.cursor;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
pending = [];
|
|
65
|
+
pendingMark = mark;
|
|
66
|
+
}
|
|
67
|
+
// This call's rows, merged into the backlog only once the call has
|
|
68
|
+
// finished: a pager that throws mid-walk leaves the checkpoint where it
|
|
69
|
+
// was, and the retry re-reads the same pages.
|
|
70
|
+
const collected = [];
|
|
71
|
+
let reachedMark = false;
|
|
72
|
+
let pages = 0;
|
|
73
|
+
while (pages < maxPagesPerTick) {
|
|
74
|
+
const page = await fetchPage(cursor ? { cursor } : {});
|
|
75
|
+
for (const row of page.items ?? []) {
|
|
76
|
+
if (idOf(row) <= mark) {
|
|
77
|
+
reachedMark = true;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
collected.push(row);
|
|
81
|
+
}
|
|
82
|
+
pages += 1;
|
|
83
|
+
// No next page is the end of the listing, which is as far back as a
|
|
84
|
+
// walk can go: the mark's row has aged out, and everything is new.
|
|
85
|
+
if (reachedMark || !page.nextCursor) {
|
|
86
|
+
reachedMark = true;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
cursor = page.nextCursor;
|
|
90
|
+
}
|
|
91
|
+
if (!reachedMark) {
|
|
92
|
+
// Budget spent short of the mark: keep the backlog, carry the cursor,
|
|
93
|
+
// and say there is more — the loop calls again rather than waiting a
|
|
94
|
+
// whole tick, and nothing is emitted out of order or dropped.
|
|
95
|
+
pending.push(...collected);
|
|
96
|
+
return {
|
|
97
|
+
items: [],
|
|
98
|
+
hasMore: true,
|
|
99
|
+
resumeAfter: encodeTailCheckpoint({ mark, cursor }),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
// The backlog arrived newest-first; a tail prints oldest-first.
|
|
103
|
+
const ascending = [...pending, ...collected].reverse();
|
|
104
|
+
pending = [];
|
|
105
|
+
pendingMark = null;
|
|
106
|
+
const next = ascending.length ? idOf(ascending[ascending.length - 1]) : mark;
|
|
107
|
+
return {
|
|
108
|
+
items: ascending,
|
|
109
|
+
hasMore: false,
|
|
110
|
+
resumeAfter: encodeTailCheckpoint({ mark: next }),
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=function-log-tail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-log-tail.js","sourceRoot":"","sources":["../../../src/lib/function-log-tail.ts"],"names":[],"mappings":"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"}
|