@ykdz/template 0.0.23 → 0.0.25

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 (452) hide show
  1. package/dist/cli.js +4 -575
  2. package/dist/main.d.ts +1 -0
  3. package/dist/main.js +370 -0
  4. package/node_modules/@typescript/old/LICENSE.txt +55 -0
  5. package/node_modules/@typescript/old/README.md +50 -0
  6. package/node_modules/@typescript/old/SECURITY.md +39 -0
  7. package/node_modules/@typescript/old/ThirdPartyNoticeText.txt +193 -0
  8. package/node_modules/@typescript/old/bin/tsc +2 -0
  9. package/node_modules/@typescript/old/bin/tsserver +2 -0
  10. package/node_modules/@typescript/old/lib/_tsc.js +134465 -0
  11. package/node_modules/@typescript/old/lib/_tsserver.js +659 -0
  12. package/node_modules/@typescript/old/lib/_typingsInstaller.js +222 -0
  13. package/node_modules/@typescript/old/lib/cs/diagnosticMessages.generated.json +2129 -0
  14. package/node_modules/@typescript/old/lib/de/diagnosticMessages.generated.json +2125 -0
  15. package/node_modules/@typescript/old/lib/es/diagnosticMessages.generated.json +2129 -0
  16. package/node_modules/@typescript/old/lib/fr/diagnosticMessages.generated.json +2129 -0
  17. package/node_modules/@typescript/old/lib/it/diagnosticMessages.generated.json +2125 -0
  18. package/node_modules/@typescript/old/lib/ja/diagnosticMessages.generated.json +2129 -0
  19. package/node_modules/@typescript/old/lib/ko/diagnosticMessages.generated.json +2129 -0
  20. package/node_modules/@typescript/old/lib/lib.d.ts +20 -0
  21. package/node_modules/@typescript/old/lib/lib.decorators.d.ts +382 -0
  22. package/node_modules/@typescript/old/lib/lib.decorators.legacy.d.ts +20 -0
  23. package/node_modules/@typescript/old/lib/lib.dom.asynciterable.d.ts +18 -0
  24. package/node_modules/@typescript/old/lib/lib.dom.d.ts +45125 -0
  25. package/node_modules/@typescript/old/lib/lib.dom.iterable.d.ts +18 -0
  26. package/node_modules/@typescript/old/lib/lib.es2015.collection.d.ts +150 -0
  27. package/node_modules/@typescript/old/lib/lib.es2015.core.d.ts +595 -0
  28. package/node_modules/@typescript/old/lib/lib.es2015.d.ts +26 -0
  29. package/node_modules/@typescript/old/lib/lib.es2015.generator.d.ts +75 -0
  30. package/node_modules/@typescript/old/lib/lib.es2015.iterable.d.ts +603 -0
  31. package/node_modules/@typescript/old/lib/lib.es2015.promise.d.ts +79 -0
  32. package/node_modules/@typescript/old/lib/lib.es2015.proxy.d.ts +126 -0
  33. package/node_modules/@typescript/old/lib/lib.es2015.reflect.d.ts +142 -0
  34. package/node_modules/@typescript/old/lib/lib.es2015.symbol.d.ts +44 -0
  35. package/node_modules/@typescript/old/lib/lib.es2015.symbol.wellknown.d.ts +324 -0
  36. package/node_modules/@typescript/old/lib/lib.es2016.array.include.d.ts +114 -0
  37. package/node_modules/@typescript/old/lib/lib.es2016.d.ts +19 -0
  38. package/node_modules/@typescript/old/lib/lib.es2016.full.d.ts +21 -0
  39. package/node_modules/@typescript/old/lib/lib.es2016.intl.d.ts +29 -0
  40. package/node_modules/@typescript/old/lib/lib.es2017.arraybuffer.d.ts +19 -0
  41. package/node_modules/@typescript/old/lib/lib.es2017.d.ts +24 -0
  42. package/node_modules/@typescript/old/lib/lib.es2017.date.d.ts +29 -0
  43. package/node_modules/@typescript/old/lib/lib.es2017.full.d.ts +21 -0
  44. package/node_modules/@typescript/old/lib/lib.es2017.intl.d.ts +42 -0
  45. package/node_modules/@typescript/old/lib/lib.es2017.object.d.ts +47 -0
  46. package/node_modules/@typescript/old/lib/lib.es2017.sharedmemory.d.ts +133 -0
  47. package/node_modules/@typescript/old/lib/lib.es2017.string.d.ts +43 -0
  48. package/node_modules/@typescript/old/lib/lib.es2017.typedarrays.d.ts +51 -0
  49. package/node_modules/@typescript/old/lib/lib.es2018.asyncgenerator.d.ts +75 -0
  50. package/node_modules/@typescript/old/lib/lib.es2018.asynciterable.d.ts +51 -0
  51. package/node_modules/@typescript/old/lib/lib.es2018.d.ts +22 -0
  52. package/node_modules/@typescript/old/lib/lib.es2018.full.d.ts +22 -0
  53. package/node_modules/@typescript/old/lib/lib.es2018.intl.d.ts +81 -0
  54. package/node_modules/@typescript/old/lib/lib.es2018.promise.d.ts +28 -0
  55. package/node_modules/@typescript/old/lib/lib.es2018.regexp.d.ts +35 -0
  56. package/node_modules/@typescript/old/lib/lib.es2019.array.d.ts +77 -0
  57. package/node_modules/@typescript/old/lib/lib.es2019.d.ts +22 -0
  58. package/node_modules/@typescript/old/lib/lib.es2019.full.d.ts +22 -0
  59. package/node_modules/@typescript/old/lib/lib.es2019.intl.d.ts +21 -0
  60. package/node_modules/@typescript/old/lib/lib.es2019.object.d.ts +31 -0
  61. package/node_modules/@typescript/old/lib/lib.es2019.string.d.ts +35 -0
  62. package/node_modules/@typescript/old/lib/lib.es2019.symbol.d.ts +22 -0
  63. package/node_modules/@typescript/old/lib/lib.es2020.bigint.d.ts +763 -0
  64. package/node_modules/@typescript/old/lib/lib.es2020.d.ts +25 -0
  65. package/node_modules/@typescript/old/lib/lib.es2020.date.d.ts +40 -0
  66. package/node_modules/@typescript/old/lib/lib.es2020.full.d.ts +22 -0
  67. package/node_modules/@typescript/old/lib/lib.es2020.intl.d.ts +472 -0
  68. package/node_modules/@typescript/old/lib/lib.es2020.number.d.ts +26 -0
  69. package/node_modules/@typescript/old/lib/lib.es2020.promise.d.ts +45 -0
  70. package/node_modules/@typescript/old/lib/lib.es2020.sharedmemory.d.ts +97 -0
  71. package/node_modules/@typescript/old/lib/lib.es2020.string.d.ts +42 -0
  72. package/node_modules/@typescript/old/lib/lib.es2020.symbol.wellknown.d.ts +39 -0
  73. package/node_modules/@typescript/old/lib/lib.es2021.d.ts +21 -0
  74. package/node_modules/@typescript/old/lib/lib.es2021.full.d.ts +22 -0
  75. package/node_modules/@typescript/old/lib/lib.es2021.intl.d.ts +164 -0
  76. package/node_modules/@typescript/old/lib/lib.es2021.promise.d.ts +46 -0
  77. package/node_modules/@typescript/old/lib/lib.es2021.string.d.ts +31 -0
  78. package/node_modules/@typescript/old/lib/lib.es2021.weakref.d.ts +76 -0
  79. package/node_modules/@typescript/old/lib/lib.es2022.array.d.ts +119 -0
  80. package/node_modules/@typescript/old/lib/lib.es2022.d.ts +23 -0
  81. package/node_modules/@typescript/old/lib/lib.es2022.error.d.ts +73 -0
  82. package/node_modules/@typescript/old/lib/lib.es2022.full.d.ts +22 -0
  83. package/node_modules/@typescript/old/lib/lib.es2022.intl.d.ts +143 -0
  84. package/node_modules/@typescript/old/lib/lib.es2022.object.d.ts +24 -0
  85. package/node_modules/@typescript/old/lib/lib.es2022.regexp.d.ts +37 -0
  86. package/node_modules/@typescript/old/lib/lib.es2022.string.d.ts +23 -0
  87. package/node_modules/@typescript/old/lib/lib.es2023.array.d.ts +922 -0
  88. package/node_modules/@typescript/old/lib/lib.es2023.collection.d.ts +19 -0
  89. package/node_modules/@typescript/old/lib/lib.es2023.d.ts +20 -0
  90. package/node_modules/@typescript/old/lib/lib.es2023.full.d.ts +22 -0
  91. package/node_modules/@typescript/old/lib/lib.es2023.intl.d.ts +62 -0
  92. package/node_modules/@typescript/old/lib/lib.es2024.arraybuffer.d.ts +63 -0
  93. package/node_modules/@typescript/old/lib/lib.es2024.collection.d.ts +27 -0
  94. package/node_modules/@typescript/old/lib/lib.es2024.d.ts +24 -0
  95. package/node_modules/@typescript/old/lib/lib.es2024.full.d.ts +22 -0
  96. package/node_modules/@typescript/old/lib/lib.es2024.object.d.ts +27 -0
  97. package/node_modules/@typescript/old/lib/lib.es2024.promise.d.ts +33 -0
  98. package/node_modules/@typescript/old/lib/lib.es2024.regexp.d.ts +23 -0
  99. package/node_modules/@typescript/old/lib/lib.es2024.sharedmemory.d.ts +66 -0
  100. package/node_modules/@typescript/old/lib/lib.es2024.string.d.ts +27 -0
  101. package/node_modules/@typescript/old/lib/lib.es2025.collection.d.ts +94 -0
  102. package/node_modules/@typescript/old/lib/lib.es2025.d.ts +23 -0
  103. package/node_modules/@typescript/old/lib/lib.es2025.float16.d.ts +443 -0
  104. package/node_modules/@typescript/old/lib/lib.es2025.full.d.ts +22 -0
  105. package/node_modules/@typescript/old/lib/lib.es2025.intl.d.ts +200 -0
  106. package/node_modules/@typescript/old/lib/lib.es2025.iterator.d.ts +146 -0
  107. package/node_modules/@typescript/old/lib/lib.es2025.promise.d.ts +32 -0
  108. package/node_modules/@typescript/old/lib/lib.es2025.regexp.d.ts +30 -0
  109. package/node_modules/@typescript/old/lib/lib.es5.d.ts +4599 -0
  110. package/node_modules/@typescript/old/lib/lib.es6.d.ts +21 -0
  111. package/node_modules/@typescript/old/lib/lib.esnext.array.d.ts +33 -0
  112. package/node_modules/@typescript/old/lib/lib.esnext.collection.d.ts +47 -0
  113. package/node_modules/@typescript/old/lib/lib.esnext.d.ts +27 -0
  114. package/node_modules/@typescript/old/lib/lib.esnext.date.d.ts +21 -0
  115. package/node_modules/@typescript/old/lib/lib.esnext.decorators.d.ts +26 -0
  116. package/node_modules/@typescript/old/lib/lib.esnext.disposable.d.ts +191 -0
  117. package/node_modules/@typescript/old/lib/lib.esnext.error.d.ts +22 -0
  118. package/node_modules/@typescript/old/lib/lib.esnext.full.d.ts +22 -0
  119. package/node_modules/@typescript/old/lib/lib.esnext.intl.d.ts +107 -0
  120. package/node_modules/@typescript/old/lib/lib.esnext.sharedmemory.d.ts +23 -0
  121. package/node_modules/@typescript/old/lib/lib.esnext.temporal.d.ts +485 -0
  122. package/node_modules/@typescript/old/lib/lib.esnext.typedarrays.d.ts +90 -0
  123. package/node_modules/@typescript/old/lib/lib.scripthost.d.ts +320 -0
  124. package/node_modules/@typescript/old/lib/lib.webworker.asynciterable.d.ts +18 -0
  125. package/node_modules/@typescript/old/lib/lib.webworker.d.ts +15606 -0
  126. package/node_modules/@typescript/old/lib/lib.webworker.importscripts.d.ts +21 -0
  127. package/node_modules/@typescript/old/lib/lib.webworker.iterable.d.ts +18 -0
  128. package/node_modules/@typescript/old/lib/pl/diagnosticMessages.generated.json +2129 -0
  129. package/node_modules/@typescript/old/lib/pt-br/diagnosticMessages.generated.json +2129 -0
  130. package/node_modules/@typescript/old/lib/ru/diagnosticMessages.generated.json +2125 -0
  131. package/node_modules/@typescript/old/lib/tr/diagnosticMessages.generated.json +2129 -0
  132. package/node_modules/@typescript/old/lib/tsc.js +8 -0
  133. package/node_modules/@typescript/old/lib/tsserver.js +8 -0
  134. package/node_modules/@typescript/old/lib/tsserverlibrary.d.ts +17 -0
  135. package/node_modules/@typescript/old/lib/tsserverlibrary.js +21 -0
  136. package/node_modules/@typescript/old/lib/typesMap.json +497 -0
  137. package/node_modules/@typescript/old/lib/typescript.d.ts +11448 -0
  138. package/node_modules/@typescript/old/lib/typescript.js +201039 -0
  139. package/node_modules/@typescript/old/lib/typingsInstaller.js +8 -0
  140. package/node_modules/@typescript/old/lib/watchGuard.js +53 -0
  141. package/node_modules/@typescript/old/lib/zh-cn/diagnosticMessages.generated.json +2129 -0
  142. package/node_modules/@typescript/old/lib/zh-tw/diagnosticMessages.generated.json +2125 -0
  143. package/node_modules/@typescript/old/package.json +118 -0
  144. package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.d.ts +83 -0
  145. package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.js +804 -0
  146. package/node_modules/@ykdz/template-builtin-presets/dist/src/index.d.ts +3 -0
  147. package/node_modules/@ykdz/template-builtin-presets/dist/src/index.js +2 -0
  148. package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.d.ts +2 -0
  149. package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.js +114 -0
  150. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.d.ts +33 -0
  151. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.js +88 -0
  152. package/node_modules/@ykdz/template-builtin-presets/dist/src/template-sources.d.ts +14 -0
  153. package/node_modules/@ykdz/template-builtin-presets/dist/src/template-sources.js +26 -0
  154. package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.d.ts +2 -0
  155. package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.js +114 -0
  156. package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.d.ts +2 -0
  157. package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.js +382 -0
  158. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.d.ts +2 -0
  159. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.js +92 -0
  160. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.d.ts +2 -0
  161. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.js +162 -0
  162. package/node_modules/@ykdz/template-builtin-presets/package.json +68 -0
  163. package/node_modules/@ykdz/{template-builtin-source/templates/vue-app/.github/dependabot.yml → template-builtin-presets/templates/foundation/.github/dependabot-rust.yml} +13 -0
  164. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/dependabot.dynamic.template +4 -0
  165. package/node_modules/@ykdz/{template-builtin-source/templates/ts-lib → template-builtin-presets/templates/foundation}/.github/dependabot.yml +5 -0
  166. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check.dynamic.template +19 -0
  167. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/TODO.md.template +5 -0
  168. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/devcontainer.json +16 -0
  169. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/gitignore +8 -0
  170. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.dynamic.txt +19 -0
  171. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.yaml +28 -0
  172. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/rust/.vscode/extensions.json +3 -0
  173. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/rust/.vscode/settings.json +5 -0
  174. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/rust/devcontainer/devcontainer.json +21 -0
  175. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/scripts/check-boundaries.ts +12 -0
  176. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/scripts/run-root-owned-task.ts +69 -0
  177. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/tsconfig.json +9 -0
  178. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/turbo.json +25 -0
  179. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/.github/dependabot.yml +5 -0
  180. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/.github/workflows/check.yml +23 -0
  181. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/.vscode/extensions.json +3 -0
  182. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/.vscode/settings.json +5 -0
  183. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/Cargo.lock +16 -0
  184. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/Cargo.toml +27 -0
  185. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/devcontainer/devcontainer.json +21 -0
  186. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/devcontainer/rust.Dockerfile +16 -0
  187. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/rust-toolchain.toml +3 -0
  188. package/node_modules/@ykdz/template-builtin-presets/templates/shared/devcontainer/node-pnpm.Dockerfile +12 -0
  189. package/node_modules/@ykdz/template-builtin-presets/templates/shared/devcontainer/shellcheck.Dockerfile +3 -0
  190. package/node_modules/@ykdz/template-builtin-presets/templates/shared/editor-customization/capabilities.json +38 -0
  191. package/node_modules/@ykdz/template-builtin-presets/templates/shared/oxc/node/oxlint.config.ts +6 -0
  192. package/node_modules/@ykdz/template-builtin-presets/templates/shared/oxc/oxfmt.config.ts +3 -0
  193. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/shared/oxc/tsconfig.config.json +2 -2
  194. package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.app.json +25 -0
  195. package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.json +8 -0
  196. package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.node.json +30 -0
  197. package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.test.json +9 -0
  198. package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/typescript/run-vue-tsc.ts +12 -0
  199. package/node_modules/@ykdz/{template-builtin-source/templates/vue-hono-app → template-builtin-presets/templates/ts-lib}/.github/dependabot.yml +5 -0
  200. package/node_modules/@ykdz/template-builtin-presets/templates/ts-lib/.github/workflows/check.yml +19 -0
  201. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/ts-lib/src/index.ts +1 -3
  202. package/node_modules/@ykdz/template-builtin-presets/templates/ts-lib/tsconfig.json +13 -0
  203. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/readiness.ts +2 -2
  204. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/src/types.d.ts +1 -0
  205. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/tsconfig.json +26 -0
  206. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/turbo.json +1 -1
  207. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/drizzle.config.ts +17 -0
  208. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/scripts/prepare-database.ts +45 -0
  209. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/tsconfig.json +22 -0
  210. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/turbo.json +10 -0
  211. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/Dockerfile +20 -30
  212. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/index/+Page.telefunc.ts +0 -2
  213. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/index/+Page.vue +2 -1
  214. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/playwright.config.ts +1 -1
  215. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/scripts/check-standalone-deployment.ts +84 -22
  216. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/scripts/container-entrypoint.sh +33 -0
  217. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/test/e2e/app.spec.ts +3 -1
  218. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.app.json +34 -0
  219. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.json +9 -0
  220. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.node.json +31 -0
  221. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.test.json +11 -0
  222. package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/vike-app/web}/turbo.json +3 -2
  223. package/node_modules/@ykdz/{template-builtin-source/templates/vike-app → template-builtin-presets/templates/vue-app}/.github/dependabot.yml +5 -4
  224. package/node_modules/@ykdz/{template-builtin-source/templates/vue-hono-app/web → template-builtin-presets/templates/vue-app}/turbo.json +4 -3
  225. package/node_modules/@ykdz/template-builtin-presets/templates/vue-app/typescript/tsconfig.json +8 -0
  226. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/src/index.ts +3 -0
  227. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/src/server.ts +1 -1
  228. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/test/app.test.ts +1 -1
  229. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/tsconfig.build.json +9 -0
  230. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/tsconfig.json +25 -0
  231. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/turbo.json +1 -1
  232. package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/playwright.config.ts +1 -1
  233. package/node_modules/@ykdz/{template-builtin-source/templates/vike-app → template-builtin-presets/templates/vue-hono-app}/web/turbo.json +2 -2
  234. package/node_modules/@ykdz/template-core/dist/Cargo.toml +1 -1
  235. package/node_modules/@ykdz/template-core/dist/dependency-catalog.d.ts +8 -0
  236. package/node_modules/@ykdz/template-core/dist/dependency-catalog.js +48 -12
  237. package/node_modules/@ykdz/template-core/dist/devcontainer.d.ts +11 -3
  238. package/node_modules/@ykdz/template-core/dist/devcontainer.js +17 -3
  239. package/node_modules/@ykdz/template-core/dist/editor-customization.d.ts +5 -9
  240. package/node_modules/@ykdz/template-core/dist/editor-customization.js +8 -46
  241. package/node_modules/@ykdz/template-core/dist/module-graph.d.ts +64 -33
  242. package/node_modules/@ykdz/template-core/dist/module-graph.js +117 -135
  243. package/node_modules/@ykdz/template-core/dist/package-contribution.d.ts +41 -0
  244. package/node_modules/@ykdz/template-core/dist/package-contribution.js +24 -0
  245. package/node_modules/@ykdz/template-core/dist/pnpm-workspace.yaml +22 -8
  246. package/node_modules/@ykdz/template-core/dist/preset-definition.d.ts +42 -0
  247. package/node_modules/@ykdz/template-core/dist/preset-definition.js +1 -0
  248. package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.d.ts +33 -0
  249. package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.js +161 -0
  250. package/node_modules/@ykdz/template-core/dist/project-github.d.ts +17 -2
  251. package/node_modules/@ykdz/template-core/dist/project-github.js +87 -14
  252. package/node_modules/@ykdz/template-core/dist/project-linking-v2.d.ts +20 -0
  253. package/node_modules/@ykdz/template-core/dist/project-linking-v2.js +37 -0
  254. package/node_modules/@ykdz/template-core/dist/renderer.d.ts +40 -5
  255. package/node_modules/@ykdz/template-core/dist/renderer.js +115 -30
  256. package/node_modules/@ykdz/template-core/dist/template-boundary-check.d.ts +21 -15
  257. package/node_modules/@ykdz/template-core/dist/template-boundary-check.js +100 -50
  258. package/node_modules/@ykdz/template-core/dist/toolchain-baseline-update.d.ts +45 -0
  259. package/node_modules/@ykdz/template-core/dist/toolchain-baseline-update.js +27 -0
  260. package/node_modules/@ykdz/template-core/dist/toolchain-resolution.d.ts +1 -0
  261. package/node_modules/@ykdz/template-core/dist/toolchain-resolution.js +50 -52
  262. package/node_modules/@ykdz/template-core/package.json +10 -8
  263. package/node_modules/semver/LICENSE +15 -0
  264. package/node_modules/semver/README.md +680 -0
  265. package/node_modules/semver/bin/semver.js +195 -0
  266. package/node_modules/semver/classes/comparator.js +143 -0
  267. package/node_modules/semver/classes/index.js +7 -0
  268. package/node_modules/semver/classes/range.js +577 -0
  269. package/node_modules/semver/classes/semver.js +350 -0
  270. package/node_modules/semver/functions/clean.js +8 -0
  271. package/node_modules/semver/functions/cmp.js +54 -0
  272. package/node_modules/semver/functions/coerce.js +62 -0
  273. package/node_modules/semver/functions/compare-build.js +9 -0
  274. package/node_modules/semver/functions/compare-loose.js +5 -0
  275. package/node_modules/semver/functions/compare.js +7 -0
  276. package/node_modules/semver/functions/diff.js +60 -0
  277. package/node_modules/semver/functions/eq.js +5 -0
  278. package/node_modules/semver/functions/gt.js +5 -0
  279. package/node_modules/semver/functions/gte.js +5 -0
  280. package/node_modules/semver/functions/inc.js +21 -0
  281. package/node_modules/semver/functions/lt.js +5 -0
  282. package/node_modules/semver/functions/lte.js +5 -0
  283. package/node_modules/semver/functions/major.js +5 -0
  284. package/node_modules/semver/functions/minor.js +5 -0
  285. package/node_modules/semver/functions/neq.js +5 -0
  286. package/node_modules/semver/functions/parse.js +18 -0
  287. package/node_modules/semver/functions/patch.js +5 -0
  288. package/node_modules/semver/functions/prerelease.js +8 -0
  289. package/node_modules/semver/functions/rcompare.js +5 -0
  290. package/node_modules/semver/functions/rsort.js +5 -0
  291. package/node_modules/semver/functions/satisfies.js +12 -0
  292. package/node_modules/semver/functions/sort.js +5 -0
  293. package/node_modules/semver/functions/truncate.js +48 -0
  294. package/node_modules/semver/functions/valid.js +8 -0
  295. package/node_modules/semver/index.js +93 -0
  296. package/node_modules/semver/internal/constants.js +37 -0
  297. package/node_modules/semver/internal/debug.js +11 -0
  298. package/node_modules/semver/internal/identifiers.js +29 -0
  299. package/node_modules/semver/internal/lrucache.js +42 -0
  300. package/node_modules/semver/internal/parse-options.js +17 -0
  301. package/node_modules/semver/internal/re.js +223 -0
  302. package/node_modules/semver/package.json +78 -0
  303. package/node_modules/semver/preload.js +4 -0
  304. package/node_modules/semver/range.bnf +17 -0
  305. package/node_modules/semver/ranges/gtr.js +6 -0
  306. package/node_modules/semver/ranges/intersects.js +9 -0
  307. package/node_modules/semver/ranges/ltr.js +6 -0
  308. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  309. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  310. package/node_modules/semver/ranges/min-version.js +63 -0
  311. package/node_modules/semver/ranges/outside.js +82 -0
  312. package/node_modules/semver/ranges/simplify.js +49 -0
  313. package/node_modules/semver/ranges/subset.js +249 -0
  314. package/node_modules/semver/ranges/to-comparators.js +10 -0
  315. package/node_modules/semver/ranges/valid.js +13 -0
  316. package/node_modules/typescript/LICENSE.txt +55 -0
  317. package/node_modules/typescript/README.md +9 -0
  318. package/node_modules/typescript/bin/tsc6 +2 -0
  319. package/node_modules/typescript/lib/tsc.js +1 -0
  320. package/node_modules/typescript/lib/tsserverlibrary.d.ts +2 -0
  321. package/node_modules/typescript/lib/tsserverlibrary.js +1 -0
  322. package/node_modules/typescript/lib/typescript.d.ts +2 -0
  323. package/node_modules/typescript/lib/typescript.js +1 -0
  324. package/node_modules/typescript/package.json +39 -0
  325. package/node_modules/valibot/LICENSE.md +9 -0
  326. package/node_modules/valibot/README.md +94 -0
  327. package/node_modules/valibot/dist/index.cjs +7974 -0
  328. package/node_modules/valibot/dist/index.d.cts +16184 -0
  329. package/node_modules/valibot/dist/index.d.mts +16184 -0
  330. package/node_modules/valibot/dist/index.min.cjs +2 -0
  331. package/node_modules/valibot/dist/index.min.mjs +2 -0
  332. package/node_modules/valibot/dist/index.mjs +7663 -0
  333. package/node_modules/valibot/package.json +79 -0
  334. package/package.json +18 -12
  335. package/LICENSE +0 -21
  336. package/node_modules/@ykdz/template-builtin-source/dist/src/index.d.ts +0 -22
  337. package/node_modules/@ykdz/template-builtin-source/dist/src/index.js +0 -103
  338. package/node_modules/@ykdz/template-builtin-source/dist/templates/projection-plans.d.ts +0 -7
  339. package/node_modules/@ykdz/template-builtin-source/dist/templates/projection-plans.js +0 -98
  340. package/node_modules/@ykdz/template-builtin-source/dist/templates/registry.d.ts +0 -2
  341. package/node_modules/@ykdz/template-builtin-source/dist/templates/registry.js +0 -15
  342. package/node_modules/@ykdz/template-builtin-source/dist/templates/rust-bin/projection.d.ts +0 -9
  343. package/node_modules/@ykdz/template-builtin-source/dist/templates/rust-bin/projection.js +0 -105
  344. package/node_modules/@ykdz/template-builtin-source/dist/templates/ts-lib/projection.d.ts +0 -6
  345. package/node_modules/@ykdz/template-builtin-source/dist/templates/ts-lib/projection.js +0 -197
  346. package/node_modules/@ykdz/template-builtin-source/dist/templates/vike-app/projection.d.ts +0 -5
  347. package/node_modules/@ykdz/template-builtin-source/dist/templates/vike-app/projection.js +0 -71
  348. package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-app/projection.d.ts +0 -6
  349. package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-app/projection.js +0 -281
  350. package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-hono-app/projection.d.ts +0 -8
  351. package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-hono-app/projection.js +0 -154
  352. package/node_modules/@ykdz/template-builtin-source/package.json +0 -93
  353. package/node_modules/@ykdz/template-builtin-source/templates/preset-source.json +0 -524
  354. package/node_modules/@ykdz/template-builtin-source/templates/shared/devcontainer/node-pnpm.Dockerfile +0 -6
  355. package/node_modules/@ykdz/template-builtin-source/templates/shared/editor-customization/capabilities.json +0 -56
  356. package/node_modules/@ykdz/template-builtin-source/templates/shared/oxc/node/oxlint.config.ts +0 -34
  357. package/node_modules/@ykdz/template-builtin-source/templates/shared/oxc/oxfmt.config.ts +0 -8
  358. package/node_modules/@ykdz/template-builtin-source/templates/shared/oxc/vue/oxlint.config.ts +0 -36
  359. package/node_modules/@ykdz/template-builtin-source/templates/vike-app/.github/workflows/check.yml +0 -22
  360. package/node_modules/@ykdz/template-builtin-source/templates/vike-app/db/drizzle.config.ts +0 -10
  361. package/node_modules/@ykdz/template-builtin-source/templates/vike-app/web/scripts/container-entrypoint.sh +0 -52
  362. package/node_modules/@ykdz/template-builtin-source/templates/vike-app/web/scripts/prepare-database.sh +0 -6
  363. package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/api/src/index.ts +0 -3
  364. package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/src/main.ts +0 -8
  365. package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/src/stores/counter.ts +0 -12
  366. package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/src/style.css +0 -1
  367. package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/test/app.test.ts +0 -14
  368. package/node_modules/@ykdz/template-core/dist/declarations.d.ts +0 -2
  369. package/node_modules/@ykdz/template-core/dist/declarations.js +0 -1
  370. package/node_modules/@ykdz/template-core/dist/generated-scenarios.d.ts +0 -76
  371. package/node_modules/@ykdz/template-core/dist/generated-scenarios.js +0 -658
  372. package/node_modules/@ykdz/template-core/dist/generation-context.d.ts +0 -23
  373. package/node_modules/@ykdz/template-core/dist/generation-context.js +0 -20
  374. package/node_modules/@ykdz/template-core/dist/next-step-instructions.d.ts +0 -30
  375. package/node_modules/@ykdz/template-core/dist/next-step-instructions.js +0 -181
  376. package/node_modules/@ykdz/template-core/dist/package-addition-support.d.ts +0 -6
  377. package/node_modules/@ykdz/template-core/dist/package-addition-support.js +0 -2
  378. package/node_modules/@ykdz/template-core/dist/package-addition.d.ts +0 -12
  379. package/node_modules/@ykdz/template-core/dist/package-addition.js +0 -665
  380. package/node_modules/@ykdz/template-core/dist/package-linking.d.ts +0 -75
  381. package/node_modules/@ykdz/template-core/dist/package-linking.js +0 -157
  382. package/node_modules/@ykdz/template-core/dist/preset-projection.d.ts +0 -68
  383. package/node_modules/@ykdz/template-core/dist/preset-projection.js +0 -8
  384. package/node_modules/@ykdz/template-core/dist/preset-source.d.ts +0 -14
  385. package/node_modules/@ykdz/template-core/dist/preset-source.js +0 -294
  386. package/node_modules/@ykdz/template-core/dist/projection-capabilities.d.ts +0 -31
  387. package/node_modules/@ykdz/template-core/dist/projection-capabilities.js +0 -2170
  388. package/node_modules/@ykdz/template-core/dist/runtime-paths.d.ts +0 -1
  389. package/node_modules/@ykdz/template-core/dist/runtime-paths.js +0 -13
  390. package/node_modules/@ykdz/template-shared/dist/index.d.ts +0 -645
  391. package/node_modules/@ykdz/template-shared/dist/index.js +0 -1408
  392. package/node_modules/@ykdz/template-shared/package.json +0 -37
  393. /package/node_modules/@ykdz/{template-builtin-source/templates/vue-app/.github/workflows/check.yml → template-builtin-presets/templates/foundation/.github/workflows/check-playwright.yml} +0 -0
  394. /package/node_modules/@ykdz/{template-builtin-source/templates/rust-bin/.github/workflows/check.yml → template-builtin-presets/templates/foundation/.github/workflows/check-rust.yml} +0 -0
  395. /package/node_modules/@ykdz/{template-builtin-source/templates/ts-lib → template-builtin-presets/templates/foundation}/.github/workflows/check.yml +0 -0
  396. /package/node_modules/@ykdz/{template-builtin-source/templates/shared → template-builtin-presets/templates/foundation/rust}/devcontainer/rust.Dockerfile +0 -0
  397. /package/node_modules/@ykdz/{template-builtin-source/templates/rust-bin → template-builtin-presets/templates/foundation/rust}/rust-toolchain.toml +0 -0
  398. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/rustfmt.toml +0 -0
  399. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/src/main.rs +0 -0
  400. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/turbo.json +0 -0
  401. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/shared/devcontainer/browser-test.Dockerfile +0 -0
  402. /package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/src/main.ts +0 -0
  403. /package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/src/stores/counter.ts +0 -0
  404. /package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/src/style.css +0 -0
  405. /package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/test/app.test.ts +0 -0
  406. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/ts-lib/src/name-schema.ts +0 -0
  407. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/ts-lib/turbo.json +0 -0
  408. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/scripts/seed-example.ts +0 -0
  409. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/db.ts +0 -0
  410. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/index.ts +0 -0
  411. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/queries/todos.ts +0 -0
  412. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/schema.ts +0 -0
  413. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/seed/example.ts +0 -0
  414. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/test/todos.test.ts +0 -0
  415. /package/node_modules/@ykdz/{template-builtin-source/templates/vike-app/db → template-builtin-presets/templates/vike-app/db-migrations}/drizzle/migrations/20260709120325_old_captain_flint/migration.sql +0 -0
  416. /package/node_modules/@ykdz/{template-builtin-source/templates/vike-app/db → template-builtin-presets/templates/vike-app/db-migrations}/drizzle/migrations/20260709120325_old_captain_flint/snapshot.json +0 -0
  417. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/+server.ts +0 -0
  418. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/.env.example +0 -0
  419. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/Dockerfile.dockerignore +0 -0
  420. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/assets/logo.svg +0 -0
  421. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/components/CounterButton.vue +0 -0
  422. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/components/PageShell.vue +0 -0
  423. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/+Head.vue +0 -0
  424. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/+Layout.vue +0 -0
  425. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/+config.ts +0 -0
  426. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/tailwind.css +0 -0
  427. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/scripts/run-playwright.ts +0 -0
  428. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/server/api.ts +0 -0
  429. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/server/app.ts +0 -0
  430. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/types/env.d.ts +0 -0
  431. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/types/global.d.ts +0 -0
  432. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/vite.config.ts +0 -0
  433. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/vitest.config.ts +0 -0
  434. /package/node_modules/@ykdz/{template-builtin-source/templates/vue-hono-app → template-builtin-presets/templates/vue-app}/.github/workflows/check.yml +0 -0
  435. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/env.d.ts +0 -0
  436. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/index.html +0 -0
  437. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/playwright.config.ts +0 -0
  438. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/scripts/run-playwright.ts +0 -0
  439. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/src/App.vue +0 -0
  440. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/test/e2e/app.spec.ts +0 -0
  441. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/vite.config.ts +0 -0
  442. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/vitest.config.ts +0 -0
  443. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/src/runtime.ts +0 -0
  444. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/vitest.config.ts +0 -0
  445. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/env.d.ts +0 -0
  446. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/index.html +0 -0
  447. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/scripts/run-playwright.ts +0 -0
  448. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/src/App.vue +0 -0
  449. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/src/api.ts +0 -0
  450. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/test/e2e/app.spec.ts +0 -0
  451. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/vite.config.ts +0 -0
  452. /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/vitest.config.ts +0 -0
