opkg 0.6.0 → 0.6.1

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.
Files changed (185) hide show
  1. package/README.md +35 -15
  2. package/dist/commands/duplicate.js +5 -2
  3. package/dist/commands/duplicate.js.map +1 -1
  4. package/dist/commands/init.js +4 -1
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/install.js +8 -7
  7. package/dist/commands/install.js.map +1 -1
  8. package/dist/commands/list.js +9 -3
  9. package/dist/commands/list.js.map +1 -1
  10. package/dist/commands/login.js +58 -0
  11. package/dist/commands/login.js.map +1 -0
  12. package/dist/commands/logout.js +28 -0
  13. package/dist/commands/logout.js.map +1 -0
  14. package/dist/commands/pull.js +5 -299
  15. package/dist/commands/pull.js.map +1 -1
  16. package/dist/commands/push.js +5 -245
  17. package/dist/commands/push.js.map +1 -1
  18. package/dist/commands/save.js +20 -4
  19. package/dist/commands/save.js.map +1 -1
  20. package/dist/commands/show.js +18 -5
  21. package/dist/commands/show.js.map +1 -1
  22. package/dist/commands/status.js +19 -6
  23. package/dist/commands/status.js.map +1 -1
  24. package/dist/commands/tui.js +61 -0
  25. package/dist/commands/tui.js.map +1 -0
  26. package/dist/constants/index.js +1 -0
  27. package/dist/constants/index.js.map +1 -1
  28. package/dist/core/add/package-index-updater.js +4 -3
  29. package/dist/core/add/package-index-updater.js.map +1 -1
  30. package/dist/core/api-keys.js +6 -2
  31. package/dist/core/api-keys.js.map +1 -1
  32. package/dist/core/auth.js +25 -40
  33. package/dist/core/auth.js.map +1 -1
  34. package/dist/core/config.js +11 -3
  35. package/dist/core/config.js.map +1 -1
  36. package/dist/core/dependency-resolver.js +21 -10
  37. package/dist/core/dependency-resolver.js.map +1 -1
  38. package/dist/core/device-auth.js +81 -0
  39. package/dist/core/device-auth.js.map +1 -0
  40. package/dist/core/directory.js +14 -8
  41. package/dist/core/directory.js.map +1 -1
  42. package/dist/core/install/bulk-install-pipeline.js +2 -1
  43. package/dist/core/install/bulk-install-pipeline.js.map +1 -1
  44. package/dist/core/install/canonical-plan.js +11 -5
  45. package/dist/core/install/canonical-plan.js.map +1 -1
  46. package/dist/core/install/download-keys.js +2 -2
  47. package/dist/core/install/download-keys.js.map +1 -1
  48. package/dist/core/install/install-flow.js +6 -4
  49. package/dist/core/install/install-flow.js.map +1 -1
  50. package/dist/core/install/install-pipeline.js +74 -6
  51. package/dist/core/install/install-pipeline.js.map +1 -1
  52. package/dist/core/install/remote-flow.js +17 -6
  53. package/dist/core/install/remote-flow.js.map +1 -1
  54. package/dist/core/install/version-selection.js +25 -8
  55. package/dist/core/install/version-selection.js.map +1 -1
  56. package/dist/core/openpackage.js +6 -6
  57. package/dist/core/openpackage.js.map +1 -1
  58. package/dist/core/package.js +71 -8
  59. package/dist/core/package.js.map +1 -1
  60. package/dist/core/profiles.js +60 -3
  61. package/dist/core/profiles.js.map +1 -1
  62. package/dist/core/pull/pull-errors.js +62 -0
  63. package/dist/core/pull/pull-errors.js.map +1 -0
  64. package/dist/core/pull/pull-options.js +2 -0
  65. package/dist/core/pull/pull-options.js.map +1 -0
  66. package/dist/core/pull/pull-output.js +50 -0
  67. package/dist/core/pull/pull-output.js.map +1 -0
  68. package/dist/core/pull/pull-pipeline.js +141 -0
  69. package/dist/core/pull/pull-pipeline.js.map +1 -0
  70. package/dist/core/pull/pull-strategies.js +103 -0
  71. package/dist/core/pull/pull-strategies.js.map +1 -0
  72. package/dist/core/pull/pull-types.js +2 -0
  73. package/dist/core/pull/pull-types.js.map +1 -0
  74. package/dist/core/push/push-context.js +95 -0
  75. package/dist/core/push/push-context.js.map +1 -0
  76. package/dist/core/push/push-errors.js +133 -0
  77. package/dist/core/push/push-errors.js.map +1 -0
  78. package/dist/core/push/push-output.js +44 -0
  79. package/dist/core/push/push-output.js.map +1 -0
  80. package/dist/core/push/push-pipeline.js +74 -0
  81. package/dist/core/push/push-pipeline.js.map +1 -0
  82. package/dist/core/push/push-single-file.js +56 -0
  83. package/dist/core/push/push-single-file.js.map +1 -0
  84. package/dist/core/push/push-types.js +2 -0
  85. package/dist/core/push/push-types.js.map +1 -0
  86. package/dist/core/push/push-upload.js +68 -0
  87. package/dist/core/push/push-upload.js.map +1 -0
  88. package/dist/core/registry.js +4 -2
  89. package/dist/core/registry.js.map +1 -1
  90. package/dist/core/remote-pull.js +163 -35
  91. package/dist/core/remote-pull.js.map +1 -1
  92. package/dist/core/save/package-saver.js +37 -1
  93. package/dist/core/save/package-saver.js.map +1 -1
  94. package/dist/core/save/package-yml-generator.js +5 -4
  95. package/dist/core/save/package-yml-generator.js.map +1 -1
  96. package/dist/core/save/save-pipeline.js +17 -6
  97. package/dist/core/save/save-pipeline.js.map +1 -1
  98. package/dist/core/save/save-single-file.js +124 -0
  99. package/dist/core/save/save-single-file.js.map +1 -0
  100. package/dist/core/scoping/package-scoping.js +1 -1
  101. package/dist/core/scoping/package-scoping.js.map +1 -1
  102. package/dist/core/token-store.js +73 -0
  103. package/dist/core/token-store.js.map +1 -0
  104. package/dist/index.js +4 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/tui/app.js +95 -0
  107. package/dist/tui/app.js.map +1 -0
  108. package/dist/tui/components/package-list.js +73 -0
  109. package/dist/tui/components/package-list.js.map +1 -0
  110. package/dist/tui/controller.js +365 -0
  111. package/dist/tui/controller.js.map +1 -0
  112. package/dist/tui/index.js +12 -0
  113. package/dist/tui/index.js.map +1 -0
  114. package/dist/tui/services/file-index.js +64 -0
  115. package/dist/tui/services/file-index.js.map +1 -0
  116. package/dist/tui/services/packages.js +18 -0
  117. package/dist/tui/services/packages.js.map +1 -0
  118. package/dist/tui/services/save.js +21 -0
  119. package/dist/tui/services/save.js.map +1 -0
  120. package/dist/tui/state/app-state.js +15 -0
  121. package/dist/tui/state/app-state.js.map +1 -0
  122. package/dist/tui/state.js +17 -0
  123. package/dist/tui/state.js.map +1 -0
  124. package/dist/tui/types.js +2 -0
  125. package/dist/tui/types.js.map +1 -0
  126. package/dist/tui/views/add-file-modal.js +129 -0
  127. package/dist/tui/views/add-file-modal.js.map +1 -0
  128. package/dist/tui/views/file-preview.js +44 -0
  129. package/dist/tui/views/file-preview.js.map +1 -0
  130. package/dist/tui/views/list-packages.js +73 -0
  131. package/dist/tui/views/list-packages.js.map +1 -0
  132. package/dist/tui/views/main-menu.js +29 -0
  133. package/dist/tui/views/main-menu.js.map +1 -0
  134. package/dist/tui/views/manage-view.js +81 -0
  135. package/dist/tui/views/manage-view.js.map +1 -0
  136. package/dist/tui/views/package-hub.js +120 -0
  137. package/dist/tui/views/package-hub.js.map +1 -0
  138. package/dist/tui/views/placeholder.js +24 -0
  139. package/dist/tui/views/placeholder.js.map +1 -0
  140. package/dist/types/index.js.map +1 -1
  141. package/dist/utils/bun-bootstrap.js +72 -0
  142. package/dist/utils/bun-bootstrap.js.map +1 -0
  143. package/dist/utils/formatters.js +3 -1
  144. package/dist/utils/formatters.js.map +1 -1
  145. package/dist/utils/http-client.js +27 -5
  146. package/dist/utils/http-client.js.map +1 -1
  147. package/dist/utils/index-based-installer.js +25 -2
  148. package/dist/utils/index-based-installer.js.map +1 -1
  149. package/dist/utils/install-file-discovery.js +17 -23
  150. package/dist/utils/install-file-discovery.js.map +1 -1
  151. package/dist/utils/manifest-paths.js +27 -0
  152. package/dist/utils/manifest-paths.js.map +1 -0
  153. package/dist/utils/package-management.js +139 -45
  154. package/dist/utils/package-management.js.map +1 -1
  155. package/dist/utils/package-merge.js +48 -0
  156. package/dist/utils/package-merge.js.map +1 -0
  157. package/dist/utils/package-name.js +29 -0
  158. package/dist/utils/package-name.js.map +1 -1
  159. package/dist/utils/package-versioning.js +16 -4
  160. package/dist/utils/package-versioning.js.map +1 -1
  161. package/dist/utils/package-yml.js +17 -12
  162. package/dist/utils/package-yml.js.map +1 -1
  163. package/dist/utils/prompts.js +0 -31
  164. package/dist/utils/prompts.js.map +1 -1
  165. package/dist/utils/registry-entry-filter.js +2 -2
  166. package/dist/utils/registry-entry-filter.js.map +1 -1
  167. package/dist/utils/registry-paths.js +38 -0
  168. package/dist/utils/registry-paths.js.map +1 -1
  169. package/dist/utils/tarball.js +6 -2
  170. package/dist/utils/tarball.js.map +1 -1
  171. package/dist/utils/version-ranges.js +11 -8
  172. package/dist/utils/version-ranges.js.map +1 -1
  173. package/package.json +2 -2
  174. package/specs/auth/auth-device-flow.md +70 -0
  175. package/specs/install/install-behavior.md +30 -0
  176. package/specs/install/package-yml-canonical.md +21 -1
  177. package/specs/install/version-resolution.md +9 -7
  178. package/specs/login/login-device-flow.md +70 -0
  179. package/specs/push/push-behavior.md +38 -10
  180. package/specs/push/push-errors-and-hints.md +19 -6
  181. package/specs/push/push-remote-upload.md +3 -0
  182. package/specs/push/push-scoping.md +14 -22
  183. package/specs/push/push-version-selection.md +18 -16
  184. package/specs/save/save-modes-inputs.md +3 -1
  185. package/specs/save-pack.md +1 -0
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # OpenPackage
2
2
 
