primitive-admin 1.2.0-alpha.0 → 1.2.0-alpha.10
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 +108 -136
- package/assets/skill/skills/primitive-platform/SKILL.md +37 -4
- package/dist/bin/primitive.js +30 -35
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/agent-sessions.d.ts +133 -0
- package/dist/src/commands/agent-sessions.js +792 -0
- package/dist/src/commands/agent-sessions.js.map +1 -0
- package/dist/src/commands/analytics.js +0 -148
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps-children.d.ts +54 -0
- package/dist/src/commands/apps-children.js +631 -0
- package/dist/src/commands/apps-children.js.map +1 -0
- package/dist/src/commands/apps.d.ts +6 -0
- package/dist/src/commands/apps.js +131 -9
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth-sessions.d.ts +3 -3
- package/dist/src/commands/auth-sessions.js +117 -23
- package/dist/src/commands/auth-sessions.js.map +1 -1
- package/dist/src/commands/auth.js +460 -36
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/collections.js +316 -256
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/config.d.ts +1 -1
- package/dist/src/commands/config.js +60 -28
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/connections.js +12 -17
- package/dist/src/commands/connections.js.map +1 -1
- package/dist/src/commands/database-type-configs.js +2 -76
- package/dist/src/commands/database-type-configs.js.map +1 -1
- package/dist/src/commands/databases.d.ts +9 -0
- package/dist/src/commands/databases.js +228 -566
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/db3-types.d.ts +15 -0
- package/dist/src/commands/db3-types.js +157 -0
- package/dist/src/commands/db3-types.js.map +1 -0
- package/dist/src/commands/db3.d.ts +12 -0
- package/dist/src/commands/db3.js +1052 -0
- package/dist/src/commands/db3.js.map +1 -0
- package/dist/src/commands/documents.d.ts +121 -2
- package/dist/src/commands/documents.js +1601 -1251
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/env.d.ts +9 -1
- package/dist/src/commands/env.js +164 -49
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/function-trigger-commands.d.ts +28 -0
- package/dist/src/commands/function-trigger-commands.js +341 -0
- package/dist/src/commands/function-trigger-commands.js.map +1 -0
- package/dist/src/commands/functions.js +297 -24
- package/dist/src/commands/functions.js.map +1 -1
- package/dist/src/commands/groups.js +150 -49
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.js +5 -5
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.js +23 -5
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +14 -8
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/metadata-category-configs.d.ts +2 -2
- package/dist/src/commands/metadata-category-configs.js +2 -2
- package/dist/src/commands/prompts.d.ts +7 -0
- package/dist/src/commands/prompts.js +48 -5
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +9 -17
- package/dist/src/commands/scripts.js +24 -479
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/sessions.js +3 -8
- package/dist/src/commands/sessions.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +36 -8
- package/dist/src/commands/sync-app-settings.js +109 -23
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +436 -613
- package/dist/src/commands/sync.js +2604 -5977
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.js +4 -9
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.js +77 -2
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +5 -83
- package/dist/src/commands/workflows.js +57 -2282
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/aggregate-output.d.ts +25 -0
- package/dist/src/lib/aggregate-output.js +53 -0
- package/dist/src/lib/aggregate-output.js.map +1 -0
- package/dist/src/lib/api-client.d.ts +681 -581
- package/dist/src/lib/api-client.js +880 -851
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +47 -1
- package/dist/src/lib/app-settings-descriptor.js +114 -10
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/auth-fixtures.d.ts +44 -0
- package/dist/src/lib/auth-fixtures.js +61 -0
- package/dist/src/lib/auth-fixtures.js.map +1 -0
- package/dist/src/lib/auth-flow.d.ts +41 -1
- package/dist/src/lib/auth-flow.js +70 -16
- package/dist/src/lib/auth-flow.js.map +1 -1
- package/dist/src/lib/block-layout.d.ts +12 -23
- package/dist/src/lib/block-layout.js +26 -92
- package/dist/src/lib/block-layout.js.map +1 -1
- package/dist/src/lib/block-selector.d.ts +2 -2
- package/dist/src/lib/block-selector.js +2 -2
- package/dist/src/lib/child-apps-local.d.ts +164 -0
- package/dist/src/lib/child-apps-local.js +258 -0
- package/dist/src/lib/child-apps-local.js.map +1 -0
- package/dist/src/lib/ci-session-request.d.ts +22 -0
- package/dist/src/lib/ci-session-request.js +51 -0
- package/dist/src/lib/ci-session-request.js.map +1 -0
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +10 -8
- package/dist/src/lib/codegen-shared/generatedFiles.js +21 -15
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.d.ts +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.js +1 -1
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +2 -2
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +2 -2
- package/dist/src/lib/collection-export.d.ts +76 -15
- package/dist/src/lib/collection-export.js +116 -23
- package/dist/src/lib/collection-export.js.map +1 -1
- package/dist/src/lib/collection-principal.d.ts +22 -0
- package/dist/src/lib/collection-principal.js +35 -0
- package/dist/src/lib/collection-principal.js.map +1 -0
- package/dist/src/lib/config-object-descriptor.d.ts +3 -22
- package/dist/src/lib/config-object-descriptor.js +56 -291
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/config-payload.js +2 -3
- package/dist/src/lib/config-payload.js.map +1 -1
- package/dist/src/lib/config-surface.d.ts +5 -7
- package/dist/src/lib/config-surface.js +18 -40
- package/dist/src/lib/config-surface.js.map +1 -1
- package/dist/src/lib/connections-list.d.ts +10 -0
- package/dist/src/lib/connections-list.js +18 -0
- package/dist/src/lib/connections-list.js.map +1 -0
- package/dist/src/lib/credentials-home.d.ts +58 -0
- package/dist/src/lib/credentials-home.js +204 -0
- package/dist/src/lib/credentials-home.js.map +1 -0
- package/dist/src/lib/credentials-lock.d.ts +88 -0
- package/dist/src/lib/credentials-lock.js +302 -0
- package/dist/src/lib/credentials-lock.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +179 -24
- package/dist/src/lib/credentials-store.js +712 -77
- package/dist/src/lib/credentials-store.js.map +1 -1
- package/dist/src/lib/csv.d.ts +8 -9
- package/dist/src/lib/csv.js +3 -4
- package/dist/src/lib/csv.js.map +1 -1
- package/dist/src/lib/custodian.d.ts +8 -0
- package/dist/src/lib/custodian.js +18 -0
- package/dist/src/lib/custodian.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +5 -16
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/db-codegen/dbNaming.d.ts +5 -13
- package/dist/src/lib/db-codegen/dbNaming.js +5 -17
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +7 -56
- package/dist/src/lib/db-codegen/dbTemplates.js +25 -125
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +2 -2
- package/dist/src/lib/db-codegen/dbTsTypes.js +2 -2
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +67 -2
- package/dist/src/lib/db-codegen/dbTypeIR.js +13 -2
- package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -1
- package/dist/src/lib/db3-export.d.ts +231 -0
- package/dist/src/lib/db3-export.js +510 -0
- package/dist/src/lib/db3-export.js.map +1 -0
- package/dist/src/lib/db3-index-output.d.ts +27 -0
- package/dist/src/lib/db3-index-output.js +49 -0
- package/dist/src/lib/db3-index-output.js.map +1 -0
- package/dist/src/lib/document-export-lookups.d.ts +31 -0
- package/dist/src/lib/document-export-lookups.js +53 -0
- package/dist/src/lib/document-export-lookups.js.map +1 -0
- package/dist/src/lib/document-export-permissions.d.ts +7 -5
- package/dist/src/lib/document-export-permissions.js +7 -5
- package/dist/src/lib/document-export-permissions.js.map +1 -1
- package/dist/src/lib/document-export-record-log.d.ts +57 -0
- package/dist/src/lib/document-export-record-log.js +215 -0
- package/dist/src/lib/document-export-record-log.js.map +1 -0
- package/dist/src/lib/document-ingest-artifact.d.ts +26 -2
- package/dist/src/lib/document-ingest-artifact.js +42 -8
- package/dist/src/lib/document-ingest-artifact.js.map +1 -1
- package/dist/src/lib/document-ingest-format2.d.ts +36 -0
- package/dist/src/lib/document-ingest-format2.js +78 -0
- package/dist/src/lib/document-ingest-format2.js.map +1 -0
- package/dist/src/lib/document-ingest-input.d.ts +9 -0
- package/dist/src/lib/document-ingest-input.js +28 -1
- package/dist/src/lib/document-ingest-input.js.map +1 -1
- package/dist/src/lib/document-ingest-rows.d.ts +16 -0
- package/dist/src/lib/document-ingest-rows.js +17 -0
- package/dist/src/lib/document-ingest-rows.js.map +1 -1
- package/dist/src/lib/document-ingest.d.ts +33 -1
- package/dist/src/lib/document-ingest.js +49 -0
- package/dist/src/lib/document-ingest.js.map +1 -1
- package/dist/src/lib/document-schema-rows.d.ts +42 -0
- package/dist/src/lib/document-schema-rows.js +53 -0
- package/dist/src/lib/document-schema-rows.js.map +1 -0
- package/dist/src/lib/env-resolver-core.d.ts +70 -2
- package/dist/src/lib/env-resolver-core.js +137 -20
- package/dist/src/lib/env-resolver-core.js.map +1 -1
- package/dist/src/lib/env-resolver.d.ts +14 -2
- package/dist/src/lib/env-resolver.js +32 -10
- package/dist/src/lib/env-resolver.js.map +1 -1
- package/dist/src/lib/function-authorize-check.d.ts +142 -0
- package/dist/src/lib/function-authorize-check.js +310 -0
- package/dist/src/lib/function-authorize-check.js.map +1 -0
- package/dist/src/lib/function-authorize-view.d.ts +15 -0
- package/dist/src/lib/function-authorize-view.js +50 -0
- package/dist/src/lib/function-authorize-view.js.map +1 -0
- package/dist/src/lib/function-bundle.d.ts +38 -18
- package/dist/src/lib/function-bundle.js +96 -35
- package/dist/src/lib/function-bundle.js.map +1 -1
- package/dist/src/lib/function-collect.d.ts +75 -12
- package/dist/src/lib/function-collect.js +427 -12
- package/dist/src/lib/function-collect.js.map +1 -1
- package/dist/src/lib/function-db-types.d.ts +29 -0
- package/dist/src/lib/function-db-types.js +117 -7
- package/dist/src/lib/function-db-types.js.map +1 -1
- package/dist/src/lib/function-document-types.d.ts +5 -3
- package/dist/src/lib/function-document-types.js +10 -14
- package/dist/src/lib/function-document-types.js.map +1 -1
- package/dist/src/lib/function-lint.d.ts +34 -0
- package/dist/src/lib/function-lint.js +112 -0
- package/dist/src/lib/function-lint.js.map +1 -0
- package/dist/src/lib/function-log-row.js +21 -2
- package/dist/src/lib/function-log-row.js.map +1 -1
- package/dist/src/lib/function-run.d.ts +16 -21
- package/dist/src/lib/function-run.js +37 -30
- package/dist/src/lib/function-run.js.map +1 -1
- package/dist/src/lib/function-schema-codegen.d.ts +1 -1
- package/dist/src/lib/function-schema-codegen.js +5 -5
- package/dist/src/lib/function-schema-codegen.js.map +1 -1
- package/dist/src/lib/function-source-roots.d.ts +67 -0
- package/dist/src/lib/function-source-roots.js +148 -0
- package/dist/src/lib/function-source-roots.js.map +1 -0
- package/dist/src/lib/function-sync.d.ts +108 -22
- package/dist/src/lib/function-sync.js +127 -39
- package/dist/src/lib/function-sync.js.map +1 -1
- package/dist/src/lib/function-trigger-listing.d.ts +11 -6
- package/dist/src/lib/function-trigger-listing.js +32 -11
- package/dist/src/lib/function-trigger-listing.js.map +1 -1
- package/dist/src/lib/function-typecheck.d.ts +37 -2
- package/dist/src/lib/function-typecheck.js +210 -28
- package/dist/src/lib/function-typecheck.js.map +1 -1
- package/dist/src/lib/function-versions.d.ts +2 -0
- package/dist/src/lib/function-versions.js +1 -0
- package/dist/src/lib/function-versions.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +0 -20
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +703 -201
- package/dist/src/lib/generated-config-surfaces.js +2335 -2033
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-sdk-types.d.ts +1 -1
- package/dist/src/lib/generated-sdk-types.js +1 -1
- package/dist/src/lib/generated-sdk-types.js.map +1 -1
- package/dist/src/lib/init-adopt.js +12 -3
- package/dist/src/lib/init-adopt.js.map +1 -1
- package/dist/src/lib/init-login-note.d.ts +13 -0
- package/dist/src/lib/init-login-note.js +22 -0
- package/dist/src/lib/init-login-note.js.map +1 -0
- package/dist/src/lib/json-value.d.ts +6 -0
- package/dist/src/lib/json-value.js +13 -0
- package/dist/src/lib/json-value.js.map +1 -0
- package/dist/src/lib/load-routes.d.ts +33 -0
- package/dist/src/lib/load-routes.js +35 -0
- package/dist/src/lib/load-routes.js.map +1 -0
- package/dist/src/lib/local-state.d.ts +38 -7
- package/dist/src/lib/local-state.js +172 -49
- package/dist/src/lib/local-state.js.map +1 -1
- package/dist/src/lib/local-test-cases.d.ts +5 -2
- package/dist/src/lib/local-test-cases.js +7 -4
- package/dist/src/lib/local-test-cases.js.map +1 -1
- package/dist/src/lib/log-inspection.d.ts +42 -4
- package/dist/src/lib/log-inspection.js +37 -5
- package/dist/src/lib/log-inspection.js.map +1 -1
- package/dist/src/lib/login-exchange-check.d.ts +18 -0
- package/dist/src/lib/login-exchange-check.js +27 -0
- package/dist/src/lib/login-exchange-check.js.map +1 -0
- package/dist/src/lib/login-scope-lines.d.ts +25 -0
- package/dist/src/lib/login-scope-lines.js +45 -0
- package/dist/src/lib/login-scope-lines.js.map +1 -0
- package/dist/src/lib/logout-admin-session.d.ts +2 -1
- package/dist/src/lib/logout-admin-session.js +7 -1
- package/dist/src/lib/logout-admin-session.js.map +1 -1
- package/dist/src/lib/object-status-filter.d.ts +9 -1
- package/dist/src/lib/object-status-filter.js +9 -1
- package/dist/src/lib/object-status-filter.js.map +1 -1
- package/dist/src/lib/output.js +2 -0
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/paginate.d.ts +0 -5
- package/dist/src/lib/paginate.js +0 -5
- package/dist/src/lib/paginate.js.map +1 -1
- package/dist/src/lib/pin-refusal-hint.d.ts +12 -0
- package/dist/src/lib/pin-refusal-hint.js +35 -0
- package/dist/src/lib/pin-refusal-hint.js.map +1 -0
- package/dist/src/lib/primitive-env-plugin.d.ts +99 -0
- package/dist/src/lib/primitive-env-plugin.js +408 -0
- package/dist/src/lib/primitive-env-plugin.js.map +1 -0
- package/dist/src/lib/project-config.d.ts +7 -0
- package/dist/src/lib/project-config.js +22 -1
- package/dist/src/lib/project-config.js.map +1 -1
- package/dist/src/lib/project-login-apps.d.ts +8 -0
- package/dist/src/lib/project-login-apps.js +27 -0
- package/dist/src/lib/project-login-apps.js.map +1 -0
- package/dist/src/lib/prompt-schema-codegen.d.ts +10 -3
- package/dist/src/lib/prompt-schema-codegen.js +52 -11
- package/dist/src/lib/prompt-schema-codegen.js.map +1 -1
- package/dist/src/lib/pull-write.d.ts +31 -0
- package/dist/src/lib/pull-write.js +49 -0
- package/dist/src/lib/pull-write.js.map +1 -0
- package/dist/src/lib/push-failure-report.d.ts +45 -0
- package/dist/src/lib/push-failure-report.js +57 -0
- package/dist/src/lib/push-failure-report.js.map +1 -0
- package/dist/src/lib/records-verbs.d.ts +69 -0
- package/dist/src/lib/records-verbs.js +40 -0
- package/dist/src/lib/records-verbs.js.map +1 -0
- package/dist/src/lib/refresh-admin-credentials.d.ts +7 -0
- package/dist/src/lib/refresh-admin-credentials.js +16 -4
- package/dist/src/lib/refresh-admin-credentials.js.map +1 -1
- package/dist/src/lib/root-import-decision.d.ts +65 -0
- package/dist/src/lib/root-import-decision.js +109 -0
- package/dist/src/lib/root-import-decision.js.map +1 -0
- package/dist/src/lib/run-status.d.ts +1 -1
- package/dist/src/lib/run-status.generated.d.ts +2 -2
- package/dist/src/lib/run-status.generated.js +3 -1
- package/dist/src/lib/run-status.generated.js.map +1 -1
- package/dist/src/lib/run-status.js +1 -1
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.d.ts +129 -0
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.js +269 -0
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.js.map +1 -0
- package/dist/src/lib/schema-codegen/naming.d.ts +35 -0
- package/dist/src/lib/schema-codegen/naming.js +83 -0
- package/dist/src/lib/schema-codegen/naming.js.map +1 -0
- package/dist/src/lib/schema-codegen/schemaToTs.d.ts +82 -0
- package/dist/src/lib/schema-codegen/schemaToTs.js +305 -0
- package/dist/src/lib/schema-codegen/schemaToTs.js.map +1 -0
- package/dist/src/lib/scope-request.d.ts +84 -0
- package/dist/src/lib/scope-request.js +235 -0
- package/dist/src/lib/scope-request.js.map +1 -0
- package/dist/src/lib/session-id.d.ts +9 -0
- package/dist/src/lib/session-id.js +28 -0
- package/dist/src/lib/session-id.js.map +1 -0
- package/dist/src/lib/snapshot-build-rows.d.ts +21 -0
- package/dist/src/lib/snapshot-build-rows.js +22 -0
- package/dist/src/lib/snapshot-build-rows.js.map +1 -1
- package/dist/src/lib/snapshot-build.js +8 -3
- package/dist/src/lib/snapshot-build.js.map +1 -1
- package/dist/src/lib/snapshots.d.ts +17 -1
- package/dist/src/lib/snapshots.js +50 -2
- package/dist/src/lib/snapshots.js.map +1 -1
- package/dist/src/lib/swift-codegen/agentGenerator.d.ts +6 -2
- package/dist/src/lib/swift-codegen/agentGenerator.js +57 -5
- package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/banners.d.ts +34 -7
- package/dist/src/lib/swift-codegen/banners.js +37 -7
- package/dist/src/lib/swift-codegen/banners.js.map +1 -1
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +4 -3
- package/dist/src/lib/swift-codegen/dbGenerator.js +14 -117
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/functionGenerator.d.ts +3 -3
- package/dist/src/lib/swift-codegen/functionGenerator.js +23 -18
- package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/generator.d.ts +5 -5
- package/dist/src/lib/swift-codegen/generator.js +35 -40
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +3 -3
- package/dist/src/lib/swift-codegen/schemaToSwift.js +4 -4
- package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -1
- package/dist/src/lib/swift-codegen/swiftKeys.d.ts +19 -0
- package/dist/src/lib/swift-codegen/swiftKeys.js +31 -0
- package/dist/src/lib/swift-codegen/swiftKeys.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +35 -0
- package/dist/src/lib/sync-paths.js +57 -5
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/sync-resource-types.d.ts +26 -26
- package/dist/src/lib/sync-resource-types.js +61 -189
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/sync-selectors.d.ts +5 -1
- package/dist/src/lib/sync-selectors.js +23 -13
- package/dist/src/lib/sync-selectors.js.map +1 -1
- package/dist/src/lib/test-case-file-names.d.ts +3 -5
- package/dist/src/lib/test-case-file-names.js +3 -5
- package/dist/src/lib/test-case-file-names.js.map +1 -1
- package/dist/src/lib/toml-database-config.d.ts +15 -75
- package/dist/src/lib/toml-database-config.js +17 -306
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/transient-retry.d.ts +43 -0
- package/dist/src/lib/transient-retry.js +94 -0
- package/dist/src/lib/transient-retry.js.map +1 -0
- package/dist/src/lib/vars-override.d.ts +105 -0
- package/dist/src/lib/vars-override.js +143 -0
- package/dist/src/lib/vars-override.js.map +1 -0
- package/dist/src/lib/webhook-capture.d.ts +43 -0
- package/dist/src/lib/webhook-capture.js +91 -0
- package/dist/src/lib/webhook-capture.js.map +1 -0
- package/dist/src/lib/webhook-deliver.d.ts +18 -20
- package/dist/src/lib/webhook-deliver.js +34 -89
- package/dist/src/lib/webhook-deliver.js.map +1 -1
- package/dist/src/lib/webhook-test-run.d.ts +32 -0
- package/dist/src/lib/webhook-test-run.js +108 -0
- package/dist/src/lib/webhook-test-run.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generator.d.ts +7 -7
- package/dist/src/lib/workflow-codegen/generator.js +16 -23
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +6 -12
- package/dist/src/lib/workflow-codegen/invokerIR.js +4 -5
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +2 -0
- package/dist/src/lib/workflow-toml-validator.js +28 -1
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +30 -37
- package/dist/src/validators.d.ts +7 -55
- package/dist/src/validators.js +7 -53
- package/dist/src/validators.js.map +1 -1
- package/dist/src/vite.d.ts +17 -0
- package/dist/src/vite.js +18 -0
- package/dist/src/vite.js.map +1 -0
- package/package.json +20 -12
|
@@ -55,8 +55,17 @@ import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
|
55
55
|
import { tmpdir } from "node:os";
|
|
56
56
|
import { join, resolve } from "node:path";
|
|
57
57
|
import { PRIMITIVE_FUNCTIONS_MODULE } from "./function-bundle.js";
|
|
58
|
+
import { AUTH_FAMILIES, AUTHORIZE_HELPERS } from "./generated-config-surfaces.js";
|
|
58
59
|
/** The manifest encoding, versioned with the envelope that carries it. */
|
|
59
60
|
export const FUNCTION_MANIFEST_SCHEMA_VERSION = 2;
|
|
61
|
+
/**
|
|
62
|
+
* The version a FLAGGED build emits (#4730): version 2 plus the `authorize`
|
|
63
|
+
* block and `writeFamilies`. A bare-handler build keeps emitting version 2,
|
|
64
|
+
* byte for byte, so no legacy envelope hash moves.
|
|
65
|
+
*/
|
|
66
|
+
export const FUNCTION_MANIFEST_AUTHORIZE_SCHEMA_VERSION = 3;
|
|
67
|
+
/** How much of one authorize source text the families scan reads. */
|
|
68
|
+
export const AUTHORIZE_SOURCE_SCAN_CAP = 256 * 1024;
|
|
60
69
|
/** How long a tree's module scope may run before collection gives up. */
|
|
61
70
|
export const COLLECT_TIMEOUT_MS = 20_000;
|
|
62
71
|
/** A push that cannot proceed because its manifest could not be collected. */
|
|
@@ -66,6 +75,54 @@ export class FunctionCollectError extends Error {
|
|
|
66
75
|
this.name = "FunctionCollectError";
|
|
67
76
|
}
|
|
68
77
|
}
|
|
78
|
+
/** The `auth.*` families each SDK helper reads by construction (#4730). */
|
|
79
|
+
const HELPER_AUTH_FAMILIES = {
|
|
80
|
+
allowAnyone: [],
|
|
81
|
+
allowCallers: ["auth.trigger"],
|
|
82
|
+
requireSignedIn: ["auth.user"],
|
|
83
|
+
requireRole: ["auth.user"],
|
|
84
|
+
requireMember: ["auth.user", "auth.memberships"],
|
|
85
|
+
requireCollectionRole: ["auth.user", "auth.collections"],
|
|
86
|
+
requireDocumentOwner: ["auth.user", "auth.doc"],
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* The `auth.*` families a hand-written authorize's source text reaches —
|
|
90
|
+
* #4730 behavior 4.
|
|
91
|
+
*
|
|
92
|
+
* A member-access scan, on whatever the author named the parameter, plus the
|
|
93
|
+
* families of any SDK helper the text calls by name (esbuild may suffix a
|
|
94
|
+
* renamed import, `requireRole2(`). `hasRole` compares `auth.user.role` and
|
|
95
|
+
* reads no membership. Imprecise by construction, as `families[]` is: a body
|
|
96
|
+
* that delegates to a function defined elsewhere records nothing, and an
|
|
97
|
+
* unrelated `.user` in the text counts. Each text is read to
|
|
98
|
+
* {@link AUTHORIZE_SOURCE_SCAN_CAP} only.
|
|
99
|
+
*/
|
|
100
|
+
export function scanAuthorizeSources(sources) {
|
|
101
|
+
const families = new Set();
|
|
102
|
+
const members = [
|
|
103
|
+
[/\.user\b/, "auth.user"],
|
|
104
|
+
[/\.hasRole\s*\(/, "auth.user"],
|
|
105
|
+
[/\.trigger\b/, "auth.trigger"],
|
|
106
|
+
[/\.(?:memberships|isMemberOf|memberGroups|hasGroupRole)\s*\(/, "auth.memberships"],
|
|
107
|
+
[/\.collections\.resolveRole\s*\(/, "auth.collections"],
|
|
108
|
+
[/\.doc\s*\(/, "auth.doc"],
|
|
109
|
+
[/\.db\s*\(/, "auth.db"],
|
|
110
|
+
[/\.configVar\s*\(/, "auth.configVar"],
|
|
111
|
+
];
|
|
112
|
+
const helperCall = new RegExp(`\\b(${Object.keys(HELPER_AUTH_FAMILIES).join("|")})\\d*\\s*\\(`, "g");
|
|
113
|
+
for (const source of sources) {
|
|
114
|
+
const text = String(source ?? "").slice(0, AUTHORIZE_SOURCE_SCAN_CAP);
|
|
115
|
+
for (const [pattern, family] of members) {
|
|
116
|
+
if (pattern.test(text))
|
|
117
|
+
families.add(family);
|
|
118
|
+
}
|
|
119
|
+
for (const match of text.matchAll(helperCall)) {
|
|
120
|
+
for (const family of HELPER_AUTH_FAMILIES[match[1]])
|
|
121
|
+
families.add(family);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return [...families].sort();
|
|
125
|
+
}
|
|
69
126
|
/**
|
|
70
127
|
* What the static scan reads out of a built bundle — #3279 behavior 10.
|
|
71
128
|
*
|
|
@@ -149,6 +206,19 @@ export function scanBundleForManifest(bundle) {
|
|
|
149
206
|
for (const call of bundle.matchAll(/\.documents\.records\.[A-Za-z_$][\w$]*\(/g)) {
|
|
150
207
|
keyed(argumentText(bundle, call.index + call[0].length), "model");
|
|
151
208
|
}
|
|
209
|
+
// #4803 — the db3 records' path parameter is `model` too, read the same way
|
|
210
|
+
// inside a `.db3.records.<verb>(` call; and a handle-level `.bulk(` on a
|
|
211
|
+
// `.db3(…)` chain names each op's model.
|
|
212
|
+
for (const call of bundle.matchAll(/\.db3\.records\.[A-Za-z_$][\w$]*\(/g)) {
|
|
213
|
+
keyed(argumentText(bundle, call.index + call[0].length), "model");
|
|
214
|
+
}
|
|
215
|
+
for (const call of bundle.matchAll(/\.db3\(/g)) {
|
|
216
|
+
const start = call.index + call[0].length;
|
|
217
|
+
const at = start + argumentText(bundle, start).length + 1;
|
|
218
|
+
const bulk = /^\s*\.bulk\(/.exec(bundle.slice(at, at + 200));
|
|
219
|
+
if (bulk)
|
|
220
|
+
keyed(argumentText(bundle, at + bulk[0].length), "model");
|
|
221
|
+
}
|
|
152
222
|
// `<anything>.api.<family>` and the ctx helpers.
|
|
153
223
|
for (const match of bundle.matchAll(/\.api\.([A-Za-z_$][\w$]*)/g)) {
|
|
154
224
|
families.add(match[1]);
|
|
@@ -157,6 +227,8 @@ export function scanBundleForManifest(bundle) {
|
|
|
157
227
|
[/\.db\(/, "databases"],
|
|
158
228
|
// #3281 — the typed document handle, a binding over documents.records.*.
|
|
159
229
|
[/\.doc\(/, "documents"],
|
|
230
|
+
// #4803 — the typed db3 handle, a binding over db3.records.*.
|
|
231
|
+
[/\.db3\(/, "db3"],
|
|
160
232
|
[/\.integrations\.call\(/, "integrations"],
|
|
161
233
|
[/\.prompts\.run\(/, "prompts"],
|
|
162
234
|
[/\.secret\(/, "secrets"],
|
|
@@ -173,7 +245,62 @@ export function scanBundleForManifest(bundle) {
|
|
|
173
245
|
models: [...models].sort(),
|
|
174
246
|
families: [...families].sort(),
|
|
175
247
|
dynamicModels,
|
|
248
|
+
writeFamilies: scanWriteFamilies(bundle),
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* The records write verbs; the SDK has no `create` (#4730, F4730-DESIGN-003).
|
|
253
|
+
* `increment` is the db3 records' (#4803); no database or document handle has
|
|
254
|
+
* one, so it counts on a db3 chain alone.
|
|
255
|
+
*/
|
|
256
|
+
const RECORD_WRITE_VERBS = ["save", "patch", "delete", "batch", "bulk", "increment"];
|
|
257
|
+
/**
|
|
258
|
+
* The families on which the bundle calls a write or send verb — #4730
|
|
259
|
+
* behavior 5, version 3's `writeFamilies`.
|
|
260
|
+
*
|
|
261
|
+
* A records verb counts only on a chain that names its family: a direct
|
|
262
|
+
* `.api.<family>.records.<verb>(`, or a typed handle `.db(…)`/`.doc(…)`/
|
|
263
|
+
* `.db3(…)` (#4803), optionally through `.model(…)`, then `.<verb>(`. An
|
|
264
|
+
* unrelated object's `save` is not a write. The send and start verbs are read
|
|
265
|
+
* by their member path. A handle held in a variable is not followed:
|
|
266
|
+
* imprecise by construction, as the rest of the scan is.
|
|
267
|
+
*/
|
|
268
|
+
function scanWriteFamilies(bundle) {
|
|
269
|
+
const families = new Set();
|
|
270
|
+
const verbs = RECORD_WRITE_VERBS.join("|");
|
|
271
|
+
for (const match of bundle.matchAll(new RegExp(`\\.api\\.([A-Za-z_$][\\w$]*)\\.records\\.(?:${verbs})\\(`, "g"))) {
|
|
272
|
+
families.add(match[1]);
|
|
273
|
+
}
|
|
274
|
+
// Past one call's argument list: the index just after its closing paren.
|
|
275
|
+
const pastCall = (from) => {
|
|
276
|
+
const args = argumentText(bundle, from);
|
|
277
|
+
return from + args.length + 1;
|
|
176
278
|
};
|
|
279
|
+
const verbAt = new RegExp(`^\\s*\\.(?:${verbs})\\(`);
|
|
280
|
+
const modelAt = /^\s*\.model\(/;
|
|
281
|
+
const handleFamily = { db: "databases", doc: "documents", db3: "db3" };
|
|
282
|
+
for (const call of bundle.matchAll(/\.(db3|db|doc)\(/g)) {
|
|
283
|
+
let at = pastCall(call.index + call[0].length);
|
|
284
|
+
const model = modelAt.exec(bundle.slice(at, at + 200));
|
|
285
|
+
if (model)
|
|
286
|
+
at = pastCall(at + model[0].length);
|
|
287
|
+
if (verbAt.test(bundle.slice(at, at + 200))) {
|
|
288
|
+
families.add(handleFamily[call[1]]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
const sends = [
|
|
292
|
+
[/\.users\.send\(/, "users"],
|
|
293
|
+
[/\.connections\.send\(/, "connections"],
|
|
294
|
+
[/\.channels\.publish\(/, "channels"],
|
|
295
|
+
[/\.email\.send\(/, "email"],
|
|
296
|
+
[/\.functions\.start\(/, "functions"],
|
|
297
|
+
[/\.locks\.(?:acquire|withLock)\(/, "locks"],
|
|
298
|
+
];
|
|
299
|
+
for (const [pattern, family] of sends) {
|
|
300
|
+
if (pattern.test(bundle))
|
|
301
|
+
families.add(family);
|
|
302
|
+
}
|
|
303
|
+
return [...families].sort();
|
|
177
304
|
}
|
|
178
305
|
/** The line prefix the child frames its result with. */
|
|
179
306
|
const RESULT_SENTINEL = "__PRIMITIVE_COLLECT__";
|
|
@@ -298,15 +425,200 @@ export function defineFunction(keyOrHandler, maybeHandler) {
|
|
|
298
425
|
// (D3281-SO-006). The registry entry is the child's report of what the
|
|
299
426
|
// module scope did; it is not what the check consults, because a keyed
|
|
300
427
|
// handler an entry merely imports for composition registers here too.
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
428
|
+
const keyed = typeof keyOrHandler === "string" || maybeHandler !== undefined;
|
|
429
|
+
const target = keyed ? maybeHandler : keyOrHandler;
|
|
430
|
+
// #4717 — the OBJECT form, \`{ authorize, handler }\`, returns the same
|
|
431
|
+
// wrapper carrying \`authorize\`, which is what the runner reports. Its shape
|
|
432
|
+
// is checked as the baked SDK checks it, so a definition the sandbox would
|
|
433
|
+
// refuse at load is refused here, at push, with the same sentence.
|
|
434
|
+
let authorize;
|
|
435
|
+
let handler = target;
|
|
436
|
+
if (target !== null && typeof target === "object") {
|
|
437
|
+
const signature = keyed
|
|
438
|
+
? "defineFunction(key, { authorize, handler })"
|
|
439
|
+
: "defineFunction({ authorize, handler })";
|
|
440
|
+
for (const name of Object.keys(target)) {
|
|
441
|
+
if (name !== "authorize" && name !== "handler") {
|
|
442
|
+
throw new TypeError(
|
|
443
|
+
signature + ": unknown key '" + name + "'; the object form takes authorize and handler"
|
|
444
|
+
);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
if (typeof target.handler !== "function") {
|
|
448
|
+
throw new TypeError(signature + ": handler must be a function");
|
|
449
|
+
}
|
|
450
|
+
if (typeof target.authorize !== "function") {
|
|
451
|
+
throw new TypeError(signature + ": authorize must be a function");
|
|
452
|
+
}
|
|
453
|
+
authorize = target.authorize;
|
|
454
|
+
handler = target.handler;
|
|
455
|
+
}
|
|
456
|
+
if (!keyed && authorize === undefined) return keyOrHandler;
|
|
457
|
+
if (keyed) registry.push({ kind: "function", name: String(keyOrHandler) });
|
|
458
|
+
const wrapped = function (...args) {
|
|
459
|
+
return handler(...args);
|
|
460
|
+
};
|
|
461
|
+
if (keyed) wrapped.functionKey = String(keyOrHandler);
|
|
462
|
+
if (authorize !== undefined) wrapped.authorize = authorize;
|
|
463
|
+
return wrapped;
|
|
464
|
+
}
|
|
465
|
+
// #4717 — inert decisions: collection runs no \`authorize\`, so nothing reads
|
|
466
|
+
// them, but a module scope that builds one must still collect.
|
|
467
|
+
export function allow(resolved) {
|
|
468
|
+
return Object.freeze({ decision: "allow", resolved: resolved === undefined ? null : resolved });
|
|
469
|
+
}
|
|
470
|
+
export function deny(code, message, options) {
|
|
471
|
+
return Object.freeze({
|
|
472
|
+
decision: "deny",
|
|
473
|
+
code,
|
|
474
|
+
message: typeof message === "string" ? message : null,
|
|
475
|
+
expose: !!(options && options.expose === true),
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
// #4721 — \`fail\` throws its real error, so a module scope that calls it
|
|
479
|
+
// is refused here as the push probe refuses it. The helpers check their
|
|
480
|
+
// arguments with the baked SDK's sentences (\`sdk-core.ts\`), so a tree
|
|
481
|
+
// collects exactly when the probe would load it, and each returns an inert
|
|
482
|
+
// \`authorize\`: collection runs none, and one called anyway says so.
|
|
483
|
+
export function fail(code, message) {
|
|
484
|
+
if (typeof code !== "string" || code.length === 0) {
|
|
485
|
+
throw new TypeError("fail(code, message): code must be a non-empty string");
|
|
486
|
+
}
|
|
487
|
+
if (message !== undefined && message !== null && typeof message !== "string") {
|
|
488
|
+
throw new TypeError("fail(code, message): message must be a string");
|
|
489
|
+
}
|
|
490
|
+
const detail = typeof message === "string" && message.length > 0 ? message : null;
|
|
491
|
+
const error = new Error(detail === null ? code : code + ": " + detail);
|
|
492
|
+
error.name = "FunctionFailure";
|
|
493
|
+
error.code = code;
|
|
494
|
+
error.detail = detail;
|
|
495
|
+
throw error;
|
|
496
|
+
}
|
|
497
|
+
const APP_ROLES = ["owner", "admin", "member"];
|
|
498
|
+
const GROUP_ROLES = ["owner", "manager", "member"];
|
|
499
|
+
const COLLECTION_ROLES = ["owner", "manager", "editor", "contributor", "viewer"];
|
|
500
|
+
const CALLER_KEYS = ["webhook", "cron", "manual", "functions", "agents", "users", "db3"];
|
|
501
|
+
function requireRung(signature, name, ladder, role) {
|
|
502
|
+
if (!ladder.includes(role)) {
|
|
503
|
+
throw new TypeError(
|
|
504
|
+
signature + ": " + name + " must be one of " + ladder.join(", ") + ", not " + JSON.stringify(role)
|
|
505
|
+
);
|
|
308
506
|
}
|
|
309
|
-
|
|
507
|
+
}
|
|
508
|
+
function requireSelector(signature, name, what, selector) {
|
|
509
|
+
if (typeof selector !== "function") {
|
|
510
|
+
throw new TypeError(
|
|
511
|
+
signature + ": " + name + " must be a function that answers the " + what + " from the input"
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
// #4730 — each inert closure carries a \`__collect\` marker the runner reports
|
|
516
|
+
// for the manifest's \`authorize\` block: which helper built it, the
|
|
517
|
+
// \`auth.*\` families it reads by construction, and the source text of any
|
|
518
|
+
// hand-written rule it wraps, which the CLI scans.
|
|
519
|
+
const HELPER_FAMILIES = ${JSON.stringify(HELPER_AUTH_FAMILIES)};
|
|
520
|
+
function inertAuthorize(helper, extra) {
|
|
521
|
+
const inert = async () => {
|
|
522
|
+
throw new Error(
|
|
523
|
+
helper + "() was called during manifest collection; an authorize only runs inside a real invocation."
|
|
524
|
+
);
|
|
525
|
+
};
|
|
526
|
+
const marker = {
|
|
527
|
+
helper,
|
|
528
|
+
public: helper === "allowAnyone",
|
|
529
|
+
callers: null,
|
|
530
|
+
families: HELPER_FAMILIES[helper].slice(),
|
|
531
|
+
sources: [],
|
|
532
|
+
};
|
|
533
|
+
Object.defineProperty(inert, "__collect", { value: Object.assign(marker, extra || {}) });
|
|
534
|
+
return inert;
|
|
535
|
+
}
|
|
536
|
+
function sourceOf(fn) {
|
|
537
|
+
try {
|
|
538
|
+
return String(Function.prototype.toString.call(fn)).slice(0, ${AUTHORIZE_SOURCE_SCAN_CAP});
|
|
539
|
+
} catch {
|
|
540
|
+
return "";
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
function markerOf(fn) {
|
|
544
|
+
const marker = fn && fn.__collect;
|
|
545
|
+
if (marker && typeof marker === "object") return marker;
|
|
546
|
+
return { helper: null, public: false, callers: null, families: [], sources: [sourceOf(fn)] };
|
|
547
|
+
}
|
|
548
|
+
export function allowAnyone() { return inertAuthorize("allowAnyone"); }
|
|
549
|
+
export function requireSignedIn() { return inertAuthorize("requireSignedIn"); }
|
|
550
|
+
export function requireRole(role) {
|
|
551
|
+
requireRung("requireRole(role)", "role", APP_ROLES, role);
|
|
552
|
+
return inertAuthorize("requireRole");
|
|
553
|
+
}
|
|
554
|
+
export function requireMember(groupIdOf, role) {
|
|
555
|
+
const signature = "requireMember(groupIdOf, role)";
|
|
556
|
+
requireSelector(signature, "groupIdOf", "group id", groupIdOf);
|
|
557
|
+
if (role !== undefined) requireRung(signature, "role", GROUP_ROLES, role);
|
|
558
|
+
return inertAuthorize("requireMember");
|
|
559
|
+
}
|
|
560
|
+
export function requireCollectionRole(collectionIdOf, minRole) {
|
|
561
|
+
const signature = "requireCollectionRole(collectionIdOf, minRole)";
|
|
562
|
+
requireSelector(signature, "collectionIdOf", "collection id", collectionIdOf);
|
|
563
|
+
requireRung(signature, "minRole", COLLECTION_ROLES, minRole);
|
|
564
|
+
return inertAuthorize("requireCollectionRole");
|
|
565
|
+
}
|
|
566
|
+
export function requireDocumentOwner(documentIdOf) {
|
|
567
|
+
requireSelector("requireDocumentOwner(documentIdOf)", "documentIdOf", "document id", documentIdOf);
|
|
568
|
+
return inertAuthorize("requireDocumentOwner");
|
|
569
|
+
}
|
|
570
|
+
export function allowCallers(rules) {
|
|
571
|
+
const signature = "allowCallers(rules)";
|
|
572
|
+
if (rules === null || typeof rules !== "object" || Array.isArray(rules)) {
|
|
573
|
+
throw new TypeError(signature + ": rules must be an object");
|
|
574
|
+
}
|
|
575
|
+
for (const name of Object.keys(rules)) {
|
|
576
|
+
if (!CALLER_KEYS.includes(name)) {
|
|
577
|
+
throw new TypeError(
|
|
578
|
+
signature + ": unknown key '" + name +
|
|
579
|
+
"'; the rules take webhook, cron, manual, functions, agents, users and db3"
|
|
580
|
+
);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
for (const name of ["webhook", "cron", "manual", "db3"]) {
|
|
584
|
+
if (rules[name] !== undefined && typeof rules[name] !== "boolean") {
|
|
585
|
+
throw new TypeError(signature + ": " + name + " must be a boolean");
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
const functions = rules.functions;
|
|
589
|
+
if (
|
|
590
|
+
functions !== undefined &&
|
|
591
|
+
(!Array.isArray(functions) || functions.some((key) => typeof key !== "string" || key.length === 0))
|
|
592
|
+
) {
|
|
593
|
+
throw new TypeError(signature + ": functions must be an array of function keys");
|
|
594
|
+
}
|
|
595
|
+
if (rules.agents !== undefined && typeof rules.agents !== "boolean" && typeof rules.agents !== "function") {
|
|
596
|
+
throw new TypeError(signature + ": agents must be true, false or an authorize function");
|
|
597
|
+
}
|
|
598
|
+
if (rules.users !== undefined && typeof rules.users !== "function") {
|
|
599
|
+
throw new TypeError(signature + ": users must be an authorize function, such as requireSignedIn()");
|
|
600
|
+
}
|
|
601
|
+
const arms = [rules.users, rules.agents].filter((arm) => typeof arm === "function").map(markerOf);
|
|
602
|
+
const families = HELPER_FAMILIES.allowCallers.slice();
|
|
603
|
+
const sources = [];
|
|
604
|
+
for (const arm of arms) {
|
|
605
|
+
families.push(...(arm.families || []));
|
|
606
|
+
sources.push(...(arm.sources || []));
|
|
607
|
+
}
|
|
608
|
+
return inertAuthorize("allowCallers", {
|
|
609
|
+
public: arms.some((arm) => arm.helper === "allowAnyone"),
|
|
610
|
+
callers: {
|
|
611
|
+
webhook: rules.webhook === true,
|
|
612
|
+
cron: rules.cron === true,
|
|
613
|
+
manual: rules.manual === true,
|
|
614
|
+
functions: Array.isArray(functions) ? functions.map(String) : [],
|
|
615
|
+
agents: rules.agents === true ? true : typeof rules.agents === "function" ? "rule" : false,
|
|
616
|
+
users: typeof rules.users === "function" ? "rule" : false,
|
|
617
|
+
db3: rules.db3 === true,
|
|
618
|
+
},
|
|
619
|
+
families,
|
|
620
|
+
sources,
|
|
621
|
+
});
|
|
310
622
|
}
|
|
311
623
|
export function pMap(items, mapper) { return Promise.all((items || []).map(mapper)); }
|
|
312
624
|
export function ulid() { return "00000000000000000000000000"; }
|
|
@@ -317,6 +629,9 @@ export const stepPolicy = new Proxy({}, { get: () => ({}) });
|
|
|
317
629
|
// threw would refuse exactly the functions the assertion exists for — and the
|
|
318
630
|
// placement the guide teaches is module scope, which collection runs.
|
|
319
631
|
export function assertRuntime() {}
|
|
632
|
+
// #4442 — \`assertTrigger\` is inert for the same reason: collection invokes no
|
|
633
|
+
// handler, so there is no trigger for it to compare.
|
|
634
|
+
export function assertTrigger() {}
|
|
320
635
|
export class FunctionRuntimeError extends Error {
|
|
321
636
|
constructor(message, runtime, required) {
|
|
322
637
|
super(message);
|
|
@@ -328,11 +643,22 @@ export class FunctionRuntimeError extends Error {
|
|
|
328
643
|
export default {
|
|
329
644
|
SDK_STUB_VERSION,
|
|
330
645
|
defineFunction,
|
|
646
|
+
allow,
|
|
647
|
+
deny,
|
|
648
|
+
fail,
|
|
649
|
+
allowAnyone,
|
|
650
|
+
allowCallers,
|
|
651
|
+
requireSignedIn,
|
|
652
|
+
requireRole,
|
|
653
|
+
requireMember,
|
|
654
|
+
requireCollectionRole,
|
|
655
|
+
requireDocumentOwner,
|
|
331
656
|
defineQuery,
|
|
332
657
|
defineMutation,
|
|
333
658
|
pMap,
|
|
334
659
|
ulid,
|
|
335
660
|
assertRuntime,
|
|
661
|
+
assertTrigger,
|
|
336
662
|
FunctionRuntimeError,
|
|
337
663
|
};
|
|
338
664
|
`;
|
|
@@ -376,8 +702,34 @@ function handlerOf(mod) {
|
|
|
376
702
|
const exported = handlerOf(entry);
|
|
377
703
|
const exportedKey =
|
|
378
704
|
exported && typeof exported.functionKey === "string" ? exported.functionKey : null;
|
|
705
|
+
// #4717 — whether that same callable carries \`authorize\`: the object
|
|
706
|
+
// form's wrapper does. Reported beside the key, never in the manifest.
|
|
707
|
+
const authorize = !!exported && typeof exported.authorize === "function";
|
|
708
|
+
// #4730 — what the manifest's \`authorize\` block records: the helper
|
|
709
|
+
// marker the stub attached, or the hand-written function's own text.
|
|
710
|
+
let authorizeCollect = null;
|
|
711
|
+
if (authorize) {
|
|
712
|
+
const marker = exported.authorize.__collect;
|
|
713
|
+
if (marker && typeof marker === "object") {
|
|
714
|
+
authorizeCollect = marker;
|
|
715
|
+
} else {
|
|
716
|
+
let text = "";
|
|
717
|
+
try {
|
|
718
|
+
text = String(Function.prototype.toString.call(exported.authorize));
|
|
719
|
+
} catch {}
|
|
720
|
+
authorizeCollect = {
|
|
721
|
+
helper: null,
|
|
722
|
+
public: false,
|
|
723
|
+
callers: null,
|
|
724
|
+
families: [],
|
|
725
|
+
sources: [text.slice(0, ${AUTHORIZE_SOURCE_SCAN_CAP})],
|
|
726
|
+
};
|
|
727
|
+
}
|
|
728
|
+
}
|
|
379
729
|
process.stdout.write(
|
|
380
|
-
sentinel +
|
|
730
|
+
sentinel +
|
|
731
|
+
JSON.stringify({ ok: true, registry, exportedKey, authorize, authorizeCollect }) +
|
|
732
|
+
"\\n"
|
|
381
733
|
);
|
|
382
734
|
} catch (error) {
|
|
383
735
|
process.stdout.write(
|
|
@@ -466,6 +818,14 @@ async function buildCollectBundle(options) {
|
|
|
466
818
|
* of the envelope, so "later" would mean a different version).
|
|
467
819
|
*/
|
|
468
820
|
export async function collectFunctionManifest(options) {
|
|
821
|
+
return (await collectFunction(options)).manifest;
|
|
822
|
+
}
|
|
823
|
+
/**
|
|
824
|
+
* Collect one function's manifest and its local `authorize` answer (#4717),
|
|
825
|
+
* from the one run of its module scope. Throws as `collectFunctionManifest`
|
|
826
|
+
* does.
|
|
827
|
+
*/
|
|
828
|
+
export async function collectFunction(options) {
|
|
469
829
|
const treeRoot = resolve(options.configDir);
|
|
470
830
|
const timeoutMs = options.timeoutMs ?? COLLECT_TIMEOUT_MS;
|
|
471
831
|
const code = await buildCollectBundle({
|
|
@@ -490,7 +850,10 @@ export async function collectFunctionManifest(options) {
|
|
|
490
850
|
throw new FunctionCollectError(`function '${options.functionKey}': manifest collection failed while ` +
|
|
491
851
|
`running the tree's module scope: ${framed.error}`);
|
|
492
852
|
}
|
|
493
|
-
return
|
|
853
|
+
return {
|
|
854
|
+
manifest: manifestFrom(framed.registry ?? [], options.functionKey, scanBundleForManifest(options.bundle ?? code), framed.exportedKey ?? null, framed.authorize === true ? framed.authorizeCollect ?? null : undefined),
|
|
855
|
+
authorize: framed.authorize === true,
|
|
856
|
+
};
|
|
494
857
|
}
|
|
495
858
|
finally {
|
|
496
859
|
rmSync(scratch, { recursive: true, force: true });
|
|
@@ -546,7 +909,7 @@ function runCollectChild(options) {
|
|
|
546
909
|
});
|
|
547
910
|
}
|
|
548
911
|
/** Normalize and validate what the child recorded, and merge in the scan. */
|
|
549
|
-
function manifestFrom(registry, functionKey, scanned, exportedKey) {
|
|
912
|
+
function manifestFrom(registry, functionKey, scanned, exportedKey, authorizeCollect) {
|
|
550
913
|
// #3281 — the key the entry's EXPORTED handler carries. The compiler holds
|
|
551
914
|
// the key to the TREE (an undeclared key does not compile); this holds it to
|
|
552
915
|
// the FILE, before any request is made, with the runtime value — a key
|
|
@@ -599,12 +962,64 @@ function manifestFrom(registry, functionKey, scanned, exportedKey) {
|
|
|
599
962
|
for (const query of queries)
|
|
600
963
|
for (const model of query.models)
|
|
601
964
|
models.add(model);
|
|
602
|
-
|
|
965
|
+
const manifest = {
|
|
603
966
|
schemaVersion: FUNCTION_MANIFEST_SCHEMA_VERSION,
|
|
604
967
|
queries,
|
|
605
968
|
models: [...models].sort(),
|
|
606
969
|
families: scanned.families,
|
|
607
970
|
dynamicModels: scanned.dynamicModels,
|
|
608
971
|
};
|
|
972
|
+
// #4730 — a flagged build's version 3. `undefined` is a bare handler, which
|
|
973
|
+
// keeps the version-2 document above byte for byte.
|
|
974
|
+
if (authorizeCollect === undefined)
|
|
975
|
+
return manifest;
|
|
976
|
+
return {
|
|
977
|
+
...manifest,
|
|
978
|
+
schemaVersion: FUNCTION_MANIFEST_AUTHORIZE_SCHEMA_VERSION,
|
|
979
|
+
writeFamilies: scanned.writeFamilies ?? [],
|
|
980
|
+
authorize: authorizeBlockFrom(authorizeCollect),
|
|
981
|
+
};
|
|
982
|
+
}
|
|
983
|
+
/**
|
|
984
|
+
* Normalize what the child reported into the manifest's `authorize` block.
|
|
985
|
+
*
|
|
986
|
+
* The marker comes from the tenant's own module scope, so it is honest-code
|
|
987
|
+
* evidence like the rest of the manifest: anything outside the grammar's
|
|
988
|
+
* vocabulary is dropped here rather than refused at the server.
|
|
989
|
+
*/
|
|
990
|
+
function authorizeBlockFrom(collected) {
|
|
991
|
+
const helpers = AUTHORIZE_HELPERS;
|
|
992
|
+
const helper = collected && typeof collected.helper === "string" && helpers.includes(collected.helper)
|
|
993
|
+
? collected.helper
|
|
994
|
+
: null;
|
|
995
|
+
const known = new Set(AUTH_FAMILIES);
|
|
996
|
+
const families = new Set((Array.isArray(collected?.families) ? collected.families : []).filter((f) => known.has(String(f))));
|
|
997
|
+
const sources = Array.isArray(collected?.sources) ? collected.sources.map(String) : [];
|
|
998
|
+
for (const family of scanAuthorizeSources(sources))
|
|
999
|
+
families.add(family);
|
|
1000
|
+
const raw = helper === "allowCallers" ? collected?.callers : null;
|
|
1001
|
+
const callers = raw && typeof raw === "object"
|
|
1002
|
+
? {
|
|
1003
|
+
webhook: raw.webhook === true,
|
|
1004
|
+
cron: raw.cron === true,
|
|
1005
|
+
manual: raw.manual === true,
|
|
1006
|
+
functions: [
|
|
1007
|
+
...new Set((Array.isArray(raw.functions) ? raw.functions : []).map(String)),
|
|
1008
|
+
].sort(),
|
|
1009
|
+
agents: (raw.agents === true ? true : raw.agents === "rule" ? "rule" : false),
|
|
1010
|
+
users: (raw.users === "rule" ? "rule" : false),
|
|
1011
|
+
// #4803 — written only when the door is open, so a manifest that
|
|
1012
|
+
// admits no db3 flush is byte-identical to one built before the
|
|
1013
|
+
// door existed; a reader takes absent as closed.
|
|
1014
|
+
...(raw.db3 === true ? { db3: true } : {}),
|
|
1015
|
+
}
|
|
1016
|
+
: null;
|
|
1017
|
+
return {
|
|
1018
|
+
present: true,
|
|
1019
|
+
public: helper !== null && collected?.public === true,
|
|
1020
|
+
helper,
|
|
1021
|
+
callers,
|
|
1022
|
+
families: [...families].sort(),
|
|
1023
|
+
};
|
|
609
1024
|
}
|
|
610
1025
|
//# sourceMappingURL=function-collect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-collect.js","sourceRoot":"","sources":["../../../src/lib/function-collect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"function-collect.js","sourceRoot":"","sources":["../../../src/lib/function-collect.ts"],"names":[],"mappings":"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"}
|