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
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Scope discovery for show command
|
|
3
|
+
*
|
|
4
|
+
* Discovers packages with the same name across different scopes
|
|
5
|
+
* (workspace, global, and registry) and provides hints to users.
|
|
6
|
+
*/
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
import { logger } from '../../utils/logger.js';
|
|
9
|
+
import { normalizePackageName } from '../../utils/package-name.js';
|
|
10
|
+
import { isValidPackageDirectory, loadPackageConfig } from '../package-context.js';
|
|
11
|
+
import { getOpenPackageDirectories, listPackageVersions, getPackageVersionPath } from '../directory.js';
|
|
12
|
+
import { DIR_PATTERNS, OPENPACKAGE_DIRS } from '../../constants/index.js';
|
|
13
|
+
/**
|
|
14
|
+
* Helper to construct scoped package paths (@scope/name)
|
|
15
|
+
*/
|
|
16
|
+
function getScopedPackagePath(baseDir, packageName) {
|
|
17
|
+
// Handle scoped packages like @scope/name
|
|
18
|
+
if (packageName.startsWith('@')) {
|
|
19
|
+
const parts = packageName.split('/');
|
|
20
|
+
if (parts.length === 2) {
|
|
21
|
+
return join(baseDir, parts[0], parts[1]);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return join(baseDir, packageName);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Check workspace for the package
|
|
28
|
+
*/
|
|
29
|
+
async function checkWorkspaceScope(cwd, packageName) {
|
|
30
|
+
const normalizedName = normalizePackageName(packageName);
|
|
31
|
+
const workspacePath = getScopedPackagePath(join(cwd, DIR_PATTERNS.OPENPACKAGE, OPENPACKAGE_DIRS.PACKAGES), normalizedName);
|
|
32
|
+
if (!await isValidPackageDirectory(workspacePath)) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const manifest = await loadPackageConfig(workspacePath);
|
|
36
|
+
if (!manifest) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
logger.debug('Found package in workspace scope', {
|
|
40
|
+
packageName,
|
|
41
|
+
path: workspacePath,
|
|
42
|
+
version: manifest.version
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
scope: 'workspace',
|
|
46
|
+
name: normalizedName,
|
|
47
|
+
version: manifest.version,
|
|
48
|
+
path: workspacePath,
|
|
49
|
+
showCommand: `opkg show ${workspacePath}`
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check global packages for the package
|
|
54
|
+
*/
|
|
55
|
+
async function checkGlobalScope(packageName) {
|
|
56
|
+
const normalizedName = normalizePackageName(packageName);
|
|
57
|
+
const dirs = getOpenPackageDirectories();
|
|
58
|
+
const globalPath = getScopedPackagePath(join(dirs.data, OPENPACKAGE_DIRS.PACKAGES), normalizedName);
|
|
59
|
+
if (!await isValidPackageDirectory(globalPath)) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
const manifest = await loadPackageConfig(globalPath);
|
|
64
|
+
if (!manifest) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
logger.debug('Found package in global scope', {
|
|
68
|
+
packageName,
|
|
69
|
+
path: globalPath,
|
|
70
|
+
version: manifest.version
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
scope: 'global',
|
|
74
|
+
name: normalizedName,
|
|
75
|
+
version: manifest.version,
|
|
76
|
+
path: globalPath,
|
|
77
|
+
showCommand: `opkg show ${globalPath}`
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
logger.warn('Failed to load global package manifest', { packageName, path: globalPath, error });
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check local registry for the package
|
|
87
|
+
*/
|
|
88
|
+
async function checkRegistryScope(packageName) {
|
|
89
|
+
const normalizedName = normalizePackageName(packageName);
|
|
90
|
+
try {
|
|
91
|
+
const registryVersions = await listPackageVersions(normalizedName);
|
|
92
|
+
if (registryVersions.length === 0) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
const latestVersion = registryVersions[0]; // Already sorted desc
|
|
96
|
+
const registryPath = getPackageVersionPath(normalizedName, latestVersion);
|
|
97
|
+
logger.debug('Found package in registry scope', {
|
|
98
|
+
packageName,
|
|
99
|
+
path: registryPath,
|
|
100
|
+
version: latestVersion
|
|
101
|
+
});
|
|
102
|
+
return {
|
|
103
|
+
scope: 'registry',
|
|
104
|
+
name: normalizedName,
|
|
105
|
+
version: latestVersion,
|
|
106
|
+
path: registryPath,
|
|
107
|
+
showCommand: `opkg show ${registryPath}`
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
logger.debug('No registry versions found', { packageName });
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Discover packages with the same name across different scopes
|
|
117
|
+
*
|
|
118
|
+
* Searches for the package in:
|
|
119
|
+
* - Workspace packages (.openpackage/packages/)
|
|
120
|
+
* - Global packages (~/.openpackage/packages/)
|
|
121
|
+
* - Local registry (~/.openpackage/registry/)
|
|
122
|
+
*
|
|
123
|
+
* @param packageName - The package name to search for
|
|
124
|
+
* @param cwd - Current working directory
|
|
125
|
+
* @returns Discovery result with all found packages
|
|
126
|
+
*/
|
|
127
|
+
export async function discoverPackagesAcrossScopes(packageName, cwd) {
|
|
128
|
+
logger.debug('Discovering packages across scopes', { packageName, cwd });
|
|
129
|
+
const packagesInScopes = [];
|
|
130
|
+
// Check workspace
|
|
131
|
+
const workspacePackage = await checkWorkspaceScope(cwd, packageName);
|
|
132
|
+
if (workspacePackage) {
|
|
133
|
+
packagesInScopes.push(workspacePackage);
|
|
134
|
+
}
|
|
135
|
+
// Check global
|
|
136
|
+
const globalPackage = await checkGlobalScope(packageName);
|
|
137
|
+
if (globalPackage) {
|
|
138
|
+
packagesInScopes.push(globalPackage);
|
|
139
|
+
}
|
|
140
|
+
// Check registry
|
|
141
|
+
const registryPackage = await checkRegistryScope(packageName);
|
|
142
|
+
if (registryPackage) {
|
|
143
|
+
packagesInScopes.push(registryPackage);
|
|
144
|
+
}
|
|
145
|
+
logger.debug('Scope discovery completed', {
|
|
146
|
+
packageName,
|
|
147
|
+
scopesFound: packagesInScopes.length
|
|
148
|
+
});
|
|
149
|
+
return {
|
|
150
|
+
packageName,
|
|
151
|
+
packagesInScopes
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Check if multiple scopes have the same package
|
|
156
|
+
*
|
|
157
|
+
* @param packageName - The package name to check
|
|
158
|
+
* @param cwd - Current working directory
|
|
159
|
+
* @returns True if the package exists in multiple scopes
|
|
160
|
+
*/
|
|
161
|
+
export async function hasMultipleScopes(packageName, cwd) {
|
|
162
|
+
const result = await discoverPackagesAcrossScopes(packageName, cwd);
|
|
163
|
+
return result.packagesInScopes.length > 1;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=scope-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-discovery.js","sourceRoot":"","sources":["../../../src/core/show/scope-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Display/output logic for the show command
|
|
3
|
+
*
|
|
4
|
+
* Handles formatting and displaying package information to the console.
|
|
5
|
+
* Separated from business logic for easy testing and customization.
|
|
6
|
+
*/
|
|
7
|
+
import { formatPathForDisplay } from '../../utils/formatters.js';
|
|
8
|
+
import { describeVersionRange, isExactVersion } from '../../utils/version-ranges.js';
|
|
9
|
+
import { formatVersionLabel } from '../../utils/package-versioning.js';
|
|
10
|
+
/**
|
|
11
|
+
* Display package information to console
|
|
12
|
+
*/
|
|
13
|
+
export function displayPackageInfo(info, cwd, scopeHintInfo) {
|
|
14
|
+
const { name, version, unversioned, source, metadata, files, isPartial } = info;
|
|
15
|
+
// Package name and version
|
|
16
|
+
console.log(`✓ Package: ${name}`);
|
|
17
|
+
if (!unversioned && version) {
|
|
18
|
+
console.log(`✓ Version: ${version}`);
|
|
19
|
+
}
|
|
20
|
+
// Source information
|
|
21
|
+
const displayPath = formatPathForDisplay(source.path, cwd);
|
|
22
|
+
console.log(`✓ Source: ${source.label} (${displayPath})`);
|
|
23
|
+
console.log(`✓ Type: ${source.isMutable ? 'mutable' : 'immutable'}`);
|
|
24
|
+
// Metadata fields
|
|
25
|
+
if (metadata.description) {
|
|
26
|
+
console.log(`✓ Description: ${metadata.description}`);
|
|
27
|
+
}
|
|
28
|
+
if (metadata.keywords && metadata.keywords.length > 0) {
|
|
29
|
+
console.log(`✓ Keywords: ${metadata.keywords.join(', ')}`);
|
|
30
|
+
}
|
|
31
|
+
if (metadata.author) {
|
|
32
|
+
console.log(`✓ Author: ${metadata.author}`);
|
|
33
|
+
}
|
|
34
|
+
if (metadata.license) {
|
|
35
|
+
console.log(`✓ License: ${metadata.license}`);
|
|
36
|
+
}
|
|
37
|
+
if (metadata.homepage) {
|
|
38
|
+
console.log(`✓ Homepage: ${metadata.homepage}`);
|
|
39
|
+
}
|
|
40
|
+
if (metadata.repository) {
|
|
41
|
+
const repo = metadata.repository;
|
|
42
|
+
const repoDir = repo.directory ? ` (directory: ${repo.directory})` : '';
|
|
43
|
+
console.log(`✓ Repository: ${repo.type} - ${repo.url}${repoDir}`);
|
|
44
|
+
}
|
|
45
|
+
console.log(`✓ Private: ${metadata.private ? 'Yes' : 'No'}`);
|
|
46
|
+
if (isPartial) {
|
|
47
|
+
console.log('✓ Partial: Yes');
|
|
48
|
+
}
|
|
49
|
+
// Dependencies section
|
|
50
|
+
displayDependencies(metadata);
|
|
51
|
+
// Files section
|
|
52
|
+
displayFileList(files);
|
|
53
|
+
// Scope hint section (if package exists in multiple scopes)
|
|
54
|
+
if (scopeHintInfo) {
|
|
55
|
+
displayScopeHint(scopeHintInfo);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Display dependencies (packages and dev-packages)
|
|
60
|
+
*/
|
|
61
|
+
function displayDependencies(metadata) {
|
|
62
|
+
// Production packages
|
|
63
|
+
if (metadata.packages && metadata.packages.length > 0) {
|
|
64
|
+
console.log(`✓ Imported Packages (${metadata.packages.length}):`);
|
|
65
|
+
for (const dep of metadata.packages) {
|
|
66
|
+
const versionLabel = formatVersionLabel(dep.version);
|
|
67
|
+
const rangeDescription = dep.version && !isExactVersion(dep.version)
|
|
68
|
+
? ` (${describeVersionRange(dep.version)})`
|
|
69
|
+
: '';
|
|
70
|
+
console.log(` • ${dep.name}@${versionLabel}${rangeDescription}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Dev packages
|
|
74
|
+
if (metadata['dev-packages'] && metadata['dev-packages'].length > 0) {
|
|
75
|
+
console.log(`✓ Imported Dev Packages (${metadata['dev-packages'].length}):`);
|
|
76
|
+
for (const dep of metadata['dev-packages']) {
|
|
77
|
+
const versionLabel = formatVersionLabel(dep.version);
|
|
78
|
+
const rangeDescription = dep.version && !isExactVersion(dep.version)
|
|
79
|
+
? ` (${describeVersionRange(dep.version)})`
|
|
80
|
+
: '';
|
|
81
|
+
console.log(` • ${dep.name}@${versionLabel}${rangeDescription}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Display file list
|
|
87
|
+
*/
|
|
88
|
+
function displayFileList(files) {
|
|
89
|
+
console.log(`✓ Files: ${files.length}`);
|
|
90
|
+
for (const filePath of files) {
|
|
91
|
+
console.log(` ├── ${filePath}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Display resolution information when multiple candidates were found
|
|
96
|
+
*/
|
|
97
|
+
export function displayResolutionInfo(info) {
|
|
98
|
+
const { candidates, selected, reason } = info;
|
|
99
|
+
if (candidates.length <= 1) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
console.log(`\nResolved from multiple sources:`);
|
|
103
|
+
for (const candidate of candidates) {
|
|
104
|
+
const marker = candidate.path === selected.path ? '✓' : ' ';
|
|
105
|
+
const versionLabel = candidate.version || 'unversioned';
|
|
106
|
+
console.log(` ${marker} ${getSourceLabel(candidate.type)}: ${versionLabel}`);
|
|
107
|
+
}
|
|
108
|
+
const reasonText = getReasonText(reason);
|
|
109
|
+
if (reasonText) {
|
|
110
|
+
console.log(`Selection reason: ${reasonText}\n`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get source label for display
|
|
115
|
+
*/
|
|
116
|
+
function getSourceLabel(sourceType) {
|
|
117
|
+
switch (sourceType) {
|
|
118
|
+
case 'cwd':
|
|
119
|
+
return 'current directory';
|
|
120
|
+
case 'workspace':
|
|
121
|
+
return 'workspace packages';
|
|
122
|
+
case 'global':
|
|
123
|
+
return 'global packages';
|
|
124
|
+
case 'registry':
|
|
125
|
+
return 'local registry';
|
|
126
|
+
case 'path':
|
|
127
|
+
return 'path';
|
|
128
|
+
case 'git':
|
|
129
|
+
return 'git repository';
|
|
130
|
+
case 'tarball':
|
|
131
|
+
return 'tarball';
|
|
132
|
+
default:
|
|
133
|
+
return sourceType;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get human-readable text for resolution reason
|
|
138
|
+
*/
|
|
139
|
+
function getReasonText(reason) {
|
|
140
|
+
switch (reason) {
|
|
141
|
+
case 'cwd-match':
|
|
142
|
+
return 'current directory has matching package';
|
|
143
|
+
case 'workspace-override':
|
|
144
|
+
return 'workspace packages always override';
|
|
145
|
+
case 'newer-version':
|
|
146
|
+
return 'higher version selected';
|
|
147
|
+
case 'same-version-prefer-mutable':
|
|
148
|
+
return 'same version, prefer mutable';
|
|
149
|
+
case 'only-source':
|
|
150
|
+
return 'only source found';
|
|
151
|
+
default:
|
|
152
|
+
return '';
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Display scope hint when package exists in multiple scopes
|
|
157
|
+
*/
|
|
158
|
+
function displayScopeHint(scopeHintInfo) {
|
|
159
|
+
console.log('');
|
|
160
|
+
console.log('💡 This package also exists in other scopes:');
|
|
161
|
+
for (const otherScope of scopeHintInfo.otherScopes) {
|
|
162
|
+
const scopeLabel = getSourceLabel(otherScope.scope);
|
|
163
|
+
const versionInfo = otherScope.version ? ` (v${otherScope.version})` : '';
|
|
164
|
+
console.log(` • ${scopeLabel}${versionInfo}`);
|
|
165
|
+
console.log(` View with: ${otherScope.showCommand}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=show-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-output.js","sourceRoot":"","sources":["../../../src/core/show/show-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main pipeline for the show command
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates package resolution, data collection, and display.
|
|
5
|
+
* This is the main business logic layer that coordinates all show operations.
|
|
6
|
+
*/
|
|
7
|
+
import { basename } from 'path';
|
|
8
|
+
import { isJunk } from 'junk';
|
|
9
|
+
import { logger } from '../../utils/logger.js';
|
|
10
|
+
import { isUnversionedVersion } from '../../utils/package-versioning.js';
|
|
11
|
+
import { loadPackageConfig } from '../package-context.js';
|
|
12
|
+
import { packageManager } from '../package.js';
|
|
13
|
+
import { ensureRegistryDirectories } from '../directory.js';
|
|
14
|
+
import { resolvePackageForShow } from './package-resolver.js';
|
|
15
|
+
import { displayPackageInfo, displayResolutionInfo } from './show-output.js';
|
|
16
|
+
/**
|
|
17
|
+
* Collect package information for display
|
|
18
|
+
*/
|
|
19
|
+
async function collectPackageInfo(resolvedPath, name, version) {
|
|
20
|
+
logger.debug('Collecting package information', { resolvedPath, name, version });
|
|
21
|
+
// Load manifest
|
|
22
|
+
const metadata = await loadPackageConfig(resolvedPath);
|
|
23
|
+
if (!metadata) {
|
|
24
|
+
throw new Error(`Failed to load package metadata from: ${resolvedPath}`);
|
|
25
|
+
}
|
|
26
|
+
// Load package using the provided packageRootDir option to read from resolved path
|
|
27
|
+
// Use a temporary name if the actual name isn't valid for validation
|
|
28
|
+
const pkg = await packageManager.loadPackage(metadata.name, // Use name from manifest instead of potentially invalid input
|
|
29
|
+
version, { packageRootDir: resolvedPath });
|
|
30
|
+
const packageFiles = pkg.files;
|
|
31
|
+
// Filter out junk files and sort
|
|
32
|
+
const filteredFiles = packageFiles.filter((f) => !isJunk(basename(f.path)));
|
|
33
|
+
const sortedFilePaths = filteredFiles
|
|
34
|
+
.map((f) => f.path)
|
|
35
|
+
.sort((a, b) => a.localeCompare(b));
|
|
36
|
+
// Check if unversioned
|
|
37
|
+
const unversioned = isUnversionedVersion(version);
|
|
38
|
+
// Detect partial packages
|
|
39
|
+
let isPartial = false;
|
|
40
|
+
if (version && !unversioned) {
|
|
41
|
+
try {
|
|
42
|
+
const versionState = await packageManager.getPackageVersionState(name, version);
|
|
43
|
+
isPartial = Boolean(metadata.partial) || versionState.isPartial;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
// If we can't get version state, check manifest flag only
|
|
47
|
+
isPartial = Boolean(metadata.partial);
|
|
48
|
+
logger.debug('Failed to get version state, using manifest flag only', { error });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
name: metadata.name,
|
|
53
|
+
version: metadata.version || version,
|
|
54
|
+
unversioned,
|
|
55
|
+
metadata,
|
|
56
|
+
files: sortedFilePaths,
|
|
57
|
+
isPartial
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Run the show pipeline for a package
|
|
62
|
+
*
|
|
63
|
+
* This is the main entry point for showing package information.
|
|
64
|
+
* It coordinates:
|
|
65
|
+
* 1. Package resolution (finding the package)
|
|
66
|
+
* 2. Data collection (loading metadata and files)
|
|
67
|
+
* 3. Display (formatting and outputting information)
|
|
68
|
+
*
|
|
69
|
+
* @param packageInput - User input (package name, path, git URL, etc.)
|
|
70
|
+
* @param cwd - Current working directory
|
|
71
|
+
* @returns Command result with success status
|
|
72
|
+
*/
|
|
73
|
+
export async function runShowPipeline(packageInput, cwd = process.cwd()) {
|
|
74
|
+
logger.debug('Starting show pipeline', { packageInput, cwd });
|
|
75
|
+
try {
|
|
76
|
+
// Ensure registry directories exist
|
|
77
|
+
await ensureRegistryDirectories();
|
|
78
|
+
// Step 1: Resolve package location
|
|
79
|
+
const resolved = await resolvePackageForShow(packageInput, cwd);
|
|
80
|
+
logger.info('Package resolved for show', {
|
|
81
|
+
input: packageInput,
|
|
82
|
+
resolvedPath: resolved.path,
|
|
83
|
+
sourceType: resolved.source.type
|
|
84
|
+
});
|
|
85
|
+
// Display resolution info if multiple candidates were found
|
|
86
|
+
if (resolved.resolutionInfo) {
|
|
87
|
+
displayResolutionInfo(resolved.resolutionInfo);
|
|
88
|
+
}
|
|
89
|
+
// Step 2: Collect package information
|
|
90
|
+
const packageInfo = await collectPackageInfo(resolved.path, resolved.name, resolved.version);
|
|
91
|
+
// Combine resolved source info with collected data
|
|
92
|
+
const completeInfo = {
|
|
93
|
+
...packageInfo,
|
|
94
|
+
source: resolved.source
|
|
95
|
+
};
|
|
96
|
+
// Step 3: Display package information
|
|
97
|
+
displayPackageInfo(completeInfo, cwd, resolved.scopeHintInfo);
|
|
98
|
+
logger.debug('Show pipeline completed successfully');
|
|
99
|
+
return {
|
|
100
|
+
success: true,
|
|
101
|
+
data: completeInfo.metadata
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
106
|
+
logger.error('Show pipeline failed', { error: message });
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
error: message
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=show-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-pipeline.js","sourceRoot":"","sources":["../../../src/core/show/show-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-types.js","sourceRoot":"","sources":["../../../src/core/show/show-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { FILE_PATTERNS, DEPENDENCY_ARRAYS, DEFAULT_VERSION_CONSTRAINT, MUTABILITY, SOURCE_TYPES } from '../../constants/index.js';
|
|
3
|
+
import { exists } from '../../utils/fs.js';
|
|
4
|
+
import { parsePackageYml } from '../../utils/package-yml.js';
|
|
5
|
+
import { resolveDeclaredPath } from '../../utils/path-resolution.js';
|
|
6
|
+
import { normalizePackageName } from '../../utils/package-name.js';
|
|
7
|
+
import { isRegistryPath } from '../../utils/source-mutability.js';
|
|
8
|
+
import { cloneGitToRegistry } from '../../utils/git-clone-registry.js';
|
|
9
|
+
import { resolveRegistryVersion } from './resolve-registry-version.js';
|
|
10
|
+
import { resolvePackageSource } from './resolve-package-source.js';
|
|
11
|
+
async function resolveFromManifest(manifestDir, dep) {
|
|
12
|
+
const normalizedName = normalizePackageName(dep.name);
|
|
13
|
+
if (dep.path) {
|
|
14
|
+
const resolved = resolveDeclaredPath(dep.path, manifestDir);
|
|
15
|
+
const absolutePath = path.join(resolved.absolute, path.sep);
|
|
16
|
+
const mutability = isRegistryPath(absolutePath) ? MUTABILITY.IMMUTABLE : MUTABILITY.MUTABLE;
|
|
17
|
+
const sourceType = isRegistryPath(absolutePath) ? SOURCE_TYPES.REGISTRY : SOURCE_TYPES.PATH;
|
|
18
|
+
return {
|
|
19
|
+
packageName: normalizedName,
|
|
20
|
+
absolutePath,
|
|
21
|
+
declaredPath: resolved.declared,
|
|
22
|
+
mutability,
|
|
23
|
+
version: dep.version,
|
|
24
|
+
sourceType
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (dep.git) {
|
|
28
|
+
const { absolutePath, declaredPath } = await cloneGitToRegistry({
|
|
29
|
+
url: dep.git,
|
|
30
|
+
ref: dep.ref
|
|
31
|
+
});
|
|
32
|
+
const mutability = isRegistryPath(absolutePath) ? MUTABILITY.IMMUTABLE : MUTABILITY.MUTABLE;
|
|
33
|
+
return {
|
|
34
|
+
packageName: normalizedName,
|
|
35
|
+
absolutePath,
|
|
36
|
+
declaredPath,
|
|
37
|
+
mutability,
|
|
38
|
+
version: dep.version,
|
|
39
|
+
sourceType: SOURCE_TYPES.GIT
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const constraint = dep.version ?? DEFAULT_VERSION_CONSTRAINT;
|
|
43
|
+
const registry = await resolveRegistryVersion(normalizedName, { constraint });
|
|
44
|
+
return {
|
|
45
|
+
packageName: normalizedName,
|
|
46
|
+
absolutePath: registry.absolutePath,
|
|
47
|
+
declaredPath: registry.declaredPath,
|
|
48
|
+
mutability: MUTABILITY.IMMUTABLE,
|
|
49
|
+
version: registry.version,
|
|
50
|
+
sourceType: SOURCE_TYPES.REGISTRY,
|
|
51
|
+
resolutionSource: registry.resolutionSource
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async function loadManifestDependencies(sourceRoot) {
|
|
55
|
+
const manifestPath = path.join(sourceRoot, FILE_PATTERNS.OPENPACKAGE_YML);
|
|
56
|
+
if (!(await exists(manifestPath))) {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const manifest = await parsePackageYml(manifestPath);
|
|
60
|
+
return manifest[DEPENDENCY_ARRAYS.PACKAGES] || [];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Build a minimal dependency graph starting from the workspace-declared package.
|
|
64
|
+
* The graph resolves transitive dependencies by reading each package's manifest
|
|
65
|
+
* directly (no reliance on cached index entries).
|
|
66
|
+
*/
|
|
67
|
+
export async function resolveDependencyGraph(workspaceRoot, rootPackageName) {
|
|
68
|
+
const visited = new Map();
|
|
69
|
+
async function dfs(pkgName) {
|
|
70
|
+
const normalizedName = normalizePackageName(pkgName);
|
|
71
|
+
if (visited.has(normalizedName))
|
|
72
|
+
return;
|
|
73
|
+
const source = await resolvePackageSource(workspaceRoot, normalizedName);
|
|
74
|
+
const manifestDir = source.absolutePath;
|
|
75
|
+
const deps = await loadManifestDependencies(manifestDir);
|
|
76
|
+
const dependencyNames = [];
|
|
77
|
+
for (const dep of deps) {
|
|
78
|
+
dependencyNames.push(normalizePackageName(dep.name));
|
|
79
|
+
}
|
|
80
|
+
visited.set(normalizedName, {
|
|
81
|
+
name: normalizedName,
|
|
82
|
+
version: source.version,
|
|
83
|
+
source,
|
|
84
|
+
dependencies: dependencyNames
|
|
85
|
+
});
|
|
86
|
+
// Resolve transitive dependencies using the manifest at the current source root
|
|
87
|
+
for (const dep of deps) {
|
|
88
|
+
const child = await resolveFromManifest(manifestDir, dep);
|
|
89
|
+
if (!visited.has(child.packageName)) {
|
|
90
|
+
// Store minimal node for child before deeper traversal
|
|
91
|
+
visited.set(child.packageName, {
|
|
92
|
+
name: child.packageName,
|
|
93
|
+
version: child.version,
|
|
94
|
+
source: child,
|
|
95
|
+
dependencies: []
|
|
96
|
+
});
|
|
97
|
+
await dfs(child.packageName);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
await dfs(rootPackageName);
|
|
102
|
+
return Array.from(visited.values());
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=dependency-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../../src/core/source-resolution/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClI,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAWnE,KAAK,UAAU,mBAAmB,CAChC,WAAmB,EACnB,GAAsB;IAEtB,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5F,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;QAC5F,OAAO;YACL,WAAW,EAAE,cAAc;YAC3B,YAAY;YACZ,YAAY,EAAE,QAAQ,CAAC,QAAQ;YAC/B,UAAU;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU;SACX,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC;YAC9D,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG,EAAE,GAAG,CAAC,GAAG;SACb,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5F,OAAO;YACL,WAAW,EAAE,cAAc;YAC3B,YAAY;YACZ,YAAY;YACZ,UAAU;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,YAAY,CAAC,GAAG;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,IAAI,0BAA0B,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9E,OAAO;QACL,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,UAAU,EAAE,UAAU,CAAC,SAAS;QAChC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,UAAU,EAAE,YAAY,CAAC,QAAQ;QACjC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;KAC5C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,UAAkB;IAElB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,aAAqB,EACrB,eAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEvD,KAAK,UAAU,GAAG,CAAC,OAAe;QAChC,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,OAAO;QAExC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;YAC1B,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM;YACN,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;QAEH,gFAAgF;QAChF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpC,uDAAuD;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;oBAC7B,IAAI,EAAE,KAAK,CAAC,WAAW;oBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,MAAM,EAAE,KAAK;oBACb,YAAY,EAAE,EAAE;iBACjB,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,GAAG,CAAC,eAAe,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AACtC,CAAC"}
|