3
3
  <a href="https://www.npmjs.com/package/opkg " target="blank">
4
- <img src="https://img.shields.io/npm/v/opkg ?style=flat-square" alt="Npm package for OpenPackage">
4
+ <img src="https://img.shields.io/npm/v/opkg?style=flat-square" alt="Npm package for OpenPackage">
5
5
  </a>
6
6
  <a href="https://discord.gg/W5H54HZ8Fm" target="blank">
7
7
  <img src="https://img.shields.io/badge/Discord-%235865F2.svg?&logo=discord&logoColor=white&style=flat-square" alt="OpenPackage Discord">
@@ -32,6 +32,16 @@ npm install -g opkg
32
32
 
33
33
  ### Reuse files across multiple codebases
34
34
  Reuse rules, slash commands, and more across multiple codebases.
35
+
36
+ #### Single file
37
+ ```bash title="Terminal"
38
+ # In current codebase
39
+ opkg save f specs/nextjs.md
40
+ # In another codebase
41
+ opkg install f/specs/nextjs.md
42
+ ```
43
+
44
+ #### Multiple files via package
35
45
  ```bash title="Terminal"
36
46
  # In current codebase
37
47
  opkg save essentials
@@ -50,32 +60,28 @@ opkg save essentials .cursor/commands/essentials
50
60
  # OpenPackage CLI automatically generates/syncs the same command files across all platforms.
51
61
 
52
62
  # Before save:
53
- # .cursor/commands/essentials/clean-code.md
63
+ # .cursor/commands/essentials/cleanup.md
54
64
 
55
65
  # After save:
56
- # .cursor/commands/essentials/clean-code.md
57
- # .claude/commands/essentials/clean-code.md
58
- # .opencode/command/essentials/clean-code.md
66
+ # .cursor/commands/essentials/cleanup.md
67
+ # .claude/commands/essentials/cleanup.md
68
+ # .opencode/command/essentials/cleanup.md
59
69
  ```