@@ -1,12 +1,46 @@
1
- import { readFile } from "node:fs/promises";
1
+ import { readdir, readFile, stat } from "node:fs/promises";
2
2
  import path from "node:path";
3
- import ts from "@typescript/typescript6";
3
+ import ts from "typescript";
4
+ import { resolveTemplateSource } from "./renderer.js";
4
5
  const inlineOperationKinds = new Set([
5
6
  "writeText",
6
7
  "writeJson",
7
8
  "mergeJson",
8
9
  ]);
9
- export const templateBoundaryDebtAllowlist = [];
10
+ async function listTemplateSourceFiles(root) {
11
+ const entries = await readdir(root, { withFileTypes: true });
12
+ const files = [];
13
+ for (const entry of entries) {
14
+ const entryPath = path.join(root, entry.name);
15
+ if (entry.isDirectory()) {
16
+ files.push(...(await listTemplateSourceFiles(entryPath)));
17
+ continue;
18
+ }
19
+ if (!entry.isFile())
20
+ continue;
21
+ await readFile(entryPath);
22
+ files.push(path.resolve(entryPath));
23
+ }
24
+ return files;
25
+ }
26
+ /**
27
+ * Reads each registered Template Source context before any plan is inspected.
28
+ * The resulting file sets are an independent proof consumed by the boundary check.
29
+ */
30
+ export async function checkTemplateSourceContexts(contexts) {
31
+ return await Promise.all(contexts.map(async (context) => {
32
+ const root = path.resolve(context.root);
33
+ const rootStats = await stat(root);
34
+ if (!rootStats.isDirectory()) {
35
+ throw new Error(`Template Source context ${context.name} root is not a directory: ${root}`);
36
+ }
37
+ return {
38
+ ...context,
39
+ root,
40
+ checkedFiles: await listTemplateSourceFiles(root),
41
+ };
42
+ }));
43
+ }
10
44
  function operationTarget(operation) {
11
45
  if ("to" in operation) {
12
46
  return operation.to;
@@ -464,33 +498,46 @@ function isAllowedStructuralMachineDeclaration(sourceFile, operation) {
464
498
  return value !== undefined && isDevelopmentContainerPlanValue(value);
465
499
  }));
