@ykdz/template 0.0.24 → 0.0.26

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 (51) hide show
  1. package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.d.ts +3 -5
  2. package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.js +172 -165
  3. package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.js +4 -24
  4. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.d.ts +0 -3
  5. package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.js +8 -26
  6. package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.js +5 -29
  7. package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.js +24 -50
  8. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.js +2 -4
  9. package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.js +9 -26
  10. package/node_modules/@ykdz/template-builtin-presets/package.json +2 -1
  11. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check-playwright.yml +1 -1
  12. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check-rust.yml +1 -1
  13. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check.dynamic.template +1 -1
  14. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check.yml +1 -1
  15. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.dynamic.txt +1 -5
  16. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/pnpm-workspace.yaml +2 -3
  17. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/scripts/check-boundaries.ts +12 -0
  18. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/scripts/run-root-owned-task.ts +69 -0
  19. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/tsconfig.json +6 -1
  20. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/turbo.json +15 -8
  21. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/.github/workflows/check.yml +1 -1
  22. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/Cargo.lock +2 -2
  23. package/node_modules/@ykdz/template-builtin-presets/templates/rust-bin/Cargo.toml +1 -1
  24. package/node_modules/@ykdz/template-builtin-presets/templates/shared/devcontainer/node-pnpm.Dockerfile +5 -2
  25. package/node_modules/@ykdz/template-builtin-presets/templates/ts-lib/.github/workflows/check.yml +1 -1
  26. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/turbo.json +1 -1
  27. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/turbo.json +2 -2
  28. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/Dockerfile +5 -6
  29. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/scripts/check-standalone-deployment.ts +1 -1
  30. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/tsconfig.json +1 -1
  31. package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/turbo.json +3 -3
  32. package/node_modules/@ykdz/template-builtin-presets/templates/vue-app/.github/workflows/check.yml +1 -1
  33. package/node_modules/@ykdz/template-builtin-presets/templates/vue-app/turbo.json +3 -3
  34. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/api/turbo.json +1 -1
  35. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/playwright.config.ts +1 -1
  36. package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/turbo.json +2 -2
  37. package/node_modules/@ykdz/template-core/dist/Cargo.lock +2 -2
  38. package/node_modules/@ykdz/template-core/dist/Cargo.toml +1 -1
  39. package/node_modules/@ykdz/template-core/dist/dependency-catalog.d.ts +0 -1
  40. package/node_modules/@ykdz/template-core/dist/dependency-catalog.js +2 -8
  41. package/node_modules/@ykdz/template-core/dist/module-graph.d.ts +39 -37
  42. package/node_modules/@ykdz/template-core/dist/module-graph.js +84 -142
  43. package/node_modules/@ykdz/template-core/dist/package-contribution.d.ts +3 -5
  44. package/node_modules/@ykdz/template-core/dist/package-contribution.js +7 -7
  45. package/node_modules/@ykdz/template-core/dist/pnpm-workspace.yaml +5 -7
  46. package/node_modules/@ykdz/template-core/dist/project-github.d.ts +11 -3
  47. package/node_modules/@ykdz/template-core/dist/project-github.js +31 -36
  48. package/node_modules/@ykdz/template-core/dist/project-linking-v2.d.ts +1 -1
  49. package/node_modules/@ykdz/template-core/dist/renderer.js +38 -21
  50. package/package.json +1 -1
  51. package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.pnpmfile.cts +0 -14