60
70
 
61
71
  ### Modular management of files
62
72
  Create domain specific packages for modular reuse.
63
73
  ```bash title="Terminal"
64
74
  # Create typescript package
65
- opkg add typescript .cursor/rules/typescript
66
- opkg save typescript
75
+ opkg save typescript .cursor/rules/typescript
67
76
 
68
77
  # Create scalable-nextjs package
69
- opkg add scalable-nextjs .cursor/rules/nextjs
70
- opkg save scalable-nextjs
78
+ opkg save scalable-nextjs .cursor/rules/nextjs
71
79
 
72
80
  # Create scalable-nestjs package
73
- opkg add scalable-nestjs .cursor/rules/nestjs
74
- opkg save scalable-nestjs
81
+ opkg save scalable-nestjs .cursor/rules/nestjs
75
82
 
76
83
  # Create mongodb package
77
- opkg add mongodb .cursor/rules/mongodb
78
- opkg save mongodb
84
+ opkg save mongodb .cursor/rules/mongodb
79
85
 
80
86
  # In your NextJS codebase
81
87
  opkg install typescript
@@ -92,9 +98,17 @@ opkg install mongodb
92
98
  > [!TIP]
93
99
  > We highly recommend reading [the packages doc](https://openpackage.dev/docs/packages) to understand how packages work.
94
100
 
101
+ ### Save a file
102
+
103
+ ```bash title="Terminal"
104
+ opkg save <package> <path-to-dir-or-file>
105
+ ```
106
+ Adds the file to the specified package and saves to local registry for reuse and sharing.
107
+
95
108
  ### Create a package
96
109
 
97
- #### In a project/workspace
110
+ #### In a project/workspace
111
+
98
112
  ```bash title="Terminal"
