opkg 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -186
- package/assets/openpackage_ascii_dark.png +0 -0
- package/assets/openpackage_ascii_light.png +0 -0
- package/dist/commands/add.js +34 -10
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/apply.js +16 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/delete.js +1 -1
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/install.js +177 -8
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.js +2 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/new.js +125 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/pack.js +7 -13
- package/dist/commands/pack.js.map +1 -1
- package/dist/commands/pull.js +1 -1
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.js +1 -1
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/remove.js +63 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/save.js +11 -17
- package/dist/commands/save.js.map +1 -1
- package/dist/commands/set.js +33 -0
- package/dist/commands/set.js.map +1 -0
- package/dist/commands/show.js +16 -94
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/status.js +26 -701
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.js +14 -427
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/constants/index.js +72 -16
- package/dist/constants/index.js.map +1 -1
- package/dist/core/add/add-conflict-handler.js +1 -8
- package/dist/core/add/add-conflict-handler.js.map +1 -1
- package/dist/core/add/add-pipeline.js +12 -10
- package/dist/core/add/add-pipeline.js.map +1 -1
- package/dist/core/add/add-to-source-pipeline.js +123 -0
- package/dist/core/add/add-to-source-pipeline.js.map +1 -0
- package/dist/core/add/package-index-updater.js +77 -78
- package/dist/core/add/package-index-updater.js.map +1 -1
- package/dist/core/add/platform-path-transformer.js +6 -4
- package/dist/core/add/platform-path-transformer.js.map +1 -1
- package/dist/core/add/source-collector.js +2 -3
- package/dist/core/add/source-collector.js.map +1 -1
- package/dist/core/apply/apply-pipeline.js +110 -0
- package/dist/core/apply/apply-pipeline.js.map +1 -0
- package/dist/core/dependency-resolver.js +263 -21
- package/dist/core/dependency-resolver.js.map +1 -1
- package/dist/core/discovery/file-discovery.js +1 -2
- package/dist/core/discovery/file-discovery.js.map +1 -1
- package/dist/core/discovery/platform-files-discovery.js +33 -18
- package/dist/core/discovery/platform-files-discovery.js.map +1 -1
- package/dist/core/flows/flow-executor.js +974 -0
- package/dist/core/flows/flow-executor.js.map +1 -0
- package/dist/core/flows/flow-inverter.js +442 -0
- package/dist/core/flows/flow-inverter.js.map +1 -0
- package/dist/core/flows/flow-key-extractor.js +101 -0
- package/dist/core/flows/flow-key-extractor.js.map +1 -0
- package/dist/core/flows/flow-key-mapper.js +382 -0
- package/dist/core/flows/flow-key-mapper.js.map +1 -0
- package/dist/core/flows/flow-transforms.js +632 -0
- package/dist/core/flows/flow-transforms.js.map +1 -0
- package/dist/core/flows/map-pipeline/context.js +73 -0
- package/dist/core/flows/map-pipeline/context.js.map +1 -0
- package/dist/core/flows/map-pipeline/index.js +156 -0
- package/dist/core/flows/map-pipeline/index.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/copy.js +104 -0
- package/dist/core/flows/map-pipeline/operations/copy.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/pipe.js +70 -0
- package/dist/core/flows/map-pipeline/operations/pipe.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/rename.js +102 -0
- package/dist/core/flows/map-pipeline/operations/rename.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/set.js +50 -0
- package/dist/core/flows/map-pipeline/operations/set.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/switch.js +79 -0
- package/dist/core/flows/map-pipeline/operations/switch.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/transform.js +543 -0
- package/dist/core/flows/map-pipeline/operations/transform.js.map +1 -0
- package/dist/core/flows/map-pipeline/operations/unset.js +65 -0
- package/dist/core/flows/map-pipeline/operations/unset.js.map +1 -0
- package/dist/core/flows/map-pipeline/types.js +8 -0
- package/dist/core/flows/map-pipeline/types.js.map +1 -0
- package/dist/core/flows/map-pipeline/utils.js +278 -0
- package/dist/core/flows/map-pipeline/utils.js.map +1 -0
- package/dist/core/flows/platform-converter.js +328 -0
- package/dist/core/flows/platform-converter.js.map +1 -0
- package/dist/core/flows/source-resolver.js +192 -0
- package/dist/core/flows/source-resolver.js.map +1 -0
- package/dist/core/flows/toml-domain-transforms.js +23 -0
- package/dist/core/flows/toml-domain-transforms.js.map +1 -0
- package/dist/core/install/bulk-install-pipeline.js +68 -7
- package/dist/core/install/bulk-install-pipeline.js.map +1 -1
- package/dist/core/install/canonical-plan.js +3 -3
- package/dist/core/install/canonical-plan.js.map +1 -1
- package/dist/core/install/dry-run.js +3 -3
- package/dist/core/install/dry-run.js.map +1 -1
- package/dist/core/install/flow-based-installer.js +1158 -0
- package/dist/core/install/flow-based-installer.js.map +1 -0
- package/dist/core/install/flow-workspace-tracker.js +111 -0
- package/dist/core/install/flow-workspace-tracker.js.map +1 -0
- package/dist/core/install/format-detector.js +228 -0
- package/dist/core/install/format-detector.js.map +1 -0
- package/dist/core/install/git-package-loader.js +20 -0
- package/dist/core/install/git-package-loader.js.map +1 -0
- package/dist/core/install/install-errors.js +1 -1
- package/dist/core/install/install-errors.js.map +1 -1
- package/dist/core/install/install-flow.js +34 -14
- package/dist/core/install/install-flow.js.map +1 -1
- package/dist/core/install/install-pipeline.js +52 -17
- package/dist/core/install/install-pipeline.js.map +1 -1
- package/dist/core/install/install-reporting.js +26 -8
- package/dist/core/install/install-reporting.js.map +1 -1
- package/dist/core/install/local-source-resolution.js +103 -0
- package/dist/core/install/local-source-resolution.js.map +1 -0
- package/dist/core/install/marketplace-handler.js +221 -0
- package/dist/core/install/marketplace-handler.js.map +1 -0
- package/dist/core/install/path-install-pipeline.js +241 -0
- package/dist/core/install/path-install-pipeline.js.map +1 -0
- package/dist/core/install/path-package-loader.js +116 -0
- package/dist/core/install/path-package-loader.js.map +1 -0
- package/dist/core/install/plugin-detector.js +72 -0
- package/dist/core/install/plugin-detector.js.map +1 -0
- package/dist/core/install/plugin-to-universal-converter.js +218 -0
- package/dist/core/install/plugin-to-universal-converter.js.map +1 -0
- package/dist/core/install/plugin-transformer.js +191 -0
- package/dist/core/install/plugin-transformer.js.map +1 -0
- package/dist/core/install/version-selection.js +1 -1
- package/dist/core/install/version-selection.js.map +1 -1
- package/dist/core/openpackage.js +40 -22
- package/dist/core/openpackage.js.map +1 -1
- package/dist/core/pack/pack-output.js +62 -0
- package/dist/core/pack/pack-output.js.map +1 -0
- package/dist/core/pack/pack-pipeline.js +186 -0
- package/dist/core/pack/pack-pipeline.js.map +1 -0
- package/dist/core/package-context.js +45 -70
- package/dist/core/package-context.js.map +1 -1
- package/dist/core/package-creation.js +203 -0
- package/dist/core/package-creation.js.map +1 -0
- package/dist/core/package.js +20 -6
- package/dist/core/package.js.map +1 -1
- package/dist/core/platforms.js +665 -209
- package/dist/core/platforms.js.map +1 -1
- package/dist/core/push/push-context.js +1 -1
- package/dist/core/push/push-context.js.map +1 -1
- package/dist/core/push/push-upload.js +2 -2
- package/dist/core/push/push-upload.js.map +1 -1
- package/dist/core/registry.js +6 -6
- package/dist/core/registry.js.map +1 -1
- package/dist/core/remote-pull.js +2 -2
- package/dist/core/remote-pull.js.map +1 -1
- package/dist/core/remove/removal-collector.js +52 -0
- package/dist/core/remove/removal-collector.js.map +1 -0
- package/dist/core/remove/removal-confirmation.js +39 -0
- package/dist/core/remove/removal-confirmation.js.map +1 -0
- package/dist/core/remove/remove-from-source-pipeline.js +173 -0
- package/dist/core/remove/remove-from-source-pipeline.js.map +1 -0
- package/dist/core/save/constants.js +3 -3
- package/dist/core/save/constants.js.map +1 -1
- package/dist/core/save/flow-based-saver.js +270 -0
- package/dist/core/save/flow-based-saver.js.map +1 -0
- package/dist/core/save/name-resolution.js +1 -1
- package/dist/core/save/name-resolution.js.map +1 -1
- package/dist/core/save/package-yml-generator.js +4 -5
- package/dist/core/save/package-yml-generator.js.map +1 -1
- package/dist/core/save/save-candidate-builder.js +215 -0
- package/dist/core/save/save-candidate-builder.js.map +1 -0
- package/dist/core/save/save-candidate-loader.js +12 -11
- package/dist/core/save/save-candidate-loader.js.map +1 -1
- package/dist/core/save/save-conflict-analyzer.js +150 -0
- package/dist/core/save/save-conflict-analyzer.js.map +1 -0
- package/dist/core/save/save-conflict-resolution.js +28 -14
- package/dist/core/save/save-conflict-resolution.js.map +1 -1
- package/dist/core/save/save-conflict-resolver.js +31 -275
- package/dist/core/save/save-conflict-resolver.js.map +1 -1
- package/dist/core/save/save-group-builder.js +52 -0
- package/dist/core/save/save-group-builder.js.map +1 -0
- package/dist/core/save/save-interactive-resolver.js +190 -0
- package/dist/core/save/save-interactive-resolver.js.map +1 -0
- package/dist/core/save/save-pipeline.js +58 -34
- package/dist/core/save/save-pipeline.js.map +1 -1
- package/dist/core/save/save-platform-handler.js +53 -0
- package/dist/core/save/save-platform-handler.js.map +1 -0
- package/dist/core/save/save-resolution-executor.js +145 -0
- package/dist/core/save/save-resolution-executor.js.map +1 -0
- package/dist/core/save/save-result-reporter.js +167 -0
- package/dist/core/save/save-result-reporter.js.map +1 -0
- package/dist/core/save/save-to-source-pipeline.js +154 -0
- package/dist/core/save/save-to-source-pipeline.js.map +1 -0
- package/dist/core/save/save-versioning.js +4 -4
- package/dist/core/save/save-versioning.js.map +1 -1
- package/dist/core/save/save-write-coordinator.js +204 -0
- package/dist/core/save/save-write-coordinator.js.map +1 -0
- package/dist/core/save/save-yml-resolution.js +28 -216
- package/dist/core/save/save-yml-resolution.js.map +1 -1
- package/dist/core/save/workspace-rename.js +7 -8
- package/dist/core/save/workspace-rename.js.map +1 -1
- package/dist/core/set/set-output.js +72 -0
- package/dist/core/set/set-output.js.map +1 -0
- package/dist/core/set/set-pipeline.js +361 -0
- package/dist/core/set/set-pipeline.js.map +1 -0
- package/dist/core/set/set-types.js +5 -0
- package/dist/core/set/set-types.js.map +1 -0
- package/dist/core/show/package-resolver.js +257 -0
- package/dist/core/show/package-resolver.js.map +1 -0
- package/dist/core/show/scope-discovery.js +165 -0
- package/dist/core/show/scope-discovery.js.map +1 -0
- package/dist/core/show/show-output.js +168 -0
- package/dist/core/show/show-output.js.map +1 -0
- package/dist/core/show/show-pipeline.js +113 -0
- package/dist/core/show/show-pipeline.js.map +1 -0
- package/dist/core/show/show-types.js +5 -0
- package/dist/core/show/show-types.js.map +1 -0
- package/dist/core/source-resolution/dependency-graph.js +104 -0
- package/dist/core/source-resolution/dependency-graph.js.map +1 -0
- package/dist/core/source-resolution/resolve-mutable-source.js +109 -0
- package/dist/core/source-resolution/resolve-mutable-source.js.map +1 -0
- package/dist/core/source-resolution/resolve-package-source.js +29 -0
- package/dist/core/source-resolution/resolve-package-source.js.map +1 -0
- package/dist/core/source-resolution/resolve-registry-version.js +35 -0
- package/dist/core/source-resolution/resolve-registry-version.js.map +1 -0
- package/dist/core/source-resolution/types.js.map +1 -0
- package/dist/core/status/status-file-discovery.js +23 -12
- package/dist/core/status/status-file-discovery.js.map +1 -1
- package/dist/core/status/status-pipeline.js +134 -0
- package/dist/core/status/status-pipeline.js.map +1 -0
- package/dist/core/sync/platform-sync-summary.js +27 -0
- package/dist/core/sync/platform-sync-summary.js.map +1 -0
- package/dist/core/uninstall/flow-aware-uninstaller.js +189 -0
- package/dist/core/uninstall/flow-aware-uninstaller.js.map +1 -0
- package/dist/core/uninstall/uninstall-file-discovery.js +11 -6
- package/dist/core/uninstall/uninstall-file-discovery.js.map +1 -1
- package/dist/core/uninstall/uninstall-pipeline.js +141 -0
- package/dist/core/uninstall/uninstall-pipeline.js.map +1 -0
- package/dist/core/universal-patterns.js +64 -0
- package/dist/core/universal-patterns.js.map +1 -0
- package/dist/index.js +99 -6
- package/dist/index.js.map +1 -1
- package/dist/types/flows.js +8 -0
- package/dist/types/flows.js.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/platform-flows.js +8 -0
- package/dist/types/platform-flows.js.map +1 -0
- package/dist/types/workspace-index.js +6 -0
- package/dist/types/workspace-index.js.map +1 -0
- package/dist/utils/custom-path-resolution.js +160 -0
- package/dist/utils/custom-path-resolution.js.map +1 -0
- package/dist/utils/dependency-coverage.js +1 -1
- package/dist/utils/dependency-coverage.js.map +1 -1
- package/dist/utils/file-processing.js +1 -1
- package/dist/utils/flow-index-installer.js +209 -0
- package/dist/utils/flow-index-installer.js.map +1 -0
- package/dist/utils/formatters.js +47 -1
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/fs.js +17 -0
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-clone-registry.js +88 -0
- package/dist/utils/git-clone-registry.js.map +1 -0
- package/dist/utils/git-clone.js +69 -0
- package/dist/utils/git-clone.js.map +1 -0
- package/dist/utils/git-spec.js +96 -0
- package/dist/utils/git-spec.js.map +1 -0
- package/dist/utils/http-client.js +7 -0
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/index-based-installer.js +356 -163
- package/dist/utils/index-based-installer.js.map +1 -1
- package/dist/utils/install-conflict-handler.js +2 -2
- package/dist/utils/install-conflict-handler.js.map +1 -1
- package/dist/utils/install-file-discovery.js +18 -13
- package/dist/utils/install-file-discovery.js.map +1 -1
- package/dist/utils/install-helpers.js +43 -20
- package/dist/utils/install-helpers.js.map +1 -1
- package/dist/utils/jsonc.js +23 -1
- package/dist/utils/jsonc.js.map +1 -1
- package/dist/utils/manifest-paths.js +1 -1
- package/dist/utils/manifest-paths.js.map +1 -1
- package/dist/utils/markdown-frontmatter.js +46 -0
- package/dist/utils/markdown-frontmatter.js.map +1 -1
- package/dist/utils/package-copy.js +5 -103
- package/dist/utils/package-copy.js.map +1 -1
- package/dist/utils/package-filters.js +9 -105
- package/dist/utils/package-filters.js.map +1 -1
- package/dist/utils/package-index-yml.js +27 -6
- package/dist/utils/package-index-yml.js.map +1 -1
- package/dist/utils/package-input.js +98 -0
- package/dist/utils/package-input.js.map +1 -0
- package/dist/utils/package-management.js +80 -28
- package/dist/utils/package-management.js.map +1 -1
- package/dist/utils/package-name-resolution.js +327 -0
- package/dist/utils/package-name-resolution.js.map +1 -0
- package/dist/utils/package-name.js +18 -16
- package/dist/utils/package-name.js.map +1 -1
- package/dist/utils/package-versioning.js +2 -33
- package/dist/utils/package-versioning.js.map +1 -1
- package/dist/utils/package-yml.js +19 -28
- package/dist/utils/package-yml.js.map +1 -1
- package/dist/utils/path-resolution.js +102 -0
- package/dist/utils/path-resolution.js.map +1 -0
- package/dist/utils/paths.js +6 -6
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/platform-file.js +36 -24
- package/dist/utils/platform-file.js.map +1 -1
- package/dist/utils/platform-mapper.js +222 -68
- package/dist/utils/platform-mapper.js.map +1 -1
- package/dist/utils/platform-root-files.js +44 -0
- package/dist/utils/platform-root-files.js.map +1 -0
- package/dist/utils/platform-utils.js +35 -54
- package/dist/utils/platform-utils.js.map +1 -1
- package/dist/utils/platform-yaml-merge.js +20 -140
- package/dist/utils/platform-yaml-merge.js.map +1 -1
- package/dist/utils/prompts.js +92 -7
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/registry-entry-filter.js +50 -27
- package/dist/utils/registry-entry-filter.js.map +1 -1
- package/dist/utils/registry-paths.js +5 -4
- package/dist/utils/registry-paths.js.map +1 -1
- package/dist/utils/scope-resolution.js +156 -0
- package/dist/utils/scope-resolution.js.map +1 -0
- package/dist/utils/source-mutability.js +15 -0
- package/dist/utils/source-mutability.js.map +1 -0
- package/dist/utils/tarball.js +29 -4
- package/dist/utils/tarball.js.map +1 -1
- package/dist/utils/version-ranges.js +1 -32
- package/dist/utils/version-ranges.js.map +1 -1
- package/dist/utils/workspace-index-helpers.js +28 -0
- package/dist/utils/workspace-index-helpers.js.map +1 -0
- package/dist/utils/workspace-index-ownership.js +100 -0
- package/dist/utils/workspace-index-ownership.js.map +1 -0
- package/dist/utils/workspace-index-yml.js +173 -0
- package/dist/utils/workspace-index-yml.js.map +1 -0
- package/examples/custom-subdirs-platform.jsonc +157 -0
- package/package.json +7 -2
- package/platforms.jsonc +531 -84
- package/schemas/map-pipeline-v1.json +256 -0
- package/schemas/platforms-v1.json +400 -0
- package/specs/README.md +88 -0
- package/specs/add/README.md +166 -0
- package/specs/agents-claude.md +570 -0
- package/specs/agents-opencode.md +622 -0
- package/specs/apply/README.md +21 -0
- package/specs/apply/apply-behavior.md +58 -0
- package/specs/apply/apply-command.md +51 -0
- package/specs/apply/conflicts.md +41 -0
- package/specs/apply/index-effects.md +81 -0
- package/specs/architecture.md +107 -0
- package/specs/auth/README.md +17 -0
- package/specs/auth/auth-http-contract.md +25 -0
- package/specs/auth/cli/credentials.md +39 -0
- package/specs/auth/cli/login.md +32 -0
- package/specs/auth/cli/logout.md +16 -0
- package/specs/claude-mcp.md +1065 -0
- package/specs/claude-plugins-marketplace.md +363 -0
- package/specs/claude-plugins.md +413 -0
- package/specs/cli-options.md +52 -0
- package/specs/codex-mcp.md +114 -0
- package/specs/commands-overview.md +175 -0
- package/specs/directory-layout.md +95 -0
- package/specs/install/README.md +12 -4
- package/specs/install/git-sources.md +230 -0
- package/specs/install/install-behavior.md +483 -73
- package/specs/install/package-yml-canonical.md +67 -35
- package/specs/install/version-resolution.md +69 -115
- package/specs/new/README.md +769 -0
- package/specs/new/SUMMARY.md +310 -0
- package/specs/new/scope-behavior.md +793 -0
- package/specs/pack/README.md +77 -0
- package/specs/pack/package-name-resolution.md +330 -0
- package/specs/package/README.md +18 -17
- package/specs/package/nested-packages-and-parent-packages.md +32 -31
- package/specs/package/package-index-yml.md +95 -101
- package/specs/package/package-root-layout.md +64 -46
- package/specs/package/registry-payload-and-copy.md +50 -44
- package/specs/package/universal-content.md +33 -56
- package/specs/package-sources.md +248 -0
- package/specs/platforms/README.md +52 -0
- package/specs/platforms/configuration.md +571 -0
- package/specs/platforms/detection.md +552 -0
- package/specs/platforms/directory-layout.md +599 -0
- package/specs/platforms/examples.md +1146 -0
- package/specs/platforms/flow-reference.md +1240 -0
- package/specs/platforms/flows.md +1488 -0
- package/specs/platforms/map-pipeline.md +801 -0
- package/specs/platforms/overview.md +349 -0
- package/specs/platforms/specification.md +700 -0
- package/specs/platforms/troubleshooting.md +697 -0
- package/specs/platforms/universal-converter.md +520 -0
- package/specs/push/README.md +1 -0
- package/specs/push/push-behavior.md +11 -3
- package/specs/push/push-remote-upload.md +1 -1
- package/specs/push/push-scoping.md +1 -1
- package/specs/push/push-version-selection.md +1 -1
- package/specs/registry.md +111 -0
- package/specs/remove/README.md +257 -0
- package/specs/save/README.md +21 -17
- package/specs/save/save-conflict-resolution.md +205 -83
- package/specs/save/save-file-discovery.md +6 -4
- package/specs/save/save-frontmatter-overrides.md +11 -15
- package/specs/save/save-modes-inputs.md +9 -39
- package/specs/save/save-naming-scoping.md +4 -4
- package/specs/save/save-package-detection.md +13 -13
- package/specs/save/save-registry-sync.md +16 -106
- package/specs/save/save-versioning.md +80 -0
- package/specs/scope-management.md +92 -0
- package/specs/set/README.md +520 -0
- package/specs/set/set-behavior.md +563 -0
- package/specs/show/README.md +483 -0
- package/specs/show/show-remote.md +494 -0
- package/specs/status/README.md +38 -0
- package/specs/uninstall/README.md +231 -0
- package/dist/commands/duplicate.js +0 -69
- package/dist/commands/duplicate.js.map +0 -1
- package/dist/commands/init.js +0 -117
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/prune.js +0 -357
- package/dist/commands/prune.js.map +0 -1
- package/dist/commands/tui.js +0 -61
- package/dist/commands/tui.js.map +0 -1
- package/dist/core/install/index.js +0 -3
- package/dist/core/install/index.js.map +0 -1
- package/dist/core/push/push-single-file.js +0 -56
- package/dist/core/push/push-single-file.js.map +0 -1
- package/dist/core/save/package-detection.js +0 -147
- package/dist/core/save/package-detection.js.map +0 -1
- package/dist/core/save/save-single-file.js +0 -124
- package/dist/core/save/save-single-file.js.map +0 -1
- package/dist/core/token-store.js +0 -73
- package/dist/core/token-store.js.map +0 -1
- package/dist/tui/app.js +0 -95
- package/dist/tui/app.js.map +0 -1
- package/dist/tui/components/package-list.js +0 -73
- package/dist/tui/components/package-list.js.map +0 -1
- package/dist/tui/controller.js +0 -365
- package/dist/tui/controller.js.map +0 -1
- package/dist/tui/index.js +0 -12
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/services/file-index.js +0 -64
- package/dist/tui/services/file-index.js.map +0 -1
- package/dist/tui/services/packages.js +0 -18
- package/dist/tui/services/packages.js.map +0 -1
- package/dist/tui/services/save.js +0 -21
- package/dist/tui/services/save.js.map +0 -1
- package/dist/tui/state/app-state.js +0 -15
- package/dist/tui/state/app-state.js.map +0 -1
- package/dist/tui/state.js +0 -17
- package/dist/tui/state.js.map +0 -1
- package/dist/tui/types.js.map +0 -1
- package/dist/tui/views/add-file-modal.js +0 -129
- package/dist/tui/views/add-file-modal.js.map +0 -1
- package/dist/tui/views/file-preview.js +0 -44
- package/dist/tui/views/file-preview.js.map +0 -1
- package/dist/tui/views/list-packages.js +0 -73
- package/dist/tui/views/list-packages.js.map +0 -1
- package/dist/tui/views/main-menu.js +0 -29
- package/dist/tui/views/main-menu.js.map +0 -1
- package/dist/tui/views/manage-view.js +0 -81
- package/dist/tui/views/manage-view.js.map +0 -1
- package/dist/tui/views/package-hub.js +0 -120
- package/dist/tui/views/package-hub.js.map +0 -1
- package/dist/tui/views/placeholder.js +0 -24
- package/dist/tui/views/placeholder.js.map +0 -1
- package/dist/utils/bun-bootstrap.js +0 -72
- package/dist/utils/bun-bootstrap.js.map +0 -1
- package/dist/utils/entity-id.js +0 -19
- package/dist/utils/entity-id.js.map +0 -1
- package/dist/utils/package-local-files.js +0 -5
- package/dist/utils/package-local-files.js.map +0 -1
- package/dist/utils/path-matching.js +0 -74
- package/dist/utils/path-matching.js.map +0 -1
- package/dist/utils/root-file-operations.js +0 -39
- package/dist/utils/root-file-operations.js.map +0 -1
- package/dist/utils/root-file-transformer.js +0 -27
- package/dist/utils/root-file-transformer.js.map +0 -1
- package/dist/utils/yaml-frontmatter.js +0 -25
- package/dist/utils/yaml-frontmatter.js.map +0 -1
- package/specs/auth/auth-device-flow.md +0 -70
- package/specs/login/login-device-flow.md +0 -70
- package/specs/platforms.md +0 -193
- package/specs/save-pack-versioning.md +0 -224
- package/specs/save-pack.md +0 -68
- /package/dist/{tui → core/source-resolution}/types.js +0 -0
package/dist/core/openpackage.js
CHANGED
|
@@ -9,16 +9,17 @@ import { findFilesByExtension, findDirectoriesContainingFile } from '../utils/fi
|
|
|
9
9
|
import { getDetectedPlatforms, getPlatformDefinition } from './platforms.js';
|
|
10
10
|
import { arePackageNamesEquivalent } from '../utils/package-name.js';
|
|
11
11
|
/**
|
|
12
|
-
* Find package config file
|
|
12
|
+
* Find package config file in a directory.
|
|
13
|
+
* Prefers v2 layout: <dir>/openpackage.yml, then <dir>/.openpackage/openpackage.yml (workspace-style).
|
|
13
14
|
*/
|
|
14
15
|
async function findPackageConfigFile(directoryPath) {
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
if (await exists(
|
|
18
|
-
return
|
|
16
|
+
const rootManifest = join(directoryPath, FILE_PATTERNS.OPENPACKAGE_YML);
|
|
17
|
+
const workspaceManifest = getLocalPackageYmlPath(directoryPath);
|
|
18
|
+
if (await exists(rootManifest)) {
|
|
19
|
+
return rootManifest;
|
|
19
20
|
}
|
|
20
|
-
else if (await exists(
|
|
21
|
-
return
|
|
21
|
+
else if (await exists(workspaceManifest)) {
|
|
22
|
+
return workspaceManifest;
|
|
22
23
|
}
|
|
23
24
|
return null;
|
|
24
25
|
}
|
|
@@ -85,12 +86,12 @@ export async function scanOpenPackagePackages(openpackagePath) {
|
|
|
85
86
|
return packages;
|
|
86
87
|
}
|
|
87
88
|
try {
|
|
88
|
-
// Find all
|
|
89
|
+
// Find all openpackage.yml files recursively under the packages directory
|
|
89
90
|
const packagesDir = getLocalPackagesDir(openpackagePath);
|
|
90
91
|
if (!(await exists(packagesDir))) {
|
|
91
92
|
return packages;
|
|
92
93
|
}
|
|
93
|
-
const packageDirs = await findDirectoriesContainingFile(packagesDir, FILE_PATTERNS.
|
|
94
|
+
const packageDirs = await findDirectoriesContainingFile(packagesDir, FILE_PATTERNS.OPENPACKAGE_YML, async (filePath) => {
|
|
94
95
|
try {
|
|
95
96
|
return await parsePackageYml(filePath);
|
|
96
97
|
}
|
|
@@ -119,7 +120,7 @@ export async function scanOpenPackagePackages(openpackagePath) {
|
|
|
119
120
|
return packages;
|
|
120
121
|
}
|
|
121
122
|
/**
|
|
122
|
-
* Gather version constraints from the main and
|
|
123
|
+
* Gather version constraints from the main and cached package openpackage.yml files
|
|
123
124
|
*/
|
|
124
125
|
export async function gatherGlobalVersionConstraints(cwd, includeResolutions = true) {
|
|
125
126
|
const constraints = new Map();
|
|
@@ -144,7 +145,7 @@ export async function gatherGlobalVersionConstraints(cwd, includeResolutions = t
|
|
|
144
145
|
config.packages?.forEach(dep => addConstraint(dep.name, dep.version));
|
|
145
146
|
config['dev-packages']?.forEach(dep => addConstraint(dep.name, dep.version));
|
|
146
147
|
};
|
|
147
|
-
// Collect from main .openpackage/
|
|
148
|
+
// Collect from main .openpackage/openpackage.yml if present
|
|
148
149
|
const mainPackagePath = getLocalPackageYmlPath(cwd);
|
|
149
150
|
if (await exists(mainPackagePath)) {
|
|
150
151
|
try {
|
|
@@ -152,19 +153,19 @@ export async function gatherGlobalVersionConstraints(cwd, includeResolutions = t
|
|
|
152
153
|
collectFromConfig(mainConfig);
|
|
153
154
|
}
|
|
154
155
|
catch (error) {
|
|
155
|
-
logger.debug(`Failed to parse main
|
|
156
|
+
logger.debug(`Failed to parse main openpackage.yml for constraints: ${error}`);
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
// Collect from each package under .openpackage/packages
|
|
159
160
|
const packagesDir = getLocalPackagesDir(cwd);
|
|
160
161
|
if (await exists(packagesDir) && await isDirectory(packagesDir)) {
|
|
161
162
|
try {
|
|
162
|
-
const packageDirs = await findDirectoriesContainingFile(packagesDir, FILE_PATTERNS.
|
|
163
|
+
const packageDirs = await findDirectoriesContainingFile(packagesDir, FILE_PATTERNS.OPENPACKAGE_YML, async (filePath) => {
|
|
163
164
|
try {
|
|
164
165
|
return await parsePackageYml(filePath);
|
|
165
166
|
}
|
|
166
167
|
catch (error) {
|
|
167
|
-
logger.debug(`Failed to parse
|
|
168
|
+
logger.debug(`Failed to parse openpackage.yml at ${filePath}: ${error}`);
|
|
168
169
|
return null;
|
|
169
170
|
}
|
|
170
171
|
});
|
|
@@ -183,7 +184,7 @@ export async function gatherGlobalVersionConstraints(cwd, includeResolutions = t
|
|
|
183
184
|
return result;
|
|
184
185
|
}
|
|
185
186
|
/**
|
|
186
|
-
* Gather version constraints only from the main .openpackage/
|
|
187
|
+
* Gather version constraints only from the main .openpackage/openpackage.yml
|
|
187
188
|
* Used to treat root-declared versions as authoritative overrides
|
|
188
189
|
*/
|
|
189
190
|
export async function gatherRootVersionConstraints(cwd) {
|
|
@@ -209,7 +210,7 @@ export async function gatherRootVersionConstraints(cwd) {
|
|
|
209
210
|
mainConfig['dev-packages']?.forEach(dep => addConstraint(dep.name, dep.version));
|
|
210
211
|
}
|
|
211
212
|
catch (error) {
|
|
212
|
-
logger.debug(`Failed to parse main
|
|
213
|
+
logger.debug(`Failed to parse main openpackage.yml for root constraints: ${error}`);
|
|
213
214
|
}
|
|
214
215
|
}
|
|
215
216
|
return result;
|
|
@@ -246,17 +247,34 @@ export async function checkExistingPackageInMarkdownFiles(cwd, packageName) {
|
|
|
246
247
|
exts: [FILE_PATTERNS.MD_FILES],
|
|
247
248
|
label: DEFAULT_INSTALL_ROOT
|
|
248
249
|
});
|
|
249
|
-
// Add detected platforms'
|
|
250
|
+
// Add detected platforms' directories from flows
|
|
250
251
|
try {
|
|
251
252
|
const platforms = await getDetectedPlatforms(cwd);
|
|
252
253
|
for (const platform of platforms) {
|
|
253
254
|
const def = getPlatformDefinition(platform);
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
// Extract directories from export flows (package → workspace)
|
|
256
|
+
if (def.export && def.export.length > 0) {
|
|
257
|
+
const platformDirs = new Set();
|
|
258
|
+
for (const flow of def.export) {
|
|
259
|
+
const toPattern = typeof flow.to === 'string' ? flow.to : Object.keys(flow.to)[0];
|
|
260
|
+
if (toPattern) {
|
|
261
|
+
// Extract directory from pattern
|
|
262
|
+
const parts = toPattern.split('/');
|
|
263
|
+
if (parts.length > 1) {
|
|
264
|
+
const fullPath = parts.slice(0, -1).join('/');
|
|
265
|
+
platformDirs.add(fullPath);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Add each unique directory as a target
|
|
270
|
+
for (const dirPath of platformDirs) {
|
|
271
|
+
const fullDirPath = join(cwd, dirPath);
|
|
272
|
+
targets.push({
|
|
273
|
+
dir: fullDirPath,
|
|
274
|
+
exts: undefined, // Allow all extensions (flows handle this)
|
|
275
|
+
label: def.id
|
|
276
|
+
});
|
|
258
277
|
}
|
|
259
|
-
targets.push({ dir: dirPath, exts: subdirDef.exts, label: def.id });
|
|
260
278
|
}
|
|
261
279
|
}
|
|
262
280
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openpackage.js","sourceRoot":"","sources":["../../src/core/openpackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAiB,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAcrE
|
|
1
|
+
{"version":3,"file":"openpackage.js","sourceRoot":"","sources":["../../src/core/openpackage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Display/output logic for the pack command
|
|
3
|
+
*
|
|
4
|
+
* Handles formatting and displaying pack operation results to the console.
|
|
5
|
+
* Separated from business logic for easy testing and customization.
|
|
6
|
+
*/
|
|
7
|
+
import { formatPathForDisplay } from '../../utils/formatters.js';
|
|
8
|
+
import { formatVersionLabel } from '../../utils/package-versioning.js';
|
|
9
|
+
/**
|
|
10
|
+
* Display pack operation summary
|
|
11
|
+
*/
|
|
12
|
+
export function displayPackSuccess(info, cwd) {
|
|
13
|
+
const { packageName, version, description, sourcePath, destinationPath, fileCount, isCustomOutput } = info;
|
|
14
|
+
// Success header
|
|
15
|
+
console.log(`✓ Packed ${packageName}@${formatVersionLabel(version)}`);
|
|
16
|
+
// Package details
|
|
17
|
+
if (description) {
|
|
18
|
+
console.log(`✓ Description: ${description}`);
|
|
19
|
+
}
|
|
20
|
+
// Source information
|
|
21
|
+
const displaySource = formatPathForDisplay(sourcePath, cwd);
|
|
22
|
+
console.log(`✓ Source: ${displaySource}`);
|
|
23
|
+
// Destination information
|
|
24
|
+
const displayDestination = formatPathForDisplay(destinationPath, cwd);
|
|
25
|
+
const destinationType = isCustomOutput ? 'Custom output' : 'Registry';
|
|
26
|
+
console.log(`✓ ${destinationType}: ${displayDestination}`);
|
|
27
|
+
// File count
|
|
28
|
+
console.log(`✓ Files: ${fileCount}`);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Display dry-run information
|
|
32
|
+
*/
|
|
33
|
+
export function displayPackDryRun(info, cwd) {
|
|
34
|
+
const { packageName, version, sourcePath, destinationPath, fileCount, isCustomOutput, destinationExists, existingFileCount } = info;
|
|
35
|
+
console.log(`(dry-run) Pack operation preview for ${packageName}@${formatVersionLabel(version)}`);
|
|
36
|
+
const displaySource = formatPathForDisplay(sourcePath, cwd);
|
|
37
|
+
console.log(`✓ Source: ${displaySource}`);
|
|
38
|
+
const displayDestination = formatPathForDisplay(destinationPath, cwd);
|
|
39
|
+
const destinationType = isCustomOutput ? 'Custom output' : 'Registry';
|
|
40
|
+
console.log(`✓ ${destinationType}: ${displayDestination}`);
|
|
41
|
+
if (destinationExists && existingFileCount !== undefined) {
|
|
42
|
+
console.log(`⚠️ Would overwrite existing package (${existingFileCount} file(s))`);
|
|
43
|
+
}
|
|
44
|
+
console.log(`✓ Would pack ${fileCount} file(s)`);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create pack result info from pipeline data
|
|
48
|
+
*/
|
|
49
|
+
export function createPackResultInfo(packageName, version, sourcePath, destinationPath, fileCount, manifest, isCustomOutput, destinationExists, existingFileCount) {
|
|
50
|
+
return {
|
|
51
|
+
packageName,
|
|
52
|
+
version,
|
|
53
|
+
description: manifest.description,
|
|
54
|
+
sourcePath,
|
|
55
|
+
destinationPath,
|
|
56
|
+
fileCount,
|
|
57
|
+
isCustomOutput,
|
|
58
|
+
destinationExists,
|
|
59
|
+
existingFileCount
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=pack-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-output.js","sourceRoot":"","sources":["../../../src/core/pack/pack-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAevE;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAoB,EACpB,GAAW;IAEX,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAE3G,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEtE,kBAAkB;IAClB,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,qBAAqB;IACrB,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,EAAE,CAAC,CAAC;IAE1C,0BAA0B;IAC1B,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,eAAe,KAAK,kBAAkB,EAAE,CAAC,CAAC;IAE3D,aAAa;IACb,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAoB,EACpB,GAAW;IAEX,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAEpI,OAAO,CAAC,GAAG,CAAC,wCAAwC,WAAW,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElG,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,EAAE,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,eAAe,KAAK,kBAAkB,EAAE,CAAC,CAAC;IAE3D,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,yCAAyC,iBAAiB,WAAW,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,UAAU,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,OAAe,EACf,UAAkB,EAClB,eAAuB,EACvB,SAAiB,EACjB,QAAoB,EACpB,cAAuB,EACvB,iBAA2B,EAC3B,iBAA0B;IAE1B,OAAO;QACL,WAAW;QACX,OAAO;QACP,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU;QACV,eAAe;QACf,SAAS;QACT,cAAc;QACd,iBAAiB;QACjB,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import semver from 'semver';
|
|
3
|
+
import { FILE_PATTERNS } from '../../constants/index.js';
|
|
4
|
+
import { ensureRegistryDirectories, getPackageVersionPath } from '../directory.js';
|
|
5
|
+
import { readPackageFilesForRegistry, writePackageFilesToDirectory } from '../../utils/package-copy.js';
|
|
6
|
+
import { parsePackageYml } from '../../utils/package-yml.js';
|
|
7
|
+
import { exists, remove, countFilesInDirectory } from '../../utils/fs.js';
|
|
8
|
+
import { logger } from '../../utils/logger.js';
|
|
9
|
+
import { resolvePackageByName } from '../../utils/package-name-resolution.js';
|
|
10
|
+
import { classifyPackageInput } from '../../utils/package-input.js';
|
|
11
|
+
import { ValidationError } from '../../utils/errors.js';
|
|
12
|
+
import { promptPackOverwrite } from '../../utils/prompts.js';
|
|
13
|
+
import { formatPathForDisplay } from '../../utils/formatters.js';
|
|
14
|
+
import { createPackResultInfo, displayPackSuccess, displayPackDryRun } from './pack-output.js';
|
|
15
|
+
async function resolveSource(cwd, packageInput) {
|
|
16
|
+
// No package input provided - pack CWD as package
|
|
17
|
+
if (!packageInput) {
|
|
18
|
+
const manifestPath = path.join(cwd, FILE_PATTERNS.OPENPACKAGE_YML);
|
|
19
|
+
if (!(await exists(manifestPath))) {
|
|
20
|
+
throw new Error('No openpackage.yml found in current directory; specify a package name or run inside a package root.');
|
|
21
|
+
}
|
|
22
|
+
const manifest = await parsePackageYml(manifestPath);
|
|
23
|
+
return {
|
|
24
|
+
name: manifest.name,
|
|
25
|
+
version: manifest.version ?? '',
|
|
26
|
+
packageRoot: cwd,
|
|
27
|
+
manifest
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Classify the input to determine if it's a path, tarball, or package name
|
|
31
|
+
const classification = await classifyPackageInput(packageInput, cwd);
|
|
32
|
+
let packageRoot;
|
|
33
|
+
// Handle different input types
|
|
34
|
+
if (classification.type === 'directory') {
|
|
35
|
+
// Direct path to package directory
|
|
36
|
+
packageRoot = classification.resolvedPath;
|
|
37
|
+
logger.info('Resolved package input as directory path', { path: packageRoot });
|
|
38
|
+
}
|
|
39
|
+
else if (classification.type === 'tarball') {
|
|
40
|
+
// Tarball input is not supported for pack
|
|
41
|
+
throw new ValidationError(`Pack command does not support tarball inputs.\n` +
|
|
42
|
+
`To pack from a tarball, first extract it to a directory.`);
|
|
43
|
+
}
|
|
44
|
+
else if (classification.type === 'git') {
|
|
45
|
+
// Git input is not supported for pack
|
|
46
|
+
throw new ValidationError(`Pack command does not support git inputs.\n` +
|
|
47
|
+
`To pack from a git repository, first clone it to a directory.`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Registry type or package name - use name resolution
|
|
51
|
+
// Priority: CWD (if name matches) → Workspace → Global
|
|
52
|
+
// Skip registry (already immutable) and remote (not relevant)
|
|
53
|
+
const resolution = await resolvePackageByName({
|
|
54
|
+
cwd,
|
|
55
|
+
packageName: packageInput,
|
|
56
|
+
checkCwd: true, // Check if CWD is the package (highest priority)
|
|
57
|
+
searchWorkspace: true, // Search workspace packages
|
|
58
|
+
searchGlobal: true, // Search global packages
|
|
59
|
+
searchRegistry: false // Skip registry (already packed/immutable)
|
|
60
|
+
});
|
|
61
|
+
if (!resolution.found || !resolution.path) {
|
|
62
|
+
throw new Error(`Package '${packageInput}' not found.\n` +
|
|
63
|
+
`Searched: current directory, workspace packages (.openpackage/packages/), and global packages (~/.openpackage/packages/).\n` +
|
|
64
|
+
`Make sure the package exists in one of these locations.`);
|
|
65
|
+
}
|
|
66
|
+
packageRoot = resolution.path;
|
|
67
|
+
// Log resolution info for debugging/transparency
|
|
68
|
+
if (resolution.resolutionInfo) {
|
|
69
|
+
const { selected, reason } = resolution.resolutionInfo;
|
|
70
|
+
logger.info('Resolved package for packing', {
|
|
71
|
+
packageInput,
|
|
72
|
+
selectedSource: selected.type,
|
|
73
|
+
version: selected.version,
|
|
74
|
+
path: selected.path,
|
|
75
|
+
reason
|
|
76
|
+
});
|
|
77
|
+
// User-friendly message about where package was found
|
|
78
|
+
const sourceLabel = selected.type === 'cwd' ? 'current directory' :
|
|
79
|
+
selected.type === 'workspace' ? 'workspace packages' :
|
|
80
|
+
selected.type === 'global' ? 'global packages' : selected.type;
|
|
81
|
+
console.log(`✓ Found ${packageInput} in ${sourceLabel}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Load manifest from resolved path
|
|
85
|
+
const manifestPath = path.join(packageRoot, FILE_PATTERNS.OPENPACKAGE_YML);
|
|
86
|
+
if (!(await exists(manifestPath))) {
|
|
87
|
+
throw new Error(`openpackage.yml not found at ${manifestPath}`);
|
|
88
|
+
}
|
|
89
|
+
const manifest = await parsePackageYml(manifestPath);
|
|
90
|
+
return {
|
|
91
|
+
name: manifest.name,
|
|
92
|
+
version: manifest.version ?? '',
|
|
93
|
+
packageRoot,
|
|
94
|
+
manifest
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Handle overwrite confirmation for pack operation
|
|
99
|
+
* Returns true if operation should proceed, false if cancelled
|
|
100
|
+
* Throws error if confirmation is needed but environment is non-interactive
|
|
101
|
+
*/
|
|
102
|
+
async function handlePackOverwrite(packageName, version, destination, existingFileCount, force, isCustomOutput) {
|
|
103
|
+
// Force mode - auto-approve with logging
|
|
104
|
+
if (force) {
|
|
105
|
+
const locationType = isCustomOutput ? 'output directory' : 'registry';
|
|
106
|
+
logger.info(`Force mode: Overwriting existing ${locationType}`, { packageName, version, destination, existingFileCount });
|
|
107
|
+
console.log(`⚠️ Force mode: Overwriting ${packageName}@${version} ` +
|
|
108
|
+
`(${existingFileCount} existing file${existingFileCount !== 1 ? 's' : ''})`);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
// Check if we can prompt (TTY required for interactive prompts)
|
|
112
|
+
const canPrompt = Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
113
|
+
if (!canPrompt) {
|
|
114
|
+
// Non-interactive environment - fail with clear error message
|
|
115
|
+
const locationType = isCustomOutput ? 'output directory' : 'registry';
|
|
116
|
+
const displayPath = formatPathForDisplay(destination, process.cwd());
|
|
117
|
+
throw new Error(`Pack destination already exists (${locationType}: ${displayPath}).\n` +
|
|
118
|
+
`Use --force to overwrite, or specify a different version in openpackage.yml.`);
|
|
119
|
+
}
|
|
120
|
+
// Interactive mode - prompt user
|
|
121
|
+
return await promptPackOverwrite(packageName, version, destination, existingFileCount, isCustomOutput);
|
|
122
|
+
}
|
|
123
|
+
export async function runPackPipeline(packageInput, options = {}) {
|
|
124
|
+
const cwd = process.cwd();
|
|
125
|
+
try {
|
|
126
|
+
const source = await resolveSource(cwd, packageInput);
|
|
127
|
+
if (!source.version || !semver.valid(source.version)) {
|
|
128
|
+
return {
|
|
129
|
+
success: false,
|
|
130
|
+
error: `openpackage.yml must contain a valid semver version to pack (found "${source.version || 'undefined'}").`
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
const files = await readPackageFilesForRegistry(source.packageRoot);
|
|
134
|
+
if (files.length === 0) {
|
|
135
|
+
return { success: false, error: 'No package files found to pack.' };
|
|
136
|
+
}
|
|
137
|
+
const destination = options.output
|
|
138
|
+
? path.resolve(cwd, options.output)
|
|
139
|
+
: getPackageVersionPath(source.name, source.version);
|
|
140
|
+
const isCustomOutput = !!options.output;
|
|
141
|
+
// Check if destination exists and count existing files
|
|
142
|
+
const destinationExists = await exists(destination);
|
|
143
|
+
const existingFileCount = destinationExists
|
|
144
|
+
? await countFilesInDirectory(destination)
|
|
145
|
+
: 0;
|
|
146
|
+
// Create result info for output display
|
|
147
|
+
const resultInfo = createPackResultInfo(source.name, source.version, source.packageRoot, destination, files.length, source.manifest, isCustomOutput, destinationExists, existingFileCount);
|
|
148
|
+
if (options.dryRun) {
|
|
149
|
+
displayPackDryRun(resultInfo, cwd);
|
|
150
|
+
return {
|
|
151
|
+
success: true,
|
|
152
|
+
data: { destination, files: files.length }
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
// Handle overwrite confirmation (unless dry-run or force)
|
|
156
|
+
if (destinationExists) {
|
|
157
|
+
const shouldOverwrite = await handlePackOverwrite(source.name, source.version, destination, existingFileCount, options.force ?? false, isCustomOutput);
|
|
158
|
+
if (!shouldOverwrite) {
|
|
159
|
+
return {
|
|
160
|
+
success: false,
|
|
161
|
+
error: 'Pack operation cancelled by user'
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (!options.output) {
|
|
166
|
+
await ensureRegistryDirectories();
|
|
167
|
+
}
|
|
168
|
+
// Remove existing destination if present
|
|
169
|
+
if (destinationExists) {
|
|
170
|
+
await remove(destination);
|
|
171
|
+
}
|
|
172
|
+
await writePackageFilesToDirectory(destination, files);
|
|
173
|
+
logger.info(`Packed ${source.name}@${source.version} to ${destination}`);
|
|
174
|
+
// Display success output
|
|
175
|
+
displayPackSuccess(resultInfo, cwd);
|
|
176
|
+
return {
|
|
177
|
+
success: true,
|
|
178
|
+
data: { destination, files: files.length }
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
183
|
+
return { success: false, error: message };
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=pack-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-pipeline.js","sourceRoot":"","sources":["../../../src/core/pack/pack-pipeline.ts"],"names":[],"mappings":"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"}
|