primitive-admin 1.1.0-alpha.9 → 1.2.0-alpha.0
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 +530 -116
- package/assets/skill/skills/primitive-platform/SKILL.md +295 -0
- package/dist/bin/primitive.d.ts +2 -0
- package/dist/bin/primitive.js +372 -21
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/admins.d.ts +2 -0
- package/dist/src/commands/admins.js +136 -30
- package/dist/src/commands/admins.js.map +1 -1
- package/dist/src/commands/analytics.d.ts +2 -0
- package/dist/src/commands/analytics.js +713 -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 +65 -100
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth-sessions.d.ts +7 -0
- package/dist/src/commands/auth-sessions.js +144 -0
- package/dist/src/commands/auth-sessions.js.map +1 -0
- package/dist/src/commands/auth.d.ts +2 -0
- package/dist/src/commands/auth.js +238 -108
- 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 +331 -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 +63 -48
- 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 +85 -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 +1285 -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 +99 -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 +266 -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 +164 -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 +1868 -243
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.d.ts +60 -0
- package/dist/src/commands/documents.js +2888 -22
- 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 +175 -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 +395 -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 +117 -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 +1630 -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 +87 -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 +81 -113
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.d.ts +223 -0
- package/dist/src/commands/guides.js +627 -69
- 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 +428 -187
- 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 +175 -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 +113 -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 +288 -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 +322 -634
- 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 +139 -148
- 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 +688 -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 +109 -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 +76 -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 +2667 -0
- package/dist/src/commands/sync.js +17141 -834
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.d.ts +2 -0
- package/dist/src/commands/tokens.js +132 -22
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.d.ts +2 -0
- package/dist/src/commands/users.js +542 -24
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/vars.d.ts +8 -0
- package/dist/src/commands/vars.js +97 -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 +12 -11
- package/dist/src/commands/waitlist.js.map +1 -1
- package/dist/src/commands/webhooks.d.ts +31 -0
- package/dist/src/commands/webhooks.js +633 -0
- package/dist/src/commands/webhooks.js.map +1 -0
- package/dist/src/commands/workflows.d.ts +88 -0
- package/dist/src/commands/workflows.js +1568 -742
- 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 +2513 -0
- package/dist/src/lib/api-client.js +2456 -162
- 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 +583 -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/collection-export.d.ts +212 -0
- package/dist/src/lib/collection-export.js +288 -0
- package/dist/src/lib/collection-export.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 +740 -0
- package/dist/src/lib/config-object-descriptor.js.map +1 -0
- package/dist/src/lib/config-payload.d.ts +92 -0
- package/dist/src/lib/config-payload.js +161 -0
- package/dist/src/lib/config-payload.js.map +1 -0
- package/dist/src/lib/config-surface.d.ts +141 -0
- package/dist/src/lib/config-surface.js +368 -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 +525 -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/deprecation.d.ts +22 -0
- package/dist/src/lib/deprecation.js +43 -0
- package/dist/src/lib/deprecation.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/document-ingest-artifact.d.ts +120 -0
- package/dist/src/lib/document-ingest-artifact.js +505 -0
- package/dist/src/lib/document-ingest-artifact.js.map +1 -0
- package/dist/src/lib/document-ingest-input.d.ts +51 -0
- package/dist/src/lib/document-ingest-input.js +132 -0
- package/dist/src/lib/document-ingest-input.js.map +1 -0
- package/dist/src/lib/document-ingest-rows.d.ts +137 -0
- package/dist/src/lib/document-ingest-rows.js +181 -0
- package/dist/src/lib/document-ingest-rows.js.map +1 -0
- package/dist/src/lib/document-ingest.d.ts +101 -0
- package/dist/src/lib/document-ingest.js +384 -0
- package/dist/src/lib/document-ingest.js.map +1 -0
- package/dist/src/lib/env-resolver-core.d.ts +258 -0
- package/dist/src/lib/env-resolver-core.js +447 -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 +147 -0
- package/dist/src/lib/function-bundle.js +341 -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 +610 -0
- package/dist/src/lib/function-collect.js.map +1 -0
- package/dist/src/lib/function-db-types.d.ts +202 -0
- package/dist/src/lib/function-db-types.js +870 -0
- package/dist/src/lib/function-db-types.js.map +1 -0
- package/dist/src/lib/function-document-types.d.ts +144 -0
- package/dist/src/lib/function-document-types.js +370 -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 +105 -0
- package/dist/src/lib/function-grants-preflight.js.map +1 -0
- package/dist/src/lib/function-log-lines.d.ts +76 -0
- package/dist/src/lib/function-log-lines.js +160 -0
- package/dist/src/lib/function-log-lines.js.map +1 -0
- package/dist/src/lib/function-log-row.d.ts +29 -0
- package/dist/src/lib/function-log-row.js +73 -0
- package/dist/src/lib/function-log-row.js.map +1 -0
- package/dist/src/lib/function-log-tail.d.ts +132 -0
- package/dist/src/lib/function-log-tail.js +262 -0
- package/dist/src/lib/function-log-tail.js.map +1 -0
- package/dist/src/lib/function-run.d.ts +289 -0
- package/dist/src/lib/function-run.js +389 -0
- package/dist/src/lib/function-run.js.map +1 -0
- package/dist/src/lib/function-schema-codegen.d.ts +143 -0
- package/dist/src/lib/function-schema-codegen.js +420 -0
- package/dist/src/lib/function-schema-codegen.js.map +1 -0
- package/dist/src/lib/function-sync.d.ts +459 -0
- package/dist/src/lib/function-sync.js +1258 -0
- package/dist/src/lib/function-sync.js.map +1 -0
- package/dist/src/lib/function-trigger-listing.d.ts +27 -0
- package/dist/src/lib/function-trigger-listing.js +70 -0
- package/dist/src/lib/function-trigger-listing.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/function-versions.d.ts +122 -0
- package/dist/src/lib/function-versions.js +182 -0
- package/dist/src/lib/function-versions.js.map +1 -0
- package/dist/src/lib/generated-allowlist.d.ts +28 -0
- package/dist/src/lib/generated-allowlist.js +280 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -0
- package/dist/src/lib/generated-config-surfaces.d.ts +2936 -0
- package/dist/src/lib/generated-config-surfaces.js +10593 -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/list-options.d.ts +68 -0
- package/dist/src/lib/list-options.js +89 -0
- package/dist/src/lib/list-options.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 +710 -0
- package/dist/src/lib/log-inspection.js +814 -0
- package/dist/src/lib/log-inspection.js.map +1 -0
- package/dist/src/lib/logout-admin-session.d.ts +33 -0
- package/dist/src/lib/logout-admin-session.js +70 -0
- package/dist/src/lib/logout-admin-session.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 +124 -0
- package/dist/src/lib/output.js +219 -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 +82 -0
- package/dist/src/lib/paginate.js +99 -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/prompt-cost-format.d.ts +11 -0
- package/dist/src/lib/prompt-cost-format.js +41 -0
- package/dist/src/lib/prompt-cost-format.js.map +1 -0
- package/dist/src/lib/prompt-schema-codegen.d.ts +147 -0
- package/dist/src/lib/prompt-schema-codegen.js +462 -0
- package/dist/src/lib/prompt-schema-codegen.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 +73 -0
- package/dist/src/lib/refresh-admin-credentials.js +123 -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-owner.d.ts +19 -0
- package/dist/src/lib/resolve-owner.js +20 -0
- package/dist/src/lib/resolve-owner.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 +71 -0
- package/dist/src/lib/skill-installer.js +441 -0
- package/dist/src/lib/skill-installer.js.map +1 -0
- package/dist/src/lib/snapshot-audit-source.d.ts +45 -0
- package/dist/src/lib/snapshot-audit-source.js +58 -0
- package/dist/src/lib/snapshot-audit-source.js.map +1 -0
- package/dist/src/lib/snapshot-audit-store.d.ts +52 -0
- package/dist/src/lib/snapshot-audit-store.js +196 -0
- package/dist/src/lib/snapshot-audit-store.js.map +1 -0
- package/dist/src/lib/snapshot-audit.d.ts +207 -0
- package/dist/src/lib/snapshot-audit.js +431 -0
- package/dist/src/lib/snapshot-audit.js.map +1 -0
- package/dist/src/lib/snapshot-build-rows.d.ts +60 -0
- package/dist/src/lib/snapshot-build-rows.js +87 -0
- package/dist/src/lib/snapshot-build-rows.js.map +1 -0
- package/dist/src/lib/snapshot-build.d.ts +50 -0
- package/dist/src/lib/snapshot-build.js +111 -0
- package/dist/src/lib/snapshot-build.js.map +1 -0
- package/dist/src/lib/snapshot-manifest-layout.d.ts +61 -0
- package/dist/src/lib/snapshot-manifest-layout.js +70 -0
- package/dist/src/lib/snapshot-manifest-layout.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/step-run-table.d.ts +43 -0
- package/dist/src/lib/step-run-table.js +129 -0
- package/dist/src/lib/step-run-table.js.map +1 -0
- package/dist/src/lib/storage-pending-retry.d.ts +26 -0
- package/dist/src/lib/storage-pending-retry.js +42 -0
- package/dist/src/lib/storage-pending-retry.js.map +1 -0
- package/dist/src/lib/swift-codegen/agentGenerator.d.ts +42 -0
- package/dist/src/lib/swift-codegen/agentGenerator.js +118 -0
- package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/banners.d.ts +24 -0
- package/dist/src/lib/swift-codegen/banners.js +25 -0
- package/dist/src/lib/swift-codegen/banners.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js +926 -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/functionGenerator.d.ts +139 -0
- package/dist/src/lib/swift-codegen/functionGenerator.js +462 -0
- package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/generator.d.ts +100 -0
- package/dist/src/lib/swift-codegen/generator.js +457 -0
- package/dist/src/lib/swift-codegen/generator.js.map +1 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +87 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js +661 -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 +128 -0
- package/dist/src/lib/sync-paths.js +195 -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 +138 -0
- package/dist/src/lib/sync-selectors.js +289 -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/webhook-deliver.d.ts +209 -0
- package/dist/src/lib/webhook-deliver.js +519 -0
- package/dist/src/lib/webhook-deliver.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 +211 -0
- package/dist/src/lib/workflow-toml-validator.js +770 -0
- package/dist/src/lib/workflow-toml-validator.js.map +1 -0
- package/dist/src/lib/workflow-usage.d.ts +196 -0
- package/dist/src/lib/workflow-usage.js +310 -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,370 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typechecking a function's sources against the declarations `config push`
|
|
3
|
+
* generates — #3331.
|
|
4
|
+
*
|
|
5
|
+
* The push already owns all three parts of the program: it writes
|
|
6
|
+
* `functions/primitive-db-types.d.ts`, `primitive-functions.d.ts`,
|
|
7
|
+
* `primitive-function-types.d.ts` and `primitive-document-types.d.ts`, it
|
|
8
|
+
* scaffolds (and repairs) the `functions/tsconfig.json` that loads them, and it
|
|
9
|
+
* builds the bundle. Until this file it never asked the compiler anything: the
|
|
10
|
+
* same invocation that wrote the declaration that would have caught a broken
|
|
11
|
+
* function shipped it anyway. That is not hypothetical — an app upgrading to
|
|
12
|
+
* the alpha that made `ctx.user` nullable (#3279) had a live function reading
|
|
13
|
+
* `ctx.user.userId`, and the push that regenerated the declaration shipped it
|
|
14
|
+
* unchanged.
|
|
15
|
+
*
|
|
16
|
+
* ── What the program is ──────────────────────────────────────────────────
|
|
17
|
+
*
|
|
18
|
+
* Exactly what `tsc -p functions/tsconfig.json --noEmit` would compile, with
|
|
19
|
+
* one difference that matters: the generated declarations are read from the
|
|
20
|
+
* PLAN rather than from disk. `--dry-run` writes nothing, and a fresh clone has
|
|
21
|
+
* nothing written yet, so a checker that read the disk would either refuse
|
|
22
|
+
* every function for a missing module or — worse — pass code against a STALE
|
|
23
|
+
* declaration, which is the exact failure #3279 produced. The overlay is the
|
|
24
|
+
* whole point of the fix: the code is held to the declarations this push
|
|
25
|
+
* generates, no earlier ones.
|
|
26
|
+
*
|
|
27
|
+
* Everything else is the tree's own: the tsconfig an author may adjust decides
|
|
28
|
+
* the compiler options (`strict`, `lib`, their own `paths`), because that file
|
|
29
|
+
* is what their editor and their CI `tsc` read, and a push that judged by
|
|
30
|
+
* different options would refuse code their editor calls fine.
|
|
31
|
+
*
|
|
32
|
+
* ── Why per function ─────────────────────────────────────────────────────
|
|
33
|
+
*
|
|
34
|
+
* The push loop applies each `functions/<key>.toml` independently and records
|
|
35
|
+
* one failure row per function, so one broken function must not refuse the
|
|
36
|
+
* others in the tree. The program is built ONCE and the diagnostics are asked
|
|
37
|
+
* for file by file: a function's files are the in-tree sources its bundle build
|
|
38
|
+
* read PLUS everything those pull in through the type graph, so a shared
|
|
39
|
+
* helper's error is attributed to every function that imports it, which is the
|
|
40
|
+
* honest answer — each of them is broken.
|
|
41
|
+
*
|
|
42
|
+
* The type graph rather than the bundle's inputs because the two differ exactly
|
|
43
|
+
* where this check matters: esbuild erases `import type` without ever reading
|
|
44
|
+
* the file, so a helper that only declares types never reaches push's source
|
|
45
|
+
* list, and a broken alias there resolves to `any` and takes the function's
|
|
46
|
+
* whole typing down with it (SO3331-002).
|
|
47
|
+
*
|
|
48
|
+
* A file the tsconfig does not sweep in is added as a root rather than skipped:
|
|
49
|
+
* a narrowed `include` must not silently turn the check off for the code the
|
|
50
|
+
* push is about to ship.
|
|
51
|
+
*/
|
|
52
|
+
import { createRequire } from "module";
|
|
53
|
+
import { existsSync } from "fs";
|
|
54
|
+
import { join, resolve, sep } from "path";
|
|
55
|
+
import { FUNCTIONS_TSCONFIG_FILE, SDK_MODULE_SPECIFIER, planFunctionTypeArtifacts, renderFunctionsTsconfig, } from "./function-db-types.js";
|
|
56
|
+
import { FunctionSchemaCodegenError } from "./function-schema-codegen.js";
|
|
57
|
+
/** The flag that skips the check, named wherever the refusal is read. */
|
|
58
|
+
export const TYPECHECK_SKIP_FLAG = "--no-typecheck";
|
|
59
|
+
/**
|
|
60
|
+
* "Could not find a declaration file for module 'x'" (7016) and "Cannot find
|
|
61
|
+
* module 'x' or its corresponding type declarations" (2307).
|
|
62
|
+
*/
|
|
63
|
+
const MODULE_TYPE_DIAGNOSTIC_CODES = new Set([2307, 7016]);
|
|
64
|
+
/**
|
|
65
|
+
* Is this diagnostic about an npm package's own types rather than about the
|
|
66
|
+
* code push is shipping?
|
|
67
|
+
*
|
|
68
|
+
* A function may import any package that is INSTALLED: esbuild resolves it and
|
|
69
|
+
* inlines it into the bundle. A config tree is not an npm project, so its
|
|
70
|
+
* author cannot answer "try `npm i --save-dev @types/…`" there at all —
|
|
71
|
+
* refusing the push over it would block correct code that ships correctly, for
|
|
72
|
+
* a fact about a third party. So an installed package's missing or absent
|
|
73
|
+
* declaration is not a refusal.
|
|
74
|
+
*
|
|
75
|
+
* Installed is the whole of it, and has to be checked rather than assumed: a
|
|
76
|
+
* package that is not there is a misspelling or a missing dependency, and it is
|
|
77
|
+
* only the VALUE imports the bundle build proved resolve. `import type { X }
|
|
78
|
+
* from "mising-package"` is erased by esbuild without ever being looked up, and
|
|
79
|
+
* left unreported it would put `any` through the code push ships — the failure
|
|
80
|
+
* this check exists to catch (SO3331-003). So the exemption asks module
|
|
81
|
+
* resolution whether the package exists on disk at all, with `allowJs` so that
|
|
82
|
+
* a package shipping only JavaScript counts as found.
|
|
83
|
+
*
|
|
84
|
+
* `primitive-functions` is exempt from the exemption, and has to be: it is the
|
|
85
|
+
* module push itself declares, so its failing to resolve means the program
|
|
86
|
+
* never loaded the generated augmentations — and a check that silently passed
|
|
87
|
+
* everything would be worse than no check at all. A relative or absolute import
|
|
88
|
+
* is never exempt; those are the tree's own files.
|
|
89
|
+
*/
|
|
90
|
+
function isThirdPartyModuleDiagnostic(ts, diagnostic, isInstalledPackage) {
|
|
91
|
+
if (!MODULE_TYPE_DIAGNOSTIC_CODES.has(diagnostic?.code))
|
|
92
|
+
return false;
|
|
93
|
+
const text = ts.flattenDiagnosticMessageText(diagnostic.messageText, " ");
|
|
94
|
+
const specifier = /module '([^']+)'/.exec(text)?.[1];
|
|
95
|
+
if (!specifier || specifier === SDK_MODULE_SPECIFIER)
|
|
96
|
+
return false;
|
|
97
|
+
if (specifier.startsWith(".") || specifier.startsWith("/"))
|
|
98
|
+
return false;
|
|
99
|
+
const containingFile = diagnostic?.file?.fileName;
|
|
100
|
+
if (typeof containingFile !== "string")
|
|
101
|
+
return false;
|
|
102
|
+
return isInstalledPackage(specifier, containingFile);
|
|
103
|
+
}
|
|
104
|
+
/** The CLI's own TypeScript, which is the one that wrote the declarations. */
|
|
105
|
+
function loadTypeScript() {
|
|
106
|
+
const require = createRequire(import.meta.url);
|
|
107
|
+
return require("typescript");
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Build the checker for a config tree, or say why there is none.
|
|
111
|
+
*
|
|
112
|
+
* Nothing to check when the tree has no `functions/` directory — the same test
|
|
113
|
+
* the artifact plan makes, and the same answer: a tree with no functions needs
|
|
114
|
+
* no compiler wiring.
|
|
115
|
+
*/
|
|
116
|
+
export function createFunctionTypechecker(configDir, options = {}) {
|
|
117
|
+
const functionsDir = join(configDir, "functions");
|
|
118
|
+
if (!existsSync(functionsDir))
|
|
119
|
+
return { checker: null, warnings: [] };
|
|
120
|
+
let ts;
|
|
121
|
+
try {
|
|
122
|
+
ts = (options.loadTypeScript ?? loadTypeScript)();
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
return {
|
|
126
|
+
checker: null,
|
|
127
|
+
warnings: [
|
|
128
|
+
"Function sources were not typechecked: the typescript compiler could " +
|
|
129
|
+
`not be loaded (${err?.message ?? String(err)}).`,
|
|
130
|
+
],
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
// The declarations THIS push generates, in memory. They may not be on disk
|
|
134
|
+
// (a dry run, a fresh clone) and what is on disk may be stale.
|
|
135
|
+
//
|
|
136
|
+
// A malformed schema in ONE `functions/*.toml` makes the whole plan
|
|
137
|
+
// unrenderable (#3281), and that must not take the push down with it: the
|
|
138
|
+
// file's own push already refuses it by name and the rest of the tree lands.
|
|
139
|
+
// With no declarations to judge against there is nothing honest left to check
|
|
140
|
+
// — what is on disk is by definition the stale set this fix exists to
|
|
141
|
+
// distrust — so say so once and check nothing (SO3331-001).
|
|
142
|
+
const overlay = new Map();
|
|
143
|
+
try {
|
|
144
|
+
for (const artifact of planFunctionTypeArtifacts(configDir)) {
|
|
145
|
+
overlay.set(resolve(artifact.absolute), artifact.contents);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
if (!(err instanceof FunctionSchemaCodegenError))
|
|
150
|
+
throw err;
|
|
151
|
+
return {
|
|
152
|
+
checker: null,
|
|
153
|
+
warnings: [
|
|
154
|
+
"Function sources were not typechecked: the declarations this push " +
|
|
155
|
+
`generates could not be rendered (${err.message}).`,
|
|
156
|
+
],
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const readFile = (path) => {
|
|
160
|
+
const planned = overlay.get(resolve(path));
|
|
161
|
+
if (planned !== undefined)
|
|
162
|
+
return planned;
|
|
163
|
+
return ts.sys.readFile(path);
|
|
164
|
+
};
|
|
165
|
+
const fileExists = (path) => overlay.has(resolve(path)) || ts.sys.fileExists(path);
|
|
166
|
+
const tsconfigPath = join(functionsDir, FUNCTIONS_TSCONFIG_FILE);
|
|
167
|
+
// The plan writes a tsconfig only when one is missing or its wiring is; an
|
|
168
|
+
// author's own file is read from disk. A tree with neither is checked against
|
|
169
|
+
// the scaffold, so the answer does not depend on whether push wrote it yet.
|
|
170
|
+
const tsconfigText = readFile(tsconfigPath) ??
|
|
171
|
+
(existsSync(tsconfigPath) ? undefined : renderFunctionsTsconfig());
|
|
172
|
+
if (tsconfigText === undefined) {
|
|
173
|
+
return {
|
|
174
|
+
checker: null,
|
|
175
|
+
warnings: [
|
|
176
|
+
`Function sources were not typechecked: ${FUNCTIONS_TSCONFIG_FILE} could not be read.`,
|
|
177
|
+
],
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const warnings = [];
|
|
181
|
+
const parsedJson = ts.parseConfigFileTextToJson(tsconfigPath, tsconfigText);
|
|
182
|
+
if (parsedJson.error) {
|
|
183
|
+
return {
|
|
184
|
+
checker: null,
|
|
185
|
+
warnings: [
|
|
186
|
+
`Function sources were not typechecked: functions/${FUNCTIONS_TSCONFIG_FILE} is not readable as JSON.`,
|
|
187
|
+
],
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
const parseHost = {
|
|
191
|
+
useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
|
|
192
|
+
readDirectory: ts.sys.readDirectory,
|
|
193
|
+
fileExists,
|
|
194
|
+
readFile,
|
|
195
|
+
};
|
|
196
|
+
const parsed = ts.parseJsonConfigFileContent(parsedJson.config, parseHost, functionsDir, undefined, tsconfigPath);
|
|
197
|
+
// A tsconfig the compiler itself objects to is reported once and the check
|
|
198
|
+
// still runs on the options it could make sense of: silence here is how a
|
|
199
|
+
// program nothing loads passes for a program that found nothing wrong.
|
|
200
|
+
for (const diagnostic of parsed.errors ?? []) {
|
|
201
|
+
warnings.push(`functions/${FUNCTIONS_TSCONFIG_FILE}: ` +
|
|
202
|
+
ts.flattenDiagnosticMessageText(diagnostic.messageText, " "));
|
|
203
|
+
}
|
|
204
|
+
const formatHost = {
|
|
205
|
+
getCanonicalFileName: (fileName) => fileName,
|
|
206
|
+
getCurrentDirectory: () => functionsDir,
|
|
207
|
+
getNewLine: () => "\n",
|
|
208
|
+
};
|
|
209
|
+
// Module resolution over the same overlay the program reads, so an import of
|
|
210
|
+
// `primitive-functions` lands on the planned declaration rather than on
|
|
211
|
+
// whatever is (or is not) on disk.
|
|
212
|
+
const resolutionHost = {
|
|
213
|
+
fileExists,
|
|
214
|
+
readFile,
|
|
215
|
+
useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames,
|
|
216
|
+
realpath: ts.sys.realpath,
|
|
217
|
+
getCurrentDirectory: () => functionsDir,
|
|
218
|
+
getDirectories: ts.sys.getDirectories,
|
|
219
|
+
directoryExists: ts.sys.directoryExists,
|
|
220
|
+
};
|
|
221
|
+
const resolveModule = (specifier, containingFile, options) => ts.resolveModuleName(specifier, containingFile, options, resolutionHost)
|
|
222
|
+
.resolvedModule;
|
|
223
|
+
/** Does this bare specifier name a package that is actually installed? */
|
|
224
|
+
const installedPackages = new Map();
|
|
225
|
+
const isInstalledPackage = (specifier, containingFile) => {
|
|
226
|
+
const key = `${specifier}${containingFile}`;
|
|
227
|
+
const cached = installedPackages.get(key);
|
|
228
|
+
if (cached !== undefined)
|
|
229
|
+
return cached;
|
|
230
|
+
// `allowJs` so a package shipping only JavaScript — the case the exemption
|
|
231
|
+
// is for — resolves, and `noImplicitAny: false` so the lookup answers
|
|
232
|
+
// "found" rather than re-raising the diagnostic being classified.
|
|
233
|
+
const resolved = resolveModule(specifier, containingFile, {
|
|
234
|
+
...parsed.options,
|
|
235
|
+
allowJs: true,
|
|
236
|
+
checkJs: false,
|
|
237
|
+
noImplicitAny: false,
|
|
238
|
+
});
|
|
239
|
+
const installed = resolved !== undefined;
|
|
240
|
+
installedPackages.set(key, installed);
|
|
241
|
+
return installed;
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* Is this an in-tree file of the author's, as opposed to a dependency?
|
|
245
|
+
*
|
|
246
|
+
* A package's own declarations are not this check's business (see
|
|
247
|
+
* {@link isThirdPartyModuleDiagnostic}), and neither are the generated ones —
|
|
248
|
+
* an error in those is a push bug, not something the author's push can act
|
|
249
|
+
* on.
|
|
250
|
+
*/
|
|
251
|
+
const treeRoot = resolve(configDir);
|
|
252
|
+
const isTreeSource = (path) => path.startsWith(treeRoot.endsWith(sep) ? treeRoot : treeRoot + sep) &&
|
|
253
|
+
!path.split(sep).includes("node_modules") &&
|
|
254
|
+
!overlay.has(path);
|
|
255
|
+
/**
|
|
256
|
+
* The in-tree files one source pulls in — INCLUDING the type-only imports
|
|
257
|
+
* esbuild erases, which is why this walks the graph itself instead of
|
|
258
|
+
* trusting the bundle's input list (SO3331-002).
|
|
259
|
+
*/
|
|
260
|
+
const importsOf = new Map();
|
|
261
|
+
const localImports = (path) => {
|
|
262
|
+
const cached = importsOf.get(path);
|
|
263
|
+
if (cached !== undefined)
|
|
264
|
+
return cached;
|
|
265
|
+
const found = [];
|
|
266
|
+
const text = readFile(path);
|
|
267
|
+
if (text !== undefined) {
|
|
268
|
+
for (const imported of ts.preProcessFile(text, true, true).importedFiles) {
|
|
269
|
+
const target = resolveModule(imported.fileName, path, parsed.options)
|
|
270
|
+
?.resolvedFileName;
|
|
271
|
+
if (target === undefined)
|
|
272
|
+
continue;
|
|
273
|
+
const resolved = resolve(target);
|
|
274
|
+
if (isTreeSource(resolved))
|
|
275
|
+
found.push(resolved);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
importsOf.set(path, found);
|
|
279
|
+
return found;
|
|
280
|
+
};
|
|
281
|
+
/** A function's sources and everything their types reach, in tree order. */
|
|
282
|
+
const typeGraph = (entries) => {
|
|
283
|
+
const seen = new Set();
|
|
284
|
+
const files = [];
|
|
285
|
+
const queue = [...entries];
|
|
286
|
+
while (queue.length > 0) {
|
|
287
|
+
const path = queue.shift();
|
|
288
|
+
if (seen.has(path))
|
|
289
|
+
continue;
|
|
290
|
+
seen.add(path);
|
|
291
|
+
files.push(path);
|
|
292
|
+
queue.push(...localImports(path));
|
|
293
|
+
}
|
|
294
|
+
return files;
|
|
295
|
+
};
|
|
296
|
+
const roots = new Set((parsed.fileNames ?? []).map((file) => resolve(file)));
|
|
297
|
+
// Every generated declaration is a root whether or not the tsconfig's globs
|
|
298
|
+
// would have found it on disk — the augmentations are the point of the check.
|
|
299
|
+
for (const [path] of overlay) {
|
|
300
|
+
if (path.endsWith(".d.ts"))
|
|
301
|
+
roots.add(path);
|
|
302
|
+
}
|
|
303
|
+
let program = null;
|
|
304
|
+
const buildProgram = () => {
|
|
305
|
+
const host = ts.createCompilerHost(parsed.options, true);
|
|
306
|
+
const getSourceFile = host.getSourceFile.bind(host);
|
|
307
|
+
host.readFile = readFile;
|
|
308
|
+
host.fileExists = fileExists;
|
|
309
|
+
host.getSourceFile = (fileName, languageVersion, onError, shouldCreate) => {
|
|
310
|
+
const planned = overlay.get(resolve(fileName));
|
|
311
|
+
if (planned !== undefined) {
|
|
312
|
+
return ts.createSourceFile(fileName, planned, languageVersion, true);
|
|
313
|
+
}
|
|
314
|
+
return getSourceFile(fileName, languageVersion, onError, shouldCreate);
|
|
315
|
+
};
|
|
316
|
+
return ts.createProgram({
|
|
317
|
+
rootNames: [...roots],
|
|
318
|
+
options: parsed.options,
|
|
319
|
+
host,
|
|
320
|
+
});
|
|
321
|
+
};
|
|
322
|
+
const checker = {
|
|
323
|
+
check(functionKey, sources) {
|
|
324
|
+
const paths = typeGraph(sources.map((source) => resolve(configDir, source)));
|
|
325
|
+
// A source the tsconfig's `include` misses is added rather than skipped:
|
|
326
|
+
// this is code the push is about to ship.
|
|
327
|
+
let added = false;
|
|
328
|
+
for (const path of paths) {
|
|
329
|
+
if (!roots.has(path)) {
|
|
330
|
+
roots.add(path);
|
|
331
|
+
added = true;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (program === null || added)
|
|
335
|
+
program = buildProgram();
|
|
336
|
+
const diagnostics = [];
|
|
337
|
+
for (const path of paths) {
|
|
338
|
+
const sourceFile = program.getSourceFile(path);
|
|
339
|
+
if (!sourceFile)
|
|
340
|
+
continue;
|
|
341
|
+
for (const diagnostic of [
|
|
342
|
+
...program.getSyntacticDiagnostics(sourceFile),
|
|
343
|
+
...program.getSemanticDiagnostics(sourceFile),
|
|
344
|
+
]) {
|
|
345
|
+
if (isThirdPartyModuleDiagnostic(ts, diagnostic, isInstalledPackage))
|
|
346
|
+
continue;
|
|
347
|
+
diagnostics.push(diagnostic);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (diagnostics.length === 0)
|
|
351
|
+
return null;
|
|
352
|
+
const formatted = ts
|
|
353
|
+
.formatDiagnostics(diagnostics, formatHost)
|
|
354
|
+
.replace(/\n+$/, "");
|
|
355
|
+
return {
|
|
356
|
+
diagnostics: formatted,
|
|
357
|
+
message: `function '${functionKey}' does not typecheck against the ` +
|
|
358
|
+
"declarations `config push` generates:\n" +
|
|
359
|
+
formatted
|
|
360
|
+
.split("\n")
|
|
361
|
+
.map((line) => ` ${line}`)
|
|
362
|
+
.join("\n") +
|
|
363
|
+
"\n Reproduce with `tsc -p functions/tsconfig.json --noEmit`; " +
|
|
364
|
+
`push with ${TYPECHECK_SKIP_FLAG} to ship it unchecked.`,
|
|
365
|
+
};
|
|
366
|
+
},
|
|
367
|
+
};
|
|
368
|
+
return { checker, warnings };
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=function-typecheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-typecheck.js","sourceRoot":"","sources":["../../../src/lib/function-typecheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What `primitive functions configs` and `functions activate` render — #3462.
|
|
3
|
+
*
|
|
4
|
+
* Pure: every function here takes the server's JSON and answers strings or
|
|
5
|
+
* rows. The table's shape, the trigger summary, the activate output and the
|
|
6
|
+
* three messages `config pull` and `config diff` gained are all decisions about
|
|
7
|
+
* what an operator is told, and they are decided once here so they can be put
|
|
8
|
+
* to a test without a server or a spawned CLI.
|
|
9
|
+
*/
|
|
10
|
+
/** First twelve hex of a hash, or `-`. Enough to compare two by eye. */
|
|
11
|
+
export declare function shortHash(value: unknown): string;
|
|
12
|
+
/**
|
|
13
|
+
* The version's triggers, as one cell.
|
|
14
|
+
*
|
|
15
|
+
* `webhook`, `cron×2`, joined by `+`, `-` for a version that declares none. A
|
|
16
|
+
* server that predates a trigger kind sends no key for it, which reads as none
|
|
17
|
+
* rather than as an error.
|
|
18
|
+
*/
|
|
19
|
+
export declare function triggerSummary(triggers: unknown): string;
|
|
20
|
+
export interface FunctionVersionRow {
|
|
21
|
+
configId: string;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
active: string;
|
|
24
|
+
content: string;
|
|
25
|
+
envelope: string;
|
|
26
|
+
triggers: string;
|
|
27
|
+
by: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* One row per version, in the order the server sent them (newest first).
|
|
31
|
+
*
|
|
32
|
+
* #3482 — there is no MODE cell. The config says nothing about how a function
|
|
33
|
+
* runs, so every version takes both verbs and a per-version column would say
|
|
34
|
+
* the same thing on every row of every function.
|
|
35
|
+
*/
|
|
36
|
+
export declare function functionVersionRows(items: unknown[]): FunctionVersionRow[];
|
|
37
|
+
/**
|
|
38
|
+
* `Activated <date> by <adminId>` for the active version, from the header.
|
|
39
|
+
*
|
|
40
|
+
* A header written before #3462 carries neither field. It reads `unknown` — the
|
|
41
|
+
* pointer was moved by a push that did not record it, and saying so is better
|
|
42
|
+
* than naming an actor nobody verified.
|
|
43
|
+
*/
|
|
44
|
+
export declare function activatedLine(record: {
|
|
45
|
+
activeConfigActivatedAt?: unknown;
|
|
46
|
+
activeConfigActivatedBy?: unknown;
|
|
47
|
+
}, formatDate: (value: string) => string): string;
|
|
48
|
+
/** The `Version <id> (content <hash>)` line beneath `Key`. */
|
|
49
|
+
export declare function versionLine(record: {
|
|
50
|
+
activeConfigId?: unknown;
|
|
51
|
+
contentHash?: unknown;
|
|
52
|
+
}): string;
|
|
53
|
+
/**
|
|
54
|
+
* `Newer version: <configId>, pushed <date>`, or null when the active version
|
|
55
|
+
* IS the newest.
|
|
56
|
+
*
|
|
57
|
+
* Read off the listing's first page: the route answers newest first, so one row
|
|
58
|
+
* is enough to know whether the function is rolled back.
|
|
59
|
+
*/
|
|
60
|
+
export declare function newerVersionLine(newest: {
|
|
61
|
+
configId?: unknown;
|
|
62
|
+
createdAt?: unknown;
|
|
63
|
+
} | null | undefined, activeConfigId: unknown, formatDate: (value: string) => string): string | null;
|
|
64
|
+
export interface ActivationAnswer {
|
|
65
|
+
configId?: unknown;
|
|
66
|
+
contentHash?: unknown;
|
|
67
|
+
createdAt?: unknown;
|
|
68
|
+
activated?: unknown;
|
|
69
|
+
previousConfigId?: unknown;
|
|
70
|
+
activatedAt?: unknown;
|
|
71
|
+
activatedBy?: unknown;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* What `functions activate` prints.
|
|
75
|
+
*
|
|
76
|
+
* The already-active answer is its OWN sentence rather than the happy one with
|
|
77
|
+
* different numbers: the operator asked for a change and got none, and the
|
|
78
|
+
* thing that DID happen (the trigger rows were re-checked) is what they need to
|
|
79
|
+
* know.
|
|
80
|
+
*/
|
|
81
|
+
export declare function activationOutput(answer: ActivationAnswer, formatDate: (value: string) => string): {
|
|
82
|
+
headline: string;
|
|
83
|
+
lines: Array<[string, string]>;
|
|
84
|
+
changed: boolean;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* What `functions activate` prints when the server refuses — D3462-004's
|
|
88
|
+
* "the server's message and code".
|
|
89
|
+
*
|
|
90
|
+
* The sentence is what an operator reads; the code is the stable identifier a
|
|
91
|
+
* script branches on, and it does not appear in the sentence. An archived
|
|
92
|
+
* function, an archived version, a held delete lease and a pointer another
|
|
93
|
+
* writer moved each owe a different next move, and the client parses `code`
|
|
94
|
+
* out of the body into its own field — so printing the message alone put it
|
|
95
|
+
* out of reach. The two 404s answer `{ error }` and nothing else, so the
|
|
96
|
+
* parenthetical is omitted rather than invented.
|
|
97
|
+
*/
|
|
98
|
+
export declare function activationRefusalLine(err: {
|
|
99
|
+
message?: unknown;
|
|
100
|
+
code?: unknown;
|
|
101
|
+
}): string;
|
|
102
|
+
/** The confirmation an activation asks for unless `-y`. */
|
|
103
|
+
export declare function activationPrompt(functionId: string, configId: string): string;
|
|
104
|
+
/**
|
|
105
|
+
* What `config pull` adds when the version it just wrote is not the newest.
|
|
106
|
+
*
|
|
107
|
+
* Pull writes the ACTIVE version's bytes, which is right — the tree should
|
|
108
|
+
* describe what runs — but on a rolled-back function that silently discards a
|
|
109
|
+
* newer version's code from the tree, so the line names both and both remedies.
|
|
110
|
+
*/
|
|
111
|
+
export declare function pullNewerVersionLine(functionKey: string, activeConfigId: string, newest: {
|
|
112
|
+
configId?: unknown;
|
|
113
|
+
createdAt?: unknown;
|
|
114
|
+
}, formatDate: (value: string) => string): string;
|
|
115
|
+
/**
|
|
116
|
+
* The hint `config diff` uses when the tree matches a version that exists and
|
|
117
|
+
* is simply not the active one.
|
|
118
|
+
*
|
|
119
|
+
* Without it the generic hint ("the built bundle or a source file differs")
|
|
120
|
+
* sends an operator looking for an edit they did not make.
|
|
121
|
+
*/
|
|
122
|
+
export declare function rollbackDiffHint(newestConfigId: string, activeConfigId: string): string;
|