@ykdz/template 0.0.35 → 0.0.37

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 (720) hide show
  1. package/dist/application.d.ts +131 -14
  2. package/dist/application.js +307 -206
  3. package/dist/command-result.d.ts +9 -0
  4. package/dist/command-result.js +231 -0
  5. package/dist/main.d.ts +4 -1
  6. package/dist/main.js +321 -49
  7. package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.d.ts +159 -45
  8. package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.js +2816 -535
  9. package/node_modules/@ykdz/template-builtin-presets/dist/src/generation-record.d.ts +39 -0
  10. package/node_modules/@ykdz/template-builtin-presets/dist/src/generation-record.js +178 -0
  11. package/node_modules/@ykdz/template-builtin-presets/dist/src/index.d.ts +2 -2
  12. package/node_modules/@ykdz/template-builtin-presets/dist/src/index.js +1 -1
  13. package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.d.ts +31 -2
  14. package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.js +44 -47
  15. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/development-container.d.ts +1 -1
  16. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/development-container.js +1 -1
  17. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/typescript.d.ts +10 -7
  18. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/typescript.js +11 -7
  19. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.d.ts +6 -4
  20. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.js +8 -7
  21. package/node_modules/@ykdz/template-builtin-presets/dist/src/template-sources.d.ts +1 -1
  22. package/node_modules/@ykdz/template-builtin-presets/dist/src/template-sources.js +1 -1
  23. package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-cli/definition.d.ts +31 -2
  24. package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-cli/definition.js +111 -64
  25. package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.d.ts +31 -2
  26. package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.js +37 -29
  27. package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.d.ts +48 -2
  28. package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.js +203 -155
  29. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.d.ts +26 -2
  30. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.js +21 -9
  31. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.d.ts +22 -2
  32. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.js +48 -38
  33. package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/bin/semver.js +0 -0
  34. package/node_modules/{valibot → @ykdz/template-builtin-presets/node_modules/valibot}/README.md +1 -1
  35. package/node_modules/{valibot → @ykdz/template-builtin-presets/node_modules/valibot}/dist/index.cjs +427 -504
  36. package/node_modules/{valibot → @ykdz/template-builtin-presets/node_modules/valibot}/dist/index.d.cts +427 -32
  37. package/node_modules/{valibot → @ykdz/template-builtin-presets/node_modules/valibot}/dist/index.d.mts +427 -32
  38. package/node_modules/@ykdz/template-builtin-presets/node_modules/valibot/dist/index.min.cjs +2 -0
  39. package/node_modules/@ykdz/template-builtin-presets/node_modules/valibot/dist/index.min.mjs +2 -0
  40. package/node_modules/{valibot → @ykdz/template-builtin-presets/node_modules/valibot}/dist/index.mjs +418 -504
  41. package/node_modules/{valibot → @ykdz/template-builtin-presets/node_modules/valibot}/package.json +7 -2
  42. package/node_modules/@ykdz/template-builtin-presets/package.json +30 -16
  43. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check-deployment-diagnostics.yml +5 -5
  44. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check-deployment.yml +4 -4
  45. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check-diagnostics.yml +4 -4
  46. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check.yml +3 -3
  47. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.pnpmfile.mjs +19 -0
  48. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/AGENTS.md.template +11 -0
  49. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/devcontainer.json +1 -2
  50. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.dynamic.txt +1 -0
  51. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.yaml +5 -5
  52. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/scripts/check-toolchain-versions.ts +556 -0
  53. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/tsconfig.json +4 -6
  54. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/tsconfig.packing-hook.json +7 -0
  55. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/turbo.json +1 -1
  56. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/turbo.json +19 -1
  57. package/node_modules/@ykdz/template-builtin-presets/templates/shared/devcontainer/node-pnpm.Dockerfile +4 -6
  58. package/node_modules/@ykdz/template-builtin-presets/templates/shared/oxc/tsconfig.config.json +2 -1
  59. package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.app.json +1 -1
  60. package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.node.json +2 -2
  61. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/CHANGELOG.md.template +17 -0
  62. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/RELEASING.md +17 -0
  63. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/artifact.ts +1271 -0
  64. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/changelog.ts +283 -0
  65. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/check-artifact.ts +99 -0
  66. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/check-readiness.ts +66 -0
  67. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/cli-command-identity.ts +4 -0
  68. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/handoff.ts +450 -0
  69. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/publish.ts +483 -0
  70. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/readiness.ts +1146 -0
  71. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/release.ts +819 -0
  72. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/release.yml +119 -0
  73. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/root-tsconfig.json +8 -0
  74. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/tsconfig.json +4 -0
  75. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/turbo.json +6 -0
  76. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/README.md +48 -0
  77. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/CHANGELOG.md.template +17 -0
  78. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/LICENSE-APACHE-2.0.txt +202 -0
  79. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/LICENSE-MIT.txt +21 -0
  80. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/README.md.template +5 -0
  81. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/bridge.ts +3336 -0
  82. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/setup.sh +221 -0
  83. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/src/cli-command-identity.ts +133 -0
  84. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/src/cli.ts +4 -3
  85. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/src/main.ts +5 -4
  86. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/test/integration/command.test.ts +14 -13
  87. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/test/unit/cli-command-identity.test.ts +76 -0
  88. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/tsconfig.build.json +2 -0
  89. package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/tsconfig.json +2 -2
  90. package/node_modules/@ykdz/template-builtin-presets/templates/ts-lib/tsconfig.build.json +2 -1
  91. package/node_modules/@ykdz/template-builtin-presets/templates/ts-lib/tsconfig.json +2 -2
  92. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/scripts/reset.ts +3 -0
  93. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/src/db.ts +3 -4
  94. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/src/readiness.ts +6 -5
  95. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/src/storage.ts +93 -0
  96. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/tsconfig.build.json +8 -2
  97. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/tsconfig.json +3 -7
  98. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/turbo.json +1 -1
  99. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/drizzle.config.ts +5 -5
  100. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/tsconfig.build.json +2 -1
  101. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/tsconfig.json +2 -2
  102. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/.env.example +2 -1
  103. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/Dockerfile +25 -17
  104. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/Dockerfile.dockerignore +4 -4
  105. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/playwright.config.ts +5 -25
  106. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/scripts/check-standalone-deployment.ts +17 -15
  107. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/test/playwright-teardown.ts +6 -7
  108. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.app.json +1 -2
  109. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.json +0 -1
  110. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.node.json +2 -3
  111. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.test.json +0 -1
  112. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/turbo.json +0 -8
  113. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/vite.config.ts +3 -39
  114. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/tsconfig.json +7 -2
  115. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/root/playwright.config.ts +34 -0
  116. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/{web → root}/test/e2e/app.spec.ts +3 -3
  117. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/root/test/e2e/fixtures.ts +15 -0
  118. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/root/tsconfig.json +3 -0
  119. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/src/api.ts +1 -3
  120. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/turbo.json +0 -4
  121. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/vite.config.ts +2 -0
  122. package/node_modules/@ykdz/template-core/dist/ci-diagnostic-artifact.d.ts +2 -2
  123. package/node_modules/@ykdz/template-core/dist/ci-diagnostic-artifact.js +10 -5
  124. package/node_modules/@ykdz/template-core/dist/module-graph.d.ts +16 -54
  125. package/node_modules/@ykdz/template-core/dist/module-graph.js +140 -105
  126. package/node_modules/@ykdz/template-core/dist/package-contribution.d.ts +47 -11
  127. package/node_modules/@ykdz/template-core/dist/package-contribution.js +92 -0
  128. package/node_modules/@ykdz/template-core/dist/pnpm-workspace.yaml +21 -16
  129. package/node_modules/@ykdz/template-core/dist/preset-definition.d.ts +82 -13
  130. package/node_modules/@ykdz/template-core/dist/preset-definition.js +16 -1
  131. package/node_modules/@ykdz/template-core/dist/project-blueprint.d.ts +56 -0
  132. package/node_modules/@ykdz/template-core/dist/project-blueprint.js +271 -0
  133. package/node_modules/@ykdz/template-core/dist/project-github.d.ts +6 -4
  134. package/node_modules/@ykdz/template-core/dist/project-github.js +4 -4
  135. package/node_modules/@ykdz/template-core/dist/project-linking-v2.d.ts +4 -4
  136. package/node_modules/@ykdz/template-core/dist/project-linking-v2.js +14 -8
  137. package/node_modules/@ykdz/template-core/dist/project-projection.d.ts +29 -1
  138. package/node_modules/@ykdz/template-core/dist/project-projection.js +501 -29
  139. package/node_modules/@ykdz/template-core/dist/release-toolchain-snapshot.d.ts +10 -0
  140. package/node_modules/@ykdz/template-core/dist/release-toolchain-snapshot.js +9 -0
  141. package/node_modules/@ykdz/template-core/dist/renderer.d.ts +0 -2
  142. package/node_modules/@ykdz/template-core/dist/renderer.js +17 -38
  143. package/node_modules/@ykdz/template-core/dist/template-boundary-check.d.ts +2 -2
  144. package/node_modules/@ykdz/template-core/dist/template-boundary-check.js +21 -9
  145. package/node_modules/@ykdz/template-core/node_modules/valibot/LICENSE.md +9 -0
  146. package/node_modules/@ykdz/template-core/node_modules/valibot/README.md +94 -0
  147. package/node_modules/@ykdz/template-core/node_modules/valibot/dist/index.cjs +7897 -0
  148. package/node_modules/@ykdz/template-core/node_modules/valibot/dist/index.d.cts +16579 -0
  149. package/node_modules/@ykdz/template-core/node_modules/valibot/dist/index.d.mts +16579 -0
  150. package/node_modules/@ykdz/template-core/node_modules/valibot/dist/index.min.cjs +2 -0
  151. package/node_modules/@ykdz/template-core/node_modules/valibot/dist/index.min.mjs +2 -0
  152. package/node_modules/@ykdz/template-core/node_modules/valibot/dist/index.mjs +7577 -0
  153. package/node_modules/@ykdz/template-core/node_modules/valibot/package.json +84 -0
  154. package/node_modules/@ykdz/template-core/package.json +0 -2
  155. package/node_modules/hosted-git-info/LICENSE +13 -0
  156. package/node_modules/hosted-git-info/README.md +138 -0
  157. package/node_modules/hosted-git-info/lib/from-url.js +122 -0
  158. package/node_modules/hosted-git-info/lib/hosts.js +229 -0
  159. package/node_modules/hosted-git-info/lib/index.js +227 -0
  160. package/node_modules/hosted-git-info/lib/parse-url.js +79 -0
  161. package/node_modules/hosted-git-info/package.json +57 -0
  162. package/node_modules/jsonc-parser/CHANGELOG.md +76 -0
  163. package/node_modules/jsonc-parser/LICENSE.md +21 -0
  164. package/node_modules/jsonc-parser/README.md +364 -0
  165. package/node_modules/jsonc-parser/SECURITY.md +41 -0
  166. package/node_modules/jsonc-parser/lib/esm/impl/edit.js +185 -0
  167. package/node_modules/jsonc-parser/lib/esm/impl/format.js +261 -0
  168. package/node_modules/jsonc-parser/lib/esm/impl/parser.js +659 -0
  169. package/node_modules/jsonc-parser/lib/esm/impl/scanner.js +443 -0
  170. package/node_modules/jsonc-parser/lib/esm/impl/string-intern.js +29 -0
  171. package/node_modules/jsonc-parser/lib/esm/main.d.ts +351 -0
  172. package/node_modules/jsonc-parser/lib/esm/main.js +178 -0
  173. package/node_modules/jsonc-parser/lib/umd/impl/edit.js +201 -0
  174. package/node_modules/jsonc-parser/lib/umd/impl/format.js +275 -0
  175. package/node_modules/jsonc-parser/lib/umd/impl/parser.js +682 -0
  176. package/node_modules/jsonc-parser/lib/umd/impl/scanner.js +456 -0
  177. package/node_modules/jsonc-parser/lib/umd/impl/string-intern.js +42 -0
  178. package/node_modules/jsonc-parser/lib/umd/main.d.ts +351 -0
  179. package/node_modules/jsonc-parser/lib/umd/main.js +194 -0
  180. package/node_modules/jsonc-parser/package.json +37 -0
  181. package/node_modules/lru-cache/LICENSE.md +55 -0
  182. package/node_modules/lru-cache/README.md +469 -0
  183. package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.d.ts.map +1 -0
  184. package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.js.map +1 -0
  185. package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.d.ts +5 -0
  186. package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.js +7 -0
  187. package/node_modules/lru-cache/dist/commonjs/browser/index.d.ts +1400 -0
  188. package/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -0
  189. package/node_modules/lru-cache/dist/commonjs/browser/index.js +1733 -0
  190. package/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -0
  191. package/node_modules/lru-cache/dist/commonjs/browser/index.min.js +2 -0
  192. package/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +7 -0
  193. package/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts +12 -0
  194. package/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts.map +1 -0
  195. package/node_modules/lru-cache/dist/commonjs/browser/perf.js +10 -0
  196. package/node_modules/lru-cache/dist/commonjs/browser/perf.js.map +1 -0
  197. package/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.cjs.map +1 -0
  198. package/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.d.cts.map +1 -0
  199. package/node_modules/lru-cache/dist/commonjs/diagnostics-channel.d.ts +5 -0
  200. package/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +7 -0
  201. package/node_modules/lru-cache/dist/commonjs/index.d.ts +1400 -0
  202. package/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -0
  203. package/node_modules/lru-cache/dist/commonjs/index.js +1733 -0
  204. package/node_modules/lru-cache/dist/commonjs/index.js.map +1 -0
  205. package/node_modules/lru-cache/dist/commonjs/index.min.js +2 -0
  206. package/node_modules/lru-cache/dist/commonjs/index.min.js.map +7 -0
  207. package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.d.ts.map +1 -0
  208. package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.js.map +1 -0
  209. package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.d.ts +5 -0
  210. package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.js +9 -0
  211. package/node_modules/lru-cache/dist/commonjs/node/index.d.ts +1400 -0
  212. package/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -0
  213. package/node_modules/lru-cache/dist/commonjs/node/index.js +1733 -0
  214. package/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -0
  215. package/node_modules/lru-cache/dist/commonjs/node/index.min.js +2 -0
  216. package/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +7 -0
  217. package/node_modules/lru-cache/dist/commonjs/node/perf.d.ts +12 -0
  218. package/node_modules/lru-cache/dist/commonjs/node/perf.d.ts.map +1 -0
  219. package/node_modules/lru-cache/dist/commonjs/node/perf.js +10 -0
  220. package/node_modules/lru-cache/dist/commonjs/node/perf.js.map +1 -0
  221. package/node_modules/lru-cache/dist/commonjs/package.json +3 -0
  222. package/node_modules/lru-cache/dist/commonjs/perf.d.ts +12 -0
  223. package/node_modules/lru-cache/dist/commonjs/perf.d.ts.map +1 -0
  224. package/node_modules/lru-cache/dist/commonjs/perf.js +10 -0
  225. package/node_modules/lru-cache/dist/commonjs/perf.js.map +1 -0
  226. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
  227. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.js.map +1 -0
  228. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.d.ts +5 -0
  229. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.js +7 -0
  230. package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts +1400 -0
  231. package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts.map +1 -0
  232. package/node_modules/lru-cache/dist/commonjs/react-native/index.js +1733 -0
  233. package/node_modules/lru-cache/dist/commonjs/react-native/index.js.map +1 -0
  234. package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts +12 -0
  235. package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts.map +1 -0
  236. package/node_modules/lru-cache/dist/commonjs/react-native/perf.js +10 -0
  237. package/node_modules/lru-cache/dist/commonjs/react-native/perf.js.map +1 -0
  238. package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.d.ts.map +1 -0
  239. package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.js.map +1 -0
  240. package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.d.ts +5 -0
  241. package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +4 -0
  242. package/node_modules/lru-cache/dist/esm/browser/index.d.ts +1400 -0
  243. package/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -0
  244. package/node_modules/lru-cache/dist/esm/browser/index.js +1729 -0
  245. package/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -0
  246. package/node_modules/lru-cache/dist/esm/browser/index.min.js +2 -0
  247. package/node_modules/lru-cache/dist/esm/browser/index.min.js.map +7 -0
  248. package/node_modules/lru-cache/dist/esm/browser/perf.d.ts +12 -0
  249. package/node_modules/lru-cache/dist/esm/browser/perf.d.ts.map +1 -0
  250. package/node_modules/lru-cache/dist/esm/browser/perf.js +7 -0
  251. package/node_modules/lru-cache/dist/esm/browser/perf.js.map +1 -0
  252. package/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
  253. package/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.mjs.map +1 -0
  254. package/node_modules/lru-cache/dist/esm/diagnostics-channel.d.ts +5 -0
  255. package/node_modules/lru-cache/dist/esm/diagnostics-channel.js +19 -0
  256. package/node_modules/lru-cache/dist/esm/index.d.ts +1400 -0
  257. package/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -0
  258. package/node_modules/lru-cache/dist/esm/index.js +1729 -0
  259. package/node_modules/lru-cache/dist/esm/index.js.map +1 -0
  260. package/node_modules/lru-cache/dist/esm/index.min.js +2 -0
  261. package/node_modules/lru-cache/dist/esm/index.min.js.map +7 -0
  262. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.ts.map +1 -0
  263. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.js.map +1 -0
  264. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel.d.ts +5 -0
  265. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +6 -0
  266. package/node_modules/lru-cache/dist/esm/node/index.d.ts +1400 -0
  267. package/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -0
  268. package/node_modules/lru-cache/dist/esm/node/index.js +1729 -0
  269. package/node_modules/lru-cache/dist/esm/node/index.js.map +1 -0
  270. package/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
  271. package/node_modules/lru-cache/dist/esm/node/index.min.js.map +7 -0
  272. package/node_modules/lru-cache/dist/esm/node/perf.d.ts +12 -0
  273. package/node_modules/lru-cache/dist/esm/node/perf.d.ts.map +1 -0
  274. package/node_modules/lru-cache/dist/esm/node/perf.js +7 -0
  275. package/node_modules/lru-cache/dist/esm/node/perf.js.map +1 -0
  276. package/node_modules/lru-cache/dist/esm/package.json +3 -0
  277. package/node_modules/lru-cache/dist/esm/perf.d.ts +12 -0
  278. package/node_modules/lru-cache/dist/esm/perf.d.ts.map +1 -0
  279. package/node_modules/lru-cache/dist/esm/perf.js +7 -0
  280. package/node_modules/lru-cache/dist/esm/perf.js.map +1 -0
  281. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
  282. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.js.map +1 -0
  283. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.d.ts +5 -0
  284. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.js +4 -0
  285. package/node_modules/lru-cache/dist/esm/react-native/index.d.ts +1400 -0
  286. package/node_modules/lru-cache/dist/esm/react-native/index.d.ts.map +1 -0
  287. package/node_modules/lru-cache/dist/esm/react-native/index.js +1729 -0
  288. package/node_modules/lru-cache/dist/esm/react-native/index.js.map +1 -0
  289. package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts +12 -0
  290. package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts.map +1 -0
  291. package/node_modules/lru-cache/dist/esm/react-native/perf.js +7 -0
  292. package/node_modules/lru-cache/dist/esm/react-native/perf.js.map +1 -0
  293. package/node_modules/lru-cache/package.json +180 -0
  294. package/node_modules/npm-package-arg/LICENSE +15 -0
  295. package/node_modules/npm-package-arg/README.md +104 -0
  296. package/node_modules/npm-package-arg/lib/npa.js +479 -0
  297. package/node_modules/npm-package-arg/node_modules/semver/LICENSE +15 -0
  298. package/node_modules/npm-package-arg/node_modules/semver/README.md +680 -0
  299. package/node_modules/npm-package-arg/node_modules/semver/bin/semver.js +195 -0
  300. package/node_modules/npm-package-arg/node_modules/semver/classes/comparator.js +143 -0
  301. package/node_modules/npm-package-arg/node_modules/semver/classes/index.js +7 -0
  302. package/node_modules/npm-package-arg/node_modules/semver/classes/range.js +577 -0
  303. package/node_modules/npm-package-arg/node_modules/semver/classes/semver.js +350 -0
  304. package/node_modules/npm-package-arg/node_modules/semver/functions/clean.js +8 -0
  305. package/node_modules/npm-package-arg/node_modules/semver/functions/cmp.js +54 -0
  306. package/node_modules/npm-package-arg/node_modules/semver/functions/coerce.js +62 -0
  307. package/node_modules/npm-package-arg/node_modules/semver/functions/compare-build.js +9 -0
  308. package/node_modules/npm-package-arg/node_modules/semver/functions/compare-loose.js +5 -0
  309. package/node_modules/npm-package-arg/node_modules/semver/functions/compare.js +7 -0
  310. package/node_modules/npm-package-arg/node_modules/semver/functions/diff.js +60 -0
  311. package/node_modules/npm-package-arg/node_modules/semver/functions/eq.js +5 -0
  312. package/node_modules/npm-package-arg/node_modules/semver/functions/gt.js +5 -0
  313. package/node_modules/npm-package-arg/node_modules/semver/functions/gte.js +5 -0
  314. package/node_modules/npm-package-arg/node_modules/semver/functions/inc.js +21 -0
  315. package/node_modules/npm-package-arg/node_modules/semver/functions/lt.js +5 -0
  316. package/node_modules/npm-package-arg/node_modules/semver/functions/lte.js +5 -0
  317. package/node_modules/npm-package-arg/node_modules/semver/functions/major.js +5 -0
  318. package/node_modules/npm-package-arg/node_modules/semver/functions/minor.js +5 -0
  319. package/node_modules/npm-package-arg/node_modules/semver/functions/neq.js +5 -0
  320. package/node_modules/npm-package-arg/node_modules/semver/functions/parse.js +18 -0
  321. package/node_modules/npm-package-arg/node_modules/semver/functions/patch.js +5 -0
  322. package/node_modules/npm-package-arg/node_modules/semver/functions/prerelease.js +8 -0
  323. package/node_modules/npm-package-arg/node_modules/semver/functions/rcompare.js +5 -0
  324. package/node_modules/npm-package-arg/node_modules/semver/functions/rsort.js +5 -0
  325. package/node_modules/npm-package-arg/node_modules/semver/functions/satisfies.js +12 -0
  326. package/node_modules/npm-package-arg/node_modules/semver/functions/sort.js +5 -0
  327. package/node_modules/npm-package-arg/node_modules/semver/functions/truncate.js +48 -0
  328. package/node_modules/npm-package-arg/node_modules/semver/functions/valid.js +8 -0
  329. package/node_modules/npm-package-arg/node_modules/semver/index.js +93 -0
  330. package/node_modules/npm-package-arg/node_modules/semver/internal/constants.js +37 -0
  331. package/node_modules/npm-package-arg/node_modules/semver/internal/debug.js +11 -0
  332. package/node_modules/npm-package-arg/node_modules/semver/internal/identifiers.js +29 -0
  333. package/node_modules/npm-package-arg/node_modules/semver/internal/lrucache.js +42 -0
  334. package/node_modules/npm-package-arg/node_modules/semver/internal/parse-options.js +17 -0
  335. package/node_modules/npm-package-arg/node_modules/semver/internal/re.js +223 -0
  336. package/node_modules/npm-package-arg/node_modules/semver/package.json +78 -0
  337. package/node_modules/npm-package-arg/node_modules/semver/preload.js +4 -0
  338. package/node_modules/npm-package-arg/node_modules/semver/range.bnf +17 -0
  339. package/node_modules/npm-package-arg/node_modules/semver/ranges/gtr.js +6 -0
  340. package/node_modules/npm-package-arg/node_modules/semver/ranges/intersects.js +9 -0
  341. package/node_modules/npm-package-arg/node_modules/semver/ranges/ltr.js +6 -0
  342. package/node_modules/npm-package-arg/node_modules/semver/ranges/max-satisfying.js +27 -0
  343. package/node_modules/npm-package-arg/node_modules/semver/ranges/min-satisfying.js +26 -0
  344. package/node_modules/npm-package-arg/node_modules/semver/ranges/min-version.js +63 -0
  345. package/node_modules/npm-package-arg/node_modules/semver/ranges/outside.js +82 -0
  346. package/node_modules/npm-package-arg/node_modules/semver/ranges/simplify.js +49 -0
  347. package/node_modules/npm-package-arg/node_modules/semver/ranges/subset.js +249 -0
  348. package/node_modules/npm-package-arg/node_modules/semver/ranges/to-comparators.js +10 -0
  349. package/node_modules/npm-package-arg/node_modules/semver/ranges/valid.js +13 -0
  350. package/node_modules/npm-package-arg/package.json +60 -0
  351. package/node_modules/picomatch/LICENSE +21 -0
  352. package/node_modules/picomatch/README.md +743 -0
  353. package/node_modules/picomatch/index.js +17 -0
  354. package/node_modules/picomatch/lib/constants.js +184 -0
  355. package/node_modules/picomatch/lib/parse.js +1425 -0
  356. package/node_modules/picomatch/lib/picomatch.js +361 -0
  357. package/node_modules/picomatch/lib/scan.js +403 -0
  358. package/node_modules/picomatch/lib/utils.js +72 -0
  359. package/node_modules/picomatch/package.json +83 -0
  360. package/node_modules/picomatch/posix.js +3 -0
  361. package/node_modules/proc-log/LICENSE +15 -0
  362. package/node_modules/proc-log/README.md +226 -0
  363. package/node_modules/proc-log/lib/index.js +158 -0
  364. package/node_modules/proc-log/package.json +46 -0
  365. package/node_modules/smol-toml/LICENSE +24 -0
  366. package/node_modules/smol-toml/README.md +605 -0
  367. package/node_modules/smol-toml/dist/date.d.ts +41 -0
  368. package/node_modules/smol-toml/dist/date.js +156 -0
  369. package/node_modules/smol-toml/dist/error.d.ts +37 -0
  370. package/node_modules/smol-toml/dist/error.js +67 -0
  371. package/node_modules/smol-toml/dist/extract.js +289 -0
  372. package/node_modules/smol-toml/dist/index.cjs +770 -0
  373. package/node_modules/smol-toml/dist/index.d.ts +44 -0
  374. package/node_modules/smol-toml/dist/index.js +34 -0
  375. package/node_modules/smol-toml/dist/parse.d.ts +73 -0
  376. package/node_modules/smol-toml/dist/parse.js +164 -0
  377. package/node_modules/smol-toml/dist/primitive.js +151 -0
  378. package/node_modules/smol-toml/dist/stringify.d.ts +32 -0
  379. package/node_modules/smol-toml/dist/stringify.js +219 -0
  380. package/node_modules/smol-toml/dist/struct.js +156 -0
  381. package/node_modules/smol-toml/dist/util.d.ts +43 -0
  382. package/node_modules/smol-toml/dist/util.js +57 -0
  383. package/node_modules/smol-toml/package.json +68 -0
  384. package/node_modules/typescript/bin/tsc +0 -0
  385. package/node_modules/typescript/bin/tsserver +0 -0
  386. package/node_modules/unbash/LICENSE +15 -0
  387. package/node_modules/unbash/README.md +289 -0
  388. package/node_modules/unbash/dist/ansi-c.d.ts +5 -0
  389. package/node_modules/unbash/dist/ansi-c.js +130 -0
  390. package/node_modules/unbash/dist/arithmetic.d.ts +11 -0
  391. package/node_modules/unbash/dist/arithmetic.js +530 -0
  392. package/node_modules/unbash/dist/assignment.d.ts +15 -0
  393. package/node_modules/unbash/dist/assignment.js +118 -0
  394. package/node_modules/unbash/dist/chars.d.ts +41 -0
  395. package/node_modules/unbash/dist/chars.js +41 -0
  396. package/node_modules/unbash/dist/command.d.ts +14 -0
  397. package/node_modules/unbash/dist/command.js +41 -0
  398. package/node_modules/unbash/dist/heredoc.d.ts +18 -0
  399. package/node_modules/unbash/dist/heredoc.js +25 -0
  400. package/node_modules/unbash/dist/internal-types.d.ts +87 -0
  401. package/node_modules/unbash/dist/internal-types.js +1 -0
  402. package/node_modules/unbash/dist/lexer.d.ts +202 -0
  403. package/node_modules/unbash/dist/lexer.js +3930 -0
  404. package/node_modules/unbash/dist/parser.d.ts +4 -0
  405. package/node_modules/unbash/dist/parser.js +1295 -0
  406. package/node_modules/unbash/dist/parts.d.ts +17 -0
  407. package/node_modules/unbash/dist/parts.js +82 -0
  408. package/node_modules/unbash/dist/printer.d.ts +2 -0
  409. package/node_modules/unbash/dist/printer.js +536 -0
  410. package/node_modules/unbash/dist/types.d.ts +494 -0
  411. package/node_modules/unbash/dist/types.js +1 -0
  412. package/node_modules/unbash/dist/word.d.ts +22 -0
  413. package/node_modules/unbash/dist/word.js +102 -0
  414. package/node_modules/unbash/package.json +80 -0
  415. package/node_modules/validate-npm-package-name/LICENSE +6 -0
  416. package/node_modules/validate-npm-package-name/README.md +120 -0
  417. package/node_modules/validate-npm-package-name/lib/builtin-modules.json +1 -0
  418. package/node_modules/validate-npm-package-name/lib/index.js +114 -0
  419. package/node_modules/validate-npm-package-name/package.json +59 -0
  420. package/node_modules/yaml/LICENSE +13 -0
  421. package/node_modules/yaml/README.md +172 -0
  422. package/node_modules/yaml/bin.mjs +11 -0
  423. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  424. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  425. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  426. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  427. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  428. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  429. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  430. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  431. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  432. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  433. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +226 -0
  434. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  435. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  436. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  437. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  438. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  439. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  440. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  441. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  442. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  443. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  444. package/node_modules/yaml/browser/dist/errors.js +57 -0
  445. package/node_modules/yaml/browser/dist/index.js +17 -0
  446. package/node_modules/yaml/browser/dist/log.js +11 -0
  447. package/node_modules/yaml/browser/dist/nodes/Alias.js +118 -0
  448. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  449. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  450. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  451. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  452. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  453. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  454. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  455. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  456. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  457. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  458. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  459. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  460. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  461. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  462. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  463. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  464. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  465. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  466. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  467. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  468. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  469. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  470. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  471. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  472. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  473. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  474. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  475. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  476. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  477. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  478. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  479. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  480. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  481. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  482. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  483. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  484. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  485. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  486. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  487. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  488. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  489. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  490. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  491. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  492. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  493. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  494. package/node_modules/yaml/browser/dist/util.js +11 -0
  495. package/node_modules/yaml/browser/dist/visit.js +233 -0
  496. package/node_modules/yaml/browser/index.js +5 -0
  497. package/node_modules/yaml/browser/package.json +3 -0
  498. package/node_modules/yaml/dist/cli.d.ts +8 -0
  499. package/node_modules/yaml/dist/cli.mjs +201 -0
  500. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  501. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  502. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  503. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  504. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  505. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  506. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  507. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  508. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  509. package/node_modules/yaml/dist/compose/composer.js +224 -0
  510. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  511. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  512. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  513. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  514. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  515. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  516. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  517. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  518. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  519. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  520. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  521. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +228 -0
  522. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  523. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  524. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  525. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  526. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  527. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  528. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  529. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  530. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  531. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  532. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  533. package/node_modules/yaml/dist/doc/Document.js +337 -0
  534. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  535. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  536. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  537. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  538. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  539. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  540. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  541. package/node_modules/yaml/dist/doc/directives.js +178 -0
  542. package/node_modules/yaml/dist/errors.d.ts +21 -0
  543. package/node_modules/yaml/dist/errors.js +62 -0
  544. package/node_modules/yaml/dist/index.d.ts +25 -0
  545. package/node_modules/yaml/dist/index.js +50 -0
  546. package/node_modules/yaml/dist/log.d.ts +3 -0
  547. package/node_modules/yaml/dist/log.js +19 -0
  548. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  549. package/node_modules/yaml/dist/nodes/Alias.js +120 -0
  550. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  551. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  552. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  553. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  554. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  555. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  556. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  557. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  558. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  559. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  560. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  561. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  562. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  563. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  564. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  565. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  566. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  567. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  568. package/node_modules/yaml/dist/options.d.ts +350 -0
  569. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  570. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  571. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  572. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  573. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  574. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  575. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  576. package/node_modules/yaml/dist/parse/cst.js +112 -0
  577. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  578. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  579. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  580. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  581. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  582. package/node_modules/yaml/dist/parse/parser.js +980 -0
  583. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  584. package/node_modules/yaml/dist/public-api.js +107 -0
  585. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  586. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  587. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  588. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  589. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  590. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  591. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  592. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  593. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  594. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  595. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  596. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  597. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  598. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  599. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  600. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  601. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  602. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  603. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  604. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  605. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  606. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  607. package/node_modules/yaml/dist/schema/tags.js +99 -0
  608. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  609. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  610. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  611. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  612. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  613. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  614. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  615. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  616. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  617. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  618. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  619. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  620. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  621. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  622. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  623. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  624. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  625. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  626. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  627. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  628. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  629. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  630. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  631. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  632. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  633. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  634. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  635. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  636. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  637. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  638. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  639. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  640. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  641. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  642. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  643. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  644. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  645. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  646. package/node_modules/yaml/dist/test-events.js +134 -0
  647. package/node_modules/yaml/dist/util.d.ts +16 -0
  648. package/node_modules/yaml/dist/util.js +28 -0
  649. package/node_modules/yaml/dist/visit.d.ts +102 -0
  650. package/node_modules/yaml/dist/visit.js +236 -0
  651. package/node_modules/yaml/package.json +97 -0
  652. package/node_modules/yaml/util.js +2 -0
  653. package/package.json +23 -21
  654. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/scripts/check-boundaries.ts +0 -12
  655. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/scripts/run-root-owned-task.ts +0 -69
  656. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/test/global-setup.ts +0 -21
  657. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/vitest.config.ts +0 -7
  658. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/playwright.config.ts +0 -90
  659. package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.d.ts +0 -33
  660. package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.js +0 -182
  661. package/node_modules/@ykdz/template-core/dist/toolchain-baseline-update.d.ts +0 -45
  662. package/node_modules/@ykdz/template-core/dist/toolchain-baseline-update.js +0 -27
  663. package/node_modules/@ykdz/template-core/dist/toolchain-resolution.d.ts +0 -35
  664. package/node_modules/@ykdz/template-core/dist/toolchain-resolution.js +0 -189
  665. package/node_modules/valibot/dist/index.min.cjs +0 -2
  666. package/node_modules/valibot/dist/index.min.mjs +0 -2
  667. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/LICENSE +0 -0
  668. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/README.md +0 -0
  669. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/classes/comparator.js +0 -0
  670. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/classes/index.js +0 -0
  671. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/classes/range.js +0 -0
  672. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/classes/semver.js +0 -0
  673. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/clean.js +0 -0
  674. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/cmp.js +0 -0
  675. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/coerce.js +0 -0
  676. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/compare-build.js +0 -0
  677. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/compare-loose.js +0 -0
  678. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/compare.js +0 -0
  679. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/diff.js +0 -0
  680. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/eq.js +0 -0
  681. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/gt.js +0 -0
  682. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/gte.js +0 -0
  683. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/inc.js +0 -0
  684. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/lt.js +0 -0
  685. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/lte.js +0 -0
  686. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/major.js +0 -0
  687. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/minor.js +0 -0
  688. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/neq.js +0 -0
  689. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/parse.js +0 -0
  690. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/patch.js +0 -0
  691. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/prerelease.js +0 -0
  692. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/rcompare.js +0 -0
  693. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/rsort.js +0 -0
  694. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/satisfies.js +0 -0
  695. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/sort.js +0 -0
  696. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/truncate.js +0 -0
  697. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/functions/valid.js +0 -0
  698. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/index.js +0 -0
  699. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/internal/constants.js +0 -0
  700. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/internal/debug.js +0 -0
  701. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/internal/identifiers.js +0 -0
  702. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/internal/lrucache.js +0 -0
  703. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/internal/parse-options.js +0 -0
  704. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/internal/re.js +0 -0
  705. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/package.json +0 -0
  706. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/preload.js +0 -0
  707. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/range.bnf +0 -0
  708. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/gtr.js +0 -0
  709. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/intersects.js +0 -0
  710. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/ltr.js +0 -0
  711. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/max-satisfying.js +0 -0
  712. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/min-satisfying.js +0 -0
  713. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/min-version.js +0 -0
  714. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/outside.js +0 -0
  715. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/simplify.js +0 -0
  716. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/subset.js +0 -0
  717. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/to-comparators.js +0 -0
  718. /package/node_modules/{semver → @ykdz/template-builtin-presets/node_modules/semver}/ranges/valid.js +0 -0
  719. /package/node_modules/{valibot → @ykdz/template-builtin-presets/node_modules/valibot}/LICENSE.md +0 -0
  720. /package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/src/{types.d.ts → types.ts} +0 -0
