opkg 0.5.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 (397) hide show
  1. package/README.md +82 -21
  2. package/dist/commands/add.js +11 -276
  3. package/dist/commands/add.js.map +1 -1
  4. package/dist/commands/duplicate.js +5 -2
  5. package/dist/commands/duplicate.js.map +1 -1
  6. package/dist/commands/init.js +76 -145
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/install.js +30 -671
  9. package/dist/commands/install.js.map +1 -1
  10. package/dist/commands/list.js +9 -3
  11. package/dist/commands/list.js.map +1 -1
  12. package/dist/commands/login.js +58 -0
  13. package/dist/commands/login.js.map +1 -0
  14. package/dist/commands/logout.js +28 -0
  15. package/dist/commands/logout.js.map +1 -0
  16. package/dist/commands/pack.js +10 -137
  17. package/dist/commands/pack.js.map +1 -1
  18. package/dist/commands/pull.js +5 -299
  19. package/dist/commands/pull.js.map +1 -1
  20. package/dist/commands/push.js +5 -239
  21. package/dist/commands/push.js.map +1 -1
  22. package/dist/commands/save.js +29 -168
  23. package/dist/commands/save.js.map +1 -1
  24. package/dist/commands/show.js +18 -5
  25. package/dist/commands/show.js.map +1 -1
  26. package/dist/commands/status.js +21 -8
  27. package/dist/commands/status.js.map +1 -1
  28. package/dist/commands/tui.js +61 -0
  29. package/dist/commands/tui.js.map +1 -0
  30. package/dist/commands/uninstall.js +5 -5
  31. package/dist/commands/uninstall.js.map +1 -1
  32. package/dist/constants/index.js +19 -45
  33. package/dist/constants/index.js.map +1 -1
  34. package/dist/constants/workspace.js +9 -0
  35. package/dist/constants/workspace.js.map +1 -0
  36. package/dist/core/add/add-conflict-handler.js +68 -0
  37. package/dist/core/add/add-conflict-handler.js.map +1 -0
  38. package/dist/core/add/add-pipeline.js +137 -0
  39. package/dist/core/add/add-pipeline.js.map +1 -0
  40. package/dist/core/add/package-index-updater.js +66 -36
  41. package/dist/core/add/package-index-updater.js.map +1 -1
  42. package/dist/core/add/platform-path-transformer.js +47 -0
  43. package/dist/core/add/platform-path-transformer.js.map +1 -0
  44. package/dist/core/add/source-collector.js +57 -0
  45. package/dist/core/add/source-collector.js.map +1 -0
  46. package/dist/core/api-keys.js +6 -2
  47. package/dist/core/api-keys.js.map +1 -1
  48. package/dist/core/auth.js +25 -40
  49. package/dist/core/auth.js.map +1 -1
  50. package/dist/core/config.js +11 -3
  51. package/dist/core/config.js.map +1 -1
  52. package/dist/core/dependency-resolver.js +24 -11
  53. package/dist/core/dependency-resolver.js.map +1 -1
  54. package/dist/core/device-auth.js +81 -0
  55. package/dist/core/device-auth.js.map +1 -0
  56. package/dist/core/directory.js +15 -9
  57. package/dist/core/directory.js.map +1 -1
  58. package/dist/core/discovery/file-discovery.js +55 -54
  59. package/dist/core/discovery/file-discovery.js.map +1 -1
  60. package/dist/core/discovery/platform-files-discovery.js +32 -17
  61. package/dist/core/discovery/platform-files-discovery.js.map +1 -1
  62. package/dist/core/install/bulk-install-pipeline.js +200 -0
  63. package/dist/core/install/bulk-install-pipeline.js.map +1 -0
  64. package/dist/core/install/canonical-plan.js +129 -0
  65. package/dist/core/install/canonical-plan.js.map +1 -0
  66. package/dist/core/install/download-keys.js +2 -2
  67. package/dist/core/install/download-keys.js.map +1 -1
  68. package/dist/core/install/dry-run.js +2 -2
  69. package/dist/core/install/dry-run.js.map +1 -1
  70. package/dist/core/install/index.js +3 -0
  71. package/dist/core/install/index.js.map +1 -0
  72. package/dist/core/install/install-errors.js +41 -0
  73. package/dist/core/install/install-errors.js.map +1 -0
  74. package/dist/core/install/install-flow.js +8 -9
  75. package/dist/core/install/install-flow.js.map +1 -1
  76. package/dist/core/install/install-pipeline.js +296 -0
  77. package/dist/core/install/install-pipeline.js.map +1 -0
  78. package/dist/core/install/install-reporting.js +99 -0
  79. package/dist/core/install/install-reporting.js.map +1 -0
  80. package/dist/core/install/platform-resolution.js +6 -6
  81. package/dist/core/install/platform-resolution.js.map +1 -1
  82. package/dist/core/install/remote-flow.js +84 -7
  83. package/dist/core/install/remote-flow.js.map +1 -1
  84. package/dist/core/install/version-selection.js +25 -8
  85. package/dist/core/install/version-selection.js.map +1 -1
  86. package/dist/core/openpackage.js +22 -14
  87. package/dist/core/openpackage.js.map +1 -1
  88. package/dist/core/package-context.js +246 -0
  89. package/dist/core/package-context.js.map +1 -0
  90. package/dist/core/package.js +73 -9
  91. package/dist/core/package.js.map +1 -1
  92. package/dist/core/platforms.js +126 -217
  93. package/dist/core/platforms.js.map +1 -1
  94. package/dist/core/profiles.js +60 -3
  95. package/dist/core/profiles.js.map +1 -1
  96. package/dist/core/pull/pull-errors.js +62 -0
  97. package/dist/core/pull/pull-errors.js.map +1 -0
  98. package/dist/core/pull/pull-options.js +2 -0
  99. package/dist/core/pull/pull-options.js.map +1 -0
  100. package/dist/core/pull/pull-output.js +50 -0
  101. package/dist/core/pull/pull-output.js.map +1 -0
  102. package/dist/core/pull/pull-pipeline.js +141 -0
  103. package/dist/core/pull/pull-pipeline.js.map +1 -0
  104. package/dist/core/pull/pull-strategies.js +103 -0
  105. package/dist/core/pull/pull-strategies.js.map +1 -0
  106. package/dist/core/pull/pull-types.js +2 -0
  107. package/dist/core/pull/pull-types.js.map +1 -0
  108. package/dist/core/push/push-context.js +95 -0
  109. package/dist/core/push/push-context.js.map +1 -0
  110. package/dist/core/push/push-errors.js +133 -0
  111. package/dist/core/push/push-errors.js.map +1 -0
  112. package/dist/core/push/push-output.js +44 -0
  113. package/dist/core/push/push-output.js.map +1 -0
  114. package/dist/core/push/push-pipeline.js +74 -0
  115. package/dist/core/push/push-pipeline.js.map +1 -0
  116. package/dist/core/push/push-single-file.js +56 -0
  117. package/dist/core/push/push-single-file.js.map +1 -0
  118. package/dist/core/push/push-types.js +2 -0
  119. package/dist/core/push/push-types.js.map +1 -0
  120. package/dist/core/push/push-upload.js +68 -0
  121. package/dist/core/push/push-upload.js.map +1 -0
  122. package/dist/core/registry/registry-rename.js +2 -1
  123. package/dist/core/registry/registry-rename.js.map +1 -1
  124. package/dist/core/registry.js +14 -5
  125. package/dist/core/registry.js.map +1 -1
  126. package/dist/core/remote-pull.js +165 -36
  127. package/dist/core/remote-pull.js.map +1 -1
  128. package/dist/core/save/constants.js +4 -0
  129. package/dist/core/save/constants.js.map +1 -1
  130. package/dist/core/save/name-resolution.js +31 -0
  131. package/dist/core/save/name-resolution.js.map +1 -0
  132. package/dist/core/save/package-detection.js +147 -0
  133. package/dist/core/save/package-detection.js.map +1 -0
  134. package/dist/core/save/package-saver.js +82 -43
  135. package/dist/core/save/package-saver.js.map +1 -1
  136. package/dist/core/save/package-yml-generator.js +51 -71
  137. package/dist/core/save/package-yml-generator.js.map +1 -1
  138. package/dist/core/save/root-save-candidates.js.map +1 -1
  139. package/dist/core/save/save-candidate-loader.js +89 -0
  140. package/dist/core/save/save-candidate-loader.js.map +1 -0
  141. package/dist/core/save/save-conflict-resolution.js +72 -410
  142. package/dist/core/save/save-conflict-resolution.js.map +1 -1
  143. package/dist/core/save/save-conflict-resolver.js +277 -0
  144. package/dist/core/save/save-conflict-resolver.js.map +1 -0
  145. package/dist/core/save/save-pipeline.js +162 -0
  146. package/dist/core/save/save-pipeline.js.map +1 -0
  147. package/dist/core/save/save-single-file.js +124 -0
  148. package/dist/core/save/save-single-file.js.map +1 -0
  149. package/dist/core/save/save-types.js +2 -0
  150. package/dist/core/save/save-types.js.map +1 -0
  151. package/dist/core/save/save-yml-resolution.js +77 -39
  152. package/dist/core/save/save-yml-resolution.js.map +1 -1
  153. package/dist/core/save/workspace-rename.js +6 -6
  154. package/dist/core/save/workspace-rename.js.map +1 -1
  155. package/dist/core/scoping/package-scoping.js +14 -2
  156. package/dist/core/scoping/package-scoping.js.map +1 -1
  157. package/dist/core/status/status-file-discovery.js +12 -30
  158. package/dist/core/status/status-file-discovery.js.map +1 -1
  159. package/dist/core/sync/platform-sync.js +7 -4
  160. package/dist/core/sync/platform-sync.js.map +1 -1
  161. package/dist/core/sync/root-files-sync.js +59 -1
  162. package/dist/core/sync/root-files-sync.js.map +1 -1
  163. package/dist/core/token-store.js +73 -0
  164. package/dist/core/token-store.js.map +1 -0
  165. package/dist/core/uninstall/uninstall-file-discovery.js +1 -2
  166. package/dist/core/uninstall/uninstall-file-discovery.js.map +1 -1
  167. package/dist/index.js +4 -0
  168. package/dist/index.js.map +1 -1
  169. package/dist/tui/app.js +95 -0
  170. package/dist/tui/app.js.map +1 -0
  171. package/dist/tui/components/package-list.js +73 -0
  172. package/dist/tui/components/package-list.js.map +1 -0
  173. package/dist/tui/controller.js +365 -0
  174. package/dist/tui/controller.js.map +1 -0
  175. package/dist/tui/index.js +12 -0
  176. package/dist/tui/index.js.map +1 -0
  177. package/dist/tui/services/file-index.js +64 -0
  178. package/dist/tui/services/file-index.js.map +1 -0
  179. package/dist/tui/services/packages.js +18 -0
  180. package/dist/tui/services/packages.js.map +1 -0
  181. package/dist/tui/services/save.js +21 -0
  182. package/dist/tui/services/save.js.map +1 -0
  183. package/dist/tui/state/app-state.js +15 -0
  184. package/dist/tui/state/app-state.js.map +1 -0
  185. package/dist/tui/state.js +17 -0
  186. package/dist/tui/state.js.map +1 -0
  187. package/dist/tui/types.js +2 -0
  188. package/dist/tui/types.js.map +1 -0
  189. package/dist/tui/views/add-file-modal.js +129 -0
  190. package/dist/tui/views/add-file-modal.js.map +1 -0
  191. package/dist/tui/views/file-preview.js +44 -0
  192. package/dist/tui/views/file-preview.js.map +1 -0
  193. package/dist/tui/views/list-packages.js +73 -0
  194. package/dist/tui/views/list-packages.js.map +1 -0
  195. package/dist/tui/views/main-menu.js +29 -0
  196. package/dist/tui/views/main-menu.js.map +1 -0
  197. package/dist/tui/views/manage-view.js +81 -0
  198. package/dist/tui/views/manage-view.js.map +1 -0
  199. package/dist/tui/views/package-hub.js +120 -0
  200. package/dist/tui/views/package-hub.js.map +1 -0
  201. package/dist/tui/views/placeholder.js +24 -0
  202. package/dist/tui/views/placeholder.js.map +1 -0
  203. package/dist/types/index.js.map +1 -1
  204. package/dist/utils/bun-bootstrap.js +72 -0
  205. package/dist/utils/bun-bootstrap.js.map +1 -0
  206. package/dist/utils/file-processing.js +5 -58
  207. package/dist/utils/file-processing.js.map +1 -1
  208. package/dist/utils/formatters.js +3 -1
  209. package/dist/utils/formatters.js.map +1 -1
  210. package/dist/utils/http-client.js +27 -5
  211. package/dist/utils/http-client.js.map +1 -1
  212. package/dist/utils/index-based-installer.js +40 -35
  213. package/dist/utils/index-based-installer.js.map +1 -1
  214. package/dist/utils/install-file-discovery.js +18 -24
  215. package/dist/utils/install-file-discovery.js.map +1 -1
  216. package/dist/utils/install-orchestrator.js +21 -21
  217. package/dist/utils/install-orchestrator.js.map +1 -1
  218. package/dist/utils/jsonc.js +44 -0
  219. package/dist/utils/jsonc.js.map +1 -0
  220. package/dist/utils/manifest-paths.js +27 -0
  221. package/dist/utils/manifest-paths.js.map +1 -0
  222. package/dist/utils/package-copy.js +199 -0
  223. package/dist/utils/package-copy.js.map +1 -0
  224. package/dist/utils/package-filters.js +125 -0
  225. package/dist/utils/package-filters.js.map +1 -0
  226. package/dist/utils/package-index-yml.js +15 -10
  227. package/dist/utils/package-index-yml.js.map +1 -1
  228. package/dist/utils/package-installation.js +4 -113
  229. package/dist/utils/package-installation.js.map +1 -1
  230. package/dist/utils/package-local-files.js +2 -35
  231. package/dist/utils/package-local-files.js.map +1 -1
  232. package/dist/utils/package-management.js +191 -75
  233. package/dist/utils/package-management.js.map +1 -1
  234. package/dist/utils/package-merge.js +48 -0
  235. package/dist/utils/package-merge.js.map +1 -0
  236. package/dist/utils/package-name.js +29 -0
  237. package/dist/utils/package-name.js.map +1 -1
  238. package/dist/utils/package-versioning.js +16 -4
  239. package/dist/utils/package-versioning.js.map +1 -1
  240. package/dist/utils/package-yml.js +41 -12
  241. package/dist/utils/package-yml.js.map +1 -1
  242. package/dist/utils/path-normalization.js +8 -53
  243. package/dist/utils/path-normalization.js.map +1 -1
  244. package/dist/utils/paths.js +17 -9
  245. package/dist/utils/paths.js.map +1 -1
  246. package/dist/utils/platform-file.js +16 -59
  247. package/dist/utils/platform-file.js.map +1 -1
  248. package/dist/utils/platform-mapper.js +29 -41
  249. package/dist/utils/platform-mapper.js.map +1 -1
  250. package/dist/utils/platform-specific-paths.js.map +1 -1
  251. package/dist/utils/platform-utils.js +28 -139
  252. package/dist/utils/platform-utils.js.map +1 -1
  253. package/dist/utils/platform-yaml-merge.js +13 -6
  254. package/dist/utils/platform-yaml-merge.js.map +1 -1
  255. package/dist/utils/prompts.js +0 -31
  256. package/dist/utils/prompts.js.map +1 -1
  257. package/dist/utils/registry-entry-filter.js +38 -24
  258. package/dist/utils/registry-entry-filter.js.map +1 -1
  259. package/dist/utils/registry-paths.js +48 -0
  260. package/dist/utils/registry-paths.js.map +1 -0
  261. package/dist/utils/root-file-installer.js +19 -0
  262. package/dist/utils/root-file-installer.js.map +1 -1
  263. package/dist/utils/root-file-registry.js.map +1 -1
  264. package/dist/utils/tarball.js +6 -2
  265. package/dist/utils/tarball.js.map +1 -1
  266. package/dist/utils/version-ranges.js +11 -8
  267. package/dist/utils/version-ranges.js.map +1 -1
  268. package/package.json +3 -2
  269. package/platforms.jsonc +178 -0
  270. package/specs/auth/auth-device-flow.md +70 -0
  271. package/specs/install/install-behavior.md +30 -0
  272. package/specs/install/package-yml-canonical.md +21 -1
  273. package/specs/install/version-resolution.md +9 -7
  274. package/specs/login/login-device-flow.md +70 -0
  275. package/specs/package/README.md +60 -0
  276. package/specs/package/nested-packages-and-parent-packages.md +79 -0
  277. package/specs/package/package-index-yml.md +171 -0
  278. package/specs/package/package-root-layout.md +78 -0
  279. package/specs/package/registry-payload-and-copy.md +77 -0
  280. package/specs/package/universal-content.md +144 -0
  281. package/specs/platforms.md +193 -0
  282. package/specs/push/push-behavior.md +38 -10
  283. package/specs/push/push-errors-and-hints.md +19 -6
  284. package/specs/push/push-remote-upload.md +3 -0
  285. package/specs/push/push-scoping.md +14 -22
  286. package/specs/push/push-version-selection.md +18 -16
  287. package/specs/save/README.md +40 -0
  288. package/specs/save/save-conflict-resolution.md +146 -0
  289. package/specs/save/save-file-discovery.md +101 -0
  290. package/specs/save/save-frontmatter-overrides.md +81 -0
  291. package/specs/save/save-modes-inputs.md +55 -0
  292. package/specs/save/save-naming-scoping.md +93 -0
  293. package/specs/save/save-package-detection.md +60 -0
  294. package/specs/save/save-registry-sync.md +126 -0
  295. package/specs/save-pack.md +1 -0
  296. package/dist/commands/release.js +0 -33
  297. package/dist/commands/release.js.map +0 -1
  298. package/dist/commands/tag.js +0 -311
  299. package/dist/commands/tag.js.map +0 -1
  300. package/dist/commands/update.js +0 -30
  301. package/dist/commands/update.js.map +0 -1
  302. package/dist/core/add/formula-index-updater.js +0 -290
  303. package/dist/core/add/formula-index-updater.js.map +0 -1
  304. package/dist/core/discovery/ai-files-discovery.js +0 -2
  305. package/dist/core/discovery/ai-files-discovery.js.map +0 -1
  306. package/dist/core/discovery/formula-files-discovery.js +0 -14
  307. package/dist/core/discovery/formula-files-discovery.js.map +0 -1
  308. package/dist/core/discovery/index-files-discovery.js +0 -91
  309. package/dist/core/discovery/index-files-discovery.js.map +0 -1
  310. package/dist/core/discovery/md-files-discovery.js +0 -82
  311. package/dist/core/discovery/md-files-discovery.js.map +0 -1
  312. package/dist/core/discovery/package-files-discovery.js +0 -14
  313. package/dist/core/discovery/package-files-discovery.js.map +0 -1
  314. package/dist/core/discovery/platform-discovery.js +0 -84
  315. package/dist/core/discovery/platform-discovery.js.map +0 -1
  316. package/dist/core/discovery/root-files-discovery.js +0 -2
  317. package/dist/core/discovery/root-files-discovery.js.map +0 -1
  318. package/dist/core/formula.js +0 -170
  319. package/dist/core/formula.js.map +0 -1
  320. package/dist/core/git-registry.js +0 -46
  321. package/dist/core/git-registry.js.map +0 -1
  322. package/dist/core/groundzero.js +0 -277
  323. package/dist/core/groundzero.js.map +0 -1
  324. package/dist/core/install/scenario.js +0 -11
  325. package/dist/core/install/scenario.js.map +0 -1
  326. package/dist/core/package-sync.js +0 -219
  327. package/dist/core/package-sync.js.map +0 -1
  328. package/dist/core/save/formula-file-generator.js +0 -167
  329. package/dist/core/save/formula-file-generator.js.map +0 -1
  330. package/dist/core/save/formula-saver.js +0 -52
  331. package/dist/core/save/formula-saver.js.map +0 -1
  332. package/dist/core/save/formula-yml-generator.js +0 -89
  333. package/dist/core/save/formula-yml-generator.js.map +0 -1
  334. package/dist/core/save/formula-yml-versioning.js +0 -108
  335. package/dist/core/save/formula-yml-versioning.js.map +0 -1
  336. package/dist/core/save/generic-file-sync.js +0 -38
  337. package/dist/core/save/generic-file-sync.js.map +0 -1
  338. package/dist/core/save/md-files-sync.js +0 -33
  339. package/dist/core/save/md-files-sync.js.map +0 -1
  340. package/dist/core/save/package-yml-versioning.js +0 -108
  341. package/dist/core/save/package-yml-versioning.js.map +0 -1
  342. package/dist/core/save/platform-sync.js +0 -95
  343. package/dist/core/save/platform-sync.js.map +0 -1
  344. package/dist/core/save/root-files-sync.js +0 -140
  345. package/dist/core/save/root-files-sync.js.map +0 -1
  346. package/dist/core/save/save-candidate-types.js +0 -2
  347. package/dist/core/save/save-candidate-types.js.map +0 -1
  348. package/dist/core/save/save-conflict-types.js +0 -2
  349. package/dist/core/save/save-conflict-types.js.map +0 -1
  350. package/dist/core/save/save-file-discovery.js +0 -5
  351. package/dist/core/save/save-file-discovery.js.map +0 -1
  352. package/dist/core/status-file-discovery.js +0 -175
  353. package/dist/core/status-file-discovery.js.map +0 -1
  354. package/dist/utils/discovery/file-processing.js +0 -156
  355. package/dist/utils/discovery/file-processing.js.map +0 -1
  356. package/dist/utils/discovery/formula-discovery.js +0 -211
  357. package/dist/utils/discovery/formula-discovery.js.map +0 -1
  358. package/dist/utils/discovery/platform-discovery.js +0 -2
  359. package/dist/utils/discovery/platform-discovery.js.map +0 -1
  360. package/dist/utils/formula-discovery.js +0 -102
  361. package/dist/utils/formula-discovery.js.map +0 -1
  362. package/dist/utils/formula-index-yml.js +0 -122
  363. package/dist/utils/formula-index-yml.js.map +0 -1
  364. package/dist/utils/formula-installation.js +0 -110
  365. package/dist/utils/formula-installation.js.map +0 -1
  366. package/dist/utils/formula-local-files.js +0 -38
  367. package/dist/utils/formula-local-files.js.map +0 -1
  368. package/dist/utils/formula-management.js +0 -191
  369. package/dist/utils/formula-management.js.map +0 -1
  370. package/dist/utils/formula-name.js +0 -97
  371. package/dist/utils/formula-name.js.map +0 -1
  372. package/dist/utils/formula-versioning.js +0 -109
  373. package/dist/utils/formula-versioning.js.map +0 -1
  374. package/dist/utils/formula-yml.js +0 -82
  375. package/dist/utils/formula-yml.js.map +0 -1
  376. package/dist/utils/git.js +0 -54
  377. package/dist/utils/git.js.map +0 -1
  378. package/dist/utils/id-based-discovery.js +0 -126
  379. package/dist/utils/id-based-discovery.js.map +0 -1
  380. package/dist/utils/id-based-installer.js +0 -249
  381. package/dist/utils/id-based-installer.js.map +0 -1
  382. package/dist/utils/index-yml-based-installer.js +0 -375
  383. package/dist/utils/index-yml-based-installer.js.map +0 -1
  384. package/dist/utils/index-yml.js +0 -124
  385. package/dist/utils/index-yml.js.map +0 -1
  386. package/dist/utils/md-frontmatter.js +0 -3
  387. package/dist/utils/md-frontmatter.js.map +0 -1
  388. package/dist/utils/package-link-yml.js +0 -92
  389. package/dist/utils/package-link-yml.js.map +0 -1
  390. package/dist/utils/platform-discovery.js +0 -2
  391. package/dist/utils/platform-discovery.js.map +0 -1
  392. package/dist/utils/platform-frontmatter-split.js +0 -15
  393. package/dist/utils/platform-frontmatter-split.js.map +0 -1
  394. package/dist/utils/timestamp-encoder.js +0 -13
  395. package/dist/utils/timestamp-encoder.js.map +0 -1
  396. package/dist/utils/wip-versioning.js +0 -24
  397. package/dist/utils/wip-versioning.js.map +0 -1
