@ykdz/template 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +4 -575
- package/dist/main.d.ts +1 -0
- package/dist/main.js +370 -0
- package/node_modules/@typescript/old/LICENSE.txt +55 -0
- package/node_modules/@typescript/old/README.md +50 -0
- package/node_modules/@typescript/old/SECURITY.md +39 -0
- package/node_modules/@typescript/old/ThirdPartyNoticeText.txt +193 -0
- package/node_modules/@typescript/old/bin/tsc +2 -0
- package/node_modules/@typescript/old/bin/tsserver +2 -0
- package/node_modules/@typescript/old/lib/_tsc.js +134465 -0
- package/node_modules/@typescript/old/lib/_tsserver.js +659 -0
- package/node_modules/@typescript/old/lib/_typingsInstaller.js +222 -0
- package/node_modules/@typescript/old/lib/cs/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/de/diagnosticMessages.generated.json +2125 -0
- package/node_modules/@typescript/old/lib/es/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/fr/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/it/diagnosticMessages.generated.json +2125 -0
- package/node_modules/@typescript/old/lib/ja/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/ko/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/lib.d.ts +20 -0
- package/node_modules/@typescript/old/lib/lib.decorators.d.ts +382 -0
- package/node_modules/@typescript/old/lib/lib.decorators.legacy.d.ts +20 -0
- package/node_modules/@typescript/old/lib/lib.dom.asynciterable.d.ts +18 -0
- package/node_modules/@typescript/old/lib/lib.dom.d.ts +45125 -0
- package/node_modules/@typescript/old/lib/lib.dom.iterable.d.ts +18 -0
- package/node_modules/@typescript/old/lib/lib.es2015.collection.d.ts +150 -0
- package/node_modules/@typescript/old/lib/lib.es2015.core.d.ts +595 -0
- package/node_modules/@typescript/old/lib/lib.es2015.d.ts +26 -0
- package/node_modules/@typescript/old/lib/lib.es2015.generator.d.ts +75 -0
- package/node_modules/@typescript/old/lib/lib.es2015.iterable.d.ts +603 -0
- package/node_modules/@typescript/old/lib/lib.es2015.promise.d.ts +79 -0
- package/node_modules/@typescript/old/lib/lib.es2015.proxy.d.ts +126 -0
- package/node_modules/@typescript/old/lib/lib.es2015.reflect.d.ts +142 -0
- package/node_modules/@typescript/old/lib/lib.es2015.symbol.d.ts +44 -0
- package/node_modules/@typescript/old/lib/lib.es2015.symbol.wellknown.d.ts +324 -0
- package/node_modules/@typescript/old/lib/lib.es2016.array.include.d.ts +114 -0
- package/node_modules/@typescript/old/lib/lib.es2016.d.ts +19 -0
- package/node_modules/@typescript/old/lib/lib.es2016.full.d.ts +21 -0
- package/node_modules/@typescript/old/lib/lib.es2016.intl.d.ts +29 -0
- package/node_modules/@typescript/old/lib/lib.es2017.arraybuffer.d.ts +19 -0
- package/node_modules/@typescript/old/lib/lib.es2017.d.ts +24 -0
- package/node_modules/@typescript/old/lib/lib.es2017.date.d.ts +29 -0
- package/node_modules/@typescript/old/lib/lib.es2017.full.d.ts +21 -0
- package/node_modules/@typescript/old/lib/lib.es2017.intl.d.ts +42 -0
- package/node_modules/@typescript/old/lib/lib.es2017.object.d.ts +47 -0
- package/node_modules/@typescript/old/lib/lib.es2017.sharedmemory.d.ts +133 -0
- package/node_modules/@typescript/old/lib/lib.es2017.string.d.ts +43 -0
- package/node_modules/@typescript/old/lib/lib.es2017.typedarrays.d.ts +51 -0
- package/node_modules/@typescript/old/lib/lib.es2018.asyncgenerator.d.ts +75 -0
- package/node_modules/@typescript/old/lib/lib.es2018.asynciterable.d.ts +51 -0
- package/node_modules/@typescript/old/lib/lib.es2018.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2018.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2018.intl.d.ts +81 -0
- package/node_modules/@typescript/old/lib/lib.es2018.promise.d.ts +28 -0
- package/node_modules/@typescript/old/lib/lib.es2018.regexp.d.ts +35 -0
- package/node_modules/@typescript/old/lib/lib.es2019.array.d.ts +77 -0
- package/node_modules/@typescript/old/lib/lib.es2019.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2019.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2019.intl.d.ts +21 -0
- package/node_modules/@typescript/old/lib/lib.es2019.object.d.ts +31 -0
- package/node_modules/@typescript/old/lib/lib.es2019.string.d.ts +35 -0
- package/node_modules/@typescript/old/lib/lib.es2019.symbol.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2020.bigint.d.ts +763 -0
- package/node_modules/@typescript/old/lib/lib.es2020.d.ts +25 -0
- package/node_modules/@typescript/old/lib/lib.es2020.date.d.ts +40 -0
- package/node_modules/@typescript/old/lib/lib.es2020.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2020.intl.d.ts +472 -0
- package/node_modules/@typescript/old/lib/lib.es2020.number.d.ts +26 -0
- package/node_modules/@typescript/old/lib/lib.es2020.promise.d.ts +45 -0
- package/node_modules/@typescript/old/lib/lib.es2020.sharedmemory.d.ts +97 -0
- package/node_modules/@typescript/old/lib/lib.es2020.string.d.ts +42 -0
- package/node_modules/@typescript/old/lib/lib.es2020.symbol.wellknown.d.ts +39 -0
- package/node_modules/@typescript/old/lib/lib.es2021.d.ts +21 -0
- package/node_modules/@typescript/old/lib/lib.es2021.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2021.intl.d.ts +164 -0
- package/node_modules/@typescript/old/lib/lib.es2021.promise.d.ts +46 -0
- package/node_modules/@typescript/old/lib/lib.es2021.string.d.ts +31 -0
- package/node_modules/@typescript/old/lib/lib.es2021.weakref.d.ts +76 -0
- package/node_modules/@typescript/old/lib/lib.es2022.array.d.ts +119 -0
- package/node_modules/@typescript/old/lib/lib.es2022.d.ts +23 -0
- package/node_modules/@typescript/old/lib/lib.es2022.error.d.ts +73 -0
- package/node_modules/@typescript/old/lib/lib.es2022.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2022.intl.d.ts +143 -0
- package/node_modules/@typescript/old/lib/lib.es2022.object.d.ts +24 -0
- package/node_modules/@typescript/old/lib/lib.es2022.regexp.d.ts +37 -0
- package/node_modules/@typescript/old/lib/lib.es2022.string.d.ts +23 -0
- package/node_modules/@typescript/old/lib/lib.es2023.array.d.ts +922 -0
- package/node_modules/@typescript/old/lib/lib.es2023.collection.d.ts +19 -0
- package/node_modules/@typescript/old/lib/lib.es2023.d.ts +20 -0
- package/node_modules/@typescript/old/lib/lib.es2023.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2023.intl.d.ts +62 -0
- package/node_modules/@typescript/old/lib/lib.es2024.arraybuffer.d.ts +63 -0
- package/node_modules/@typescript/old/lib/lib.es2024.collection.d.ts +27 -0
- package/node_modules/@typescript/old/lib/lib.es2024.d.ts +24 -0
- package/node_modules/@typescript/old/lib/lib.es2024.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2024.object.d.ts +27 -0
- package/node_modules/@typescript/old/lib/lib.es2024.promise.d.ts +33 -0
- package/node_modules/@typescript/old/lib/lib.es2024.regexp.d.ts +23 -0
- package/node_modules/@typescript/old/lib/lib.es2024.sharedmemory.d.ts +66 -0
- package/node_modules/@typescript/old/lib/lib.es2024.string.d.ts +27 -0
- package/node_modules/@typescript/old/lib/lib.es2025.collection.d.ts +94 -0
- package/node_modules/@typescript/old/lib/lib.es2025.d.ts +23 -0
- package/node_modules/@typescript/old/lib/lib.es2025.float16.d.ts +443 -0
- package/node_modules/@typescript/old/lib/lib.es2025.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.es2025.intl.d.ts +200 -0
- package/node_modules/@typescript/old/lib/lib.es2025.iterator.d.ts +146 -0
- package/node_modules/@typescript/old/lib/lib.es2025.promise.d.ts +32 -0
- package/node_modules/@typescript/old/lib/lib.es2025.regexp.d.ts +30 -0
- package/node_modules/@typescript/old/lib/lib.es5.d.ts +4599 -0
- package/node_modules/@typescript/old/lib/lib.es6.d.ts +21 -0
- package/node_modules/@typescript/old/lib/lib.esnext.array.d.ts +33 -0
- package/node_modules/@typescript/old/lib/lib.esnext.collection.d.ts +47 -0
- package/node_modules/@typescript/old/lib/lib.esnext.d.ts +27 -0
- package/node_modules/@typescript/old/lib/lib.esnext.date.d.ts +21 -0
- package/node_modules/@typescript/old/lib/lib.esnext.decorators.d.ts +26 -0
- package/node_modules/@typescript/old/lib/lib.esnext.disposable.d.ts +191 -0
- package/node_modules/@typescript/old/lib/lib.esnext.error.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.esnext.full.d.ts +22 -0
- package/node_modules/@typescript/old/lib/lib.esnext.intl.d.ts +107 -0
- package/node_modules/@typescript/old/lib/lib.esnext.sharedmemory.d.ts +23 -0
- package/node_modules/@typescript/old/lib/lib.esnext.temporal.d.ts +485 -0
- package/node_modules/@typescript/old/lib/lib.esnext.typedarrays.d.ts +90 -0
- package/node_modules/@typescript/old/lib/lib.scripthost.d.ts +320 -0
- package/node_modules/@typescript/old/lib/lib.webworker.asynciterable.d.ts +18 -0
- package/node_modules/@typescript/old/lib/lib.webworker.d.ts +15606 -0
- package/node_modules/@typescript/old/lib/lib.webworker.importscripts.d.ts +21 -0
- package/node_modules/@typescript/old/lib/lib.webworker.iterable.d.ts +18 -0
- package/node_modules/@typescript/old/lib/pl/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/pt-br/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/ru/diagnosticMessages.generated.json +2125 -0
- package/node_modules/@typescript/old/lib/tr/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/tsc.js +8 -0
- package/node_modules/@typescript/old/lib/tsserver.js +8 -0
- package/node_modules/@typescript/old/lib/tsserverlibrary.d.ts +17 -0
- package/node_modules/@typescript/old/lib/tsserverlibrary.js +21 -0
- package/node_modules/@typescript/old/lib/typesMap.json +497 -0
- package/node_modules/@typescript/old/lib/typescript.d.ts +11448 -0
- package/node_modules/@typescript/old/lib/typescript.js +201039 -0
- package/node_modules/@typescript/old/lib/typingsInstaller.js +8 -0
- package/node_modules/@typescript/old/lib/watchGuard.js +53 -0
- package/node_modules/@typescript/old/lib/zh-cn/diagnosticMessages.generated.json +2129 -0
- package/node_modules/@typescript/old/lib/zh-tw/diagnosticMessages.generated.json +2125 -0
- package/node_modules/@typescript/old/package.json +118 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.d.ts +85 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.js +797 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/index.d.ts +3 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/index.js +2 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.d.ts +2 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.js +134 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.d.ts +36 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.js +106 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/template-sources.d.ts +14 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/template-sources.js +26 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.d.ts +2 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.js +138 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.d.ts +2 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.js +408 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.d.ts +2 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.js +94 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.d.ts +2 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.js +179 -0
- package/node_modules/@ykdz/template-builtin-presets/package.json +67 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-app/.github/dependabot.yml → template-builtin-presets/templates/foundation/.github/dependabot-rust.yml} +13 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/dependabot.dynamic.template +4 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/ts-lib → template-builtin-presets/templates/foundation}/.github/dependabot.yml +5 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check.dynamic.template +19 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.pnpmfile.cts +14 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/TODO.md.template +5 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/devcontainer.json +16 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/gitignore +8 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.dynamic.txt +23 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.yaml +29 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/rust/.vscode/extensions.json +3 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/rust/.vscode/settings.json +5 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/rust/devcontainer/devcontainer.json +21 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/tsconfig.json +4 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/turbo.json +18 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/.github/dependabot.yml +5 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/.github/workflows/check.yml +23 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/.vscode/extensions.json +3 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/.vscode/settings.json +5 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/Cargo.lock +16 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/Cargo.toml +27 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/devcontainer/devcontainer.json +21 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/devcontainer/rust.Dockerfile +16 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/rust-toolchain.toml +3 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/devcontainer/node-pnpm.Dockerfile +12 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/devcontainer/shellcheck.Dockerfile +3 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/editor-customization/capabilities.json +38 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/oxc/node/oxlint.config.ts +6 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/oxc/oxfmt.config.ts +3 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/shared/oxc/tsconfig.config.json +2 -2
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.app.json +25 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.json +8 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.node.json +30 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/tsconfig.test.json +9 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/vue/typescript/run-vue-tsc.ts +12 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-hono-app → template-builtin-presets/templates/ts-lib}/.github/dependabot.yml +5 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-lib/.github/workflows/check.yml +19 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/ts-lib/src/index.ts +1 -3
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-lib/tsconfig.json +13 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/readiness.ts +2 -2
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/src/types.d.ts +1 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/tsconfig.json +26 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/drizzle.config.ts +17 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/scripts/prepare-database.ts +45 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/tsconfig.json +22 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/turbo.json +10 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/Dockerfile +74 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/index/+Page.telefunc.ts +1 -4
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/index/+Page.vue +2 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/playwright.config.ts +79 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/scripts/check-standalone-deployment.ts +511 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/scripts/container-entrypoint.sh +33 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/scripts/run-playwright.ts +151 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/test/e2e/app.spec.ts +3 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.app.json +34 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.json +9 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.node.json +31 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.test.json +11 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/vike-app/web}/turbo.json +1 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vike-app → template-builtin-presets/templates/vue-app}/.github/dependabot.yml +5 -4
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-hono-app/web → template-builtin-presets/templates/vue-app}/turbo.json +2 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-app/typescript/tsconfig.json +8 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/src/index.ts +3 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/src/server.ts +1 -1
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/test/app.test.ts +1 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/tsconfig.build.json +9 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/tsconfig.json +25 -0
- package/node_modules/@ykdz/template-core/dist/Cargo.toml +1 -1
- package/node_modules/@ykdz/template-core/dist/dependency-catalog.d.ts +9 -0
- package/node_modules/@ykdz/template-core/dist/dependency-catalog.js +56 -1
- package/node_modules/@ykdz/template-core/dist/devcontainer.d.ts +11 -3
- package/node_modules/@ykdz/template-core/dist/devcontainer.js +17 -3
- package/node_modules/@ykdz/template-core/dist/editor-customization.d.ts +5 -9
- package/node_modules/@ykdz/template-core/dist/editor-customization.js +8 -46
- package/node_modules/@ykdz/template-core/dist/module-graph.d.ts +43 -2
- package/node_modules/@ykdz/template-core/dist/module-graph.js +58 -0
- package/node_modules/@ykdz/template-core/dist/package-contribution.d.ts +43 -0
- package/node_modules/@ykdz/template-core/dist/package-contribution.js +24 -0
- package/node_modules/@ykdz/template-core/dist/pnpm-workspace.yaml +28 -9
- package/node_modules/@ykdz/template-core/dist/preset-definition.d.ts +42 -0
- package/node_modules/@ykdz/template-core/dist/preset-definition.js +1 -0
- package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.d.ts +33 -0
- package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.js +161 -0
- package/node_modules/@ykdz/template-core/dist/project-github.d.ts +8 -9
- package/node_modules/@ykdz/template-core/dist/project-github.js +94 -9
- package/node_modules/@ykdz/template-core/dist/project-linking-v2.d.ts +20 -0
- package/node_modules/@ykdz/template-core/dist/project-linking-v2.js +37 -0
- package/node_modules/@ykdz/template-core/dist/renderer.d.ts +40 -5
- package/node_modules/@ykdz/template-core/dist/renderer.js +114 -29
- package/node_modules/@ykdz/template-core/dist/template-boundary-check.d.ts +21 -15
- package/node_modules/@ykdz/template-core/dist/template-boundary-check.js +99 -49
- package/node_modules/@ykdz/template-core/dist/toolchain-baseline-update.d.ts +45 -0
- package/node_modules/@ykdz/template-core/dist/toolchain-baseline-update.js +27 -0
- package/node_modules/@ykdz/template-core/dist/toolchain-resolution.d.ts +1 -0
- package/node_modules/@ykdz/template-core/dist/toolchain-resolution.js +50 -52
- package/node_modules/@ykdz/template-core/package.json +9 -6
- package/node_modules/semver/LICENSE +15 -0
- package/node_modules/semver/README.md +680 -0
- package/node_modules/semver/bin/semver.js +195 -0
- package/node_modules/semver/classes/comparator.js +143 -0
- package/node_modules/semver/classes/index.js +7 -0
- package/node_modules/semver/classes/range.js +577 -0
- package/node_modules/semver/classes/semver.js +350 -0
- package/node_modules/semver/functions/clean.js +8 -0
- package/node_modules/semver/functions/cmp.js +54 -0
- package/node_modules/semver/functions/coerce.js +62 -0
- package/node_modules/semver/functions/compare-build.js +9 -0
- package/node_modules/semver/functions/compare-loose.js +5 -0
- package/node_modules/semver/functions/compare.js +7 -0
- package/node_modules/semver/functions/diff.js +60 -0
- package/node_modules/semver/functions/eq.js +5 -0
- package/node_modules/semver/functions/gt.js +5 -0
- package/node_modules/semver/functions/gte.js +5 -0
- package/node_modules/semver/functions/inc.js +21 -0
- package/node_modules/semver/functions/lt.js +5 -0
- package/node_modules/semver/functions/lte.js +5 -0
- package/node_modules/semver/functions/major.js +5 -0
- package/node_modules/semver/functions/minor.js +5 -0
- package/node_modules/semver/functions/neq.js +5 -0
- package/node_modules/semver/functions/parse.js +18 -0
- package/node_modules/semver/functions/patch.js +5 -0
- package/node_modules/semver/functions/prerelease.js +8 -0
- package/node_modules/semver/functions/rcompare.js +5 -0
- package/node_modules/semver/functions/rsort.js +5 -0
- package/node_modules/semver/functions/satisfies.js +12 -0
- package/node_modules/semver/functions/sort.js +5 -0
- package/node_modules/semver/functions/truncate.js +48 -0
- package/node_modules/semver/functions/valid.js +8 -0
- package/node_modules/semver/index.js +93 -0
- package/node_modules/semver/internal/constants.js +37 -0
- package/node_modules/semver/internal/debug.js +11 -0
- package/node_modules/semver/internal/identifiers.js +29 -0
- package/node_modules/semver/internal/lrucache.js +42 -0
- package/node_modules/semver/internal/parse-options.js +17 -0
- package/node_modules/semver/internal/re.js +223 -0
- package/node_modules/semver/package.json +78 -0
- package/node_modules/semver/preload.js +4 -0
- package/node_modules/semver/range.bnf +17 -0
- package/node_modules/semver/ranges/gtr.js +6 -0
- package/node_modules/semver/ranges/intersects.js +9 -0
- package/node_modules/semver/ranges/ltr.js +6 -0
- package/node_modules/semver/ranges/max-satisfying.js +27 -0
- package/node_modules/semver/ranges/min-satisfying.js +26 -0
- package/node_modules/semver/ranges/min-version.js +63 -0
- package/node_modules/semver/ranges/outside.js +82 -0
- package/node_modules/semver/ranges/simplify.js +49 -0
- package/node_modules/semver/ranges/subset.js +249 -0
- package/node_modules/semver/ranges/to-comparators.js +10 -0
- package/node_modules/semver/ranges/valid.js +13 -0
- package/node_modules/typescript/LICENSE.txt +55 -0
- package/node_modules/typescript/README.md +9 -0
- package/node_modules/typescript/bin/tsc6 +2 -0
- package/node_modules/typescript/lib/tsc.js +1 -0
- package/node_modules/typescript/lib/tsserverlibrary.d.ts +2 -0
- package/node_modules/typescript/lib/tsserverlibrary.js +1 -0
- package/node_modules/typescript/lib/typescript.d.ts +2 -0
- package/node_modules/typescript/lib/typescript.js +1 -0
- package/node_modules/typescript/package.json +39 -0
- package/node_modules/valibot/LICENSE.md +9 -0
- package/node_modules/valibot/README.md +94 -0
- package/node_modules/valibot/dist/index.cjs +7974 -0
- package/node_modules/valibot/dist/index.d.cts +16184 -0
- package/node_modules/valibot/dist/index.d.mts +16184 -0
- package/node_modules/valibot/dist/index.min.cjs +2 -0
- package/node_modules/valibot/dist/index.min.mjs +2 -0
- package/node_modules/valibot/dist/index.mjs +7663 -0
- package/node_modules/valibot/package.json +79 -0
- package/package.json +20 -13
- package/LICENSE +0 -21
- package/node_modules/@ykdz/template-builtin-source/dist/src/index.d.ts +0 -22
- package/node_modules/@ykdz/template-builtin-source/dist/src/index.js +0 -103
- package/node_modules/@ykdz/template-builtin-source/dist/templates/projection-plans.d.ts +0 -7
- package/node_modules/@ykdz/template-builtin-source/dist/templates/projection-plans.js +0 -98
- package/node_modules/@ykdz/template-builtin-source/dist/templates/registry.d.ts +0 -2
- package/node_modules/@ykdz/template-builtin-source/dist/templates/registry.js +0 -15
- package/node_modules/@ykdz/template-builtin-source/dist/templates/rust-bin/projection.d.ts +0 -9
- package/node_modules/@ykdz/template-builtin-source/dist/templates/rust-bin/projection.js +0 -105
- package/node_modules/@ykdz/template-builtin-source/dist/templates/ts-lib/projection.d.ts +0 -6
- package/node_modules/@ykdz/template-builtin-source/dist/templates/ts-lib/projection.js +0 -197
- package/node_modules/@ykdz/template-builtin-source/dist/templates/vike-app/projection.d.ts +0 -5
- package/node_modules/@ykdz/template-builtin-source/dist/templates/vike-app/projection.js +0 -71
- package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-app/projection.d.ts +0 -6
- package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-app/projection.js +0 -281
- package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-hono-app/projection.d.ts +0 -8
- package/node_modules/@ykdz/template-builtin-source/dist/templates/vue-hono-app/projection.js +0 -154
- package/node_modules/@ykdz/template-builtin-source/package.json +0 -93
- package/node_modules/@ykdz/template-builtin-source/templates/preset-source.json +0 -517
- package/node_modules/@ykdz/template-builtin-source/templates/shared/devcontainer/node-pnpm.Dockerfile +0 -6
- package/node_modules/@ykdz/template-builtin-source/templates/shared/editor-customization/capabilities.json +0 -56
- package/node_modules/@ykdz/template-builtin-source/templates/shared/oxc/node/oxlint.config.ts +0 -34
- package/node_modules/@ykdz/template-builtin-source/templates/shared/oxc/oxfmt.config.ts +0 -8
- package/node_modules/@ykdz/template-builtin-source/templates/shared/oxc/vue/oxlint.config.ts +0 -36
- package/node_modules/@ykdz/template-builtin-source/templates/vike-app/.github/workflows/check.yml +0 -28
- package/node_modules/@ykdz/template-builtin-source/templates/vike-app/db/drizzle.config.ts +0 -10
- package/node_modules/@ykdz/template-builtin-source/templates/vike-app/web/Dockerfile +0 -47
- package/node_modules/@ykdz/template-builtin-source/templates/vike-app/web/playwright.config.ts +0 -43
- package/node_modules/@ykdz/template-builtin-source/templates/vike-app/web/scripts/run-playwright.ts +0 -81
- package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/api/src/index.ts +0 -3
- package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/src/main.ts +0 -8
- package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/src/stores/counter.ts +0 -12
- package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/src/style.css +0 -1
- package/node_modules/@ykdz/template-builtin-source/templates/vue-hono-app/web/test/app.test.ts +0 -14
- package/node_modules/@ykdz/template-core/dist/declarations.d.ts +0 -2
- package/node_modules/@ykdz/template-core/dist/declarations.js +0 -1
- package/node_modules/@ykdz/template-core/dist/generated-scenarios.d.ts +0 -75
- package/node_modules/@ykdz/template-core/dist/generated-scenarios.js +0 -572
- package/node_modules/@ykdz/template-core/dist/generation-context.d.ts +0 -23
- package/node_modules/@ykdz/template-core/dist/generation-context.js +0 -20
- package/node_modules/@ykdz/template-core/dist/next-step-instructions.d.ts +0 -30
- package/node_modules/@ykdz/template-core/dist/next-step-instructions.js +0 -181
- package/node_modules/@ykdz/template-core/dist/package-addition-support.d.ts +0 -6
- package/node_modules/@ykdz/template-core/dist/package-addition-support.js +0 -2
- package/node_modules/@ykdz/template-core/dist/package-addition.d.ts +0 -12
- package/node_modules/@ykdz/template-core/dist/package-addition.js +0 -665
- package/node_modules/@ykdz/template-core/dist/package-linking.d.ts +0 -75
- package/node_modules/@ykdz/template-core/dist/package-linking.js +0 -157
- package/node_modules/@ykdz/template-core/dist/preset-projection.d.ts +0 -69
- package/node_modules/@ykdz/template-core/dist/preset-projection.js +0 -8
- package/node_modules/@ykdz/template-core/dist/preset-source.d.ts +0 -14
- package/node_modules/@ykdz/template-core/dist/preset-source.js +0 -294
- package/node_modules/@ykdz/template-core/dist/projection-capabilities.d.ts +0 -31
- package/node_modules/@ykdz/template-core/dist/projection-capabilities.js +0 -2168
- package/node_modules/@ykdz/template-core/dist/runtime-paths.d.ts +0 -1
- package/node_modules/@ykdz/template-core/dist/runtime-paths.js +0 -13
- package/node_modules/@ykdz/template-shared/dist/index.d.ts +0 -645
- package/node_modules/@ykdz/template-shared/dist/index.js +0 -1408
- package/node_modules/@ykdz/template-shared/package.json +0 -36
- 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
- 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
- package/node_modules/@ykdz/{template-builtin-source/templates/ts-lib → template-builtin-presets/templates/foundation}/.github/workflows/check.yml +0 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/shared → template-builtin-presets/templates/foundation/rust}/devcontainer/rust.Dockerfile +0 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/rust-bin → template-builtin-presets/templates/foundation/rust}/rust-toolchain.toml +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/rustfmt.toml +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/src/main.rs +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/rust-bin/turbo.json +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/shared/devcontainer/browser-test.Dockerfile +0 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/src/main.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/src/stores/counter.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/src/style.css +0 -0
- package/node_modules/@ykdz/{template-builtin-source/templates/vue-app → template-builtin-presets/templates/shared/vue}/test/app.test.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/ts-lib/src/name-schema.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/ts-lib/turbo.json +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/scripts/seed-example.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/db.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/index.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/queries/todos.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/schema.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/src/seed/example.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/test/todos.test.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/db/turbo.json +0 -0
- 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
- 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
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/+server.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/.env.example +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/Dockerfile.dockerignore +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/assets/logo.svg +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/components/CounterButton.vue +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/components/PageShell.vue +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/+Head.vue +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/+Layout.vue +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/+config.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/pages/tailwind.css +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/server/api.ts +0 -0
- package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/server/app.ts +1 -1
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/types/env.d.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/types/global.d.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/vite.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vike-app/web/vitest.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source/templates/vue-hono-app → template-builtin-presets/templates/vue-app}/.github/workflows/check.yml +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/env.d.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/index.html +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/playwright.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/scripts/run-playwright.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/src/App.vue +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/test/e2e/app.spec.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/vite.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-app/vitest.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/src/runtime.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/turbo.json +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/api/vitest.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/env.d.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/index.html +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/playwright.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/scripts/run-playwright.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/src/App.vue +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/src/api.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/test/e2e/app.spec.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source/templates/vike-app → template-builtin-presets/templates/vue-hono-app}/web/turbo.json +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/vite.config.ts +0 -0
- /package/node_modules/@ykdz/{template-builtin-source → template-builtin-presets}/templates/vue-hono-app/web/vitest.config.ts +0 -0
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
export function rustToolchainEnvironmentNeed(owner) {
|
|
2
|
+
return {
|
|
3
|
+
kind: "rust-toolchain",
|
|
4
|
+
owner,
|
|
5
|
+
toolchain: "stable",
|
|
6
|
+
nextStep: {
|
|
7
|
+
id: "install-rust-toolchain",
|
|
8
|
+
label: "Install Rust toolchain",
|
|
9
|
+
command: "rustup",
|
|
10
|
+
args: [
|
|
11
|
+
"toolchain",
|
|
12
|
+
"install",
|
|
13
|
+
"stable",
|
|
14
|
+
"--component",
|
|
15
|
+
"rustfmt",
|
|
16
|
+
"--component",
|
|
17
|
+
"clippy",
|
|
18
|
+
],
|
|
19
|
+
display: "rustup toolchain install stable --component rustfmt --component clippy",
|
|
20
|
+
machineVerifiable: false,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
1
24
|
function renderTurboPackageFilter(owner) {
|
|
2
25
|
if (owner.kind !== "package-boundary") {
|
|
3
26
|
throw new Error("Turbo package tasks require a Package Boundary owner.");
|
|
@@ -119,6 +142,24 @@ export function renderRootCheckCommand(plan) {
|
|
|
119
142
|
"check:run",
|
|
120
143
|
]));
|
|
121
144
|
}
|
|
145
|
+
export function deploymentCheckEnvironmentNeeds(check) {
|
|
146
|
+
switch (check.kind) {
|
|
147
|
+
case "deployment-image":
|
|
148
|
+
return [{ kind: "docker-engine" }];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export function deploymentCheckTaskName(check) {
|
|
152
|
+
switch (check.kind) {
|
|
153
|
+
case "deployment-image":
|
|
154
|
+
return "check:deployment";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export function renderDeploymentCheckLeafCommand(check) {
|
|
158
|
+
return `pnpm --filter './${check.owner.path}' run ${deploymentCheckTaskName(check)}`;
|
|
159
|
+
}
|
|
160
|
+
export function renderDeploymentCheckCommand(plan) {
|
|
161
|
+
return uniqueTaskNames((plan.deploymentChecks ?? []).map(renderDeploymentCheckLeafCommand)).join(" && ");
|
|
162
|
+
}
|
|
122
163
|
export function renderFixCommand(plan) {
|
|
123
164
|
return renderTurboRunCommand(uniqueTaskNames([
|
|
124
165
|
...plan.components.flatMap(fixComponentTaskNames),
|
|
@@ -139,6 +180,9 @@ function playwrightBrowserInstallArgs(need, options = {}) {
|
|
|
139
180
|
return installArgs;
|
|
140
181
|
}
|
|
141
182
|
export function renderPlaywrightBrowserInstallCommand(need, options = {}) {
|
|
183
|
+
if (need.kind !== "playwright-browser-assets") {
|
|
184
|
+
throw new Error("Playwright install requires browser assets.");
|
|
185
|
+
}
|
|
142
186
|
return ["pnpm", ...playwrightBrowserInstallArgs(need, options)].join(" ");
|
|
143
187
|
}
|
|
144
188
|
export function playwrightBrowserAssetsNextStepDescriptor(owner) {
|
|
@@ -170,3 +214,17 @@ export function playwrightBrowserAssetsEnvironmentNeed(options) {
|
|
|
170
214
|
},
|
|
171
215
|
};
|
|
172
216
|
}
|
|
217
|
+
export function shellCheckEnvironmentNeed(owner) {
|
|
218
|
+
return {
|
|
219
|
+
kind: "shellcheck-command",
|
|
220
|
+
owner,
|
|
221
|
+
nextStep: {
|
|
222
|
+
id: "install-shellcheck",
|
|
223
|
+
label: "Install ShellCheck",
|
|
224
|
+
command: "sudo",
|
|
225
|
+
args: ["sh", "-c", "apt-get update && apt-get install -y shellcheck"],
|
|
226
|
+
display: "sudo apt-get update && sudo apt-get install -y shellcheck",
|
|
227
|
+
machineVerifiable: false,
|
|
228
|
+
},
|
|
229
|
+
};
|
|
230
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { EditorCustomizationCapability } from "./editor-customization.ts";
|
|
2
|
+
import type { CheckComponent, CheckEnvironmentNeed, DeploymentCheckComponent, FixComponent } from "./module-graph.ts";
|
|
3
|
+
import type { PackageDefinition } from "./project-blueprint-v2.ts";
|
|
4
|
+
import type { DependencyMaintenancePolicy } from "./project-github.ts";
|
|
5
|
+
import type { RenderOperation } from "./renderer.ts";
|
|
6
|
+
export type FoundationContribution = {
|
|
7
|
+
/** Toolchains the Foundation must install and project into coordinated root files. */
|
|
8
|
+
readonly toolchains: {
|
|
9
|
+
readonly rust?: {
|
|
10
|
+
readonly toolchain: string;
|
|
11
|
+
readonly components: readonly ("rustfmt" | "clippy")[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/** Editor capabilities the Foundation must project into its coordinated editor files. */
|
|
15
|
+
readonly editorCapabilities: readonly EditorCustomizationCapability[];
|
|
16
|
+
/** Ecosystems and paths whose maintenance belongs in the coordinated root policy. */
|
|
17
|
+
readonly dependencyMaintenance: DependencyMaintenancePolicy;
|
|
18
|
+
/** Workspace membership patterns contributed by package boundaries. */
|
|
19
|
+
readonly workspacePackageGlobs?: readonly string[];
|
|
20
|
+
/** Dependency Catalog entries required by package-owned manifests. */
|
|
21
|
+
readonly dependencyCatalog?: Readonly<Record<string, string>>;
|
|
22
|
+
};
|
|
23
|
+
/** A preset-agnostic package-sized part of a Generated Repository Plan. */
|
|
24
|
+
export type PackageContribution = {
|
|
25
|
+
readonly definition: PackageDefinition;
|
|
26
|
+
readonly manifest: Readonly<Record<string, unknown>>;
|
|
27
|
+
readonly exposure: {
|
|
28
|
+
readonly exports: Readonly<Record<string, unknown>>;
|
|
29
|
+
readonly imports: Readonly<Record<string, unknown>>;
|
|
30
|
+
};
|
|
31
|
+
readonly operations: readonly RenderOperation[];
|
|
32
|
+
/** Typed requirements consumed by the Foundation for coordinated root outputs. */
|
|
33
|
+
readonly foundation: FoundationContribution;
|
|
34
|
+
readonly checks: readonly CheckComponent[];
|
|
35
|
+
readonly fixes: readonly FixComponent[];
|
|
36
|
+
readonly environmentNeeds: readonly CheckEnvironmentNeed[];
|
|
37
|
+
/** Deployment checks are package-owned and composed by the Foundation. */
|
|
38
|
+
readonly deploymentChecks?: readonly DeploymentCheckComponent[];
|
|
39
|
+
};
|
|
40
|
+
export declare function assertPackageContribution(contribution: PackageContribution, provenance?: {
|
|
41
|
+
readonly definitionName?: string;
|
|
42
|
+
readonly planner?: string;
|
|
43
|
+
}): PackageContribution;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function assertPackageContribution(contribution, provenance = {}) {
|
|
2
|
+
if (contribution.definition.name !== contribution.manifest.name) {
|
|
3
|
+
throw new Error("Package Contribution manifest name must match its Package Definition");
|
|
4
|
+
}
|
|
5
|
+
const operationPath = (operation) => {
|
|
6
|
+
if ("to" in operation)
|
|
7
|
+
return operation.to;
|
|
8
|
+
if ("path" in operation)
|
|
9
|
+
return operation.path;
|
|
10
|
+
return "";
|
|
11
|
+
};
|
|
12
|
+
const outsideOperation = contribution.operations.find((operation) => !operationPath(operation).startsWith(`${contribution.definition.path}/`));
|
|
13
|
+
if (outsideOperation) {
|
|
14
|
+
const target = operationPath(outsideOperation);
|
|
15
|
+
const rule = target.includes("/")
|
|
16
|
+
? "Package Contribution may not write a sibling Package Boundary"
|
|
17
|
+
: "Package Contribution may not write a coordinated root output";
|
|
18
|
+
const owner = provenance.definitionName === undefined
|
|
19
|
+
? ""
|
|
20
|
+
: `${provenance.definitionName}: ${provenance.planner ?? "Package Contribution"} `;
|
|
21
|
+
throw new Error(`${owner}${rule}; ${contribution.definition.path} attempted ${target}`);
|
|
22
|
+
}
|
|
23
|
+
return contribution;
|
|
24
|
+
}
|
|
@@ -1,13 +1,32 @@
|
|
|
1
1
|
packages:
|
|
2
2
|
- packages/*
|
|
3
3
|
|
|
4
|
-
nodeLinker:
|
|
4
|
+
nodeLinker: isolated
|
|
5
|
+
|
|
6
|
+
autoInstallPeers: false
|
|
7
|
+
|
|
8
|
+
injectWorkspacePackages: true
|
|
9
|
+
|
|
10
|
+
dedupeInjectedDeps: false
|
|
11
|
+
|
|
12
|
+
syncInjectedDepsAfterScripts:
|
|
13
|
+
- build
|
|
14
|
+
- build:run
|
|
15
|
+
|
|
16
|
+
minimumReleaseAge: 1440
|
|
17
|
+
|
|
18
|
+
minimumReleaseAgeStrict: true
|
|
19
|
+
|
|
20
|
+
overrides:
|
|
21
|
+
"pinia>typescript": "-"
|
|
22
|
+
"valibot>typescript": "-"
|
|
23
|
+
"vue>typescript": "-"
|
|
5
24
|
|
|
6
25
|
catalog:
|
|
7
26
|
"@hono/node-server": ^2.0.6
|
|
8
27
|
"@playwright/test": ^1.61.1
|
|
9
28
|
"@tailwindcss/vite": ^4.3.2
|
|
10
|
-
"@types/node": ^24.
|
|
29
|
+
"@types/node": ^24.13.3
|
|
11
30
|
"@types/web-bluetooth": ^0.0.21
|
|
12
31
|
"@vitejs/plugin-vue": ^6.0.7
|
|
13
32
|
"@vikejs/hono": ^0.2.1
|
|
@@ -17,17 +36,20 @@ catalog:
|
|
|
17
36
|
execa: ^9.6.1
|
|
18
37
|
hono: ^4.12.27
|
|
19
38
|
oxfmt: ^0.58.0
|
|
20
|
-
oxlint: ^1.
|
|
39
|
+
oxlint: ^1.73.0
|
|
21
40
|
oxlint-tsgolint: ^0.24.0
|
|
41
|
+
semver: ^7.8.5
|
|
42
|
+
"@types/semver": ^7.7.1
|
|
22
43
|
pinia: ^3.0.4
|
|
44
|
+
srvx: ^0.11.21
|
|
23
45
|
tailwindcss: ^4.3.2
|
|
24
46
|
telefunc: ^0.2.22
|
|
25
47
|
tsc-alias: ^1.8.17
|
|
26
|
-
tsx: ^4.22.4
|
|
27
48
|
turbo: 2.10.2
|
|
28
|
-
typescript:
|
|
49
|
+
typescript: npm:@typescript/typescript6@^6.0.2
|
|
50
|
+
typescript-7: npm:typescript@^7.0.2
|
|
29
51
|
valibot: ^1.4.2
|
|
30
|
-
vite: ^8.1.
|
|
52
|
+
vite: ^8.1.4
|
|
31
53
|
vike: ^0.4.260
|
|
32
54
|
vike-vue: ^0.9.12
|
|
33
55
|
vitest: ^4.1.10
|
|
@@ -37,6 +59,3 @@ catalog:
|
|
|
37
59
|
|
|
38
60
|
allowBuilds:
|
|
39
61
|
esbuild: true
|
|
40
|
-
|
|
41
|
-
onlyBuiltDependencies:
|
|
42
|
-
- esbuild
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { PackageContribution } from "./package-contribution.ts";
|
|
2
|
+
import type { ProjectBlueprintV2 } from "./project-blueprint-v2.ts";
|
|
3
|
+
import type { TemplateSourceHandle } from "./renderer.ts";
|
|
4
|
+
/** Stable, preset-agnostic input supplied after toolchain resolution. */
|
|
5
|
+
export type GenerationContext = {
|
|
6
|
+
readonly targetDir: string;
|
|
7
|
+
readonly projectName: string;
|
|
8
|
+
readonly scope: string;
|
|
9
|
+
readonly toolchain: {
|
|
10
|
+
readonly nodeLtsMajor: string;
|
|
11
|
+
readonly packageManagerPin: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/** A side-effect-free Built-in Preset planner. */
|
|
15
|
+
export type BuiltInPresetDefinition = {
|
|
16
|
+
readonly metadata: {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly title: string;
|
|
19
|
+
readonly description: string;
|
|
20
|
+
};
|
|
21
|
+
/** The Definition owns its Preset-local Self-Checking Template Source. */
|
|
22
|
+
readonly source: TemplateSourceHandle;
|
|
23
|
+
/** The owned planner source inspected by the Template Boundary Check. */
|
|
24
|
+
readonly plannerSourceFile: string;
|
|
25
|
+
blueprint(context: GenerationContext): ProjectBlueprintV2;
|
|
26
|
+
planInitialization(context: GenerationContext): PackageContribution;
|
|
27
|
+
/**
|
|
28
|
+
* Multi-package Definitions expose their complete owned topology directly,
|
|
29
|
+
* while single-package Definitions keep the compact tracer interface.
|
|
30
|
+
*/
|
|
31
|
+
planInitializationContributions?(context: GenerationContext): readonly PackageContribution[];
|
|
32
|
+
/** Package layout is Preset-owned even when callers omit --path. */
|
|
33
|
+
defaultPackagePath?(options: {
|
|
34
|
+
readonly context: GenerationContext;
|
|
35
|
+
readonly packageLeafName: string;
|
|
36
|
+
}): string;
|
|
37
|
+
planPackageAddition?(options: {
|
|
38
|
+
readonly context: GenerationContext;
|
|
39
|
+
readonly packageLeafName: string;
|
|
40
|
+
readonly packagePath: string;
|
|
41
|
+
}): PackageContribution;
|
|
42
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The durable, preset-agnostic topology used by local template follow-up
|
|
3
|
+
* operations. Preset provenance deliberately belongs in Generation Record.
|
|
4
|
+
*/
|
|
5
|
+
export type PackageRole = "runtime-service" | "shared-library" | "native-package";
|
|
6
|
+
export type PackageDefinition = {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly path: string;
|
|
9
|
+
readonly role: PackageRole;
|
|
10
|
+
};
|
|
11
|
+
export type PackageLinkIntent = {
|
|
12
|
+
readonly consumerPackagePath: string;
|
|
13
|
+
readonly providerPackagePath: string;
|
|
14
|
+
};
|
|
15
|
+
export type ProjectBlueprintV2 = {
|
|
16
|
+
readonly schemaVersion: 2;
|
|
17
|
+
readonly packages: readonly PackageDefinition[];
|
|
18
|
+
readonly packageLinkIntents?: readonly PackageLinkIntent[];
|
|
19
|
+
};
|
|
20
|
+
export type BlueprintV2ValidationIssue = {
|
|
21
|
+
readonly path: string;
|
|
22
|
+
readonly message: string;
|
|
23
|
+
};
|
|
24
|
+
export type BlueprintV2ValidationResult = {
|
|
25
|
+
readonly ok: true;
|
|
26
|
+
readonly value: ProjectBlueprintV2;
|
|
27
|
+
} | {
|
|
28
|
+
readonly ok: false;
|
|
29
|
+
readonly issues: readonly BlueprintV2ValidationIssue[];
|
|
30
|
+
};
|
|
31
|
+
/** Validates persisted metadata before it is used to plan or render changes. */
|
|
32
|
+
export declare function validateProjectBlueprintV2(value: unknown): BlueprintV2ValidationResult;
|
|
33
|
+
export declare function assertProjectBlueprintV2(value: unknown): ProjectBlueprintV2;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
const packageName = /^@[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/;
|
|
2
|
+
const packagePath = /^[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/;
|
|
3
|
+
const roles = new Set([
|
|
4
|
+
"runtime-service",
|
|
5
|
+
"shared-library",
|
|
6
|
+
"native-package",
|
|
7
|
+
]);
|
|
8
|
+
function isRecord(value) {
|
|
9
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
function reportUnknownKeys(value, allowed, path, issues) {
|
|
12
|
+
for (const key of Object.keys(value)) {
|
|
13
|
+
if (!allowed.includes(key)) {
|
|
14
|
+
issues.push({
|
|
15
|
+
path: `${path}.${key}`,
|
|
16
|
+
message: "Unknown Blueprint v2 field",
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** Validates persisted metadata before it is used to plan or render changes. */
|
|
22
|
+
export function validateProjectBlueprintV2(value) {
|
|
23
|
+
const issues = [];
|
|
24
|
+
if (!isRecord(value)) {
|
|
25
|
+
return {
|
|
26
|
+
ok: false,
|
|
27
|
+
issues: [
|
|
28
|
+
{ path: ".", message: "Local Template Metadata must be an object" },
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
reportUnknownKeys(value, ["schemaVersion", "packages", "packageLinkIntents"], ".", issues);
|
|
33
|
+
if (value.schemaVersion !== 2) {
|
|
34
|
+
issues.push({
|
|
35
|
+
path: ".schemaVersion",
|
|
36
|
+
message: `Unsupported Local Template Metadata schema version ${String(value.schemaVersion)}; expected 2`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!Array.isArray(value.packages)) {
|
|
40
|
+
issues.push({
|
|
41
|
+
path: ".packages",
|
|
42
|
+
message: "Package Definitions must be an array",
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const definitions = [];
|
|
46
|
+
if (Array.isArray(value.packages)) {
|
|
47
|
+
for (const [index, item] of value.packages.entries()) {
|
|
48
|
+
const itemPath = `.packages[${index}]`;
|
|
49
|
+
if (!isRecord(item)) {
|
|
50
|
+
issues.push({
|
|
51
|
+
path: itemPath,
|
|
52
|
+
message: "Package Definition must be an object",
|
|
53
|
+
});
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
reportUnknownKeys(item, ["name", "path", "role"], itemPath, issues);
|
|
57
|
+
if (typeof item.name !== "string" || !packageName.test(item.name)) {
|
|
58
|
+
issues.push({
|
|
59
|
+
path: `${itemPath}.name`,
|
|
60
|
+
message: "Package name must be a scoped lowercase package name",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (typeof item.path !== "string" || !packagePath.test(item.path)) {
|
|
64
|
+
issues.push({
|
|
65
|
+
path: `${itemPath}.path`,
|
|
66
|
+
message: "Package Path must be exactly two safe path segments",
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (typeof item.role !== "string" ||
|
|
70
|
+
!roles.has(item.role)) {
|
|
71
|
+
issues.push({
|
|
72
|
+
path: `${itemPath}.role`,
|
|
73
|
+
message: "Package Role must be runtime-service, shared-library, or native-package",
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
if (typeof item.name === "string" &&
|
|
77
|
+
typeof item.path === "string" &&
|
|
78
|
+
typeof item.role === "string" &&
|
|
79
|
+
packageName.test(item.name) &&
|
|
80
|
+
packagePath.test(item.path) &&
|
|
81
|
+
roles.has(item.role)) {
|
|
82
|
+
definitions.push(item);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
for (const [property, label] of [
|
|
87
|
+
["name", "Package name"],
|
|
88
|
+
["path", "Package Path"],
|
|
89
|
+
]) {
|
|
90
|
+
const seen = new Set();
|
|
91
|
+
for (const definition of definitions) {
|
|
92
|
+
const member = definition[property];
|
|
93
|
+
if (seen.has(member))
|
|
94
|
+
issues.push({
|
|
95
|
+
path: ".packages",
|
|
96
|
+
message: `${label} must be unique: ${member}`,
|
|
97
|
+
});
|
|
98
|
+
seen.add(member);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (value.packageLinkIntents !== undefined &&
|
|
102
|
+
!Array.isArray(value.packageLinkIntents)) {
|
|
103
|
+
issues.push({
|
|
104
|
+
path: ".packageLinkIntents",
|
|
105
|
+
message: "Package Link Intents must be an array",
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
const paths = new Set(definitions.map((definition) => definition.path));
|
|
109
|
+
const links = new Set();
|
|
110
|
+
if (Array.isArray(value.packageLinkIntents)) {
|
|
111
|
+
for (const [index, item] of value.packageLinkIntents.entries()) {
|
|
112
|
+
const itemPath = `.packageLinkIntents[${index}]`;
|
|
113
|
+
if (!isRecord(item)) {
|
|
114
|
+
issues.push({
|
|
115
|
+
path: itemPath,
|
|
116
|
+
message: "Package Link Intent must be an object",
|
|
117
|
+
});
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
reportUnknownKeys(item, ["consumerPackagePath", "providerPackagePath"], itemPath, issues);
|
|
121
|
+
const consumer = item.consumerPackagePath;
|
|
122
|
+
const provider = item.providerPackagePath;
|
|
123
|
+
if (typeof consumer !== "string" || !paths.has(consumer))
|
|
124
|
+
issues.push({
|
|
125
|
+
path: `${itemPath}.consumerPackagePath`,
|
|
126
|
+
message: "Package Link Intent references an unknown consumer package",
|
|
127
|
+
});
|
|
128
|
+
if (typeof provider !== "string" || !paths.has(provider))
|
|
129
|
+
issues.push({
|
|
130
|
+
path: `${itemPath}.providerPackagePath`,
|
|
131
|
+
message: "Package Link Intent references an unknown provider package",
|
|
132
|
+
});
|
|
133
|
+
if (consumer === provider && typeof consumer === "string")
|
|
134
|
+
issues.push({
|
|
135
|
+
path: itemPath,
|
|
136
|
+
message: "Package Link Intent cannot link a package to itself",
|
|
137
|
+
});
|
|
138
|
+
if (typeof consumer === "string" && typeof provider === "string") {
|
|
139
|
+
const key = `${consumer}\u0000${provider}`;
|
|
140
|
+
if (links.has(key))
|
|
141
|
+
issues.push({
|
|
142
|
+
path: itemPath,
|
|
143
|
+
message: "Package Link Intent must be unique",
|
|
144
|
+
});
|
|
145
|
+
links.add(key);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return issues.length === 0
|
|
150
|
+
? { ok: true, value: value }
|
|
151
|
+
: { ok: false, issues };
|
|
152
|
+
}
|
|
153
|
+
export function assertProjectBlueprintV2(value) {
|
|
154
|
+
const result = validateProjectBlueprintV2(value);
|
|
155
|
+
if (!result.ok) {
|
|
156
|
+
throw new Error(result.issues
|
|
157
|
+
.map((issue) => `${issue.path}: ${issue.message}`)
|
|
158
|
+
.join("\n"));
|
|
159
|
+
}
|
|
160
|
+
return result.value;
|
|
161
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CheckPlan } from "./module-graph.
|
|
1
|
+
import { type CheckPlan } from "./module-graph.ts";
|
|
2
2
|
export type CiCapability = {
|
|
3
3
|
readonly workflowName: "Check";
|
|
4
4
|
readonly jobName: "check";
|
|
@@ -12,13 +12,6 @@ export type PnpmTaskLayer = {
|
|
|
12
12
|
readonly installCommand: "pnpm install";
|
|
13
13
|
readonly checkCommand: "pnpm run check";
|
|
14
14
|
};
|
|
15
|
-
export type CiDockerImageBuild = {
|
|
16
|
-
readonly dockerfile: string;
|
|
17
|
-
readonly targets: readonly {
|
|
18
|
-
readonly name: string;
|
|
19
|
-
readonly tag: string;
|
|
20
|
-
}[];
|
|
21
|
-
};
|
|
22
15
|
export type DependencyEcosystem = "npm" | "cargo" | "github-actions" | "docker" | "rust-toolchain";
|
|
23
16
|
export type DependabotDirectory = `/${string}`;
|
|
24
17
|
export type DependencyMaintenancePolicy = {
|
|
@@ -32,8 +25,14 @@ type ProjectCheckWorkflowOptions = {
|
|
|
32
25
|
readonly capability?: CiCapability | undefined;
|
|
33
26
|
readonly environmentPreparation?: Partial<CiEnvironmentPreparation> | undefined;
|
|
34
27
|
readonly taskLayer?: PnpmTaskLayer | undefined;
|
|
35
|
-
readonly dockerImageBuild?: CiDockerImageBuild | undefined;
|
|
36
28
|
};
|
|
37
29
|
export declare function projectCheckWorkflow(options: ProjectCheckWorkflowOptions): string;
|
|
30
|
+
/** Limited substitutions for the Foundation-owned workflow Template Source. */
|
|
31
|
+
export declare function projectCheckWorkflowTemplateReplacements(options: {
|
|
32
|
+
readonly checkPlan: CheckPlan;
|
|
33
|
+
readonly environmentPreparation?: Partial<CiEnvironmentPreparation>;
|
|
34
|
+
}): Record<string, string>;
|
|
38
35
|
export declare function projectDependabotConfig(policy: DependencyMaintenancePolicy): string;
|
|
36
|
+
/** Limited substitution for the Foundation-owned Dependabot Template Source. */
|
|
37
|
+
export declare function projectDependabotTemplateReplacements(policy: DependencyMaintenancePolicy): Record<string, string>;
|
|
39
38
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { renderPlaywrightBrowserInstallCommand, } from "./module-graph.js";
|
|
1
|
+
import { deploymentCheckEnvironmentNeeds, deploymentCheckTaskName, renderPlaywrightBrowserInstallCommand, } from "./module-graph.js";
|
|
2
2
|
const defaultCiCapability = {
|
|
3
3
|
workflowName: "Check",
|
|
4
4
|
jobName: "check",
|
|
@@ -15,7 +15,11 @@ export function projectCheckWorkflow(options) {
|
|
|
15
15
|
rustToolchain: false,
|
|
16
16
|
...options.environmentPreparation,
|
|
17
17
|
};
|
|
18
|
+
const requiresRustToolchain = environmentPreparation.rustToolchain ||
|
|
19
|
+
options.checkPlan.environmentNeeds.some((need) => need.kind === "rust-toolchain");
|
|
18
20
|
const taskLayer = options.taskLayer ?? pnpmTaskLayer;
|
|
21
|
+
const deploymentChecks = options.checkPlan.deploymentChecks ?? [];
|
|
22
|
+
const needsDocker = deploymentChecks.some((check) => deploymentCheckEnvironmentNeeds(check).some((need) => need.kind === "docker-engine"));
|
|
19
23
|
const lines = [
|
|
20
24
|
`name: ${capability.workflowName}`,
|
|
21
25
|
"",
|
|
@@ -28,23 +32,88 @@ export function projectCheckWorkflow(options) {
|
|
|
28
32
|
"jobs:",
|
|
29
33
|
` ${capability.jobName}:`,
|
|
30
34
|
` runs-on: ${capability.runner}`,
|
|
35
|
+
...(deploymentChecks.length === 0
|
|
36
|
+
? []
|
|
37
|
+
: [
|
|
38
|
+
" strategy:",
|
|
39
|
+
" matrix:",
|
|
40
|
+
" check: [root, deployment]",
|
|
41
|
+
]),
|
|
31
42
|
" steps:",
|
|
32
43
|
" - uses: actions/checkout@v7",
|
|
33
44
|
];
|
|
34
45
|
if (environmentPreparation.nodeFromPackageMetadata) {
|
|
35
46
|
lines.push(" - uses: actions/setup-node@v6", " with:", " node-version-file: package.json", " - run: corepack enable");
|
|
36
47
|
}
|
|
37
|
-
if (
|
|
38
|
-
lines.push(" - uses:
|
|
48
|
+
if (needsDocker) {
|
|
49
|
+
lines.push(" - uses: docker/setup-buildx-action@v3", " if: matrix.check == 'deployment'");
|
|
39
50
|
}
|
|
51
|
+
if (requiresRustToolchain)
|
|
52
|
+
lines.push(...rustCiPreparationLines());
|
|
40
53
|
lines.push(` - run: ${taskLayer.installCommand}`);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
54
|
+
const checkEnvironmentLines = [];
|
|
55
|
+
for (const need of options.checkPlan.environmentNeeds) {
|
|
56
|
+
if (need.kind === "rust-toolchain")
|
|
57
|
+
continue;
|
|
58
|
+
checkEnvironmentLines.push(` - run: ${renderCiEnvironmentNeedCommand(need)}`);
|
|
59
|
+
if (deploymentChecks.length > 0 && need.kind === "shellcheck-command") {
|
|
60
|
+
checkEnvironmentLines.push(" if: matrix.check == 'root'");
|
|
61
|
+
}
|
|
45
62
|
}
|
|
63
|
+
lines.push(...checkEnvironmentLines);
|
|
64
|
+
lines.push(` - run: ${taskLayer.checkCommand}`);
|
|
65
|
+
if (deploymentChecks.length > 0) {
|
|
66
|
+
lines.push(" if: matrix.check == 'root'");
|
|
67
|
+
}
|
|
68
|
+
const deploymentCheck = deploymentChecks[0];
|
|
69
|
+
if (deploymentCheck !== undefined) {
|
|
70
|
+
lines.push(` - run: pnpm run ${deploymentCheckTaskName(deploymentCheck)}`, " if: matrix.check == 'deployment'");
|
|
71
|
+
}
|
|
72
|
+
lines.push("");
|
|
46
73
|
return lines.join("\n");
|
|
47
74
|
}
|
|
75
|
+
function rustCiPreparationLines() {
|
|
76
|
+
return [
|
|
77
|
+
" - uses: dtolnay/rust-toolchain@stable",
|
|
78
|
+
" with:",
|
|
79
|
+
" components: rustfmt, clippy",
|
|
80
|
+
" - uses: Swatinem/rust-cache@v2",
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
/** Limited substitutions for the Foundation-owned workflow Template Source. */
|
|
84
|
+
export function projectCheckWorkflowTemplateReplacements(options) {
|
|
85
|
+
const requiresRustToolchain = options.environmentPreparation?.rustToolchain === true ||
|
|
86
|
+
options.checkPlan.environmentNeeds.some((need) => need.kind === "rust-toolchain");
|
|
87
|
+
const deploymentChecks = options.checkPlan.deploymentChecks ?? [];
|
|
88
|
+
const needsDocker = deploymentChecks.some((check) => deploymentCheckEnvironmentNeeds(check).some((need) => need.kind === "docker-engine"));
|
|
89
|
+
const deploymentCheck = deploymentChecks[0];
|
|
90
|
+
const environmentSteps = options.checkPlan.environmentNeeds
|
|
91
|
+
.filter((need) => need.kind !== "rust-toolchain")
|
|
92
|
+
.map((need) => [
|
|
93
|
+
` - run: ${renderCiEnvironmentNeedCommand(need)}`,
|
|
94
|
+
...(deploymentChecks.length > 0 && need.kind === "shellcheck-command"
|
|
95
|
+
? [" if: matrix.check == 'root'"]
|
|
96
|
+
: []),
|
|
97
|
+
].join("\n"));
|
|
98
|
+
return {
|
|
99
|
+
RUST_CI_PREPARATION: requiresRustToolchain
|
|
100
|
+
? `\n${rustCiPreparationLines().join("\n")}`
|
|
101
|
+
: "",
|
|
102
|
+
CHECK_ENVIRONMENT_PREPARATION: environmentSteps.length === 0 ? "" : `\n${environmentSteps.join("\n")}`,
|
|
103
|
+
DEPLOYMENT_MATRIX: deploymentChecks.length === 0
|
|
104
|
+
? ""
|
|
105
|
+
: "\n strategy:\n matrix:\n check: [root, deployment]",
|
|
106
|
+
DEPLOYMENT_DOCKER_PREPARATION: needsDocker
|
|
107
|
+
? "\n - uses: docker/setup-buildx-action@v3\n if: matrix.check == 'deployment'"
|
|
108
|
+
: "",
|
|
109
|
+
ROOT_CHECK_CONDITION: deploymentChecks.length === 0
|
|
110
|
+
? ""
|
|
111
|
+
: "\n if: matrix.check == 'root'",
|
|
112
|
+
DEPLOYMENT_CHECK: deploymentCheck === undefined
|
|
113
|
+
? ""
|
|
114
|
+
: `\n - run: pnpm run ${deploymentCheckTaskName(deploymentCheck)}\n if: matrix.check == 'deployment'`,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
48
117
|
export function projectDependabotConfig(policy) {
|
|
49
118
|
return [
|
|
50
119
|
"version: 2",
|
|
@@ -58,6 +127,15 @@ export function projectDependabotConfig(policy) {
|
|
|
58
127
|
"",
|
|
59
128
|
].join("\n");
|
|
60
129
|
}
|
|
130
|
+
/** Limited substitution for the Foundation-owned Dependabot Template Source. */
|
|
131
|
+
export function projectDependabotTemplateReplacements(policy) {
|
|
132
|
+
const header = "version: 2\n\nupdates:\n";
|
|
133
|
+
const configuration = projectDependabotConfig(policy);
|
|
134
|
+
if (!configuration.startsWith(header)) {
|
|
135
|
+
throw new Error("Dependabot configuration must retain its Template Source header");
|
|
136
|
+
}
|
|
137
|
+
return { DEPENDABOT_UPDATES: configuration.slice(header.length).trimEnd() };
|
|
138
|
+
}
|
|
61
139
|
function renderDependabotUpdate(ecosystem, directory, interval) {
|
|
62
140
|
const lines = [
|
|
63
141
|
` - package-ecosystem: ${ecosystem}`,
|
|
@@ -66,7 +144,7 @@ function renderDependabotUpdate(ecosystem, directory, interval) {
|
|
|
66
144
|
` interval: ${interval}`,
|
|
67
145
|
];
|
|
68
146
|
if (ecosystem === "npm") {
|
|
69
|
-
lines.push(" groups:", " drizzle:", " patterns:", ' - "drizzle-*"', ' - "drizzle-orm"', " ignore:", ' - dependency-name: "@types/node"', " update-types:", " - version-update:semver-major");
|
|
147
|
+
lines.push(" groups:", " drizzle:", " patterns:", ' - "drizzle-*"', ' - "drizzle-orm"', " ignore:", ' - dependency-name: "@types/node"', " update-types:", " - version-update:semver-major", ' - dependency-name: "pnpm"', " update-types:", " - version-update:semver-major", " - version-update:semver-minor", " - version-update:semver-patch");
|
|
70
148
|
}
|
|
71
149
|
if (ecosystem === "docker" && directory === "/.devcontainer") {
|
|
72
150
|
lines.push(" ignore:", " - dependency-name: mcr.microsoft.com/devcontainers/typescript-node", " update-types:", " - version-update:semver-major");
|
|
@@ -80,5 +158,12 @@ function defaultDependabotDirectory(ecosystem) {
|
|
|
80
158
|
return ecosystem === "docker" ? "/.devcontainer" : "/";
|
|
81
159
|
}
|
|
82
160
|
function renderCiEnvironmentNeedCommand(need) {
|
|
83
|
-
|
|
161
|
+
switch (need.kind) {
|
|
162
|
+
case "playwright-browser-assets":
|
|
163
|
+
return renderPlaywrightBrowserInstallCommand(need, { withDeps: true });
|
|
164
|
+
case "shellcheck-command":
|
|
165
|
+
return need.nextStep.display;
|
|
166
|
+
case "rust-toolchain":
|
|
167
|
+
return need.nextStep.display;
|
|
168
|
+
}
|
|
84
169
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PackageContribution } from "./package-contribution.ts";
|
|
2
|
+
import { type ProjectBlueprintV2 } from "./project-blueprint-v2.ts";
|
|
3
|
+
export type ExplicitProjectLinkPlan = {
|
|
4
|
+
readonly manifestDependenciesByPackagePath: ReadonlyMap<string, Readonly<Record<string, "workspace:*">>>;
|
|
5
|
+
/**
|
|
6
|
+
* Build ordering follows the same explicit package relationships as manifest
|
|
7
|
+
* dependencies. Turbo resolves ^build:run through the derived workspace
|
|
8
|
+
* dependency rather than through Preset or framework vocabulary.
|
|
9
|
+
*/
|
|
10
|
+
readonly hasBuildOrdering: boolean;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Resolves durable Link Intents using the explicit exposures supplied by
|
|
14
|
+
* Package Contributions. No Preset identity or string resource protocol is
|
|
15
|
+
* involved.
|
|
16
|
+
*/
|
|
17
|
+
export declare function planExplicitProjectLinks(options: {
|
|
18
|
+
readonly blueprint: ProjectBlueprintV2;
|
|
19
|
+
readonly contributions: readonly PackageContribution[];
|
|
20
|
+
}): ExplicitProjectLinkPlan;
|