@ykdz/template 0.0.33 → 0.0.36
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/application.d.ts +2 -1
- package/dist/application.js +64 -75
- package/dist/main.js +6 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.d.ts +50 -36
- package/node_modules/@ykdz/template-builtin-presets/dist/src/foundation.js +970 -365
- package/node_modules/@ykdz/template-builtin-presets/dist/src/generation-record.d.ts +24 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/generation-record.js +154 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/index.d.ts +2 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/index.js +1 -1
- package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.d.ts +31 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/rust-bin/definition.js +29 -33
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/development-container.d.ts +1 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/development-container.js +17 -0
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/typescript.d.ts +4 -3
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/typescript.js +9 -5
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.d.ts +1 -1
- package/node_modules/@ykdz/template-builtin-presets/dist/src/shared/vue.js +1 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-cli/definition.d.ts +31 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-cli/definition.js +79 -58
- package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.d.ts +31 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/ts-lib/definition.js +31 -23
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.d.ts +22 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vike-app/definition.js +61 -35
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.d.ts +26 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-app/definition.js +19 -8
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.d.ts +22 -2
- package/node_modules/@ykdz/template-builtin-presets/dist/src/vue-hono-app/definition.js +31 -21
- package/node_modules/@ykdz/template-builtin-presets/package.json +12 -11
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check-deployment-diagnostics.yml +1 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.github/workflows/check-deployment.yml +1 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/.pnpmfile.mjs +19 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/gitignore +1 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/foundation/tsconfig.packing-hook.json +8 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/shared/devcontainer/github-cli.Dockerfile +9 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/CHANGELOG.md.template +17 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/RELEASING.md +17 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/artifact.ts +1271 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/changelog.ts +283 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/check-artifact.ts +99 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/check-readiness.ts +66 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/cli-command-identity.ts +4 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/handoff.ts +450 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/publish.ts +483 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/readiness.ts +1125 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/release.ts +819 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/release.yml +119 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/root-tsconfig.json +13 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/tsconfig.json +4 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication/turbo.json +6 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/README.md +48 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/CHANGELOG.md.template +17 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/LICENSE-APACHE-2.0.txt +202 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/LICENSE-MIT.txt +21 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/assets/README.md.template +5 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/bridge.ts +3336 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/publication-setup/setup.sh +221 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/src/cli-command-identity.ts +133 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/src/cli.ts +4 -3
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/src/main.ts +5 -4
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/test/integration/command.test.ts +14 -13
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/test/unit/cli-command-identity.test.ts +76 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/ts-cli/tsconfig.build.json +2 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/src/readiness.ts +1 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/test/global-setup.ts +21 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/tsconfig.json +6 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db/vitest.config.ts +7 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/drizzle.config.ts +5 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/playwright.config.ts +102 -22
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/test/playwright-teardown.ts +12 -0
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/vite.config.ts +39 -1
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-app/playwright.config.ts +48 -7
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/playwright.config.ts +59 -8
- package/node_modules/@ykdz/template-core/dist/module-graph.d.ts +15 -53
- package/node_modules/@ykdz/template-core/dist/module-graph.js +134 -101
- package/node_modules/@ykdz/template-core/dist/package-contribution.d.ts +13 -1
- package/node_modules/@ykdz/template-core/dist/package-contribution.js +92 -0
- package/node_modules/@ykdz/template-core/dist/pnpm-workspace.yaml +14 -10
- package/node_modules/@ykdz/template-core/dist/preset-definition.d.ts +71 -13
- package/node_modules/@ykdz/template-core/dist/preset-definition.js +16 -1
- package/node_modules/@ykdz/template-core/dist/project-blueprint.d.ts +56 -0
- package/node_modules/@ykdz/template-core/dist/project-blueprint.js +271 -0
- package/node_modules/@ykdz/template-core/dist/project-linking-v2.d.ts +2 -2
- package/node_modules/@ykdz/template-core/dist/project-linking-v2.js +2 -2
- package/node_modules/@ykdz/template-core/dist/project-projection.d.ts +2 -1
- package/node_modules/@ykdz/template-core/dist/project-projection.js +107 -20
- package/node_modules/@ykdz/template-core/dist/renderer.d.ts +0 -2
- package/node_modules/@ykdz/template-core/dist/renderer.js +17 -38
- package/node_modules/@ykdz/template-core/dist/template-boundary-check.d.ts +2 -2
- package/node_modules/@ykdz/template-core/dist/template-boundary-check.js +6 -0
- package/node_modules/@ykdz/template-core/dist/toolchain-resolution.d.ts +2 -0
- package/node_modules/@ykdz/template-core/dist/toolchain-resolution.js +9 -3
- package/package.json +3 -3
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/db-migrations/scripts/prepare-database.ts +0 -45
- package/node_modules/@ykdz/template-builtin-presets/templates/vike-app/web/scripts/run-playwright.ts +0 -151
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-app/scripts/run-playwright.ts +0 -62
- package/node_modules/@ykdz/template-builtin-presets/templates/vue-hono-app/web/scripts/run-playwright.ts +0 -103
- package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.d.ts +0 -33
- package/node_modules/@ykdz/template-core/dist/project-blueprint-v2.js +0 -182
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { definePackageContributionReplayAdapter, } from "#template-core/preset-definition";
|
|
1
2
|
import { sharedVueSourceOperations, vueApplicationDevelopmentContainerToolLayers, vueApplicationEnvironmentNeeds, vueApplicationExposure, vueApplicationManifest, vueApplicationScripts, } from "../shared/vue.js";
|
|
2
3
|
import { templateSources } from "../template-sources.js";
|
|
3
4
|
function packageScripts() {
|
|
@@ -7,8 +8,8 @@ function packageScripts() {
|
|
|
7
8
|
};
|
|
8
9
|
}
|
|
9
10
|
function appContribution(options) {
|
|
10
|
-
const definition = {
|
|
11
|
-
name: `@${options.context.
|
|
11
|
+
const definition = options.packageDefinition ?? {
|
|
12
|
+
name: `@${options.context.defaultPackageScope}/${options.packageLeafName}`,
|
|
12
13
|
path: options.packagePath,
|
|
13
14
|
role: "runtime-service",
|
|
14
15
|
};
|
|
@@ -20,7 +21,6 @@ function appContribution(options) {
|
|
|
20
21
|
"vite.config.ts",
|
|
21
22
|
"vitest.config.ts",
|
|
22
23
|
"turbo.json",
|
|
23
|
-
"scripts/run-playwright.ts",
|
|
24
24
|
"src/App.vue",
|
|
25
25
|
"test/e2e/app.spec.ts",
|
|
26
26
|
];
|
|
@@ -53,15 +53,25 @@ function appContribution(options) {
|
|
|
53
53
|
foundation: {
|
|
54
54
|
toolchains: {},
|
|
55
55
|
editorCapabilities: ["oxc-format-lint", "vue", "tailwind", "vitest"],
|
|
56
|
+
typescriptConfigurationPackage: { dependency: "required" },
|
|
56
57
|
dependencyMaintenance: {
|
|
57
58
|
ecosystems: ["npm", "github-actions", "docker"],
|
|
58
59
|
interval: "weekly",
|
|
59
60
|
},
|
|
60
|
-
workspacePackageGlobs: [`${
|
|
61
|
+
workspacePackageGlobs: [`${definition.path.split("/")[0]}/*`],
|
|
61
62
|
developmentContainerToolLayers: vueApplicationDevelopmentContainerToolLayers(),
|
|
62
63
|
},
|
|
63
64
|
};
|
|
64
65
|
}
|
|
66
|
+
const appReplayAdapter = definePackageContributionReplayAdapter({
|
|
67
|
+
identity: "app",
|
|
68
|
+
replay: ({ context, packageDefinition, packageLeafName }) => appContribution({
|
|
69
|
+
context,
|
|
70
|
+
packageLeafName,
|
|
71
|
+
packagePath: packageDefinition.path,
|
|
72
|
+
packageDefinition,
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
65
75
|
export const vueAppDefinition = {
|
|
66
76
|
metadata: {
|
|
67
77
|
name: "vue-app",
|
|
@@ -70,9 +80,10 @@ export const vueAppDefinition = {
|
|
|
70
80
|
},
|
|
71
81
|
source: templateSources.vueApp,
|
|
72
82
|
plannerSourceFile: fileURLToPath(import.meta.url),
|
|
83
|
+
packageContributionReplayAdapters: [appReplayAdapter],
|
|
73
84
|
blueprint(context) {
|
|
74
85
|
return {
|
|
75
|
-
schemaVersion:
|
|
86
|
+
schemaVersion: 3,
|
|
76
87
|
packages: [
|
|
77
88
|
appContribution({
|
|
78
89
|
context,
|
|
@@ -83,17 +94,17 @@ export const vueAppDefinition = {
|
|
|
83
94
|
};
|
|
84
95
|
},
|
|
85
96
|
planInitialization(context) {
|
|
86
|
-
return appContribution({
|
|
97
|
+
return appReplayAdapter.identify(appContribution({
|
|
87
98
|
context,
|
|
88
99
|
packageLeafName: "web",
|
|
89
100
|
packagePath: "apps/web",
|
|
90
|
-
});
|
|
101
|
+
}));
|
|
91
102
|
},
|
|
92
103
|
defaultPackagePath({ packageLeafName }) {
|
|
93
104
|
return `apps/${packageLeafName}`;
|
|
94
105
|
},
|
|
95
106
|
planPackageAddition({ context, packageLeafName, packagePath }) {
|
|
96
|
-
return appContribution({ context, packageLeafName, packagePath });
|
|
107
|
+
return appReplayAdapter.identify(appContribution({ context, packageLeafName, packagePath }));
|
|
97
108
|
},
|
|
98
109
|
};
|
|
99
110
|
import { fileURLToPath } from "node:url";
|
|
@@ -1,2 +1,22 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
1
|
+
import { type GenerationContext } from "#template-core/preset-definition";
|
|
2
|
+
import type { PackageDefinition } from "#template-core/project-blueprint";
|
|
3
|
+
export declare const vueHonoAppDefinition: {
|
|
4
|
+
metadata: {
|
|
5
|
+
name: string;
|
|
6
|
+
title: string;
|
|
7
|
+
description: string;
|
|
8
|
+
};
|
|
9
|
+
source: import("@ykdz/template-core/renderer").TemplateSourceHandle;
|
|
10
|
+
plannerSourceFile: string;
|
|
11
|
+
packageContributionReplayAdapters: import("@ykdz/template-core/preset-definition").PackageContributionReplayAdapter[];
|
|
12
|
+
blueprint(context: GenerationContext): {
|
|
13
|
+
schemaVersion: 3;
|
|
14
|
+
packages: PackageDefinition[];
|
|
15
|
+
packageLinkIntents: {
|
|
16
|
+
consumerPackagePath: string;
|
|
17
|
+
providerPackagePath: string;
|
|
18
|
+
}[];
|
|
19
|
+
};
|
|
20
|
+
planInitialization(context: GenerationContext): import("@ykdz/template-core/preset-definition").PlannedPackageContribution;
|
|
21
|
+
planInitializationContributions(context: GenerationContext): import("@ykdz/template-core/preset-definition").PlannedPackageContribution[];
|
|
22
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { definePackageContributionReplayAdapter, } from "#template-core/preset-definition";
|
|
1
2
|
import { typescriptConfigSourceOperation } from "../shared/typescript.js";
|
|
2
3
|
import { sharedVueSourceOperations, vueApplicationDevelopmentContainerToolLayers, vueApplicationEnvironmentNeeds, vueApplicationExposure, vueApplicationManifest, vueApplicationScripts, } from "../shared/vue.js";
|
|
3
4
|
import { templateSources } from "../template-sources.js";
|
|
@@ -20,23 +21,23 @@ function webScripts() {
|
|
|
20
21
|
typecheck: "node --conditions=source scripts/run-vue-tsc.ts --build --noEmit --pretty false",
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
|
-
function packageFoundation() {
|
|
24
|
+
function packageFoundation(packagePath) {
|
|
24
25
|
return {
|
|
25
26
|
toolchains: {},
|
|
26
27
|
editorCapabilities: ["oxc-format-lint", "vue", "tailwind", "vitest"],
|
|
28
|
+
typescriptConfigurationPackage: { dependency: "required" },
|
|
27
29
|
dependencyMaintenance: {
|
|
28
30
|
ecosystems: ["npm", "github-actions", "docker"],
|
|
29
31
|
interval: "weekly",
|
|
30
32
|
},
|
|
31
|
-
workspacePackageGlobs: ["
|
|
33
|
+
workspacePackageGlobs: [`${packagePath.split("/")[0]}/*`],
|
|
32
34
|
};
|
|
33
35
|
}
|
|
34
|
-
function apiContribution(context
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
36
|
+
function apiContribution(context, definition = {
|
|
37
|
+
name: `@${context.defaultPackageScope}/api`,
|
|
38
|
+
path: "apps/api",
|
|
39
|
+
role: "runtime-service",
|
|
40
|
+
}) {
|
|
40
41
|
const exposure = {
|
|
41
42
|
exports: {
|
|
42
43
|
".": { default: "./dist/index.js", types: "./dist/index.d.ts" },
|
|
@@ -80,7 +81,6 @@ function apiContribution(context) {
|
|
|
80
81
|
exposure,
|
|
81
82
|
manifest: {
|
|
82
83
|
name: definition.name,
|
|
83
|
-
version: "0.0.0",
|
|
84
84
|
private: true,
|
|
85
85
|
type: "module",
|
|
86
86
|
...exposure,
|
|
@@ -98,15 +98,14 @@ function apiContribution(context) {
|
|
|
98
98
|
},
|
|
99
99
|
operations,
|
|
100
100
|
environmentNeeds: [],
|
|
101
|
-
foundation: packageFoundation(),
|
|
101
|
+
foundation: packageFoundation(definition.path),
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
-
function webContribution(context
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
};
|
|
104
|
+
function webContribution(context, definition = {
|
|
105
|
+
name: `@${context.defaultPackageScope}/web`,
|
|
106
|
+
path: "apps/web",
|
|
107
|
+
role: "runtime-service",
|
|
108
|
+
}) {
|
|
110
109
|
const exposure = vueApplicationExposure;
|
|
111
110
|
const localSourceFiles = [
|
|
112
111
|
"env.d.ts",
|
|
@@ -115,7 +114,6 @@ function webContribution(context) {
|
|
|
115
114
|
"vite.config.ts",
|
|
116
115
|
"vitest.config.ts",
|
|
117
116
|
"turbo.json",
|
|
118
|
-
"scripts/run-playwright.ts",
|
|
119
117
|
"src/api.ts",
|
|
120
118
|
"src/App.vue",
|
|
121
119
|
"test/e2e/app.spec.ts",
|
|
@@ -147,11 +145,19 @@ function webContribution(context) {
|
|
|
147
145
|
},
|
|
148
146
|
],
|
|
149
147
|
foundation: {
|
|
150
|
-
...packageFoundation(),
|
|
148
|
+
...packageFoundation(definition.path),
|
|
151
149
|
developmentContainerToolLayers: vueApplicationDevelopmentContainerToolLayers(),
|
|
152
150
|
},
|
|
153
151
|
};
|
|
154
152
|
}
|
|
153
|
+
const apiReplayAdapter = definePackageContributionReplayAdapter({
|
|
154
|
+
identity: "api",
|
|
155
|
+
replay: ({ context, packageDefinition }) => apiContribution(context, packageDefinition),
|
|
156
|
+
});
|
|
157
|
+
const webReplayAdapter = definePackageContributionReplayAdapter({
|
|
158
|
+
identity: "web",
|
|
159
|
+
replay: ({ context, packageDefinition }) => webContribution(context, packageDefinition),
|
|
160
|
+
});
|
|
155
161
|
export const vueHonoAppDefinition = {
|
|
156
162
|
metadata: {
|
|
157
163
|
name: "vue-hono-app",
|
|
@@ -160,11 +166,12 @@ export const vueHonoAppDefinition = {
|
|
|
160
166
|
},
|
|
161
167
|
source: templateSources.vueHonoApp,
|
|
162
168
|
plannerSourceFile: fileURLToPath(import.meta.url),
|
|
169
|
+
packageContributionReplayAdapters: [apiReplayAdapter, webReplayAdapter],
|
|
163
170
|
blueprint(context) {
|
|
164
171
|
const api = apiContribution(context);
|
|
165
172
|
const web = webContribution(context);
|
|
166
173
|
return {
|
|
167
|
-
schemaVersion:
|
|
174
|
+
schemaVersion: 3,
|
|
168
175
|
packages: [api.definition, web.definition],
|
|
169
176
|
packageLinkIntents: [
|
|
170
177
|
{
|
|
@@ -175,10 +182,13 @@ export const vueHonoAppDefinition = {
|
|
|
175
182
|
};
|
|
176
183
|
},
|
|
177
184
|
planInitialization(context) {
|
|
178
|
-
return apiContribution(context);
|
|
185
|
+
return apiReplayAdapter.identify(apiContribution(context));
|
|
179
186
|
},
|
|
180
187
|
planInitializationContributions(context) {
|
|
181
|
-
return [
|
|
188
|
+
return [
|
|
189
|
+
apiReplayAdapter.identify(apiContribution(context)),
|
|
190
|
+
webReplayAdapter.identify(webContribution(context)),
|
|
191
|
+
];
|
|
182
192
|
},
|
|
183
193
|
};
|
|
184
194
|
import { fileURLToPath } from "node:url";
|
|
@@ -4,11 +4,7 @@
|
|
|
4
4
|
"private": true,
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
|
-
"templates"
|
|
8
|
-
"!dist/src/check-*.js",
|
|
9
|
-
"!dist/src/check-*.d.ts",
|
|
10
|
-
"!dist/src/registry-checks.js",
|
|
11
|
-
"!dist/src/registry-checks.d.ts"
|
|
7
|
+
"templates"
|
|
12
8
|
],
|
|
13
9
|
"type": "module",
|
|
14
10
|
"imports": {
|
|
@@ -16,7 +12,8 @@
|
|
|
16
12
|
"source": "@ykdz/template-core-source/*",
|
|
17
13
|
"types": "@ykdz/template-core/*",
|
|
18
14
|
"default": "@ykdz/template-core/*"
|
|
19
|
-
}
|
|
15
|
+
},
|
|
16
|
+
"#npm-publication/*": "./templates/ts-cli/publication/*.ts"
|
|
20
17
|
},
|
|
21
18
|
"exports": {
|
|
22
19
|
".": {
|
|
@@ -27,12 +24,10 @@
|
|
|
27
24
|
},
|
|
28
25
|
"scripts": {
|
|
29
26
|
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
30
|
-
"check:templates": "node --conditions=source src/check-template-source.ts && node --conditions=source src/check-registry-contract.ts && node --conditions=source src/check-publication-source.ts",
|
|
31
|
-
"check:templates:boundary": "node --conditions=source src/check-template-boundary.ts",
|
|
32
27
|
"format:check": "oxfmt --list-different --config ../../oxfmt.config.ts .",
|
|
33
28
|
"format:write": "oxfmt --write --config ../../oxfmt.config.ts .",
|
|
34
|
-
"lint": "oxlint --quiet --format=unix --config ../../oxlint.config.ts --ignore-pattern dist --ignore-pattern templates .",
|
|
35
|
-
"lint:fix": "oxlint --format=unix --config ../../oxlint.config.ts --ignore-pattern dist --ignore-pattern templates . --fix",
|
|
29
|
+
"lint": "oxlint --quiet --format=unix --config ../../oxlint.config.ts --ignore-pattern dist --ignore-pattern templates . && oxlint --quiet --format=unix --config ../../oxlint.config.ts templates/ts-cli/publication-setup/bridge.ts",
|
|
30
|
+
"lint:fix": "oxlint --format=unix --config ../../oxlint.config.ts --ignore-pattern dist --ignore-pattern templates . --fix && oxlint --format=unix --config ../../oxlint.config.ts templates/ts-cli/publication-setup/bridge.ts --fix",
|
|
36
31
|
"test": "vitest run --config vitest.config.ts --reporter=agent --silent=passed-only --maxWorkers=1",
|
|
37
32
|
"typecheck": "tsc -p tsconfig.json --noEmit --pretty false"
|
|
38
33
|
},
|
|
@@ -45,6 +40,8 @@
|
|
|
45
40
|
"@playwright/test": "catalog:",
|
|
46
41
|
"@tailwindcss/vite": "catalog:",
|
|
47
42
|
"@types/node": "catalog:",
|
|
43
|
+
"@types/semver": "catalog:",
|
|
44
|
+
"@types/spdx-expression-parse": "catalog:",
|
|
48
45
|
"@types/web-bluetooth": "catalog:",
|
|
49
46
|
"@vikejs/hono": "catalog:",
|
|
50
47
|
"@vitejs/plugin-vue": "catalog:",
|
|
@@ -60,7 +57,10 @@
|
|
|
60
57
|
"oxlint": "catalog:",
|
|
61
58
|
"oxlint-tsgolint": "catalog:",
|
|
62
59
|
"pinia": "catalog:",
|
|
60
|
+
"semver": "catalog:",
|
|
61
|
+
"spdx-expression-parse": "catalog:",
|
|
63
62
|
"tailwindcss": "catalog:",
|
|
63
|
+
"tar": "catalog:",
|
|
64
64
|
"telefunc": "catalog:",
|
|
65
65
|
"typescript": "catalog:",
|
|
66
66
|
"typescript-7": "catalog:",
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
"vite": "catalog:",
|
|
70
70
|
"vitest": "catalog:",
|
|
71
71
|
"vue": "catalog:",
|
|
72
|
-
"vue-tsc": "catalog:"
|
|
72
|
+
"vue-tsc": "catalog:",
|
|
73
|
+
"yaml": "catalog:"
|
|
73
74
|
},
|
|
74
75
|
"turbo": {
|
|
75
76
|
"tags": [
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
with:
|
|
48
48
|
cache: true
|
|
49
49
|
- name: Set up Docker Buildx
|
|
50
|
-
uses: docker/setup-buildx-action@
|
|
50
|
+
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
|
|
51
51
|
if: matrix.requires_docker
|
|
52
52
|
- name: Install dependencies
|
|
53
53
|
run: pnpm install --frozen-lockfile
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
with:
|
|
48
48
|
cache: true
|
|
49
49
|
- name: Set up Docker Buildx
|
|
50
|
-
uses: docker/setup-buildx-action@
|
|
50
|
+
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
|
|
51
51
|
if: matrix.requires_docker
|
|
52
52
|
- name: Install dependencies
|
|
53
53
|
run: pnpm install --frozen-lockfile
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {object} ProjectManifest
|
|
5
|
+
* @property {Record<string, string>} [devDependencies]
|
|
6
|
+
* @property {Record<string, string>} [scripts]
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const hooks = {
|
|
10
|
+
/**
|
|
11
|
+
* @param {ProjectManifest} pkg
|
|
12
|
+
* @returns {ProjectManifest}
|
|
13
|
+
*/
|
|
14
|
+
beforePacking(pkg) {
|
|
15
|
+
delete pkg.devDependencies;
|
|
16
|
+
delete pkg.scripts;
|
|
17
|
+
return pkg;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
RUN apt-get update \
|
|
2
|
+
&& apt-get install -y --no-install-recommends curl \
|
|
3
|
+
&& install -m 0755 -d /etc/apt/keyrings \
|
|
4
|
+
&& curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg -o /etc/apt/keyrings/githubcli-archive-keyring.gpg \
|
|
5
|
+
&& chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
|
|
6
|
+
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list \
|
|
7
|
+
&& apt-get update \
|
|
8
|
+
&& apt-get install -y --no-install-recommends gh \
|
|
9
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/2.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [{{PACKAGE_VERSION}}] - {{RELEASE_DATE}}
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Publish the first stable release.
|
|
15
|
+
|
|
16
|
+
[Unreleased]: {{REPOSITORY_URL}}/compare/v{{PACKAGE_VERSION}}...HEAD
|
|
17
|
+
[{{PACKAGE_VERSION}}]: {{REPOSITORY_URL}}/releases/tag/v{{PACKAGE_VERSION}}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Releasing
|
|
2
|
+
|
|
3
|
+
Prepare a normal pull request that changes the public package version and its
|
|
4
|
+
curated `CHANGELOG.md` entry. After that PR is reviewed and merged to the
|
|
5
|
+
protected default branch, run the `release.yml` workflow manually without
|
|
6
|
+
inputs. The workflow verifies and publishes the accepted artifact, then creates
|
|
7
|
+
the matching GitHub Release.
|
|
8
|
+
|
|
9
|
+
If a release stops after an external write, preserve the observed npm, tag, and
|
|
10
|
+
GitHub Release facts. Use GitHub's failed-job rerun only when it retains the
|
|
11
|
+
accepted artifact; otherwise stop and investigate the incident rather than
|
|
12
|
+
repacking, overwriting, or repairing remote release state.
|
|
13
|
+
|
|
14
|
+
After the first successful natural OIDC release, open npm account security and
|
|
15
|
+
enable **Require 2FA and disallow tokens**. Revoke each no-longer-needed write
|
|
16
|
+
token individually. This is an account-hardening action; it is not part of the
|
|
17
|
+
daily workflow and should not block ordinary release preparation.
|