@@ -11,30 +11,18 @@ class ProjectProjectionPathPreconditionError extends Error {
11
11
  this.conflicts = conflicts;
12
12
  }
13
13
  }
14
- function expandTemplatePath(templatePath, variables) {
15
- return templatePath.replaceAll(/\{\{([A-Za-z][A-Za-z0-9_]*)\}\}/gu, (_placeholder, name) => {
16
- const value = variables[name];
17
- if (!value)
18
- throw new Error(`Missing renderer variable: ${name}`);
19
- if (!/^[A-Za-z0-9._-]+$/u.test(value)) {
20
- throw new Error(`Renderer variable ${name} is not safe for a path segment`);
21
- }
22
- return value;
23
- });
24
- }
25
- function normalizedOutputPath(operation, variables) {
14
+ function normalizedOutputPath(operation) {
26
15
  const operationPath = operation.kind === "setExecutable" || operation.kind === "replaceAnchors"
27
16
  ? operation.path
28
17
  : operation.to;
29
- const expanded = expandTemplatePath(operationPath, variables);
30
- if (path.isAbsolute(expanded)) {
31
- throw new Error(`Project Projection paths must be relative: ${expanded}`);
18
+ if (path.isAbsolute(operationPath)) {
19
+ throw new Error(`Project Projection paths must be relative: ${operationPath}`);
32
20
  }
33
- const normalized = path.posix.normalize(expanded.split(path.sep).join("/"));
21
+ const normalized = path.posix.normalize(operationPath.split(path.sep).join("/"));
34
22
  if (normalized === "." ||
35
23
  normalized === ".." ||
36
24
  normalized.startsWith("../")) {
37
- throw new Error(`Project Projection path escapes its root: ${expanded}`);
25
+ throw new Error(`Project Projection path escapes its root: ${operationPath}`);
38
26
  }
39
27
  return normalized;
40
28
  }
@@ -55,6 +43,103 @@ function operationDriver(operation) {
55
43
  return undefined;
56
44
  }
57
45
  }
46
+ /** Pure structural preflight for a renderer-facing Project Projection plan. */
47
+ export function validateProjectProjectionPlan(options) {
48
+ const diagnostics = [];
49
+ const contentKindByPath = new Map();
50
+ const contentTypeByPath = new Map();
51
+ const transformationKindByPath = new Map();
52
+ const finalPaths = new Set();
53
+ for (const operation of options.operations) {
54
+ let outputPath;
55
+ try {
56
+ outputPath = normalizedOutputPath(operation);
57
+ }
58
+ catch (error) {
59
+ diagnostics.push(error instanceof Error ? error.message : String(error));
60
+ continue;
61
+ }
62
+ finalPaths.add(outputPath);
63
+ const precedingKind = contentKindByPath.get(outputPath);
64
+ if (operation.kind === "setExecutable" ||
65
+ operation.kind === "replaceAnchors") {
66
+ if (precedingKind === undefined) {
67
+ diagnostics.push(`Project Projection ${operation.kind} requires a preceding content-producing operation: ${outputPath}`);
68
+ }
69
+ const hasCompatibleContent = operation.kind !== "replaceAnchors" ||
70
+ contentTypeByPath.get(outputPath) !== "json";
71
+ if (!hasCompatibleContent) {
72
+ diagnostics.push(`Project Projection replaceAnchors requires text-compatible content: ${outputPath} follows ${precedingKind}`);
73
+ }
74
+ if (precedingKind !== undefined && hasCompatibleContent) {
75
+ if (operation.kind === "replaceAnchors") {
76
+ contentTypeByPath.set(outputPath, "text");
77
+ }
78
+ transformationKindByPath.set(outputPath, operation.kind);
79
+ }
80
+ continue;
81
+ }
82
+ if (operation.kind === "mergeJson" ||
83
+ operation.kind === "mergeJsonTemplate") {
84
+ const transformationKind = transformationKindByPath.get(outputPath);
85
+ if (transformationKind !== undefined) {
86
+ diagnostics.push(`Project Projection ${operation.kind} may not overwrite content after ${transformationKind}: ${outputPath}`);
87
+ }
88
+ if (contentTypeByPath.get(outputPath) === "text") {
89
+ diagnostics.push(`Project Projection ${operation.kind} requires JSON-compatible content: ${outputPath} follows ${precedingKind}`);
90
+ }
91
+ if (precedingKind === undefined) {
92
+ contentKindByPath.set(outputPath, operation.kind);
93
+ }
94
+ contentTypeByPath.set(outputPath, "json");
95
+ transformationKindByPath.delete(outputPath);
96
+ continue;
97
+ }
98
+ const overwrite = "overwrite" in operation && operation.overwrite;
99
+ const transformationKind = transformationKindByPath.get(outputPath);
100
+ if (overwrite && transformationKind !== undefined) {
101
+ diagnostics.push(`Project Projection ${operation.kind} may not overwrite content after ${transformationKind}: ${outputPath}`);
102
+ }
103
+ if (precedingKind !== undefined && !overwrite) {
104
+ diagnostics.push(`Project Projection collision at ${outputPath}: ${operation.kind} follows ${precedingKind} without overwrite`);
105
+ }
106
+ contentKindByPath.set(outputPath, operation.kind);
107
+ if (operation.kind === "writeJson") {
108
+ contentTypeByPath.set(outputPath, "json");
109
+ }
110
+ else if (operation.kind === "writeText") {
111
+ try {
112
+ JSON.parse(operation.text);
113
+ contentTypeByPath.set(outputPath, "json");
114
+ }
115
+ catch {
116
+ contentTypeByPath.set(outputPath, "text");
117
+ }
118
+ }
119
+ else {
120
+ contentTypeByPath.set(outputPath, "unknown");
121
+ }
122
+ transformationKindByPath.delete(outputPath);
123
+ }
124
+ const orderedPaths = [...finalPaths].toSorted();
125
+ for (const candidate of orderedPaths) {
126
+ const ancestor = orderedPaths.find((other) => other !== candidate && candidate.startsWith(`${other}/`));
127
+ if (ancestor !== undefined) {
128
+ diagnostics.push(`Project Projection path collision: file ${ancestor} is an ancestor of ${candidate}`);
129
+ }
130
+ }
131
+ const reconciliationPaths = new Set();
132
+ for (const reconciliation of options.reconciliation ?? []) {
133
+ if (reconciliationPaths.has(reconciliation.path)) {
134
+ diagnostics.push(`Project Projection reconciliation paths must be unique: ${reconciliation.path}`);
135
+ }
136
+ else if (!finalPaths.has(reconciliation.path)) {
137
+ diagnostics.push(`Project Projection reconciliation references an unknown path: ${reconciliation.path}`);
138
+ }
139
+ reconciliationPaths.add(reconciliation.path);
140
+ }
141
+ return diagnostics;
142
+ }
58
143
  function bytesEqual(left, right) {
59
144
  return (left.byteLength === right.byteLength &&
60
145
  left.every((value, index) => value === right[index]));
@@ -98,6 +183,63 @@ function reconcileMode(before, current, after) {
98
183
  function describeExecutableMode(entry) {
99
184
  return entry.mode.toString(8).padStart(3, "0");
100
185
  }
186
+ /**
187
+ * 识别已接受设计中有限的成对锚点词表。
188
+ * 剥掉注释标点只是为了读出标记本身,这里不解释文件格式、关键字或版本。
189
+ */
190
+ function textMirrorMarker(line) {
191
+ const stripped = line
192
+ .trim()
193
+ .replace(/^[#;%*/-]+/u, "")
194
+ .trim();
195
+ if (stripped === "@end-template-mirror")
196
+ return { kind: "end" };
197
+ const start = /^@template-mirror\s+(\S+)$/u.exec(stripped);
198
+ if (start?.[1] !== undefined)
199
+ return { kind: "start", name: start[1] };
200
+ return { kind: "content" };
201
+ }
202
+ /** 定位唯一被拥有的那一行;任何不可用形态都返回 `undefined`。 */
203
+ function locateTextMirrorRegion(lines, name) {
204
+ const starts = [];
205
+ for (const [index, line] of lines.entries()) {
206
+ const marker = textMirrorMarker(line);
207
+ if (marker.kind === "start" && marker.name === name)
208
+ starts.push(index);
209
+ }
210
+ if (starts.length !== 1)
211
+ return undefined;
212
+ const start = starts[0];
213
+ for (let index = start + 1; index < lines.length; index += 1) {
214
+ const marker = textMirrorMarker(lines[index]);
215
+ if (marker.kind === "start")
216
+ return undefined;
217
+ if (marker.kind !== "end")
218
+ continue;
219
+ return index - start === 2
220
+ ? { contentStart: start + 1, contentEnd: index }
221
+ : undefined;
222
+ }
223
+ return undefined;
224
+ }
225
+ /** Before 是否出现过该名的开始标记:区分槽位真缺席与标记不可解释。 */
226
+ function hasTextMirrorStartMarker(lines, name) {
227
+ for (const line of lines) {
228
+ const marker = textMirrorMarker(line);
229
+ if (marker.kind === "start" && marker.name === name)
230
+ return true;
231
+ }
232
+ return false;
233
+ }
234
+ function escapeRegExpToken(value) {
235
+ return value.replaceAll(/[.$()*?[\]{}+/|^\\]/gu, String.raw `\$&`);
236
+ }
237
+ /** 有界的承载检查:文件是否仍在赋值或引用这个名称? */
238
+ function textUsesMirrorSlotName(text, name) {
239
+ const token = escapeRegExpToken(name);
240
+ return (new RegExp(`(?:^|[^\\w$])${token}\\s*=`, "u").test(text) ||
241
+ new RegExp(String.raw `\$\{\s*${token}\s*\}`, "u").test(text));
242
+ }
101
243
  function reconcileTextEntry(options) {
102
244
  const mode = reconcileMode(options.before, options.current, options.after);
103
245
  if (mode === undefined)
@@ -121,7 +263,54 @@ function reconcileTextEntry(options) {
121
263
  ],
122
264
  };
123
265
  }
124
- const regions = diff3Merge(textLines(currentText), textLines(beforeText), textLines(afterText), { excludeFalseConflicts: true });
266
+ const slotConflict = (slot, reason) => ({
267
+ ok: false,
268
+ conflicts: [
269
+ {
270
+ ...(slot.location.kind === "text-anchor"
271
+ ? { location: slot.location.name }
272
+ : {}),
273
+ reason,
274
+ before: describeEntry(options.before),
275
+ current: describeEntry(options.current),
276
+ after: describeEntry(options.after),
277
+ },
278
+ ],
279
+ });
280
+ const beforeLines = textLines(beforeText);
281
+ let currentLines = textLines(currentText);
282
+ for (const slot of options.mirrorSlots) {
283
+ if (slot.location.kind !== "text-anchor")
284
+ continue;
285
+ const name = slot.location.name;
286
+ const currentRegion = locateTextMirrorRegion(currentLines, name);
287
+ if (currentRegion === undefined) {
288
+ if (textUsesMirrorSlotName(currentText, name)) {
289
+ return slotConflict(slot, `Declared mirror slot ${JSON.stringify(slot.id)} anchor could not be located while the ${JSON.stringify(name)} carrier or reference remains`);
290
+ }
291
+ continue;
292
+ }
293
+ const beforeRegion = locateTextMirrorRegion(beforeLines, name);
294
+ if (beforeRegion === undefined) {
295
+ if (hasTextMirrorStartMarker(beforeLines, name)) {
296
+ return slotConflict(slot, `Declared mirror slot ${JSON.stringify(slot.id)} anchor in Before could not be located while its markers remain`);
297
+ }
298
+ // 模板拥有完整镜像块,标记行也属于该块,因此移除整块后再交既有 diff3。
299
+ currentLines = [
300
+ ...currentLines.slice(0, currentRegion.contentStart - 1),
301
+ ...currentLines.slice(currentRegion.contentEnd + 1),
302
+ ];
303
+ continue;
304
+ }
305
+ currentLines = [
306
+ ...currentLines.slice(0, currentRegion.contentStart),
307
+ ...beforeLines.slice(beforeRegion.contentStart, beforeRegion.contentEnd),
308
+ ...currentLines.slice(currentRegion.contentEnd),
309
+ ];
310
+ }
311
+ const regions = diff3Merge(currentLines, beforeLines, textLines(afterText), {
312
+ excludeFalseConflicts: true,
313
+ });
125
314
  const conflicts = regions.flatMap((region) => {
126
315
  const conflict = region.conflict;
127
316
  if (conflict === undefined)
@@ -382,6 +571,190 @@ function parseStructuredEntry(entry) {
382
571
  };
383
572
  }
384
573
  }
574
+ function describeStructuredValueAt(value) {
575
+ return describeStructuredValue(value);
576
+ }
577
+ function mirrorSlotParent(root, segments) {
578
+ if (segments.length === 0)
579
+ return { found: false };
580
+ let value = root;
581
+ for (const segment of segments.slice(0, -1)) {
582
+ if (isStructuredObject(value) && Object.hasOwn(value, segment)) {
583
+ value = value[segment];
584
+ continue;
585
+ }
586
+ if (Array.isArray(value) &&
587
+ /^(?:0|[1-9][0-9]*)$/u.test(segment) &&
588
+ Number.isSafeInteger(Number(segment)) &&
589
+ Object.hasOwn(value, Number(segment))) {
590
+ value = value[Number(segment)];
591
+ continue;
592
+ }
593
+ return { found: false };
594
+ }
595
+ return { found: true, parent: value };
596
+ }
597
+ function mirrorSlotValue(root, segments) {
598
+ const parent = mirrorSlotParent(root, segments);
599
+ if (!parent.found)
600
+ return missingStructuredValue;
601
+ const key = segments[segments.length - 1];
602
+ if (isStructuredObject(parent.parent)) {
603
+ return Object.hasOwn(parent.parent, key)
604
+ ? parent.parent[key]
605
+ : missingStructuredValue;
606
+ }
607
+ if (Array.isArray(parent.parent) &&
608
+ /^(?:0|[1-9][0-9]*)$/u.test(key) &&
609
+ Object.hasOwn(parent.parent, Number(key))) {
610
+ return parent.parent[Number(key)];
611
+ }
612
+ return missingStructuredValue;
613
+ }
614
+ /**
615
+ * 有限的槽位读取:把一个 plan 声明的镜像位置在真实投影里解析成恰好一条标量字符串。
616
+ * Core 只认识通用位置与值形态(合法 JSON、位置存在、值为字符串、锚点区域恰一行),
617
+ * 不认识具体生成路径、Node/Rust 语义或 ARG 写法;承载行的解释留给 Checks 层。
618
+ */
619
+ export function readProjectedMirrorSlotScalar(entry, location) {
620
+ if (location.kind === "json-pointer") {
621
+ const parsed = parseStructuredEntry(entry);
622
+ if (!parsed.ok) {
623
+ return { ok: false, reason: `槽位文件不是合法 JSON:${parsed.message}` };
624
+ }
625
+ let segments;
626
+ try {
627
+ segments = parseJsonPointer(location.pointer);
628
+ }
629
+ catch (error) {
630
+ return {
631
+ ok: false,
632
+ reason: `JSON Pointer 非法:${error instanceof Error ? error.message : String(error)}`,
633
+ };
634
+ }
635
+ if (segments.length === 0) {
636
+ return { ok: false, reason: "镜像槽位不能定位到文档根本身" };
637
+ }
638
+ const value = mirrorSlotValue(parsed.value, segments);
639
+ if (value === missingStructuredValue) {
640
+ return {
641
+ ok: false,
642
+ reason: `声明位置在真实投影中不存在:${location.pointer}`,
643
+ };
644
+ }
645
+ if (typeof value !== "string") {
646
+ return {
647
+ ok: false,
648
+ reason: `镜像槽位的值必须是字符串标量:${location.pointer}`,
649
+ };
650
+ }
651
+ return { ok: true, scalar: value };
652
+ }
653
+ const decoded = decodeText(entry.content);
654
+ if (decoded === undefined) {
655
+ return { ok: false, reason: "文本锚点所在文件不是合法 UTF-8 文本" };
656
+ }
657
+ const lines = textLines(decoded);
658
+ const region = locateTextMirrorRegion(lines, location.name);
659
+ if (region === undefined) {
660
+ return {
661
+ ok: false,
662
+ reason: `锚点区域缺失、重复、不成对或含额外正文:${location.name}`,
663
+ };
664
+ }
665
+ // locateTextMirrorRegion 已保证区域内恰好一条承载行。
666
+ return { ok: true, scalar: lines[region.contentStart] };
667
+ }
668
+ function withoutMirrorSlot(root, segments) {
669
+ if (segments.length === 0)
670
+ return root;
671
+ const [head, ...rest] = segments;
672
+ if (rest.length === 0) {
673
+ if (!isStructuredObject(root) || !Object.hasOwn(root, head))
674
+ return root;
675
+ const kept = {};
676
+ for (const [key, value] of Object.entries(root)) {
677
+ if (key !== head)
678
+ kept[key] = value;
679
+ }
680
+ return kept;
681
+ }
682
+ if (isStructuredObject(root) && Object.hasOwn(root, head)) {
683
+ return {
684
+ ...root,
685
+ [head]: withoutMirrorSlot(root[head], rest),
686
+ };
687
+ }
688
+ if (Array.isArray(root) &&
689
+ /^(?:0|[1-9][0-9]*)$/u.test(head) &&
690
+ Object.hasOwn(root, Number(head))) {
691
+ return root.map((member, index) => index === Number(head) ? withoutMirrorSlot(member, rest) : member);
692
+ }
693
+ return root;
694
+ }
695
+ function withMirrorSlot(root, segments, value) {
696
+ if (segments.length === 0)
697
+ return root;
698
+ const [head, ...rest] = segments;
699
+ if (rest.length === 0) {
700
+ if (isStructuredObject(root) && Object.hasOwn(root, head)) {
701
+ return { ...root, [head]: value };
702
+ }
703
+ if (Array.isArray(root) &&
704
+ /^(?:0|[1-9][0-9]*)$/u.test(head) &&
705
+ Object.hasOwn(root, Number(head))) {
706
+ return root.map((member, index) => index === Number(head) ? value : member);
707
+ }
708
+ return root;
709
+ }
710
+ if (isStructuredObject(root) && Object.hasOwn(root, head)) {
711
+ return {
712
+ ...root,
713
+ [head]: withMirrorSlot(root[head], rest, value),
714
+ };
715
+ }
716
+ if (Array.isArray(root) &&
717
+ /^(?:0|[1-9][0-9]*)$/u.test(head) &&
718
+ Object.hasOwn(root, Number(head))) {
719
+ return root.map((member, index) => index === Number(head) ? withMirrorSlot(member, rest, value) : member);
720
+ }
721
+ return root;
722
+ }
723
+ /**
724
+ * 把 Current 中每个由 planner 声明的位置改写回 Before。
725
+ * 归一只改写已存在的位置,绝不新建,所以消费者删掉的槽位在既有合并法则下保持缺席。
726
+ */
727
+ function normalizeCurrentMirrorSlots(options) {
728
+ let normalized = options.current;
729
+ for (const { slot, segments } of options.slots) {
730
+ const location = structuredLocation(segments);
731
+ const currentValue = mirrorSlotValue(normalized, segments);
732
+ if (currentValue === missingStructuredValue)
733
+ continue;
734
+ const beforeValue = mirrorSlotValue(options.before, segments);
735
+ const afterValue = mirrorSlotValue(options.after, segments);
736
+ const unusable = (side) => ({
737
+ ok: false,
738
+ conflict: {
739
+ location,
740
+ reason: `Declared mirror slot ${JSON.stringify(slot.id)} holds a non-string ${side} value`,
741
+ before: describeStructuredValueAt(beforeValue),
742
+ current: describeStructuredValueAt(currentValue),
743
+ after: describeStructuredValueAt(afterValue),
744
+ },
745
+ });
746
+ if (typeof currentValue !== "string")
747
+ return unusable("Current");
748
+ if (beforeValue === missingStructuredValue) {
749
+ normalized = withoutMirrorSlot(normalized, segments);
750
+ continue;
751
+ }
752
+ if (typeof beforeValue !== "string")
753
+ return unusable("Before");
754
+ normalized = withMirrorSlot(normalized, segments, beforeValue);
755
+ }
756
+ return { ok: true, value: normalized };
757
+ }
385
758
  function reconcileStructuredEntry(options) {
386
759
  const mode = reconcileMode(options.before, options.current, options.after);
387
760
  if (mode === undefined)
@@ -405,12 +778,31 @@ function reconcileStructuredEntry(options) {
405
778
  return parseConflict("Current", current.message);
406
779
  if (!after.ok)
407
780
  return parseConflict("After", after.message);
408
- const reconciled = reconcileStructuredValue(before.value, current.value, after.value, [], options.identitySets);
781
+ const slotLocations = options.mirrorSlots.map((slot) => ({
782
+ slot,
783
+ segments: slot.location.kind === "json-pointer"
784
+ ? parseJsonPointer(slot.location.pointer)
785
+ : [],
786
+ }));
787
+ const normalized = normalizeCurrentMirrorSlots({
788
+ before: before.value,
789
+ current: current.value,
790
+ after: after.value,
791
+ slots: slotLocations,
792
+ });
793
+ if (!normalized.ok)
794
+ return normalized;
795
+ const reconciled = reconcileStructuredValue(before.value, normalized.value, after.value, [], options.identitySets);
409
796
  if (!reconciled.ok)
410
797
  return reconciled;
411
798
  if (reconciled.value === missingStructuredValue) {
412
799
  return { ok: false };
413
800
  }
801
+ if (options.mirrorSlots.length > 0 &&
802
+ structuredValuesEqual(current.value, reconciled.value) &&
803
+ options.current.mode === mode) {
804
+ return { ok: true, skip: true };
805
+ }
414
806
  let content;
415
807
  try {
416
808
  content = new TextEncoder().encode(`${JSON.stringify(reconciled.value, null, 2)}\n`);
@@ -451,6 +843,34 @@ function assertNormalizedSafeRelativePath(projectionPath, member) {
451
843
  throw new Error(`Project Projection ${member} path must be a normalized safe relative path: ${projectionPath || "<empty>"}`);
452
844
  }
453
845
  }
846
+ function assertMirrorSlots(entry, reconciliation) {
847
+ const slots = reconciliation.mirrorSlots ?? [];
848
+ const ids = new Set();
849
+ for (const slot of slots) {
850
+ if (slot.id.length === 0 || ids.has(slot.id)) {
851
+ throw new Error(`Project Projection mirror slot ids must be unique and non-empty: ${entry.path} ${JSON.stringify(slot.id)}`);
852
+ }
853
+ ids.add(slot.id);
854
+ if (reconciliation.driver === "structured") {
855
+ if (slot.location.kind !== "json-pointer") {
856
+ throw new Error(`Project Projection structured mirror slots require a JSON Pointer location: ${entry.path} ${slot.id}`);
857
+ }
858
+ try {
859
+ parseJsonPointer(slot.location.pointer);
860
+ }
861
+ catch (error) {
862
+ throw new Error(`Project Projection mirror slot location must be an RFC 6901 JSON Pointer: ${entry.path} ${slot.id} (${error instanceof Error ? error.message : String(error)})`, { cause: error });
863
+ }
864
+ continue;
865
+ }
866
+ if (slot.location.kind !== "text-anchor") {
867
+ throw new Error(`Project Projection text mirror slots require a named text anchor: ${entry.path} ${slot.id}`);
868
+ }
869
+ if (!/^\S+$/u.test(slot.location.name)) {
870
+ throw new Error(`Project Projection text mirror slot names must be single non-empty tokens: ${entry.path} ${slot.id}`);
871
+ }
872
+ }
873
+ }
454
874
  function assertProjectionContract(projection) {
455
875
  const paths = new Set();
456
876
  for (const entry of projection.entries) {
@@ -478,6 +898,9 @@ function assertProjectionContract(projection) {
478
898
  reconciliation.identitySets !== undefined) {
479
899
  assertIdentitySetPolicies(projection.entries.find((entry) => entry.path === reconciliation.path), reconciliation);
480
900
  }
901
+ if (reconciliation.driver !== "canonical") {
902
+ assertMirrorSlots(projection.entries.find((entry) => entry.path === reconciliation.path), reconciliation);
903
+ }
481
904
  policies.set(reconciliation.path, reconciliation);
482
905
  }
483
906
  for (const projectionPath of paths) {
@@ -487,6 +910,24 @@ function assertProjectionContract(projection) {
487
910
  }
488
911
  return policies;
489
912
  }
913
+ /**
914
+ * 槽位声明沿既有通用合并接缝只允许单调新增:Before 的每个槽位必须按原序出现在 After 前缀,
915
+ * After 可追加消费者新增能力所对应的位置。删除、重排或改写既有槽位仍判为策略不兼容。
916
+ * Core 不理解具体文件名或工具链,只在槽位列表结构上判定。
917
+ */
918
+ function mirrorSlotsExtendMonotonically(before, after) {
919
+ const prior = before ?? [];
920
+ const next = after ?? [];
921
+ if (prior.length > next.length)
922
+ return false;
923
+ for (let index = 0; index < prior.length; index += 1) {
924
+ if (JSON.stringify(prior[index] ?? null) !==
925
+ JSON.stringify(next[index] ?? null)) {
926
+ return false;
927
+ }
928
+ }
929
+ return true;
930
+ }
490
931
  function reconciliationPoliciesCompatible(left, right) {
491
932
  if (left.path !== right.path ||
492
933
  left.driver !== right.driver ||
@@ -498,6 +939,9 @@ function reconciliationPoliciesCompatible(left, right) {
498
939
  const rightIdentitySets = right.identitySets ?? [];
499
940
  if (leftIdentitySets.length !== rightIdentitySets.length)
500
941
  return false;
942
+ if (!mirrorSlotsExtendMonotonically(left.mirrorSlots, right.mirrorSlots)) {
943
+ return false;
944
+ }
501
945
  return leftIdentitySets.every((leftPolicy, index) => {
502
946
  const rightPolicy = rightIdentitySets[index];
503
947
  if (rightPolicy === undefined ||
@@ -611,6 +1055,11 @@ function assertIdentitySetPolicies(entry, reconciliation) {
611
1055
  }
612
1056
  }
613
1057
  }
1058
+ function declaredMirrorSlots(policy) {
1059
+ if (policy === undefined || policy.driver === "canonical")
1060
+ return [];
1061
+ return policy.mirrorSlots ?? [];
1062
+ }
614
1063
  export async function reconcileProjectProjections(options) {
615
1064
  const beforePolicies = assertProjectionContract(options.before);
616
1065
  const afterPolicies = assertProjectionContract(options.after);
@@ -628,20 +1077,34 @@ export async function reconcileProjectProjections(options) {
628
1077
  throw new Error(`Project Projection reconciliation policy changed for ${projectionPath}`);
629
1078
  }
630
1079
  }
631
- const deltaPaths = [
632
- ...new Set([...beforeByPath.keys(), ...afterByPath.keys()]),
633
- ]
1080
+ const deltaPathSet = new Set([...new Set([...beforeByPath.keys(), ...afterByPath.keys()])]
634
1081
  .filter((projectionPath) => !entriesEqual(beforeByPath.get(projectionPath), afterByPath.get(projectionPath)))
635
- .toSorted();
1082
+ .toSorted());
1083
+ const declaredMirrorPaths = new Set();
1084
+ for (const [projectionPath, policy] of afterPolicies) {
1085
+ if (declaredMirrorSlots(policy).length > 0) {
1086
+ declaredMirrorPaths.add(projectionPath);
1087
+ }
1088
+ }
1089
+ for (const [projectionPath, policy] of beforePolicies) {
1090
+ if (declaredMirrorSlots(policy).length > 0) {
1091
+ declaredMirrorPaths.add(projectionPath);
1092
+ }
1093
+ }
1094
+ const reconcilePaths = [
1095
+ ...new Set([...deltaPathSet, ...declaredMirrorPaths]),
1096
+ ].toSorted();
636
1097
  const mutations = [];
637
1098
  const conflicts = [];
638
- for (const projectionPath of deltaPaths) {
1099
+ for (const projectionPath of reconcilePaths) {
639
1100
  const before = beforeByPath.get(projectionPath);
640
1101
  const after = afterByPath.get(projectionPath);
641
1102
  const beforePolicy = beforePolicies.get(projectionPath);
642
1103
  const afterPolicy = afterPolicies.get(projectionPath);
643
1104
  const policy = afterPolicy ?? beforePolicy;
644
1105
  const driver = policy.driver;
1106
+ const mirrorSlots = declaredMirrorSlots(policy);
1107
+ const isDeltaPath = deltaPathSet.has(projectionPath);
645
1108
  const current = await options.readCurrent(projectionPath);
646
1109
  if (entriesEqual(current, after))
647
1110
  continue;
@@ -661,6 +1124,8 @@ export async function reconcileProjectProjections(options) {
661
1124
  continue;
662
1125
  }
663
1126
  if (before === undefined || current === undefined) {
1127
+ if (!isDeltaPath && mirrorSlots.length > 0)
1128
+ continue;
664
1129
  conflicts.push({
665
1130
  path: projectionPath,
666
1131
  driver,
@@ -673,6 +1138,8 @@ export async function reconcileProjectProjections(options) {
673
1138
  continue;
674
1139
  }
675
1140
  if (current.kind !== "file") {
1141
+ if (!isDeltaPath && mirrorSlots.length > 0)
1142
+ continue;
676
1143
  conflicts.push({
677
1144
  path: projectionPath,
678
1145
  driver,
@@ -702,16 +1169,19 @@ export async function reconcileProjectProjections(options) {
702
1169
  current,
703
1170
  after,
704
1171
  identitySets: combinedIdentitySets(beforePolicy, afterPolicy),
1172
+ mirrorSlots,
705
1173
  })
706
1174
  : undefined;
707
1175
  const text = driver === "text"
708
- ? reconcileTextEntry({ before, current, after })
1176
+ ? reconcileTextEntry({ before, current, after, mirrorSlots })
709
1177
  : undefined;
1178
+ if (structured?.ok === true && "skip" in structured)
1179
+ continue;
710
1180
  const reconciled = driver === "text"
711
1181
  ? text?.ok
712
1182
  ? text.entry
713
1183
  : undefined
714
- : structured?.ok
1184
+ : structured?.ok && "entry" in structured
715
1185
  ? structured.entry
716
1186
  : undefined;
717
1187
  if (reconciled === undefined) {
@@ -1031,12 +1501,15 @@ export function createProjectProjectionReconciler(dependencies = {}) {
1031
1501
  }
1032
1502
  export const reconcileAndApplyProjectProjections = createProjectProjectionReconciler();
1033
1503
  export async function materializeProjectProjection(options) {
1034
- const variables = options.variables ?? {};
1504
+ const planDiagnostics = validateProjectProjectionPlan(options);
1505
+ if (planDiagnostics.length > 0) {
1506
+ throw new Error(planDiagnostics.join("\n"));
1507
+ }
1035
1508
  const finalPaths = new Set();
1036
1509
  const contentPaths = new Set();
1037
1510
  const policies = new Map();
1038
1511
  for (const operation of options.operations) {
1039
- const outputPath = normalizedOutputPath(operation, variables);
1512
+ const outputPath = normalizedOutputPath(operation);
1040
1513
  finalPaths.add(outputPath);
1041
1514
  if (operation.kind === "setExecutable") {
1042
1515
  if (!contentPaths.has(outputPath)) {
@@ -1067,7 +1540,6 @@ export async function materializeProjectProjection(options) {
1067
1540
  try {
1068
1541
  await renderProject({
1069
1542
  targetRoot,
1070
- variables: { ...variables },
1071
1543
  operations: [...options.operations],
1072
1544
  });
1073
1545
  const entries = await Promise.all([...finalPaths].toSorted().map(async (relativePath) => {
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI 发版携带的不可变工具链快照:从模板根三个原生声明(engines.node、packageManager、rust-toolchain.toml)投影的静态交付副本。
3
+ * 模板根声明仍是唯一作者真源,由根版本门核对漂移;本模块同步、无参、无任何文件系统、网络或模板根查找。
4
+ */
5
+ export declare const releaseToolchainSnapshot: Readonly<{
6
+ readonly nodeVersion: "24.21.0";
7
+ readonly packageManagerPin: "pnpm@12.9.1";
8
+ readonly rustVersion: "1.99.0";
9
+ }>;
10
+ export type ReleaseToolchainSnapshot = typeof releaseToolchainSnapshot;