466
500
  }
467
- function allowlistKey(preset, generatedPath, owningFunction) {
468
- return `${preset}\0${owningFunction}\0${generatedPath}`;
469
- }
470
- function resolveOperationSourceRoot(projection, sourceRootName) {
471
- if (sourceRootName === undefined) {
472
- return projection.plan.sourceRoot;
473
- }
474
- return projection.plan.sourceRoots?.[sourceRootName];
475
- }
476
501
  function sourceBackedOperationSourceFiles(projection, operation) {
477
502
  if (operation.kind === "writeTextFromFragments") {
478
503
  return operation.fragments.map((fragment) => {
479
- const root = resolveOperationSourceRoot(projection, fragment.sourceRoot);
480
- return root === undefined
481
- ? `missing-source-root:${fragment.sourceRoot}`
482
- : path.resolve(root, fragment.from);
504
+ try {
505
+ return resolveTemplateSource(fragment.source, fragment.from);
506
+ }
507
+ catch (error) {
508
+ return `invalid-source:${error instanceof Error ? error.message : String(error)}`;
509
+ }
483
510
  });
484
511
  }
485
- const root = resolveOperationSourceRoot(projection, operation.sourceRoot);
486
- return [
487
- root === undefined
488
- ? `missing-source-root:${operation.sourceRoot}`
489
- : path.resolve(root, operation.from),
490
- ];
512
+ try {
513
+ return [resolveTemplateSource(operation.source, operation.from)];
514
+ }
515
+ catch (error) {
516
+ return [
517
+ `invalid-source:${error instanceof Error ? error.message : String(error)}`,
518
+ ];
519
+ }
491
520
  }