@@ -24,7 +24,7 @@ export default defineConfig({
24
24
  },
25
25
  webServer: [
26
26
  {
27
- command: `pnpm --dir ../api run build:run && PORT=${apiPort} pnpm --dir ../api run start`,
27
+ command: `pnpm --dir ../api run build && PORT=${apiPort} pnpm --dir ../api run start`,
28
28
  url: apiHealthUrl,
29
29
  reuseExistingServer: false,
30
30
  },
@@ -2,10 +2,10 @@
2
2
  "extends": ["//"],
3
3
  "tags": ["app"],
4
4
  "tasks": {
5
- "build:run": {
5
+ "build": {
6
6
  "outputs": ["dist/**"]
7
7
  },
8
- "test:e2e:run": {
8
+ "test:e2e": {
9
9
  "cache": false
10
10
  }
11
11
  }
@@ -4,9 +4,9 @@ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "anyhow"
7
- version = "1.0.103"
7
+ version = "1.0.104"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
9
+ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
10
10
 
11
11
  [[package]]
12
12
  name = "template-cargo-dependencies"
@@ -9,4 +9,4 @@ name = "template-cargo-dependencies"
9
9
  path = "packages/builtin-presets/templates/rust-bin/src/main.rs"
10
10
 
11
11
  [dependencies]
12
- anyhow = "1.0.100"
12
+ anyhow = "1.0.104"
@@ -12,7 +12,6 @@ export type GeneratedDependencyCatalogOptions = {
12
12
  };
13
13
  readonly minimumReleaseAgeExclude?: readonly string[];
14
14
  readonly overrides?: Readonly<Record<string, string>>;
15
- readonly pnpmfile?: string;
16
15
  };
17
16
  export type GeneratedPackageManifestDependencies = {
18
17
  readonly dependencies?: Record<string, string>;
@@ -218,15 +218,12 @@ export function renderGeneratedPnpmWorkspaceYaml(options) {
218
218
  ]
219
219
  : []),
220
220
  `nodeLinker: ${dependencyLinker}`,
221
- ...(options.pnpmfile === undefined
222
- ? []
223
- : [`pnpmfile: ${options.pnpmfile}`]),
224
221
  "autoInstallPeers: false",
225
222
  "resolvePeersFromWorkspaceRoot: false",
226
223
  "injectWorkspacePackages: true",
227
224
  "dedupeInjectedDeps: false",
228
225
  "syncInjectedDepsAfterScripts:",
229
- " - build:run",
226
+ " - build",
230
227
  "minimumReleaseAge: 1440",
231
228
  "minimumReleaseAgeStrict: true",
232
229
  "",
@@ -241,10 +238,7 @@ export function renderGeneratedPnpmWorkspaceYaml(options) {
241
238
  .toSorted(([left], [right]) => left.localeCompare(right))
242
239
  .map(([dependency, allowed]) => ` ${dependency}: ${allowed}`), "");
243
240
  }
244
- const overrides = {
245
- "valibot>typescript": "-",
246
- ...options.overrides,
247
- };
241
+ const overrides = options.overrides ?? {};
248
242
  if (Object.keys(overrides).length > 0) {
249
243
  lines.push("overrides:", ...Object.entries(overrides)
250
244
  .toSorted(([left], [right]) => left.localeCompare(right))
@@ -7,8 +7,6 @@ export type WorkspaceOrchestrationOwner = {
7
7
  readonly path: ".";
8
8
  };
9
9
  export type ComponentOwner = PackageBoundaryOwner | WorkspaceOrchestrationOwner;
10
- export type CheckComponentKind = "typescript-typecheck" | "oxc-lint" | "oxc-format-check" | "build" | "unit-test" | "e2e-test" | "turbo-check" | "turbo-package-typecheck" | "turbo-package-build" | "turbo-package-test" | "turbo-package-e2e-test" | "turbo-package-check" | "rustfmt-check" | "cargo-clippy" | "cargo-test";
11
- export type FixComponentKind = "oxc-format-write" | "oxc-lint-fix" | "turbo-fix" | "turbo-package-fix" | "rustfmt-write";
12
10
  export type PlaywrightBrowserAssetsEnvironmentNeed = {
13
11
  readonly kind: "playwright-browser-assets";
14
12
  readonly browser: "chromium";
@@ -34,7 +32,7 @@ export type ShellCheckEnvironmentNeed = {
34
32
  readonly machineVerifiable: false;
35
33
  };
36
34
  };
37
- /** Rust check components require the maintained toolchain in local and CI plans. */
35
+ /** Rust task leaves require the maintained toolchain in local and CI plans. */
38
36
  export type RustToolchainEnvironmentNeed = {
39
37
  readonly kind: "rust-toolchain";
40
38
  readonly owner: ComponentOwner;
@@ -48,42 +46,46 @@ export type RustToolchainEnvironmentNeed = {
48
46
  readonly machineVerifiable: boolean;
49
47
  };
50
48
  };
51
- export type CheckEnvironmentNeed = PlaywrightBrowserAssetsEnvironmentNeed | ShellCheckEnvironmentNeed | RustToolchainEnvironmentNeed;
52
- export declare function rustToolchainEnvironmentNeed(owner: ComponentOwner): RustToolchainEnvironmentNeed;
53
- export type CheckComponent = {
54
- readonly kind: CheckComponentKind;
55
- readonly owner: ComponentOwner;
56
- };
57
- export type DeploymentCheckComponent = {
58
- readonly kind: "deployment-image";
59
- readonly owner: PackageBoundaryOwner;
60
- };
61
- export type DeploymentCheckEnvironmentNeed = {
49
+ /**
50
+ * Docker is needed only by the focused deployment mode. It is deliberately
51
+ * outside ordinary Check Environment Needs, whose preparation and next steps
52
+ * apply to every generated-check scenario.
53
+ */
54
+ export type DockerEngineEnvironmentNeed = {
62
55
  readonly kind: "docker-engine";
56
+ readonly preparation: {
57
+ readonly id: "verify-docker-engine";
58
+ readonly label: "Verify Docker engine";
59
+ readonly command: "docker";
60
+ readonly args: readonly ["version", "--format", "{{.Server.Version}}"];
61
+ readonly display: "docker version --format {{.Server.Version}}";
62
+ readonly machineVerifiable: true;
63
+ };
63
64
  };
64
- export type FixComponent = {
65
- readonly kind: FixComponentKind;
66
- readonly owner: ComponentOwner;
67
- };
68
- export type CheckPlan = {
69
- readonly components: CheckComponent[];
70
- readonly environmentNeeds: CheckEnvironmentNeed[];
71
- readonly deploymentChecks?: DeploymentCheckComponent[] | undefined;
72
- };
73
- export type FixPlan = {
74
- readonly components: FixComponent[];
75
- };
76
- export declare function renderTurboRunCommand(taskNames: readonly string[], args?: readonly string[]): string;
77
- export declare function checkComponentTaskName(component: CheckComponent): string;
78
- export declare function fixComponentTaskName(component: FixComponent): string;
79
- export declare function renderCheckLeafCommand(component: CheckComponent): string;
80
- export declare function renderFixLeafCommand(component: FixComponent): string;
81
- export declare function renderRootCheckCommand(plan: CheckPlan): string;
82
- export declare function deploymentCheckEnvironmentNeeds(check: DeploymentCheckComponent): DeploymentCheckEnvironmentNeed[];
83
- export declare function deploymentCheckTaskName(check: DeploymentCheckComponent): "check:deployment";
84
- export declare function renderDeploymentCheckLeafCommand(check: DeploymentCheckComponent): string;
85
- export declare function renderDeploymentCheckCommand(plan: Pick<CheckPlan, "deploymentChecks">): string;
86
- export declare function renderFixCommand(plan: FixPlan): string;
65
+ export type CheckEnvironmentNeed = PlaywrightBrowserAssetsEnvironmentNeed | ShellCheckEnvironmentNeed | RustToolchainEnvironmentNeed;
66
+ export type DeploymentEnvironmentNeed = DockerEngineEnvironmentNeed;
67
+ /**
68
+ * The durable form of a Check Environment Need. It deliberately retains only
69
+ * the explicit preparation fact, never a task name or package execution list.
70
+ */
71
+ export type CheckEnvironmentNeedFact = Pick<PlaywrightBrowserAssetsEnvironmentNeed, "kind" | "browser" | "owner"> | Pick<ShellCheckEnvironmentNeed, "kind" | "owner"> | Pick<RustToolchainEnvironmentNeed, "kind" | "owner" | "toolchain">;
72
+ /** Deployment preparation is likewise durable without selecting an executing package. */
73
+ export type DeploymentEnvironmentNeedFact = Pick<DockerEngineEnvironmentNeed, "kind">;
74
+ export declare function checkEnvironmentNeedFact(need: CheckEnvironmentNeed): CheckEnvironmentNeedFact;
75
+ export declare function checkEnvironmentNeedFromFact(fact: CheckEnvironmentNeedFact): CheckEnvironmentNeed;
76
+ export declare function deploymentEnvironmentNeedFact(need: DeploymentEnvironmentNeed): DeploymentEnvironmentNeedFact;
77
+ export declare function deploymentEnvironmentNeedFromFact(fact: DeploymentEnvironmentNeedFact): DeploymentEnvironmentNeed;
78
+ export declare function rustToolchainEnvironmentNeed(owner: ComponentOwner): RustToolchainEnvironmentNeed;
79
+ export declare function dockerEngineEnvironmentNeed(): DockerEngineEnvironmentNeed;
80
+ export declare const qualityTaskVocabulary: readonly ["boundaries", "format:check", "lint", "typecheck", "build", "test", "test:e2e"];
81
+ export declare function renderTurboRunCommand(taskNames: readonly string[], args?: readonly string[], options?: {
82
+ readonly outputLogs?: "errors-only" | "full";
83
+ readonly continueAfterFailure?: boolean;
84
+ readonly taskPrefix?: boolean;
85
+ }): string;
86
+ export declare function renderRootCheckCommand(): string;
87
+ export declare function renderDeploymentCheckCommand(): string;
88
+ export declare function renderFixCommand(): string;
87
89
  export declare function renderPlaywrightBrowserInstallCommand(need: CheckEnvironmentNeed, options?: {
88
90
  readonly withDeps?: boolean;
89
91
  }): string;
@@ -1,3 +1,39 @@
1
+ export function checkEnvironmentNeedFact(need) {
2
+ switch (need.kind) {
3
+ case "playwright-browser-assets":
4
+ return { kind: need.kind, browser: need.browser, owner: need.owner };
5
+ case "shellcheck-command":
6
+ return { kind: need.kind, owner: need.owner };
7
+ case "rust-toolchain":
8
+ return {
9
+ kind: need.kind,
10
+ owner: need.owner,
11
+ toolchain: need.toolchain,
12
+ };
13
+ }
14
+ }
15
+ export function checkEnvironmentNeedFromFact(fact) {
16
+ switch (fact.kind) {
17
+ case "playwright-browser-assets":
18
+ return playwrightBrowserAssetsEnvironmentNeed({
19
+ browser: fact.browser,
20
+ owner: fact.owner,
21
+ });
22
+ case "shellcheck-command":
23
+ return shellCheckEnvironmentNeed(fact.owner);
24
+ case "rust-toolchain":
25
+ return rustToolchainEnvironmentNeed(fact.owner);
26
+ }
27
+ }
28
+ export function deploymentEnvironmentNeedFact(need) {
29
+ return { kind: need.kind };
30
+ }
31
+ export function deploymentEnvironmentNeedFromFact(fact) {
32
+ if (fact.kind !== "docker-engine") {
33
+ throw new Error("Unsupported Deployment Environment Need fact.");
34
+ }
35
+ return dockerEngineEnvironmentNeed();
36
+ }
1
37
  export function rustToolchainEnvironmentNeed(owner) {
2
38
  return {
3
39
  kind: "rust-toolchain",
@@ -21,150 +57,56 @@ export function rustToolchainEnvironmentNeed(owner) {
21
57
  },
22
58
  };
23
59
  }
24
- function renderTurboPackageFilter(owner) {
25
- if (owner.kind !== "package-boundary") {
26
- throw new Error("Turbo package tasks require a Package Boundary owner.");
27
- }
28
- return `--filter './${owner.path}'`;
60
+ export function dockerEngineEnvironmentNeed() {
61
+ return {
62
+ kind: "docker-engine",
63
+ preparation: {
64
+ id: "verify-docker-engine",
65
+ label: "Verify Docker engine",
66
+ command: "docker",
67
+ args: ["version", "--format", "{{.Server.Version}}"],
68
+ display: "docker version --format {{.Server.Version}}",
69
+ machineVerifiable: true,
70
+ },
71
+ };
29
72
  }
30
- const turboAgentOutputArgs = [
31
- "--output-logs=errors-only",
32
- "--log-order=grouped",
73
+ export const qualityTaskVocabulary = [
74
+ "boundaries",
75
+ "format:check",
76
+ "lint",
77
+ "typecheck",
78
+ "build",
79
+ "test",
80
+ "test:e2e",
33
81
  ];
34
- export function renderTurboRunCommand(taskNames, args = []) {
35
- return ["turbo run", ...taskNames, ...args, ...turboAgentOutputArgs].join(" ");
36
- }
37
- export function checkComponentTaskName(component) {
38
- return checkComponentTaskNames(component)[0] ?? "check:run";
39
- }
40
- function checkComponentTaskNames(component) {
41
- switch (component.kind) {
42
- case "typescript-typecheck":
43
- case "turbo-package-typecheck":
44
- return ["typecheck:run"];
45
- case "oxc-lint":
46
- case "cargo-clippy":
47
- return ["lint:run"];
48
- case "oxc-format-check":
49
- case "rustfmt-check":
50
- return ["format:check:run"];
51
- case "build":
52
- case "turbo-package-build":
53
- return ["build:run"];
54
- case "unit-test":
55
- case "cargo-test":
56
- case "turbo-package-test":
57
- return ["test:run"];
58
- case "e2e-test":
59
- case "turbo-package-e2e-test":
60
- return ["test:e2e:run"];
61
- case "turbo-check":
62
- case "turbo-package-check":
63
- return [
64
- "format:check:run",
65
- "lint:run",
66
- "typecheck:run",
67
- "build:run",
68
- "test:run",
69
- "test:e2e:run",
70
- ];
71
- }
72
- }
73
- export function fixComponentTaskName(component) {
74
- return fixComponentTaskNames(component)[0] ?? "fix:run";
75
- }
76
- function fixComponentTaskNames(component) {
77
- switch (component.kind) {
78
- case "oxc-format-write":
79
- case "rustfmt-write":
80
- return ["format:write:run"];
81
- case "oxc-lint-fix":
82
- return ["lint:fix:run"];
83
- case "turbo-fix":
84
- case "turbo-package-fix":
85
- return ["format:write:run", "lint:fix:run"];
86
- }
87
- }
88
- function uniqueTaskNames(taskNames) {
89
- return [...new Set(taskNames)];
90
- }
91
- export function renderCheckLeafCommand(component) {
92
- switch (component.kind) {
93
- case "typescript-typecheck":
94
- return "pnpm run typecheck";
95
- case "oxc-lint":
96
- return "pnpm run lint";
97
- case "oxc-format-check":
98
- return "pnpm run format:check";
99
- case "build":
100
- return "pnpm run build";
101
- case "unit-test":
102
- return "pnpm run test";
103
- case "e2e-test":
104
- return "pnpm run test:e2e";
105
- case "turbo-check":
106
- return renderTurboRunCommand(["check"]);
107
- case "turbo-package-typecheck":
108
- return renderTurboRunCommand(["typecheck"], [renderTurboPackageFilter(component.owner)]);
109
- case "turbo-package-build":
110
- return renderTurboRunCommand(["build"], [renderTurboPackageFilter(component.owner)]);
111
- case "turbo-package-test":
112
- return renderTurboRunCommand(["test"], [renderTurboPackageFilter(component.owner)]);
113
- case "turbo-package-e2e-test":
114
- return renderTurboRunCommand(["test:e2e"], [renderTurboPackageFilter(component.owner)]);
115
- case "turbo-package-check":
116
- return renderTurboRunCommand(["check"], [renderTurboPackageFilter(component.owner)]);
117
- case "rustfmt-check":
118
- return "cargo fmt --all -- --check";
119
- case "cargo-clippy":
120
- return "cargo clippy --workspace --all-targets -- -D warnings";
121
- case "cargo-test":
122
- return "cargo test --workspace";
123
- }
124
- }
125
- export function renderFixLeafCommand(component) {
126
- switch (component.kind) {
127
- case "oxc-format-write":
128
- return "pnpm run format:write";
129
- case "oxc-lint-fix":
130
- return "pnpm run lint:fix";
131
- case "turbo-fix":
132
- return renderTurboRunCommand(["fix"]);
133
- case "turbo-package-fix":
134
- return renderTurboRunCommand(["fix"], [renderTurboPackageFilter(component.owner)]);
135
- case "rustfmt-write":
136
- return "cargo fmt --all";
137
- }
138
- }
139
- export function renderRootCheckCommand(plan) {
140
- return renderTurboRunCommand(uniqueTaskNames([
141
- ...plan.components.flatMap(checkComponentTaskNames),
142
- "check:run",
143
- ]));
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
- }
163
- export function renderFixCommand(plan) {
164
- return renderTurboRunCommand(uniqueTaskNames([
165
- ...plan.components.flatMap(fixComponentTaskNames),
166
- "fix:run",
167
- ]));
82
+ export function renderTurboRunCommand(taskNames, args = [], options = {}) {
83
+ return [
84
+ "turbo run",
85
+ ...taskNames,
86
+ ...args,
87
+ ...(options.continueAfterFailure
88
+ ? ["--continue=dependencies-successful"]
89
+ : []),
90
+ `--output-logs=${options.outputLogs ?? "errors-only"}`,
91
+ "--log-order=grouped",
92
+ ...(options.taskPrefix ? ["--log-prefix=task"] : []),
93
+ ].join(" ");
94
+ }
95
+ export function renderRootCheckCommand() {
96
+ return renderTurboRunCommand(qualityTaskVocabulary, [], {
97
+ continueAfterFailure: true,
98
+ taskPrefix: true,
99
+ });
100
+ }
101
+ export function renderDeploymentCheckCommand() {
102
+ return renderTurboRunCommand(["deployment"], [], { taskPrefix: true });
103
+ }
104
+ export function renderFixCommand() {
105
+ return renderTurboRunCommand(["lint:fix", "format:write"], [], {
106
+ continueAfterFailure: true,
107
+ outputLogs: "full",
108
+ taskPrefix: true,
109
+ });
168
110
  }
169
111
  function playwrightBrowserInstallArgs(need, options = {}) {
170
112
  const installArgs = [
@@ -1,5 +1,5 @@
1
1
  import type { EditorCustomizationCapability } from "./editor-customization.ts";
2
- import type { CheckComponent, CheckEnvironmentNeed, DeploymentCheckComponent, FixComponent } from "./module-graph.ts";
2
+ import type { CheckEnvironmentNeed, DeploymentEnvironmentNeed } from "./module-graph.ts";
3
3
  import type { PackageDefinition } from "./project-blueprint-v2.ts";
4
4
  import type { DependencyMaintenancePolicy } from "./project-github.ts";
5
5
  import type { RenderOperation } from "./renderer.ts";
@@ -31,11 +31,9 @@ export type PackageContribution = {
31
31
  readonly operations: readonly RenderOperation[];
32
32
  /** Typed requirements consumed by the Foundation for coordinated root outputs. */
33
33
  readonly foundation: FoundationContribution;
34
- readonly checks: readonly CheckComponent[];
35
- readonly fixes: readonly FixComponent[];
36
34
  readonly environmentNeeds: readonly CheckEnvironmentNeed[];
37
- /** Deployment checks are package-owned and composed by the Foundation. */
38
- readonly deploymentChecks?: readonly DeploymentCheckComponent[];
35
+ /** Requirements prepared only by a focused deployment entrypoint. */
36
+ readonly deploymentEnvironmentNeeds?: readonly DeploymentEnvironmentNeed[];
39
37
  };
40
38
  export declare function assertPackageContribution(contribution: PackageContribution, provenance?: {
41
39
  readonly definitionName?: string;
@@ -1,14 +1,14 @@
1
+ const operationPath = (operation) => {
2
+ if ("to" in operation)
3
+ return operation.to;
4
+ if ("path" in operation)
5
+ return operation.path;
6
+ return "";
7
+ };
1
8
  export function assertPackageContribution(contribution, provenance = {}) {
2
9
  if (contribution.definition.name !== contribution.manifest.name) {
3
10
  throw new Error("Package Contribution manifest name must match its Package Definition");
4
11
  }
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
12
  const outsideOperation = contribution.operations.find((operation) => !operationPath(operation).startsWith(`${contribution.definition.path}/`));
13
13
  if (outsideOperation) {
14
14
  const target = operationPath(outsideOperation);
@@ -11,7 +11,6 @@ dedupeInjectedDeps: false
11
11
 
12
12
  syncInjectedDepsAfterScripts:
13
13
  - build
14
- - build:run
15
14
 
16
15
  minimumReleaseAge: 1440
17
16
 
@@ -19,7 +18,6 @@ minimumReleaseAgeStrict: true
19
18
 
20
19
  overrides:
21
20
  "pinia>typescript": "-"
22
- "valibot>typescript": "-"
23
21
  "vue>typescript": "-"
24
22
 
25
23
  catalog:
@@ -28,24 +26,24 @@ catalog:
28
26
  "@tailwindcss/vite": ^4.3.2
29
27
  "@types/node": ^24.13.3
30
28
  "@types/web-bluetooth": ^0.0.21
31
- "@vitejs/plugin-vue": ^6.0.7
29
+ "@vitejs/plugin-vue": ^6.0.8
32
30
  "@vikejs/hono": ^0.2.1
33
31
  "@vue/tsconfig": ^0.9.1
34
32
  drizzle-kit: 1.0.0-rc.4
35
33
  drizzle-orm: 1.0.0-rc.4
36
- execa: ^9.6.1
37
- hono: ^4.12.27
34
+ execa: ^10.0.0
35
+ hono: ^4.12.31
38
36
  oxfmt: ^0.58.0
39
37
  oxlint: ^1.73.0
40
38
  oxlint-tsgolint: ^0.24.0
41
39
  semver: ^7.8.5
42
40
  "@types/semver": ^7.7.1
43
41
  pinia: ^3.0.4
44
- srvx: ^0.11.21
42
+ srvx: ^0.12.1
45
43
  tailwindcss: ^4.3.2
46
44
  telefunc: ^0.2.22
47
45
  tsc-alias: ^1.8.17
48
- turbo: 2.10.2
46
+ turbo: 2.10.5
49
47
  typescript: npm:@typescript/typescript6@^6.0.2
50
48
  typescript-7: npm:typescript@^7.0.2
51
49
  valibot: ^1.4.2
@@ -1,4 +1,4 @@
1
- import { type CheckPlan } from "./module-graph.ts";
1
+ import { type CheckEnvironmentNeed, type DeploymentEnvironmentNeed } from "./module-graph.ts";
2
2
  export type CiCapability = {
3
3
  readonly workflowName: "Check";
4
4
  readonly jobName: "check";
@@ -21,7 +21,11 @@ export type DependencyMaintenancePolicy = {
21
21
  readonly interval: "weekly";
22
22
  };
23
23
  type ProjectCheckWorkflowOptions = {
24
- readonly checkPlan: CheckPlan;
24
+ readonly environment: {
25
+ readonly needs: readonly CheckEnvironmentNeed[];
26
+ };
27
+ readonly deploymentEnvironmentNeeds?: readonly DeploymentEnvironmentNeed[];
28
+ readonly hasDeploymentTask?: boolean | undefined;
25
29
  readonly capability?: CiCapability | undefined;
26
30
  readonly environmentPreparation?: Partial<CiEnvironmentPreparation> | undefined;
27
31
  readonly taskLayer?: PnpmTaskLayer | undefined;
@@ -29,7 +33,11 @@ type ProjectCheckWorkflowOptions = {
29
33
  export declare function projectCheckWorkflow(options: ProjectCheckWorkflowOptions): string;
30
34
  /** Limited substitutions for the Foundation-owned workflow Template Source. */
31
35
  export declare function projectCheckWorkflowTemplateReplacements(options: {
32
- readonly checkPlan: CheckPlan;
36
+ readonly environment: {
37
+ readonly needs: readonly CheckEnvironmentNeed[];
38
+ };
39
+ readonly deploymentEnvironmentNeeds?: readonly DeploymentEnvironmentNeed[];
40
+ readonly hasDeploymentTask?: boolean | undefined;
33
41
  readonly environmentPreparation?: Partial<CiEnvironmentPreparation>;
34
42
  }): Record<string, string>;
35
43
  export declare function projectDependabotConfig(policy: DependencyMaintenancePolicy): string;