99
113
  opkg init <package>
100
114
  ```
@@ -149,6 +163,12 @@ opkg uninstall <package>
149
163
  ```
150
164
  Use the uninstall command to remove all files for the specified package from the codebase at cwd.
151
165
 
166
+ ### Authenticate CLI
167
+ ```bash title="Terminal"
168
+ opkg login
169
+ ```
170
+ Use the `login` command to authenticate the CLI for pushing packages to the [official OpenPackage registry](https://openpackage.dev).
171
+
152
172
  ### Push a package to remote
153
173
  ```bash title="Terminal"
154
174
  opkg push <package>
@@ -170,7 +190,7 @@ Packages are composed using the following directory structure:
170
190
 
171
191
  ```txt title="Structure"
172
192
  <package>
173
- ├── .openpackage
193
+ ├── .openpackage/
174
194
  │ ├── package.yml # The OpenPackage manifest, required
175
195
  │ ├── rules/
176
196
  │ │ └── # Rule files
@@ -5,6 +5,7 @@ import { logger } from '../utils/logger.js';
5
5
  import { withErrorHandling, PackageNotFoundError } from '../utils/errors.js';
6
6
  import { parsePackageInput } from '../utils/package-name.js';
7
7
  import { transformPackageFilesMetadata } from '../utils/package-versioning.js';
8
+ import { UNVERSIONED } from '../constants/index.js';
8
9
  async function duplicatePackageCommand(sourceInput, newInput) {
9
10
  logger.info(`Duplicating package: ${sourceInput} -> ${newInput}`);
10
11
  // Ensure registry directories
@@ -45,8 +46,10 @@ async function duplicatePackageCommand(sourceInput, newInput) {
45
46
  };
46
47
  // Save duplicated package
47
48
  await packageManager.savePackage(newPackage);
48
- console.log(`✓ Duplicated '${sourceName}@${sourcePackage.metadata.version}' -> '${newName}@${newVersion}'`);
49
- return { success: true, data: { from: `${sourceName}@${sourcePackage.metadata.version}`, to: `${newName}@${newVersion}` } };
49
+ const fromLabel = sourcePackage.metadata.version ? `${sourceName}@${sourcePackage.metadata.version}` : `${sourceName} (${UNVERSIONED})`;
50
+ const toLabel = newVersion ? `${newName}@${newVersion}` : `${newName} (${UNVERSIONED})`;
51
+ console.log(`✓ Duplicated '${fromLabel}' -> '${toLabel}'`);
52
+ return { success: true, data: { from: fromLabel, to: toLabel } };
50
53
  }
51
54
  export function setupDuplicateCommand(program) {
52
55
  program
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate.js","sourceRoot":"","sources":["../../src/commands/duplicate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duplicate.js","sourceRoot":"","sources":["../../src/commands/duplicate.ts"],"names":[],"mappings":"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"}
@@ -71,7 +71,10 @@ async function initNestedPackage(packageName, force) {
71
71
  logger.info(`Initializing nested package '${normalizedName}' in: ${packageFilesDir}`);
72
72
  try {
73
73
  await ensureDir(packageFilesDir);
74
- const packageConfig = await promptPackageDetailsForNamed(normalizedName);
74
+ const packageConfig = {
75
+ ...(await promptPackageDetailsForNamed(normalizedName)),
76
+ partial: true
77
+ };
75
78
  // Ensure include pattern is set
76
79
  if (!packageConfig.include || packageConfig.include.length === 0) {
77
80
  packageConfig.include = ['**'];
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { runBulkInstallPipeline } from '../core/install/bulk-install-pipeline.js
3
3
  import { runInstallPipeline, determineResolutionMode } from '../core/install/install-pipeline.js';
4
4
  import { withErrorHandling } from '../utils/errors.js';
5
5
  import { normalizePlatforms } from '../utils/platform-mapper.js';
6
- import { parsePackageInput } from '../utils/package-name.js';
6
+ import { parsePackageInstallSpec } from '../utils/package-name.js';
7
7
  import { logger } from '../utils/logger.js';
8
8
  import { normalizePathForProcessing } from '../utils/path-normalization.js';
9
9
  function assertTargetDirOutsideMetadata(targetDir) {
@@ -21,18 +21,20 @@ export function validateResolutionFlags(options) {
21
21
  throw new Error('--remote and --local cannot be used together. Choose one resolution mode.');
22
22
  }
23
23
  }
24
- async function installCommand(packageName, targetDir, options) {
24
+ async function installCommand(packageName, options) {
25
+ const targetDir = '.';
25
26
  assertTargetDirOutsideMetadata(targetDir);
26
27
  options.resolutionMode = determineResolutionMode(options);
27
28
  logger.debug('Install resolution mode selected', { mode: options.resolutionMode });
28
29
  if (!packageName) {
29
- return await runBulkInstallPipeline(targetDir, options);
30
+ return await runBulkInstallPipeline(options);
30
31
  }
31
- const { name, version } = parsePackageInput(packageName);
32
+ const { name, version, registryPath } = parsePackageInstallSpec(packageName);
32
33
  return await runInstallPipeline({
33
34
  ...options,
34
35
  packageName: name,
35
36
  version,
37
+ registryPath,
36
38
  targetDir
37
39
  });
38
40
  }
@@ -42,7 +44,6 @@ export function setupInstallCommand(program) {
42
44
  .alias('i')
43
45
  .description('Install packages from the local (and optional remote) registry into this workspace. Works with WIP copies from `opkg save` and stable releases from `opkg pack`.')
44
46
  .argument('[package-name]', 'name of the package to install (optional - installs all from package.yml if not specified). Supports package@version syntax.')
45
- .argument('[target-dir]', 'target directory relative to the workspace install root (defaults to ./ai)', '.')
46
47
  .option('--dry-run', 'preview changes without applying them')
47
48
  .option('--force', 'overwrite existing files')
48
49
  .option('--conflicts <strategy>', 'conflict handling strategy: keep-both, overwrite, skip, or ask')
@@ -53,7 +54,7 @@ export function setupInstallCommand(program) {
53
54
  .option('--stable', 'prefer the latest stable version when resolving; ignore newer prerelease/WIP versions if a satisfying stable exists')
54
55
  .option('--profile <profile>', 'profile to use for authentication')
55
56
  .option('--api-key <key>', 'API key for authentication (overrides profile)')
56
- .action(withErrorHandling(async (packageName, targetDir, options) => {
57
+ .action(withErrorHandling(async (packageName, options) => {
57
58
  options.platforms = normalizePlatforms(options.platforms);
58
59
  const commandOptions = options;
59
60
  const rawConflictStrategy = commandOptions.conflicts ?? options.conflictStrategy;
@@ -67,7 +68,7 @@ export function setupInstallCommand(program) {
67
68
  }
68
69
  validateResolutionFlags(options);
69
70
  options.resolutionMode = determineResolutionMode(options);
70
- const result = await installCommand(packageName, targetDir, options);
71
+ const result = await installCommand(packageName, options);
71
72
  if (!result.success) {
72
73
  if (result.error === 'Package not found') {
73
74
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,SAAS,8BAA8B,CAAC,SAAiB;IACvD,MAAM,UAAU,GAAG,0BAA0B,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACtC,OAAO,CAAC,uBAAuB;IACjC,CAAC;IAED,IACE,UAAU,KAAK,YAAY,CAAC,WAAW;QACvC,UAAU,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,WAAW,GAAG,CAAC,EACrD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,wBAAwB,SAAS,yBAAyB,YAAY,CAAC,WAAW,gCAAgC,aAAa,CAAC,cAAc,8CAA8C,CAC7L,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAA+D;IACrG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,WAA+B,EAC/B,OAAuB;IAEvB,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,CAAC,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEnF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC7E,OAAO,MAAM,kBAAkB,CAAC;QAC9B,GAAG,OAAO;QACV,WAAW,EAAE,IAAI;QACjB,OAAO;QACP,YAAY;QACZ,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CACV,kKAAkK,CACnK;SACA,QAAQ,CAAC,gBAAgB,EAAE,8HAA8H,CAAC;SAC1J,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;SAC7C,MAAM,CAAC,wBAAwB,EAAE,gEAAgE,CAAC;SAClG,MAAM,CAAC,OAAO,EAAE,iDAAiD,CAAC;SAClE,MAAM,CAAC,4BAA4B,EAAE,+DAA+D,CAAC;SACrG,MAAM,CAAC,UAAU,EAAE,gEAAgE,CAAC;SACpF,MAAM,CAAC,SAAS,EAAE,4FAA4F,CAAC;SAC/G,MAAM,CAAC,UAAU,EAAE,qHAAqH,CAAC;SACzI,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;SAC3E,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAA+B,EAAE,OAAuB,EAAE,EAAE;QAC3F,OAAO,CAAC,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,cAAc,GAAG,OAAkD,CAAC;QAC1E,MAAM,mBAAmB,GAAG,cAAc,CAAC,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;QACjF,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,kBAAkB,GAAI,mBAA8B,CAAC,WAAW,EAAE,CAAC;YACzE,MAAM,iBAAiB,GAAyC,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC1G,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,kBAAwD,CAAC,EAAE,CAAC;gBAC1F,MAAM,IAAI,KAAK,CAAC,8BAA8B,mBAAmB,iDAAiD,CAAC,CAAC;YACtH,CAAC;YACD,OAAO,CAAC,gBAAgB,GAAG,kBAAwD,CAAC;QACtF,CAAC;QAED,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -4,6 +4,7 @@ import { logger } from '../utils/logger.js';
4
4
  import { withErrorHandling } from '../utils/errors.js';
5
5
  import { displayPackageTable } from '../utils/formatters.js';
6
6
  import { arePackageNamesEquivalent } from '../utils/package-name.js';
7
+ import { isUnversionedVersion } from '../utils/package-versioning.js';
7
8
  /**
8
9
  * List packages command implementation
9
10
  */
@@ -17,12 +18,17 @@ async function listPackagesCommand(options) {
17
18
  // When package name is specified, show all versions automatically
18
19
  const showAllVersions = options.packageName ? true : options.all;
19
20
  const entries = await registryManager.listPackages(filter, showAllVersions);
21
+ const formatVersionDisplay = (version) => (isUnversionedVersion(version) ? 'Unversioned' : (version ?? 'Unversioned'));
20
22
  // If a specific package name was provided, filter for exact matches only
21
23
  let filteredEntries = entries;
22
24
  if (options.packageName) {
23
25
  const target = options.packageName;
24
26
  filteredEntries = entries.filter(entry => arePackageNamesEquivalent(entry.name, target));
25
27
  }
28
+ const displayEntries = filteredEntries.map(entry => ({
29
+ ...entry,
30
+ version: formatVersionDisplay(entry.version)
31
+ }));
26
32
  if (filteredEntries.length === 0) {
27
33
  if (options.packageName) {
28
34
  console.log(`Package not found: ${options.packageName}`);
@@ -37,11 +43,11 @@ async function listPackagesCommand(options) {
37
43
  }
38
44
  // Display results
39
45
  if (options.format === 'json') {
40
- console.log(JSON.stringify(filteredEntries, null, 2));
46
+ console.log(JSON.stringify(displayEntries, null, 2));
41
47
  }
42
48
  else {
43
49
  // Table format using shared formatter
44
- const tableEntries = filteredEntries.map(entry => ({
50
+ const tableEntries = displayEntries.map(entry => ({
45
51
  name: entry.name,
46
52
  version: entry.version,
47
53
  description: entry.description
@@ -57,7 +63,7 @@ async function listPackagesCommand(options) {
57
63
  }
58
64
  return {
59
65
  success: true,
60
- data: filteredEntries
66
+ data: displayEntries
61
67
  };
62
68
  }
63
69
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { withErrorHandling } from '../utils/errors.js';
2
+ import { authManager } from '../core/auth.js';
3
+ import { startDeviceAuthorization, pollForDeviceToken, persistTokens, openBrowser, } from '../core/device-auth.js';
4
+ import { profileManager } from '../core/profiles.js';
5
+ import { logger } from '../utils/logger.js';
6
+ import { getCurrentUsername } from '../core/api-keys.js';
7
+ export function setupLoginCommand(program) {
8
+ program
9
+ .command('login')
10
+ .description('Authenticate with OpenPackage using the device authorization flow')
11
+ .option('--profile <profile>', 'profile to use for authentication')
12
+ .action(withErrorHandling(async (options) => {
13
+ const profileName = authManager.getCurrentProfile({
14
+ profile: options.profile,
15
+ });
16
+ console.log(`Using profile: ${profileName}`);
17
+ const authorization = await startDeviceAuthorization();
18
+ console.log('A browser will open for you to confirm sign-in.');
19
+ console.log(`User code: ${authorization.userCode}`);
20
+ console.log(`Verification URL: ${authorization.verificationUri}`);
21
+ console.log('');
22
+ console.log('If the browser does not open, visit the URL and enter the code above.');
23
+ openBrowser(authorization.verificationUriComplete);
24
+ try {
25
+ const tokens = await pollForDeviceToken({
26
+ deviceCode: authorization.deviceCode,
27
+ intervalSeconds: authorization.interval,
28
+ expiresInSeconds: authorization.expiresIn,
29
+ });
30
+ await persistTokens(profileName, tokens);
31
+ const username = tokens.username ?? (await resolveUsername(profileName));
32
+ if (username) {
33
+ await profileManager.setProfileDefaultScope(profileName, `@${username}`);
34
+ console.log(`✓ Default scope set to @${username} for profile "${profileName}".`);
35
+ }
36
+ else {
37
+ logger.debug('Could not derive username from API key; default scope not set');
38
+ }
39
+ console.log('');
40
+ console.log('✓ Login successful.');
41
+ console.log(`✓ API key stored for profile "${profileName}".`);
42
+ }
43
+ catch (error) {
44
+ logger.debug('Device login failed', { error });
45
+ throw error;
46
+ }
47
+ }));
48
+ }
49
+ async function resolveUsername(profileName) {
50
+ try {
51
+ return await getCurrentUsername({ profile: profileName });
52
+ }
53
+ catch (error) {
54
+ logger.debug('Unable to resolve username from API key', { error });
55
+ return undefined;
56
+ }
57
+ }
58
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { withErrorHandling } from '../utils/errors.js';
2
+ import { authManager } from '../core/auth.js';
3
+ import { profileManager } from '../core/profiles.js';
4
+ import { logger } from '../utils/logger.js';
5
+ export function setupLogoutCommand(program) {
6
+ program
7
+ .command('logout')
8
+ .description('Remove stored API key for a profile')
9
+ .option('--profile <profile>', 'profile to log out')
10
+ .action(withErrorHandling(async (options) => {
11
+ const profileName = authManager.getCurrentProfile({
12
+ profile: options.profile,
13
+ });
14
+ if (profileName === '<api-key>') {
15
+ console.log('No stored credentials when using --api-key directly.');
16
+ return;
17
+ }
18
+ try {
19
+ await profileManager.clearProfileCredentials(profileName);
20
+ console.log(`✓ Credentials removed for profile "${profileName}".`);
21
+ }
22
+ catch (error) {
23
+ logger.debug('Failed to clear credentials during logout', { error });
24
+ throw error;
25
+ }
26
+ }));
27
+ }
28
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAM3C,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IAClD,OAAO;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;SACnD,MAAM,CACN,iBAAiB,CAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;QAClD,MAAM,WAAW,GAAG,WAAW,CAAC,iBAAiB,CAAC;YACjD,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC,CAAA;QAEF,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAA;YACnE,OAAM;QACP,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,cAAc,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAA;YACzD,OAAO,CAAC,GAAG,CAAC,sCAAsC,WAAW,IAAI,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YACpE,MAAM,KAAK,CAAA;QACZ,CAAC;IACF,CAAC,CAAC,CACF,CAAA;AACH,CAAC"}