@@ -1,52 +1,91 @@
1
- import { normalizePackageName } from "../../utils/package-name.js";
2
- import { ensureDir, writeTextFile, remove } from "../../utils/fs.js";
3
- import { logger } from "../../utils/logger.js";
4
- import { resolveTargetDirectory, resolveTargetFilePath } from "../../utils/platform-mapper.js";
5
- import { getPackageVersionPath } from "../directory.js";
6
- import { UTF8_ENCODING } from "./constants.js";
7
- import { packageVersionExists } from "../../utils/package-versioning.js";
8
1
  /**
9
- * Save package to local registry
2
+ * Registry write operations for save/pack commands.
3
+ *
4
+ * This module handles persisting a package version to the local registry at
5
+ * ~/.openpackage/registry/<name>/<version>/...
10
6
  */
11
- export async function savePackageToRegistry(packageInfo, files, silent = true) {
12
- const config = packageInfo.config;
7
+ import * as yaml from 'js-yaml';
8
+ import { normalizePackageName } from '../../utils/package-name.js';
9
+ import { remove } from '../../utils/fs.js';
10
+ import { logger } from '../../utils/logger.js';
11
+ import { packageManager } from '../package.js';
12
+ import { getPackageVersionPath } from '../directory.js';
13
+ import { packageVersionExists } from '../../utils/package-versioning.js';
14
+ import { writePackageFilesToDirectory } from '../../utils/package-copy.js';
15
+ import { mergePackageFiles, stripPartialFlag } from '../../utils/package-merge.js';
16
+ import { PACKAGE_PATHS } from '../../constants/index.js';
17
+ // ─────────────────────────────────────────────────────────────────────────────
18
+ // Public API
19
+ // ─────────────────────────────────────────────────────────────────────────────
20
+ /**
21
+ * Save a package version to the local registry.
22
+ *
23
+ * - Normalizes the package name for consistent registry paths.
24
+ * - Clears any existing version directory before writing (idempotent overwrites).
25
+ * - Writes all provided files to the registry version directory.
26
+ *
27
+ * @param packageContext - Metadata about the package (name, version, paths).
28
+ * @param files - The registry payload to persist.
29
+ * @returns Result indicating success/failure and the normalized config.
30
+ */
31
+ export async function savePackageToRegistry(packageContext, files) {
32
+ const { config } = packageContext;
33
+ const normalizedName = normalizePackageName(config.name);
34
+ const normalizedConfig = { ...config, name: normalizedName };
35
+ const versionDir = getPackageVersionPath(normalizedName, normalizedConfig.version);
36
+ const manifestIsPartial = isManifestPartial(files);
37
+ const registryHasPackage = await packageManager.packageExists(normalizedName);
38
+ let filesToWrite = files;
39
+ if (manifestIsPartial && registryHasPackage) {
40
+ const baseFiles = await loadExistingFiles(normalizedName, normalizedConfig.version);
41
+ filesToWrite = mergePackageFiles(baseFiles, filesToWrite);
42
+ }
43
+ if (manifestIsPartial) {
44
+ filesToWrite = stripPartialFlag(filesToWrite, normalizedName);
45
+ delete normalizedConfig.partial;
46
+ }
13
47
  try {
14
- // Ensure package name is normalized for consistent registry paths
15
- const normalizedConfig = { ...config, name: normalizePackageName(config.name) };
16
- const targetPath = getPackageVersionPath(normalizedConfig.name, normalizedConfig.version);
17
- // If version already exists, clear the directory first to remove old files
18
- if (await packageVersionExists(normalizedConfig.name, normalizedConfig.version)) {
19
- await remove(targetPath);
20
- logger.debug(`Cleared existing version directory: ${targetPath}`);
21
- }
22
- await ensureDir(targetPath);
23
- // Group files by target directory
24
- const directoryGroups = new Map();
25
- for (const file of files) {
26
- const targetDir = resolveTargetDirectory(targetPath, file.path);
27
- if (!directoryGroups.has(targetDir)) {
28
- directoryGroups.set(targetDir, []);
29
- }
30
- directoryGroups.get(targetDir).push(file);
31
- }
32
- // Save files in parallel by directory
33
- const savePromises = Array.from(directoryGroups.entries()).map(async ([dir, dirFiles]) => {
34
- await ensureDir(dir);
35
- const filePromises = dirFiles.map(async (file) => {
36
- const filePath = resolveTargetFilePath(dir, file.path);
37
- await writeTextFile(filePath, file.content, file.encoding || UTF8_ENCODING);
38
- });
39
- await Promise.all(filePromises);
40
- });
41
- await Promise.all(savePromises);
42
- if (!silent) {
43
- logger.info(`Package '${normalizedConfig.name}@${normalizedConfig.version}' saved to local registry`);
44
- }
48
+ await clearExistingVersion(normalizedName, normalizedConfig.version, versionDir);
49
+ await writePackageFilesToDirectory(versionDir, filesToWrite);
45
50
  return { success: true, updatedConfig: normalizedConfig };
46
51
  }
47
52
  catch (error) {
48
- logger.error(`Failed to save package: ${error}`);
49
- return { success: false, error: `Failed to save package: ${error}` };
53
+ const message = `Failed to save ${normalizedName}@${normalizedConfig.version}: ${error}`;
54
+ logger.error(message);
55
+ return { success: false, error: message };
56
+ }
57
+ }
58
+ function isManifestPartial(files) {
59
+ const manifest = files.find(f => f.path === PACKAGE_PATHS.MANIFEST_RELATIVE);
60
+ if (!manifest)
61
+ return false;
62
+ try {
63
+ const parsed = yaml.load(manifest.content);
64
+ return parsed?.partial === true;
65
+ }
66
+ catch {
67
+ return false;
68
+ }
69
+ }
70
+ async function loadExistingFiles(packageName, version) {
71
+ try {
72
+ return (await packageManager.loadPackage(packageName, version)).files;
73
+ }
74
+ catch (error) {
75
+ logger.debug(`No existing version to merge`, { packageName, version, error });
76
+ return [];
77
+ }
78
+ }
79
+ // ─────────────────────────────────────────────────────────────────────────────
80
+ // Helpers
81
+ // ─────────────────────────────────────────────────────────────────────────────
82
+ /**
83
+ * Remove an existing version directory if present (ensures clean overwrites).
84
+ */
85
+ async function clearExistingVersion(packageName, version, versionDir) {
86
+ if (await packageVersionExists(packageName, version)) {
87
+ await remove(versionDir);
88
+ logger.debug(`Cleared existing registry version: ${versionDir}`);
50
89
  }
51
90
  }
52
91
  //# sourceMappingURL=package-saver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-saver.js","sourceRoot":"","sources":["../../../src/core/save/package-saver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-saver.js","sourceRoot":"","sources":["../../../src/core/save/package-saver.ts"],"names":[],"mappings":"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"}
@@ -1,81 +1,61 @@
1
- import { join } from "path";
2
- import { FILE_PATTERNS } from "../../constants/index.js";
3
- import { normalizePackageName } from "../../utils/package-name.js";
4
- import { parsePackageYml, writePackageYml } from "../../utils/package-yml.js";
5
- import { ensureDir, exists, isDirectory } from "../../utils/fs.js";
6
- import { logger } from "../../utils/logger.js";
7
- import { getLocalPackageDir } from "../../utils/paths.js";
8
- import { ValidationError } from "../../utils/errors.js";
9
- import { ensureLocalOpenPackageStructure } from "../../utils/package-management.js";
10
- import { DEFAULT_VERSION, ERROR_MESSAGES, LOG_PREFIXES } from "./constants.js";
11
- /**
12
- * Create package.yml automatically in a directory without user prompts
13
- * Reuses init command logic but makes it non-interactive
14
- */
15
- async function createPackageYmlInDirectory(packageDir, packageName) {
16
- const cwd = process.cwd();
17
- // Ensure the target directory exists (including packages subdirectory)
18
- await ensureLocalOpenPackageStructure(cwd);
19
- await ensureDir(packageDir);
20
- // Create package.yml in the package directory (rTnot the main .openpackage directory)
21
- const packageYmlPath = join(packageDir, FILE_PATTERNS.PACKAGE_YML);
22
- // Create default package config
23
- const packageConfig = {
24
- name: normalizePackageName(packageName),
25
- version: DEFAULT_VERSION
26
- };
27
- // Create the package.yml file
28
- await writePackageYml(packageYmlPath, packageConfig);
29
- console.log(`${LOG_PREFIXES.CREATED} ${packageDir}`);
30
- console.log(`${LOG_PREFIXES.NAME} ${packageConfig.name}`);
31
- console.log(`${LOG_PREFIXES.VERSION} ${packageConfig.version}`);
32
- return {
33
- fullPath: packageYmlPath,
34
- config: packageConfig,
35
- isNewPackage: true
36
- };
37
- }
38
- /**
39
- * Read existing package.yml (creating a default one if missing) without mutating the version.
40
- * Used by the new save/pack flows where package.yml stays on the user-managed stable line.
41
- */
1
+ import { dirname } from 'path';
2
+ import { normalizePackageName } from '../../utils/package-name.js';
3
+ import { logger } from '../../utils/logger.js';
4
+ import { getPackageFilesDir, getPackageYmlPath, getPackageRootDir } from '../package-context.js';
5
+ import { ensurePackageWithYml } from '../../utils/package-management.js';
6
+ import { LOG_PREFIXES } from './constants.js';
7
+ import { UNVERSIONED } from '../../constants/index.js';
8
+ import { applyWorkspacePackageRename } from './workspace-rename.js';
42
9
  export async function readOrCreateBasePackageYml(cwd, name) {
43
- await ensureLocalOpenPackageStructure(cwd);
44
- const packageDir = getLocalPackageDir(cwd, name);
45
- if (!(await exists(packageDir)) || !(await isDirectory(packageDir))) {
46
- await ensureDir(packageDir);
47
- logger.debug('Created package directory for save', { path: packageDir });
48
- }
49
10
  const normalizedName = normalizePackageName(name);
50
- const packageYmlPath = join(packageDir, FILE_PATTERNS.PACKAGE_YML);
51
- let packageConfig;
52
- let isNewPackage = false;
53
- if (await exists(packageYmlPath)) {
54
- logger.debug('Found existing package.yml for save', { path: packageYmlPath });
55
- try {
56
- packageConfig = await parsePackageYml(packageYmlPath);
57
- console.log(`✓ Found existing package ${packageConfig.name}@${packageConfig.version}`);
58
- }
59
- catch (error) {
60
- throw new ValidationError(ERROR_MESSAGES.PARSE_PACKAGE_YML_FAILED.replace('%s', packageYmlPath).replace('%s', String(error)));
61
- }
11
+ const ensured = await ensurePackageWithYml(cwd, normalizedName, {
12
+ defaultVersion: undefined
13
+ });
14
+ if (ensured.isNew) {
15
+ logger.debug('No package.yml found for save, creating', { dir: ensured.packageDir });
16
+ console.log(`${LOG_PREFIXES.CREATED} ${ensured.packageDir}`);
17
+ console.log(`${LOG_PREFIXES.NAME} ${ensured.packageConfig.name}`);
18
+ console.log(`${LOG_PREFIXES.VERSION} ${ensured.packageConfig.version ?? UNVERSIONED}`);
62
19
  }
63
20
  else {
64
- logger.debug('No package.yml found for save, creating', { dir: packageDir });
65
- const created = await createPackageYmlInDirectory(packageDir, normalizedName);
66
- packageConfig = created.config;
67
- isNewPackage = true;
21
+ logger.debug('Found existing package.yml for save', { path: ensured.packageYmlPath });
22
+ console.log(`✓ Found existing package ${ensured.packageConfig.name}${ensured.packageConfig.version ? `@${ensured.packageConfig.version}` : ''}`);
68
23
  }
69
- let updatedConfig = packageConfig;
70
- if (packageConfig.name !== normalizedName) {
71
- updatedConfig = { ...packageConfig, name: normalizedName };
72
- await writePackageYml(packageYmlPath, updatedConfig);
24
+ // ensured.packageDir is the content directory (.openpackage/), so package root is parent
25
+ const packageRootDir = dirname(ensured.packageDir);
26
+ return {
27
+ name: ensured.normalizedName,
28
+ version: ensured.packageConfig.version,
29
+ config: ensured.packageConfig,
30
+ packageYmlPath: ensured.packageYmlPath,
31
+ packageRootDir,
32
+ packageFilesDir: ensured.packageDir,
33
+ location: 'nested',
34
+ isCwdPackage: false,
35
+ isNew: ensured.isNew
36
+ };
37
+ }
38
+ export async function loadAndPreparePackage(cwd, packageName, options = {}) {
39
+ const renameTarget = options.renameTo ? normalizePackageName(options.renameTo) : undefined;
40
+ const ctx = await readOrCreateBasePackageYml(cwd, packageName);
41
+ if (!renameTarget || renameTarget === ctx.config.name) {
42
+ return ctx;
73
43
  }
44
+ logger.debug(`Renaming package during workspace load`, {
45
+ from: ctx.config.name,
46
+ to: renameTarget
47
+ });
48
+ await applyWorkspacePackageRename(cwd, ctx, renameTarget);
49
+ const packageRootDir = getPackageRootDir(cwd, 'nested', renameTarget);
50
+ const packageYmlPath = getPackageYmlPath(cwd, 'nested', renameTarget);
51
+ const packageFilesDir = getPackageFilesDir(cwd, 'nested', renameTarget);
74
52
  return {
75
- fullPath: packageYmlPath,
76
- config: updatedConfig,
77
- isNewPackage,
78
- isRootPackage: false
53
+ ...ctx,
54
+ name: renameTarget,
55
+ packageYmlPath,
56
+ packageRootDir,
57
+ packageFilesDir,
58
+ config: { ...ctx.config, name: renameTarget }
79
59
  };
80
60
  }
81
61
  //# sourceMappingURL=package-yml-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-yml-generator.js","sourceRoot":"","sources":["../../../src/core/save/package-yml-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-yml-generator.js","sourceRoot":"","sources":["../../../src/core/save/package-yml-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAuB,MAAM,uBAAuB,CAAC;AACtH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAMpE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAW,EACX,IAAY;IAEZ,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE;QAC9D,cAAc,EAAE,SAAS;KAC1B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CACT,4BAA4B,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACpI,CAAC;IACJ,CAAC;IAED,yFAAyF;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEnD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,cAAc;QAC5B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO;QACtC,MAAM,EAAE,OAAO,CAAC,aAAa;QAC7B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,cAAc;QACd,eAAe,EAAE,OAAO,CAAC,UAAU;QACnC,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAW,EACX,WAAmB,EACnB,UAA8B,EAAE;IAEhC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,MAAM,GAAG,GAAG,MAAM,0BAA0B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE/D,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;QACrD,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI;QACrB,EAAE,EAAE,YAAY;KACjB,CAAC,CAAC;IAEH,MAAM,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAExE,OAAO;QACL,GAAG,GAAG;QACN,IAAI,EAAE,YAAY;QAClB,cAAc;QACd,cAAc;QACd,eAAe;QACf,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;KAC9C,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"root-save-candidates.js","sourceRoot":"","sources":["../../../src/core/save/root-save-candidates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root-save-candidates.js","sourceRoot":"","sources":["../../../src/core/save/root-save-candidates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { FILE_PATTERNS, PACKAGE_PATHS } from '../../constants/index.js';
2
+ import { findFilesByExtension, getFileMtime } from '../../utils/file-processing.js';
3
+ import { readTextFile } from '../../utils/fs.js';
4
+ import { calculateFileHash } from '../../utils/hash-utils.js';
5
+ import { isAllowedRegistryPath, normalizeRegistryPath } from '../../utils/registry-entry-filter.js';
6
+ import { getRelativePathFromBase } from '../../utils/path-normalization.js';
7
+ import { splitFrontmatter, stripFrontmatter } from '../../utils/markdown-frontmatter.js';
8
+ import { discoverPlatformFilesUnified } from '../discovery/platform-files-discovery.js';
9
+ import { inferPlatformFromWorkspaceFile } from '../platforms.js';
10
+ export async function loadLocalCandidates(packageDir) {
11
+ const entries = await findFilesByExtension(packageDir, [], packageDir);
12
+ const candidates = [];
13
+ for (const entry of entries) {
14
+ const normalizedPath = normalizeRegistryPath(entry.relativePath);
15
+ if (normalizedPath === FILE_PATTERNS.PACKAGE_INDEX_YML ||
16
+ normalizedPath === PACKAGE_PATHS.INDEX_RELATIVE) {
17
+ continue;
18
+ }
19
+ if (normalizedPath === FILE_PATTERNS.AGENTS_MD) {
20
+ continue;
21
+ }
22
+ if (!isAllowedRegistryPath(normalizedPath)) {
23
+ continue;
24
+ }
25
+ const fullPath = entry.fullPath;
26
+ const content = await readTextFile(fullPath);
27
+ const isMarkdown = normalizedPath.endsWith(FILE_PATTERNS.MD_FILES);
28
+ const split = isMarkdown ? splitFrontmatter(content) : undefined;
29
+ const markdownBody = split ? split.body : content;
30
+ const frontmatter = split?.frontmatter ?? undefined;
31
+ const rawFrontmatter = split?.rawFrontmatter;
32
+ const contentHash = await calculateContentHash(normalizedPath, content);
33
+ const mtime = await getFileMtime(fullPath);
34
+ candidates.push({
35
+ source: 'local',
36
+ registryPath: normalizedPath,
37
+ fullPath,
38
+ content,
39
+ contentHash,
40
+ mtime,
41
+ displayPath: normalizedPath,
42
+ isMarkdown,
43
+ frontmatter,
44
+ rawFrontmatter,
45
+ markdownBody
46
+ });
47
+ }
48
+ return candidates;
49
+ }
50
+ export async function discoverWorkspaceCandidates(cwd, packageName) {
51
+ const discovered = await discoverPlatformFilesUnified(cwd, packageName);
52
+ const candidates = [];
53
+ for (const file of discovered) {
54
+ const normalizedPath = normalizeRegistryPath(file.registryPath);
55
+ if (!isAllowedRegistryPath(normalizedPath)) {
56
+ continue;
57
+ }
58
+ const content = await readTextFile(file.fullPath);
59
+ const isMarkdown = normalizedPath.endsWith(FILE_PATTERNS.MD_FILES);
60
+ const split = isMarkdown ? splitFrontmatter(content) : undefined;
61
+ const markdownBody = split ? split.body : content;
62
+ const frontmatter = split?.frontmatter ?? undefined;
63
+ const rawFrontmatter = split?.rawFrontmatter;
64
+ const contentHash = await calculateContentHash(normalizedPath, content);
65
+ const displayPath = getRelativePathFromBase(file.fullPath, cwd) || normalizedPath;
66
+ const platform = inferPlatformFromWorkspaceFile(file.fullPath, file.sourceDir, normalizedPath);
67
+ candidates.push({
68
+ source: 'workspace',
69
+ registryPath: normalizedPath,
70
+ fullPath: file.fullPath,
71
+ content,
72
+ contentHash,
73
+ mtime: file.mtime,
74
+ displayPath,
75
+ platform,
76
+ isMarkdown,
77
+ frontmatter,
78
+ rawFrontmatter,
79
+ markdownBody
80
+ });
81
+ }
82
+ return candidates;
83
+ }
84
+ async function calculateContentHash(registryPath, content) {
85
+ const isMarkdown = registryPath.endsWith(FILE_PATTERNS.MD_FILES);
86
+ const normalizedContent = isMarkdown ? stripFrontmatter(content) : content;
87
+ return await calculateFileHash(normalizedContent);
88
+ }
89
+ //# sourceMappingURL=save-candidate-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-candidate-loader.js","sourceRoot":"","sources":["../../../src/core/save/save-candidate-loader.ts"],"names":[],"mappings":"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"}