492
- function operationUsesManifestReferencedSource(projection, operation, manifestReferencedSourceFiles) {
493
- return sourceBackedOperationSourceFiles(projection, operation).every((sourceFile) => manifestReferencedSourceFiles.has(sourceFile));
521
+ async function operationUsesCheckedTemplateSource(projection, operation, templateSourceContexts, manifestReferencedSourceFiles) {
522
+ const sourceFiles = sourceBackedOperationSourceFiles(projection, operation);
523
+ const results = await Promise.all(sourceFiles.map(async (sourceFile) => {
524
+ const context = templateSourceContexts.find((candidate) => {
525
+ const root = path.resolve(candidate.root);
526
+ return (sourceFile.startsWith(`${root}${path.sep}`) || sourceFile === root);
527
+ });
528
+ if (context === undefined) {
529
+ return manifestReferencedSourceFiles.has(sourceFile);
530
+ }
531
+ const relativePath = path.relative(path.resolve(context.root), sourceFile);
532
+ if (relativePath.length === 0 ||
533
+ relativePath === ".." ||
534
+ relativePath.startsWith(`..${path.sep}`) ||
535
+ path.isAbsolute(relativePath)) {
536
+ return false;
537
+ }
538
+ return context.checkedFiles?.includes(sourceFile) ?? false;
539
+ }));
540
+ return results.every(Boolean);
494
541
  }
495
542
  function pushSourceBackedOperationViolations(options) {
496
543
  const generatedPath = operationTarget(options.operation);
@@ -504,26 +551,31 @@ function pushSourceBackedOperationViolations(options) {
504
551
  generatedPath,
505
552
  owningFunction,
506
553
  operationKind: options.operation.kind,
507
- sourceFilePath: options.projection.sourceFilePath,
554
+ sourceFilePath: options.operation.provenance?.plannerSourceFile ??
555
+ options.projection.sourceFilePath,
556
+ ...(options.operation.provenance === undefined &&
557
+ options.projection.definitionName === undefined
558
+ ? {}
559
+ : {
560
+ definitionName: options.operation.provenance?.definitionName ??
561
+ options.projection.definitionName,
562
+ planningContribution: options.operation.provenance?.planningContribution ??
563
+ options.projection.planningContribution,
564
+ ownershipRule: options.operation.provenance?.ownershipRule ??
565
+ "source-backed protected output must use declared, contained Template Source",
566
+ }),
508
567
  });
509
568
  }
