primitive-admin 1.1.0-alpha.7 → 1.1.0-alpha.71
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 +404 -80
- package/assets/skill/skills/primitive-platform/SKILL.md +808 -0
- package/dist/bin/primitive.d.ts +2 -0
- package/dist/bin/primitive.js +294 -21
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/admins.d.ts +2 -0
- package/dist/src/commands/admins.js +138 -19
- package/dist/src/commands/admins.js.map +1 -1
- package/dist/src/commands/analytics.d.ts +2 -0
- package/dist/src/commands/analytics.js +544 -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 +51 -96
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth.d.ts +2 -0
- package/dist/src/commands/auth.js +177 -7
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/blob-buckets.d.ts +2 -0
- package/dist/src/commands/blob-buckets.js +330 -0
- package/dist/src/commands/blob-buckets.js.map +1 -0
- package/dist/src/commands/catalog.d.ts +2 -0
- package/dist/src/commands/catalog.js +37 -38
- package/dist/src/commands/catalog.js.map +1 -1
- package/dist/src/commands/collection-type-configs.d.ts +2 -0
- package/dist/src/commands/collection-type-configs.js +92 -0
- package/dist/src/commands/collection-type-configs.js.map +1 -0
- package/dist/src/commands/collections.d.ts +2 -0
- package/dist/src/commands/collections.js +565 -0
- package/dist/src/commands/collections.js.map +1 -0
- package/dist/src/commands/comparisons.d.ts +2 -0
- package/dist/src/commands/comparisons.js +6 -6
- package/dist/src/commands/comparisons.js.map +1 -1
- package/dist/src/commands/config.d.ts +46 -0
- package/dist/src/commands/config.js +479 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/commands/connections.d.ts +2 -0
- package/dist/src/commands/connections.js +100 -0
- package/dist/src/commands/connections.js.map +1 -0
- package/dist/src/commands/cron-triggers.d.ts +2 -0
- package/dist/src/commands/cron-triggers.js +265 -0
- package/dist/src/commands/cron-triggers.js.map +1 -0
- package/dist/src/commands/database-type-configs.d.ts +2 -0
- package/dist/src/commands/database-type-configs.js +171 -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 +471 -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 +2140 -112
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.d.ts +2 -0
- package/dist/src/commands/documents.js +1357 -19
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.d.ts +2 -0
- package/dist/src/commands/email-templates.js +174 -0
- package/dist/src/commands/email-templates.js.map +1 -0
- package/dist/src/commands/env.d.ts +23 -0
- package/dist/src/commands/env.js +333 -0
- package/dist/src/commands/env.js.map +1 -0
- package/dist/src/commands/feature-flags.d.ts +14 -0
- package/dist/src/commands/feature-flags.js +116 -0
- package/dist/src/commands/feature-flags.js.map +1 -0
- package/dist/src/commands/group-type-configs.d.ts +2 -0
- package/dist/src/commands/group-type-configs.js +86 -0
- package/dist/src/commands/group-type-configs.js.map +1 -0
- package/dist/src/commands/groups.d.ts +2 -0
- package/dist/src/commands/groups.js +38 -99
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.d.ts +223 -0
- package/dist/src/commands/guides.js +617 -65
- package/dist/src/commands/guides.js.map +1 -1
- package/dist/src/commands/init.d.ts +25 -0
- package/dist/src/commands/init.js +1605 -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 +380 -178
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/llm.d.ts +2 -0
- package/dist/src/commands/llm.js +4 -2
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/locks.d.ts +8 -0
- package/dist/src/commands/locks.js +160 -0
- package/dist/src/commands/locks.js.map +1 -0
- package/dist/src/commands/metadata-category-configs.d.ts +12 -0
- package/dist/src/commands/metadata-category-configs.js +112 -0
- package/dist/src/commands/metadata-category-configs.js.map +1 -0
- package/dist/src/commands/metadata.d.ts +2 -0
- package/dist/src/commands/metadata.js +281 -0
- package/dist/src/commands/metadata.js.map +1 -0
- package/dist/src/commands/prompts.d.ts +2 -0
- package/dist/src/commands/prompts.js +225 -584
- 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 +272 -0
- package/dist/src/commands/rule-sets.js.map +1 -0
- package/dist/src/commands/scripts.d.ts +20 -0
- package/dist/src/commands/scripts.js +554 -0
- package/dist/src/commands/scripts.js.map +1 -0
- package/dist/src/commands/secrets.d.ts +2 -0
- package/dist/src/commands/secrets.js +108 -0
- package/dist/src/commands/secrets.js.map +1 -0
- package/dist/src/commands/sessions.d.ts +2 -0
- package/dist/src/commands/sessions.js +75 -0
- package/dist/src/commands/sessions.js.map +1 -0
- package/dist/src/commands/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 +330 -0
- package/dist/src/commands/sync-app-settings.js.map +1 -0
- package/dist/src/commands/sync.d.ts +2323 -0
- package/dist/src/commands/sync.js +15065 -843
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.d.ts +2 -0
- package/dist/src/commands/tokens.js +130 -21
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.d.ts +2 -0
- package/dist/src/commands/users.js +532 -23
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/vars.d.ts +8 -0
- package/dist/src/commands/vars.js +96 -0
- package/dist/src/commands/vars.js.map +1 -0
- package/dist/src/commands/waitlist.d.ts +2 -0
- package/dist/src/commands/waitlist.js +10 -10
- package/dist/src/commands/waitlist.js.map +1 -1
- package/dist/src/commands/webhooks.d.ts +2 -0
- package/dist/src/commands/webhooks.js +562 -0
- package/dist/src/commands/webhooks.js.map +1 -0
- package/dist/src/commands/workflows.d.ts +116 -0
- package/dist/src/commands/workflows.js +1583 -681
- 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 +1936 -0
- package/dist/src/lib/api-client.js +1826 -138
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +263 -0
- package/dist/src/lib/app-settings-descriptor.js +575 -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/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 +68 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +168 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
- package/dist/src/lib/config-object-descriptor.d.ts +127 -0
- package/dist/src/lib/config-object-descriptor.js +658 -0
- package/dist/src/lib/config-object-descriptor.js.map +1 -0
- package/dist/src/lib/config-payload.d.ts +85 -0
- package/dist/src/lib/config-payload.js +116 -0
- package/dist/src/lib/config-payload.js.map +1 -0
- package/dist/src/lib/config-surface.d.ts +130 -0
- package/dist/src/lib/config-surface.js +300 -0
- package/dist/src/lib/config-surface.js.map +1 -0
- package/dist/src/lib/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 +53 -0
- package/dist/src/lib/config.js +92 -53
- 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 +89 -0
- package/dist/src/lib/credentials-store.js +330 -0
- package/dist/src/lib/credentials-store.js.map +1 -0
- package/dist/src/lib/csv.d.ts +47 -0
- package/dist/src/lib/csv.js +172 -0
- package/dist/src/lib/csv.js.map +1 -0
- package/dist/src/lib/data-input.d.ts +23 -0
- package/dist/src/lib/data-input.js +50 -0
- package/dist/src/lib/data-input.js.map +1 -0
- package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.d.ts +67 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +170 -0
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/db-codegen/dbNaming.d.ts +87 -0
- package/dist/src/lib/db-codegen/dbNaming.js +180 -0
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +272 -0
- package/dist/src/lib/db-codegen/dbTemplates.js +480 -0
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +73 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js +139 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js +517 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
- package/dist/src/lib/env-resolver-core.d.ts +147 -0
- package/dist/src/lib/env-resolver-core.js +265 -0
- package/dist/src/lib/env-resolver-core.js.map +1 -0
- package/dist/src/lib/env-resolver.d.ts +84 -0
- package/dist/src/lib/env-resolver.js +133 -0
- package/dist/src/lib/env-resolver.js.map +1 -0
- package/dist/src/lib/fetch.d.ts +5 -0
- package/dist/src/lib/generated-allowlist.d.ts +28 -0
- package/dist/src/lib/generated-allowlist.js +277 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -0
- package/dist/src/lib/generated-config-surfaces.d.ts +682 -0
- package/dist/src/lib/generated-config-surfaces.js +4058 -0
- package/dist/src/lib/generated-config-surfaces.js.map +1 -0
- package/dist/src/lib/generated-template-lint.d.ts +212 -0
- package/dist/src/lib/generated-template-lint.js +624 -0
- package/dist/src/lib/generated-template-lint.js.map +1 -0
- package/dist/src/lib/init-adopt.d.ts +16 -0
- package/dist/src/lib/init-adopt.js +34 -0
- package/dist/src/lib/init-adopt.js.map +1 -0
- package/dist/src/lib/init-assets.d.ts +39 -0
- package/dist/src/lib/init-assets.js +97 -0
- package/dist/src/lib/init-assets.js.map +1 -0
- package/dist/src/lib/init-config.d.ts +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-ios-links.d.ts +50 -0
- package/dist/src/lib/init-ios-links.js +153 -0
- package/dist/src/lib/init-ios-links.js.map +1 -0
- package/dist/src/lib/init-plan.d.ts +80 -0
- package/dist/src/lib/init-plan.js +95 -0
- package/dist/src/lib/init-plan.js.map +1 -0
- package/dist/src/lib/init-production-env.d.ts +48 -0
- package/dist/src/lib/init-production-env.js +59 -0
- package/dist/src/lib/init-production-env.js.map +1 -0
- package/dist/src/lib/init-schema.d.ts +74 -0
- package/dist/src/lib/init-schema.js +358 -0
- package/dist/src/lib/init-schema.js.map +1 -0
- package/dist/src/lib/init-xcode.d.ts +33 -0
- package/dist/src/lib/init-xcode.js +114 -0
- package/dist/src/lib/init-xcode.js.map +1 -0
- package/dist/src/lib/integration-request-config.d.ts +30 -0
- package/dist/src/lib/integration-request-config.js +145 -0
- package/dist/src/lib/integration-request-config.js.map +1 -0
- package/dist/src/lib/local-state.d.ts +55 -0
- package/dist/src/lib/local-state.js +167 -0
- package/dist/src/lib/local-state.js.map +1 -0
- package/dist/src/lib/log-inspection.d.ts +568 -0
- package/dist/src/lib/log-inspection.js +639 -0
- package/dist/src/lib/log-inspection.js.map +1 -0
- package/dist/src/lib/migration-nag.d.ts +49 -0
- package/dist/src/lib/migration-nag.js +163 -0
- package/dist/src/lib/migration-nag.js.map +1 -0
- package/dist/src/lib/object-status-filter.d.ts +22 -0
- package/dist/src/lib/object-status-filter.js +45 -0
- package/dist/src/lib/object-status-filter.js.map +1 -0
- package/dist/src/lib/output.d.ts +109 -0
- package/dist/src/lib/output.js +191 -8
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/package-manager.d.ts +140 -0
- package/dist/src/lib/package-manager.js +305 -0
- package/dist/src/lib/package-manager.js.map +1 -0
- package/dist/src/lib/paginate.d.ts +83 -0
- package/dist/src/lib/paginate.js +95 -0
- package/dist/src/lib/paginate.js.map +1 -0
- package/dist/src/lib/platform-owned.d.ts +63 -0
- package/dist/src/lib/platform-owned.js +85 -0
- package/dist/src/lib/platform-owned.js.map +1 -0
- package/dist/src/lib/project-config.d.ts +97 -0
- package/dist/src/lib/project-config.js +217 -0
- package/dist/src/lib/project-config.js.map +1 -0
- package/dist/src/lib/query-operators.d.ts +43 -0
- package/dist/src/lib/query-operators.js +80 -0
- package/dist/src/lib/query-operators.js.map +1 -0
- package/dist/src/lib/record-filter.d.ts +18 -0
- package/dist/src/lib/record-filter.js +55 -0
- package/dist/src/lib/record-filter.js.map +1 -0
- package/dist/src/lib/refresh-admin-credentials.d.ts +65 -0
- package/dist/src/lib/refresh-admin-credentials.js +103 -0
- package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
- package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
- package/dist/src/lib/resolve-init-dev-port.js +55 -0
- package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
- package/dist/src/lib/resolve-init-server.d.ts +64 -0
- package/dist/src/lib/resolve-init-server.js +77 -0
- package/dist/src/lib/resolve-init-server.js.map +1 -0
- package/dist/src/lib/resolve-platform.d.ts +74 -0
- package/dist/src/lib/resolve-platform.js +105 -0
- package/dist/src/lib/resolve-platform.js.map +1 -0
- package/dist/src/lib/run-status.d.ts +19 -0
- package/dist/src/lib/run-status.generated.d.ts +39 -0
- package/dist/src/lib/run-status.generated.js +66 -0
- package/dist/src/lib/run-status.generated.js.map +1 -0
- package/dist/src/lib/run-status.js +19 -0
- package/dist/src/lib/run-status.js.map +1 -0
- package/dist/src/lib/server-text-normalization.d.ts +51 -0
- package/dist/src/lib/server-text-normalization.js +90 -0
- package/dist/src/lib/server-text-normalization.js.map +1 -0
- package/dist/src/lib/server-url.d.ts +22 -0
- package/dist/src/lib/server-url.js +33 -0
- package/dist/src/lib/server-url.js.map +1 -0
- package/dist/src/lib/signing-secret-status.d.ts +81 -0
- package/dist/src/lib/signing-secret-status.js +116 -0
- package/dist/src/lib/signing-secret-status.js.map +1 -0
- package/dist/src/lib/skill-installer.d.ts +25 -0
- package/dist/src/lib/skill-installer.js +266 -0
- package/dist/src/lib/skill-installer.js.map +1 -0
- package/dist/src/lib/snapshots.d.ts +99 -0
- package/dist/src/lib/snapshots.js +357 -0
- package/dist/src/lib/snapshots.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js +914 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
- package/dist/src/lib/swift-codegen/generator.d.ts +94 -0
- package/dist/src/lib/swift-codegen/generator.js +440 -0
- package/dist/src/lib/swift-codegen/generator.js.map +1 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +72 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js +644 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +94 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js +155 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
- package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
- package/dist/src/lib/sync-dir-selector.d.ts +21 -0
- package/dist/src/lib/sync-dir-selector.js +30 -0
- package/dist/src/lib/sync-dir-selector.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +111 -0
- package/dist/src/lib/sync-paths.js +198 -0
- package/dist/src/lib/sync-paths.js.map +1 -0
- package/dist/src/lib/sync-resource-types.d.ts +544 -0
- package/dist/src/lib/sync-resource-types.js +975 -0
- package/dist/src/lib/sync-resource-types.js.map +1 -0
- package/dist/src/lib/sync-selectors.d.ts +95 -0
- package/dist/src/lib/sync-selectors.js +228 -0
- package/dist/src/lib/sync-selectors.js.map +1 -0
- package/dist/src/lib/template.d.ts +170 -0
- package/dist/src/lib/template.js +484 -68
- package/dist/src/lib/template.js.map +1 -1
- package/dist/src/lib/test-case-keys.d.ts +29 -0
- package/dist/src/lib/test-case-keys.js +55 -0
- package/dist/src/lib/test-case-keys.js.map +1 -0
- package/dist/src/lib/test-case-variables.d.ts +15 -0
- package/dist/src/lib/test-case-variables.js +29 -0
- package/dist/src/lib/test-case-variables.js.map +1 -0
- package/dist/src/lib/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 +527 -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/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-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 +202 -0
- package/dist/src/lib/workflow-toml-validator.js +757 -0
- package/dist/src/lib/workflow-toml-validator.js.map +1 -0
- package/dist/src/types/index.d.ts +581 -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 +32 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/lib/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/** The npm package name of this CLI. */
|
|
2
|
+
export declare const PRIMITIVE_CLI_PACKAGE = "primitive-admin";
|
|
3
|
+
/**
|
|
4
|
+
* Package managers the CLI knows how to drive.
|
|
5
|
+
*
|
|
6
|
+
* Deliberately narrow: pnpm is the recommended manager, npm is what most
|
|
7
|
+
* existing installs use. Yarn and bun layouts classify as "unknown" and take
|
|
8
|
+
* the fallback below — yarn Berry has no `yarn global add`, so rendering a
|
|
9
|
+
* yarn command could hand the user something that does not work.
|
|
10
|
+
*/
|
|
11
|
+
export type PackageManager = "pnpm" | "npm";
|
|
12
|
+
/**
|
|
13
|
+
* What `classifyInstallPath` can tell from a path alone. A local install's
|
|
14
|
+
* manager is not knowable from the path — it comes from the nearest lockfile,
|
|
15
|
+
* which is filesystem work and therefore lives in `detectInstall`.
|
|
16
|
+
*/
|
|
17
|
+
export type InstallClassification = {
|
|
18
|
+
kind: "global";
|
|
19
|
+
manager: PackageManager;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "local";
|
|
22
|
+
} | {
|
|
23
|
+
kind: "source";
|
|
24
|
+
} | {
|
|
25
|
+
kind: "unknown";
|
|
26
|
+
};
|
|
27
|
+
/** How the copy of the CLI that is running right now was installed. */
|
|
28
|
+
export type InstallKind = {
|
|
29
|
+
kind: "global";
|
|
30
|
+
manager: PackageManager;
|
|
31
|
+
} | {
|
|
32
|
+
kind: "local";
|
|
33
|
+
manager: PackageManager;
|
|
34
|
+
} | {
|
|
35
|
+
kind: "source";
|
|
36
|
+
} | {
|
|
37
|
+
kind: "unknown";
|
|
38
|
+
};
|
|
39
|
+
/** A global copy of a package found on disk. */
|
|
40
|
+
export interface GlobalInstall {
|
|
41
|
+
manager: PackageManager;
|
|
42
|
+
/** Where the manager keeps the package — the path to show the user. */
|
|
43
|
+
path: string;
|
|
44
|
+
/**
|
|
45
|
+
* The same install with symlinks resolved. pnpm's global `node_modules/<pkg>`
|
|
46
|
+
* is a link into its virtual store, so this is the only form that can be
|
|
47
|
+
* compared against the resolved path of the running CLI file. Falls back to
|
|
48
|
+
* `path` when the link can't be resolved.
|
|
49
|
+
*/
|
|
50
|
+
realPath: string;
|
|
51
|
+
}
|
|
52
|
+
export interface ManagerLookupOptions {
|
|
53
|
+
/** Environment to read (PNPM_HOME, PATH, …). Defaults to `process.env`. */
|
|
54
|
+
env?: NodeJS.ProcessEnv;
|
|
55
|
+
/** Node executable path used to derive the npm prefix. Defaults to `process.execPath`. */
|
|
56
|
+
execPath?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Path to the running CLI file, overriding this module's own location.
|
|
59
|
+
* Used by `detectInstall`; tests inject a fixture path here.
|
|
60
|
+
*/
|
|
61
|
+
selfPath?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Global roots to search, overriding the ones derived from `env`/`execPath`
|
|
64
|
+
* (see `globalRootCandidates`).
|
|
65
|
+
*/
|
|
66
|
+
roots?: {
|
|
67
|
+
pnpm: string[];
|
|
68
|
+
npm: string[];
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/** Normalize separators and drop a trailing slash so path matching is uniform. */
|
|
72
|
+
export declare function normalize(p: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Classifies an already-resolved absolute path to a file inside the installed
|
|
75
|
+
* package. Pure over (path, env) — no filesystem access, no child processes.
|
|
76
|
+
*/
|
|
77
|
+
export declare function classifyInstallPath(realPath: string, env: NodeJS.ProcessEnv): InstallClassification;
|
|
78
|
+
/** Classifies the copy of the CLI that is executing right now. */
|
|
79
|
+
export declare function detectInstall(opts?: ManagerLookupOptions): InstallKind;
|
|
80
|
+
/**
|
|
81
|
+
* True when a `pnpm` executable is found on PATH (no child process spawned).
|
|
82
|
+
*
|
|
83
|
+
* `template.ts` has a separate `isPnpmInstalled` that shells out to
|
|
84
|
+
* `pnpm --version`. Both exist on purpose: this module must not spawn child
|
|
85
|
+
* processes (it runs on every command, inside the version check), while
|
|
86
|
+
* `template.ts` needs to know pnpm actually *runs*, not just that a file with
|
|
87
|
+
* that name is on PATH. The two can therefore disagree — a broken pnpm binary
|
|
88
|
+
* satisfies this one and not that one.
|
|
89
|
+
*/
|
|
90
|
+
export declare function isPnpmOnPath(env?: NodeJS.ProcessEnv): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* True when pnpm has somewhere to put a global install.
|
|
93
|
+
*
|
|
94
|
+
* `pnpm add -g` fails with `ERR_PNPM_NO_GLOBAL_BIN_DIR` when pnpm has no
|
|
95
|
+
* global bin directory — the state a machine is in when pnpm was installed
|
|
96
|
+
* with `npm install -g pnpm` and `pnpm setup` was never run, which is exactly
|
|
97
|
+
* what `primitive init` does when it bootstraps pnpm. A `pnpm` binary on PATH
|
|
98
|
+
* is therefore not enough to conclude that pnpm can install globally.
|
|
99
|
+
*
|
|
100
|
+
* Two signals count:
|
|
101
|
+
* - `PNPM_HOME` is set *and* on PATH. `pnpm setup` sets both together; when
|
|
102
|
+
* the directory is set but not on PATH the install succeeds and leaves a
|
|
103
|
+
* binary the user can't run.
|
|
104
|
+
* - A pnpm global root already exists on disk — pnpm has installed globals
|
|
105
|
+
* here before, so it has a working global bin directory.
|
|
106
|
+
*/
|
|
107
|
+
export declare function canPnpmInstallGlobally(env: NodeJS.ProcessEnv, execPath: string): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* The command that upgrades this install to `distTag` ("latest", "alpha", …),
|
|
110
|
+
* or null when there is nothing sensible to suggest (a source checkout).
|
|
111
|
+
*/
|
|
112
|
+
export declare function upgradeCommand(install: InstallKind, pkg: string, distTag: string, opts?: ManagerLookupOptions): string | null;
|
|
113
|
+
/** The argv for a first-time global install of `pkg`. */
|
|
114
|
+
export declare function installArgv(pkg: string, opts?: ManagerLookupOptions): {
|
|
115
|
+
command: string;
|
|
116
|
+
args: string[];
|
|
117
|
+
};
|
|
118
|
+
/** The command a user should run for a first-time global install of `pkg`. */
|
|
119
|
+
export declare function installCommand(pkg: string, opts?: ManagerLookupOptions): string;
|
|
120
|
+
/**
|
|
121
|
+
* The directories each manager could hold a global install in, derived from
|
|
122
|
+
* the environment and the running node executable. Pure — it only builds
|
|
123
|
+
* candidate paths; `findDuplicateGlobalInstalls` decides which ones exist.
|
|
124
|
+
*
|
|
125
|
+
* - pnpm keeps globals under `<pnpm root>/global/<version>/node_modules`.
|
|
126
|
+
* - npm keeps them under `<prefix>/lib/node_modules` (or
|
|
127
|
+
* `<AppData>/npm/node_modules` on Windows). The prefix is derived from the
|
|
128
|
+
* node executable and from every `.../bin` entry on PATH, which is what
|
|
129
|
+
* catches layouts like homebrew's, where the executable lives in a
|
|
130
|
+
* versioned Cellar directory but globals land in `/opt/homebrew`.
|
|
131
|
+
*/
|
|
132
|
+
export declare function globalRootCandidates(env: NodeJS.ProcessEnv, execPath: string): {
|
|
133
|
+
pnpm: string[];
|
|
134
|
+
npm: string[];
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Finds global copies of `pkg` in the global roots of each supported manager.
|
|
138
|
+
* Path checks only — no child processes.
|
|
139
|
+
*/
|
|
140
|
+
export declare function findDuplicateGlobalInstalls(pkg: string, opts?: ManagerLookupOptions): GlobalInstall[];
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { existsSync, readdirSync, realpathSync } from "fs";
|
|
2
|
+
import { dirname, join } from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
/** The npm package name of this CLI. */
|
|
5
|
+
export const PRIMITIVE_CLI_PACKAGE = "primitive-admin";
|
|
6
|
+
/** Normalize separators and drop a trailing slash so path matching is uniform. */
|
|
7
|
+
export function normalize(p) {
|
|
8
|
+
return p.replace(/\\/g, "/").replace(/\/+$/, "");
|
|
9
|
+
}
|
|
10
|
+
/** The entries of PATH, split on the separator this environment uses. */
|
|
11
|
+
function pathEntries(env) {
|
|
12
|
+
const pathVar = env.PATH || env.Path || "";
|
|
13
|
+
if (!pathVar)
|
|
14
|
+
return [];
|
|
15
|
+
const separator = pathVar.includes(";") && !pathVar.includes(":/") ? ";" : ":";
|
|
16
|
+
return pathVar.split(separator).filter(Boolean);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Classifies an already-resolved absolute path to a file inside the installed
|
|
20
|
+
* package. Pure over (path, env) — no filesystem access, no child processes.
|
|
21
|
+
*/
|
|
22
|
+
export function classifyInstallPath(realPath, env) {
|
|
23
|
+
const p = normalize(realPath);
|
|
24
|
+
if (!p)
|
|
25
|
+
return { kind: "unknown" };
|
|
26
|
+
const lower = p.toLowerCase();
|
|
27
|
+
// Global roots we deliberately do not support (yarn, bun): classify as
|
|
28
|
+
// unknown so the caller renders the safe fallback command instead of an
|
|
29
|
+
// invalid yarn/bun one.
|
|
30
|
+
const bunInstall = env.BUN_INSTALL ? normalize(env.BUN_INSTALL) : null;
|
|
31
|
+
if (lower.includes("/yarn/global/") ||
|
|
32
|
+
lower.includes("/.config/yarn/") ||
|
|
33
|
+
lower.includes("/.yarn/") ||
|
|
34
|
+
lower.includes("/.bun/") ||
|
|
35
|
+
(bunInstall && lower.startsWith(`${bunInstall.toLowerCase()}/`))) {
|
|
36
|
+
return { kind: "unknown" };
|
|
37
|
+
}
|
|
38
|
+
// pnpm global: $PNPM_HOME, or one of the well-known pnpm global roots.
|
|
39
|
+
// (A bare `/.pnpm/` virtual-store segment is not a global signal on its own
|
|
40
|
+
// — a project's own node_modules/.pnpm store has one too — so it falls
|
|
41
|
+
// through to the "local" branch below.)
|
|
42
|
+
const pnpmHome = env.PNPM_HOME ? normalize(env.PNPM_HOME) : null;
|
|
43
|
+
if ((pnpmHome && lower.startsWith(`${pnpmHome.toLowerCase()}/`)) ||
|
|
44
|
+
lower.includes("/pnpm/global/")) {
|
|
45
|
+
return { kind: "global", manager: "pnpm" };
|
|
46
|
+
}
|
|
47
|
+
// npm global: `<prefix>/lib/node_modules` on POSIX, `<AppData>/npm/node_modules`
|
|
48
|
+
// on Windows. Covers homebrew, /usr/local, nvm, and volta-style prefixes.
|
|
49
|
+
if (lower.includes("/lib/node_modules/") || lower.includes("/npm/node_modules/")) {
|
|
50
|
+
return { kind: "global", manager: "npm" };
|
|
51
|
+
}
|
|
52
|
+
// Anything else under a node_modules directory is a project dependency.
|
|
53
|
+
if (lower.includes("/node_modules/")) {
|
|
54
|
+
return { kind: "local" };
|
|
55
|
+
}
|
|
56
|
+
// No node_modules segment at all — running from a git checkout.
|
|
57
|
+
return { kind: "source" };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Picks the manager for a project-local install from the nearest lockfile,
|
|
61
|
+
* walking up from the installed file. Touches the filesystem, so it lives
|
|
62
|
+
* outside the pure classifier.
|
|
63
|
+
*/
|
|
64
|
+
function managerFromNearestLockfile(startPath) {
|
|
65
|
+
let dir = dirname(startPath);
|
|
66
|
+
for (let i = 0; i < 64; i++) {
|
|
67
|
+
if (existsSync(join(dir, "pnpm-lock.yaml")))
|
|
68
|
+
return "pnpm";
|
|
69
|
+
if (existsSync(join(dir, "package-lock.json")))
|
|
70
|
+
return "npm";
|
|
71
|
+
const parent = dirname(dir);
|
|
72
|
+
if (parent === dir)
|
|
73
|
+
break;
|
|
74
|
+
dir = parent;
|
|
75
|
+
}
|
|
76
|
+
return "npm";
|
|
77
|
+
}
|
|
78
|
+
/** Classifies the copy of the CLI that is executing right now. */
|
|
79
|
+
export function detectInstall(opts = {}) {
|
|
80
|
+
const env = opts.env ?? process.env;
|
|
81
|
+
try {
|
|
82
|
+
const selfPath = realpathSync(opts.selfPath ?? fileURLToPath(import.meta.url));
|
|
83
|
+
const classification = classifyInstallPath(selfPath, env);
|
|
84
|
+
if (classification.kind === "local") {
|
|
85
|
+
return { kind: "local", manager: managerFromNearestLockfile(selfPath) };
|
|
86
|
+
}
|
|
87
|
+
return classification;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return { kind: "unknown" };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* True when a `pnpm` executable is found on PATH (no child process spawned).
|
|
95
|
+
*
|
|
96
|
+
* `template.ts` has a separate `isPnpmInstalled` that shells out to
|
|
97
|
+
* `pnpm --version`. Both exist on purpose: this module must not spawn child
|
|
98
|
+
* processes (it runs on every command, inside the version check), while
|
|
99
|
+
* `template.ts` needs to know pnpm actually *runs*, not just that a file with
|
|
100
|
+
* that name is on PATH. The two can therefore disagree — a broken pnpm binary
|
|
101
|
+
* satisfies this one and not that one.
|
|
102
|
+
*/
|
|
103
|
+
export function isPnpmOnPath(env = process.env) {
|
|
104
|
+
const entries = pathEntries(env);
|
|
105
|
+
if (entries.length === 0)
|
|
106
|
+
return false;
|
|
107
|
+
const candidates = process.platform === "win32" ? ["pnpm.cmd", "pnpm.exe", "pnpm"] : ["pnpm"];
|
|
108
|
+
for (const entry of entries) {
|
|
109
|
+
for (const candidate of candidates) {
|
|
110
|
+
try {
|
|
111
|
+
if (existsSync(join(entry, candidate)))
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Unreadable PATH entry — keep looking.
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* True when pnpm has somewhere to put a global install.
|
|
123
|
+
*
|
|
124
|
+
* `pnpm add -g` fails with `ERR_PNPM_NO_GLOBAL_BIN_DIR` when pnpm has no
|
|
125
|
+
* global bin directory — the state a machine is in when pnpm was installed
|
|
126
|
+
* with `npm install -g pnpm` and `pnpm setup` was never run, which is exactly
|
|
127
|
+
* what `primitive init` does when it bootstraps pnpm. A `pnpm` binary on PATH
|
|
128
|
+
* is therefore not enough to conclude that pnpm can install globally.
|
|
129
|
+
*
|
|
130
|
+
* Two signals count:
|
|
131
|
+
* - `PNPM_HOME` is set *and* on PATH. `pnpm setup` sets both together; when
|
|
132
|
+
* the directory is set but not on PATH the install succeeds and leaves a
|
|
133
|
+
* binary the user can't run.
|
|
134
|
+
* - A pnpm global root already exists on disk — pnpm has installed globals
|
|
135
|
+
* here before, so it has a working global bin directory.
|
|
136
|
+
*/
|
|
137
|
+
export function canPnpmInstallGlobally(env, execPath) {
|
|
138
|
+
const home = env.PNPM_HOME ? normalize(env.PNPM_HOME).toLowerCase() : null;
|
|
139
|
+
if (home && pathEntries(env).some((entry) => normalize(entry).toLowerCase() === home)) {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
return globalRootCandidates(env, execPath).pnpm.some((root) => existingDir(join(root, "global")));
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The manager to use when nothing else identifies one: pnpm when it is on
|
|
146
|
+
* PATH *and* able to install globally, else npm. Never suggest or run a
|
|
147
|
+
* command the user's machine can't carry out.
|
|
148
|
+
*/
|
|
149
|
+
function pathFallbackManager(opts) {
|
|
150
|
+
const env = opts.env ?? process.env;
|
|
151
|
+
const execPath = opts.execPath ?? process.execPath;
|
|
152
|
+
return isPnpmOnPath(env) && canPnpmInstallGlobally(env, execPath) ? "pnpm" : "npm";
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The manager to install `pkg` globally with: whichever one already owns a
|
|
156
|
+
* global copy (so we upgrade that copy instead of creating a second one),
|
|
157
|
+
* else the PATH fallback.
|
|
158
|
+
*/
|
|
159
|
+
function installManager(pkg, opts) {
|
|
160
|
+
const existing = findDuplicateGlobalInstalls(pkg, opts);
|
|
161
|
+
if (existing.some((e) => e.manager === "pnpm"))
|
|
162
|
+
return "pnpm";
|
|
163
|
+
if (existing.some((e) => e.manager === "npm"))
|
|
164
|
+
return "npm";
|
|
165
|
+
return pathFallbackManager(opts);
|
|
166
|
+
}
|
|
167
|
+
function globalUpgrade(manager, spec) {
|
|
168
|
+
return manager === "pnpm" ? `pnpm add -g ${spec}` : `npm i -g ${spec}`;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* The command that upgrades this install to `distTag` ("latest", "alpha", …),
|
|
172
|
+
* or null when there is nothing sensible to suggest (a source checkout).
|
|
173
|
+
*/
|
|
174
|
+
export function upgradeCommand(install, pkg, distTag, opts = {}) {
|
|
175
|
+
const spec = `${pkg}@${distTag}`;
|
|
176
|
+
switch (install.kind) {
|
|
177
|
+
case "global":
|
|
178
|
+
return globalUpgrade(install.manager, spec);
|
|
179
|
+
case "local":
|
|
180
|
+
return install.manager === "pnpm" ? `pnpm up ${spec}` : `npm i ${spec}`;
|
|
181
|
+
case "source":
|
|
182
|
+
// A git checkout can't be upgraded by a package manager, and suggesting
|
|
183
|
+
// one there is how a user ends up with an extra copy.
|
|
184
|
+
return null;
|
|
185
|
+
case "unknown":
|
|
186
|
+
return globalUpgrade(pathFallbackManager(opts), spec);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/** The argv for a first-time global install of `pkg`. */
|
|
190
|
+
export function installArgv(pkg, opts = {}) {
|
|
191
|
+
const manager = installManager(pkg, opts);
|
|
192
|
+
return manager === "pnpm"
|
|
193
|
+
? { command: "pnpm", args: ["add", "-g", pkg] }
|
|
194
|
+
: { command: "npm", args: ["install", "-g", pkg] };
|
|
195
|
+
}
|
|
196
|
+
/** The command a user should run for a first-time global install of `pkg`. */
|
|
197
|
+
export function installCommand(pkg, opts = {}) {
|
|
198
|
+
const { command, args } = installArgv(pkg, opts);
|
|
199
|
+
return [command, ...args].join(" ");
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* The install's location with symlinks resolved, or the path itself when it
|
|
203
|
+
* can't be resolved. pnpm's global `node_modules/<pkg>` is a link into
|
|
204
|
+
* `<root>/global/<version>/.pnpm/<pkg>@<version>/node_modules/<pkg>`, and only
|
|
205
|
+
* the resolved form matches the resolved path of the running CLI file.
|
|
206
|
+
*/
|
|
207
|
+
function resolveLink(path) {
|
|
208
|
+
try {
|
|
209
|
+
return realpathSync(path);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return path;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function existingDir(path) {
|
|
216
|
+
try {
|
|
217
|
+
return existsSync(path);
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** pnpm keeps its global installs under `<root>/global/<version>/node_modules`. */
|
|
224
|
+
function pnpmGlobalPackagePaths(root, pkg) {
|
|
225
|
+
const globalRoot = join(root, "global");
|
|
226
|
+
let versions = [];
|
|
227
|
+
try {
|
|
228
|
+
versions = readdirSync(globalRoot);
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
return [];
|
|
232
|
+
}
|
|
233
|
+
return versions
|
|
234
|
+
.map((v) => join(globalRoot, v, "node_modules", pkg))
|
|
235
|
+
.filter(existingDir);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* The directories each manager could hold a global install in, derived from
|
|
239
|
+
* the environment and the running node executable. Pure — it only builds
|
|
240
|
+
* candidate paths; `findDuplicateGlobalInstalls` decides which ones exist.
|
|
241
|
+
*
|
|
242
|
+
* - pnpm keeps globals under `<pnpm root>/global/<version>/node_modules`.
|
|
243
|
+
* - npm keeps them under `<prefix>/lib/node_modules` (or
|
|
244
|
+
* `<AppData>/npm/node_modules` on Windows). The prefix is derived from the
|
|
245
|
+
* node executable and from every `.../bin` entry on PATH, which is what
|
|
246
|
+
* catches layouts like homebrew's, where the executable lives in a
|
|
247
|
+
* versioned Cellar directory but globals land in `/opt/homebrew`.
|
|
248
|
+
*/
|
|
249
|
+
export function globalRootCandidates(env, execPath) {
|
|
250
|
+
const pnpm = [
|
|
251
|
+
env.PNPM_HOME,
|
|
252
|
+
env.HOME ? join(env.HOME, "Library", "pnpm") : undefined,
|
|
253
|
+
env.HOME ? join(env.HOME, ".local", "share", "pnpm") : undefined,
|
|
254
|
+
env.LOCALAPPDATA ? join(env.LOCALAPPDATA, "pnpm") : undefined,
|
|
255
|
+
].filter((r) => !!r);
|
|
256
|
+
const prefixes = [dirname(dirname(execPath))];
|
|
257
|
+
if (env.npm_config_prefix)
|
|
258
|
+
prefixes.push(env.npm_config_prefix);
|
|
259
|
+
for (const entry of (env.PATH || env.Path || "").split(/[:;]/)) {
|
|
260
|
+
if (entry && /[\\/]bin$/.test(entry))
|
|
261
|
+
prefixes.push(dirname(entry));
|
|
262
|
+
}
|
|
263
|
+
const npm = prefixes.map((prefix) => join(prefix, "lib", "node_modules"));
|
|
264
|
+
if (env.APPDATA)
|
|
265
|
+
npm.push(join(env.APPDATA, "npm", "node_modules"));
|
|
266
|
+
return { pnpm: unique(pnpm), npm: unique(npm) };
|
|
267
|
+
}
|
|
268
|
+
function unique(paths) {
|
|
269
|
+
const seen = new Set();
|
|
270
|
+
return paths.filter((p) => {
|
|
271
|
+
const key = normalize(p);
|
|
272
|
+
if (seen.has(key))
|
|
273
|
+
return false;
|
|
274
|
+
seen.add(key);
|
|
275
|
+
return true;
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Finds global copies of `pkg` in the global roots of each supported manager.
|
|
280
|
+
* Path checks only — no child processes.
|
|
281
|
+
*/
|
|
282
|
+
export function findDuplicateGlobalInstalls(pkg, opts = {}) {
|
|
283
|
+
const roots = opts.roots ?? globalRootCandidates(opts.env ?? process.env, opts.execPath ?? process.execPath);
|
|
284
|
+
const found = [];
|
|
285
|
+
const seen = new Set();
|
|
286
|
+
const add = (manager, path) => {
|
|
287
|
+
const key = normalize(path);
|
|
288
|
+
if (seen.has(key))
|
|
289
|
+
return;
|
|
290
|
+
seen.add(key);
|
|
291
|
+
found.push({ manager, path, realPath: resolveLink(path) });
|
|
292
|
+
};
|
|
293
|
+
for (const root of roots.pnpm) {
|
|
294
|
+
for (const path of pnpmGlobalPackagePaths(root, pkg)) {
|
|
295
|
+
add("pnpm", path);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
for (const root of roots.npm) {
|
|
299
|
+
const path = join(root, pkg);
|
|
300
|
+
if (existingDir(path))
|
|
301
|
+
add("npm", path);
|
|
302
|
+
}
|
|
303
|
+
return found;
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=package-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../src/lib/package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cursor-pagination helper used by the CLI's API client.
|
|
3
|
+
*
|
|
4
|
+
* The server exposes cursor-paginated endpoints (e.g. GET /admin/api/admins/me/apps)
|
|
5
|
+
* that return `{ items, nextCursor? }` pages. Callers historically only fetched
|
|
6
|
+
* the first page, silently truncating results (see issue #436). This helper
|
|
7
|
+
* walks every page and aggregates the items in order.
|
|
8
|
+
*
|
|
9
|
+
* Exported separately so the looping contract can be unit-tested without
|
|
10
|
+
* stubbing the full ApiClient.
|
|
11
|
+
*/
|
|
12
|
+
export interface PaginatedPage<T> {
|
|
13
|
+
items: T[];
|
|
14
|
+
nextCursor?: string | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The one list envelope the CLI prints (issue #2357).
|
|
18
|
+
*
|
|
19
|
+
* `nextCursor` is present only when there is a next page. The deprecated
|
|
20
|
+
* `cursor` alias (#1316, removal tracked in #1982) is accepted on input but
|
|
21
|
+
* never re-emitted, so CLI consumers are already on `nextCursor` when the
|
|
22
|
+
* server drops it.
|
|
23
|
+
*/
|
|
24
|
+
export interface ListEnvelope<T = any> {
|
|
25
|
+
items: T[];
|
|
26
|
+
hasMore: boolean;
|
|
27
|
+
nextCursor?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Normalize an endpoint's list response into the CLI's own output contract.
|
|
31
|
+
*
|
|
32
|
+
* The records read paths speak two different wire shapes: js-bao's Durable
|
|
33
|
+
* Object envelope (`{ data, hasMore, nextCursor?, prevCursor? }`) and the
|
|
34
|
+
* server's unified list payload (`{ items, hasMore, nextCursor, cursor }`).
|
|
35
|
+
* Both are collapsed here to `{ items, hasMore, nextCursor? }` so like verbs
|
|
36
|
+
* print like envelopes.
|
|
37
|
+
*
|
|
38
|
+
* Accepts `items` or `data` as the array key and `nextCursor` or the
|
|
39
|
+
* deprecated `cursor` alias as the cursor. Throws when neither array key is
|
|
40
|
+
* present so an error body is never coerced into an empty result.
|
|
41
|
+
*
|
|
42
|
+
* Named `normalizeCliListEnvelope` to keep it distinct from the JS client's
|
|
43
|
+
* `normalizeListEnvelope` (`src/client/internal/listEnvelope.ts`), whose
|
|
44
|
+
* cursor contract is the opposite: it *back-fills* the deprecated `cursor`
|
|
45
|
+
* alias so the client keeps working against pre-#1316 servers, while this one
|
|
46
|
+
* drops it so CLI consumers are already off it when #1982 lands. The two are
|
|
47
|
+
* unrelated — the client helper is not re-exported from `src/client/index.ts`
|
|
48
|
+
* and the CLI does not depend on the client package.
|
|
49
|
+
*
|
|
50
|
+
* Note: the list methods in `api-client.ts` that re-emit the deprecated
|
|
51
|
+
* `cursor` alias are deliberately NOT routed through this helper — they must
|
|
52
|
+
* keep dual-emitting until #1982 closes its deprecation window, which is the
|
|
53
|
+
* opposite of this contract. As of this writing that is eight methods (grep
|
|
54
|
+
* `cursor: nextCursor` in `api-client.ts` for the current set):
|
|
55
|
+
* `listInvitations`, `listWebhookEvents`, `listWorkflowRuns`,
|
|
56
|
+
* `listUserWorkflowRuns`, `listAllAdmins`, `listGroups`, `listGroupMembers`,
|
|
57
|
+
* `listBucketBlobs`. The `listCollection*` methods only *read* the alias and
|
|
58
|
+
* emit `nextCursor` alone, so they already match this contract.
|
|
59
|
+
*
|
|
60
|
+
* `databases operations execute` routes through here too, but conditionally: a
|
|
61
|
+
* registered operation is only sometimes a list, so
|
|
62
|
+
* `normalizeDatabaseOperationResult()` (`api-client.ts`) tests the result shape
|
|
63
|
+
* first and calls this helper only for a Durable Object query page (#2440).
|
|
64
|
+
*/
|
|
65
|
+
export declare function normalizeCliListEnvelope<T = any>(raw: unknown): ListEnvelope<T>;
|
|
66
|
+
export type PageFetcher<T> = (cursor: string | undefined) => Promise<PaginatedPage<T>>;
|
|
67
|
+
export interface PaginateOptions {
|
|
68
|
+
/**
|
|
69
|
+
* Safety net: if the server hands out a non-advancing cursor (same cursor
|
|
70
|
+
* returned repeatedly, or an implausibly long chain), stop after this many
|
|
71
|
+
* pages and throw. Default: 1000.
|
|
72
|
+
*/
|
|
73
|
+
maxPages?: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Walk every cursor page from `fetchPage` and return the concatenated items.
|
|
77
|
+
*
|
|
78
|
+
* Detects two failure modes that would otherwise hang the CLI:
|
|
79
|
+
* - A cursor that repeats (server returned the same `nextCursor` twice).
|
|
80
|
+
* - A cursor chain longer than `maxPages` (default 1000).
|
|
81
|
+
* Both throw so the caller fails loudly rather than looping forever.
|
|
82
|
+
*/
|
|
83
|
+
export declare function paginateAll<T>(fetchPage: PageFetcher<T>, options?: PaginateOptions): Promise<T[]>;
|