510
569
  }
511
- export async function checkTemplateSourceBoundary({ projections, manifestReferencedSourceFiles = [], allowlist = [], }) {
570
+ export async function checkTemplateSourceBoundary({ projections, templateSourceContexts = [], manifestReferencedSourceFiles = [], }) {
512
571
  const manifestReferencedSourceFileSet = new Set(manifestReferencedSourceFiles.map((sourceFile) => path.resolve(sourceFile)));
513
- const allowed = new Map(allowlist.map((entry) => [
514
- allowlistKey(entry.preset, entry.generatedPath, entry.owningFunction),
515
- entry.reason,
516
- ]));
517
- const checkedPresets = new Set(projections.map((projection) => projection.name));
518
- const usedAllowlistKeys = new Set();
519
572
  const violations = [];
520
- const allowlistedDebt = [];
521
573
  for (const projection of projections) {
522
574
  const sourceText = await readFile(projection.sourceFilePath, "utf8");
523
575
  const sourceFile = ts.createSourceFile(projection.sourceFilePath, sourceText, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
524
576
  for (const operation of projection.plan.operations) {
525
577
  if (isProtectedSourceBackedOperation(operation)) {
526
- if (!operationUsesManifestReferencedSource(projection, operation, manifestReferencedSourceFileSet)) {
578
+ if (!(await operationUsesCheckedTemplateSource(projection, operation, templateSourceContexts, manifestReferencedSourceFileSet))) {
527
579
  pushSourceBackedOperationViolations({
528
580
  projection,
529
581
  sourceFile,
@@ -549,28 +601,26 @@ export async function checkTemplateSourceBoundary({ projections, manifestReferen
549
601
  generatedPath: operation.to,
550
602
  owningFunction,
551
603
  operationKind: operation.kind,
552
- sourceFilePath: projection.sourceFilePath,
604
+ sourceFilePath: operation.provenance?.plannerSourceFile ??
605
+ projection.sourceFilePath,
606
+ ...(operation.provenance === undefined &&
607
+ projection.definitionName === undefined
608
+ ? {}
609
+ : {
610
+ definitionName: operation.provenance?.definitionName ??
611
+ projection.definitionName,
612
+ planningContribution: operation.provenance?.planningContribution ??
613
+ projection.planningContribution,
614
+ ownershipRule: operation.provenance?.ownershipRule ??
615
+ "protected generated output must be Template Source-backed",
616
+ }),
553
617
  };
554
- const allowlistReason = allowed.get(allowlistKey(projection.name, operation.to, owningFunction));
555
- if (allowlistReason) {
556
- usedAllowlistKeys.add(allowlistKey(projection.name, operation.to, owningFunction));
557
- allowlistedDebt.push({ ...diagnostic, allowlistReason });
558
- continue;
559
- }
560
618
  violations.push(diagnostic);
561
619
  }
562
620
  }
563
621
  }
564
- const unusedAllowlistEntries = allowlist.filter((entry) => {
565
- if (!checkedPresets.has(entry.preset)) {
566
- return false;
567
- }
568
- return !usedAllowlistKeys.has(allowlistKey(entry.preset, entry.generatedPath, entry.owningFunction));
569
- });
570
622
  return {
571
- ok: violations.length === 0 && unusedAllowlistEntries.length === 0,
623
+ ok: violations.length === 0,
572
624
  violations,
573
- allowlistedDebt,
574
- unusedAllowlistEntries,
575
625
  };
576
626
  }
@@ -0,0 +1,45 @@
1
+ export type ToolchainBaseline = {
2
+ readonly nodeLtsMajor: string;
3
+ readonly packageManagerPin: `pnpm@${string}`;
4
+ };
5
+ export type ToolchainPullRequestCandidate = {
6
+ readonly kind: "absent";
7
+ } | {
8
+ readonly kind: "open";
9
+ readonly pullRequestNumber: number;
10
+ };
11
+ export type ToolchainRemoteBranch = {
12
+ readonly kind: "absent";
13
+ } | {
14
+ readonly kind: "present";
15
+ readonly sha: string;
16
+ };
17
+ export type ToolchainUpdateCandidate = {
18
+ readonly pullRequest: ToolchainPullRequestCandidate;
19
+ readonly remoteBranch: ToolchainRemoteBranch;
20
+ };
21
+ export type ToolchainBaselineUpdatePlan = {
22
+ readonly kind: "no-drift";
23
+ } | {
24
+ readonly kind: "cleanup-stale";
25
+ readonly pullRequestNumber?: number;
26
+ readonly deleteBranch: true;
27
+ } | {
28
+ readonly kind: "update";
29
+ readonly mode: "create";
30
+ readonly desired: ToolchainBaseline;
31
+ } | {
32
+ readonly kind: "update";
33
+ readonly mode: "replace";
34
+ readonly pullRequestNumber: number;
35
+ readonly desired: ToolchainBaseline;
36
+ };
37
+ type PlanToolchainBaselineUpdateOptions = {
38
+ readonly current: ToolchainBaseline & {
39
+ readonly materialConsistent?: boolean;
40
+ };
41
+ readonly desired: ToolchainBaseline;
42
+ readonly candidate: ToolchainUpdateCandidate;
43
+ };
44
+ export declare function planToolchainBaselineUpdate(options: PlanToolchainBaselineUpdateOptions): ToolchainBaselineUpdatePlan;
45
+ export {};
@@ -0,0 +1,27 @@
1
+ export function planToolchainBaselineUpdate(options) {
2
+ const hasDrift = options.current.materialConsistent === false ||
3
+ options.current.nodeLtsMajor !== options.desired.nodeLtsMajor ||
4
+ options.current.packageManagerPin !== options.desired.packageManagerPin;
5
+ if (!hasDrift) {
6
+ return options.candidate.pullRequest.kind === "absent" &&
7
+ options.candidate.remoteBranch.kind === "absent"
8
+ ? { kind: "no-drift" }
9
+ : {
10
+ kind: "cleanup-stale",
11
+ ...(options.candidate.pullRequest.kind === "open"
12
+ ? {
13
+ pullRequestNumber: options.candidate.pullRequest.pullRequestNumber,
14
+ }
15
+ : {}),
16
+ deleteBranch: true,
17
+ };
18
+ }
19
+ return options.candidate.pullRequest.kind === "absent"
20
+ ? { kind: "update", mode: "create", desired: options.desired }
21
+ : {
22
+ kind: "update",
23
+ mode: "replace",
24
+ pullRequestNumber: options.candidate.pullRequest.pullRequestNumber,
25
+ desired: options.desired,
26
+ };
27
+ }
@@ -18,6 +18,7 @@ export type ResolveToolchainVersionsOptions = {
18
18
  readonly fetchJson?: ((url: string) => Promise<unknown>) | undefined;
19
19
  readonly nodeReleaseIndexUrl?: string | undefined;
20
20
  readonly pnpmRegistryUrl?: string | undefined;
21
+ readonly now?: Date | string | undefined;
21
22
  };
22
23
  export declare const nodeReleaseIndexUrl = "https://nodejs.org/dist/index.json";
23
24
  export declare const pnpmRegistryUrl = "https://registry.npmjs.org/pnpm";
@@ -2,7 +2,7 @@ export const nodeReleaseIndexUrl = "https://nodejs.org/dist/index.json";
2
2
  export const pnpmRegistryUrl = "https://registry.npmjs.org/pnpm";
3
3
  const bundledFallbackToolchain = {
4
4
  nodeLtsMajor: nodeLtsMajor("24"),
5
- packageManagerPin: packageManagerPin("10.34.4"),
5
+ packageManagerPin: packageManagerPin("11.11.0"),
6
6
  };
7
7
  export async function resolveToolchainVersions(options = {}) {
8
8
  const source = options.source ?? "online";
@@ -14,7 +14,8 @@ export async function resolveToolchainVersions(options = {}) {
14
14
  const nodeReleases = parseNodeReleaseIndex(await fetchJson(options.nodeReleaseIndexUrl ?? nodeReleaseIndexUrl));
15
15
  const nodeMajor = latestLtsMajor(nodeReleases);
16
16
  const pnpmMetadata = parsePnpmRegistryMetadata(await fetchJson(options.pnpmRegistryUrl ?? pnpmRegistryUrl));
17
- const pnpmVersion = latestCompatiblePnpmVersion(pnpmMetadata, Number(nodeMajor.value));
17
+ const nodeVersion = latestLtsVersion(nodeReleases, nodeMajor);
18
+ const pnpmVersion = latestCompatiblePnpmVersion(pnpmMetadata, nodeVersion, instant(options.now ?? new Date()));
18
19
  return {
19
20
  nodeLtsMajor: nodeMajor,
20
21
  packageManagerPin: packageManagerPin(pnpmVersion),
@@ -31,19 +32,20 @@ export async function resolveToolchainVersions(options = {}) {
31
32
  }
32
33
  export async function checkOnlineToolchainResolutionContract(options = {}) {
33
34
  const fetchJson = options.fetchJson ?? fetchOfficialJson;
34
- const nodeMajor = await contractPhase("Node source parsing", async () => {
35
- const nodeReleases = parseNodeReleaseIndex(await fetchJson(nodeReleaseIndexUrl));
36
- return latestLtsMajor(nodeReleases);
35
+ const nodeSource = await contractPhase("Node source parsing", async () => {
36
+ const releases = parseNodeReleaseIndex(await fetchJson(nodeReleaseIndexUrl));
37
+ const major = latestLtsMajor(releases);
38
+ return { major, version: latestLtsVersion(releases, major) };
37
39
  });
38
40
  const pnpmMetadata = await contractPhase("pnpm source parsing", async () => parsePnpmRegistryMetadata(await fetchJson(pnpmRegistryUrl)));
39
- const pnpmVersion = await contractPhase("compatibility selection", async () => latestCompatiblePnpmVersion(pnpmMetadata, Number(nodeMajor.value)));
41
+ const pnpmVersion = await contractPhase("compatibility selection", async () => latestCompatiblePnpmVersion(pnpmMetadata, nodeSource.version));
40
42
  return {
41
- nodeLtsMajor: nodeMajor,
43
+ nodeLtsMajor: nodeSource.major,
42
44
  packageManagerPin: packageManagerPin(pnpmVersion),
43
45
  diagnostics: [
44
- `Node source parsing succeeded; latest LTS major is ${nodeMajor.value}.`,
46
+ `Node source parsing succeeded; latest LTS major is ${nodeSource.major.value}.`,
45
47
  `pnpm source parsing succeeded; latest compatible pnpm release is ${pnpmVersion}.`,
46
- `Compatibility selection succeeded for pnpm@${pnpmVersion} on Node ${nodeMajor.value}.`,
48
+ `Compatibility selection succeeded for pnpm@${pnpmVersion} on Node ${nodeSource.major.value}.`,
47
49
  ],
48
50
  };
49
51
  }
@@ -113,9 +115,21 @@ function latestLtsMajor(releases) {
113
115
  }
114
116
  return nodeLtsMajor(String(Math.max(...majors)));
115
117
  }
118
+ function latestLtsVersion(releases, major) {
119
+ const versions = releases
120
+ .filter((release) => release.lts !== false)
121
+ .map((release) => release.version.replace(/^v/, ""))
122
+ .filter((version) => valid(version) !== null && version.startsWith(`${major.value}.`))
123
+ .toSorted(compare);
124
+ const latest = versions.at(-1);
125
+ if (!latest) {
126
+ throw new Error(`Node release index did not contain Node ${major.value}`);
127
+ }
128
+ return latest;
129
+ }
116
130
  function parsePnpmRegistryMetadata(value) {
117
- if (!isRecord(value) || !isRecord(value.versions)) {
118
- throw new Error("pnpm registry metadata is missing versions");
131
+ if (!isRecord(value) || !isRecord(value.versions) || !isRecord(value.time)) {
132
+ throw new Error("pnpm registry metadata is missing versions or time");
119
133
  }
120
134
  const versions = {};
121
135
  for (const [version, metadata] of Object.entries(value.versions)) {
@@ -131,61 +145,45 @@ function parsePnpmRegistryMetadata(value) {
131
145
  }
132
146
  : {};
133
147
  }
134
- return { versions };
148
+ const time = Object.fromEntries(Object.entries(value.time).filter((entry) => typeof entry[1] === "string"));
149
+ return { time, versions };
135
150
  }
136
- function latestCompatiblePnpmVersion(metadata, nodeMajor) {
151
+ function latestCompatiblePnpmVersion(metadata, nodeVersion, now = Date.now()) {
137
152
  const candidates = Object.entries(metadata.versions)
138
- .filter(([version]) => /^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(version))
139
- .filter(([, packageMetadata]) => nodeSatisfiesRange(nodeMajor, packageMetadata.engines?.node))
153
+ .filter(([version]) => /^\d+\.\d+\.\d+$/.test(version))
154
+ .filter(([, packageMetadata]) => nodeSatisfiesRange(nodeVersion, packageMetadata.engines?.node))
155
+ .filter(([version]) => isMatureRelease(metadata.time[version], now))
140
156
  .map(([version]) => version)
141
- .toSorted(compareSemver);
157
+ .toSorted(compare);
142
158
  const latest = candidates.at(-1);
143
159
  if (!latest) {
144
- throw new Error(`pnpm registry metadata did not contain a release compatible with Node ${nodeMajor}`);
160
+ throw new Error(`pnpm registry metadata did not contain a release compatible with Node ${nodeVersion}`);
145
161
  }
146
162
  return latest;
147
163
  }
148
- function nodeSatisfiesRange(nodeMajor, range) {
149
- if (!range) {
150
- return true;
151
- }
152
- return range
153
- .split(/\s+/)
154
- .filter(Boolean)
155
- .every((comparator) => nodeSatisfiesComparator(nodeMajor, comparator));
156
- }
157
- function nodeSatisfiesComparator(nodeMajor, comparator) {
158
- const match = comparator.match(/^(>=|>|<=|<|=)?(\d+)(?:\.\d+){0,2}$/);
159
- if (!match) {
164
+ const pnpmMaturityWindowMilliseconds = 24 * 60 * 60 * 1_000;
165
+ function isMatureRelease(publishedAt, now) {
166
+ if (publishedAt === undefined) {
160
167
  return false;
161
168
  }
162
- const operator = match[1] ?? "=";
163
- const major = Number(match[2]);
164
- if (operator === ">=") {
165
- return nodeMajor >= major;
166
- }
167
- if (operator === ">") {
168
- return nodeMajor > major;
169
- }
170
- if (operator === "<=") {
171
- return nodeMajor <= major;
172
- }
173
- if (operator === "<") {
174
- return nodeMajor < major;
169
+ const publishedAtMilliseconds = Date.parse(publishedAt);
170
+ return (Number.isFinite(publishedAtMilliseconds) &&
171
+ now - publishedAtMilliseconds >= pnpmMaturityWindowMilliseconds);
172
+ }
173
+ function instant(value) {
174
+ const milliseconds = value instanceof Date ? value.getTime() : Date.parse(value);
175
+ if (!Number.isFinite(milliseconds)) {
176
+ throw new Error(`Invalid resolution time: ${String(value)}`);
175
177
  }
176
- return nodeMajor === major;
178
+ return milliseconds;
177
179
  }
178
- function compareSemver(left, right) {
179
- const leftParts = left.split(/[.-]/).slice(0, 3).map(Number);
180
- const rightParts = right.split(/[.-]/).slice(0, 3).map(Number);
181
- for (let index = 0; index < 3; index += 1) {
182
- const difference = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);
183
- if (difference !== 0) {
184
- return difference;
185
- }
180
+ function nodeSatisfiesRange(nodeVersion, range) {
181
+ if (!range) {
182
+ return true;
186
183
  }
187
- return left.localeCompare(right);
184
+ return satisfies(nodeVersion, range, { includePrerelease: false });
188
185
  }
189
186
  function isRecord(value) {
190
187
  return typeof value === "object" && value !== null && !Array.isArray(value);
191
188
  }
189
+ import { compare, satisfies, valid } from "semver";
@@ -8,10 +8,6 @@
8
8
  "type": "module",
9
9
  "exports": {
10
10
  "./*": {
11
- "source": {
12
- "types": "./src/*.ts",
13
- "default": "./src/*.ts"
14
- },
15
11
  "types": "./dist/*.d.ts",
16
12
  "default": "./dist/*.js"
17
13
  }
@@ -25,16 +21,22 @@
25
21
  "typecheck": "tsc -p tsconfig.json --noEmit --pretty false"
26
22
  },
27
23
  "dependencies": {
28
- "@typescript/typescript6": "catalog:",
29
- "@ykdz/template-shared": "workspace:*",
24
+ "semver": "catalog:",
25
+ "typescript": "catalog:",
30
26
  "valibot": "catalog:"
31
27
  },
32
28
  "devDependencies": {
33
29
  "@types/node": "catalog:",
34
- "@typescript/native": "catalog:",
30
+ "@types/semver": "catalog:",
35
31
  "execa": "catalog:",
36
32
  "oxfmt": "catalog:",
37
33
  "oxlint": "catalog:",
38
- "oxlint-tsgolint": "catalog:"
34
+ "oxlint-tsgolint": "catalog:",
35
+ "typescript-7": "catalog:"
36
+ },
37
+ "turbo": {
38
+ "tags": [
39
+ "template-core"
40
+ ]
39
41
  }
40
42
  }
@@ -0,0 +1,15 @@
1
+ The ISC License
2
+
3
+ Copyright (c) Isaac Z. Schlueter and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
+ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.