@ykdz/template 0.0.4 → 0.0.6
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/src/cli.js +79 -34
- package/dist/src/declarations.d.ts +36 -0
- package/dist/src/declarations.js +31 -2
- package/dist/src/generated-scenarios.d.ts +62 -0
- package/dist/src/generated-scenarios.js +361 -0
- package/dist/src/module-graph.d.ts +1 -1
- package/dist/src/module-graph.js +10 -2
- package/dist/src/package-addition-support.d.ts +5 -0
- package/dist/src/package-addition-support.js +4 -0
- package/dist/src/package-addition.d.ts +1 -0
- package/dist/src/package-addition.js +409 -69
- package/dist/src/package-linking.d.ts +55 -0
- package/dist/src/package-linking.js +116 -0
- package/dist/src/preset-projection.d.ts +4 -1
- package/dist/src/preset-source.d.ts +430 -0
- package/dist/src/preset-source.js +940 -0
- package/dist/src/projection-capabilities.d.ts +67 -0
- package/dist/src/projection-capabilities.js +2207 -0
- package/dist/src/renderer.js +20 -1
- package/dist/src/template-boundary-check.d.ts +7 -3
- package/dist/src/template-boundary-check.js +104 -10
- package/package.json +3 -2
- package/templates/hono-api/src/server.ts +1 -1
- package/templates/hono-api/test/app.test.ts +1 -1
- package/templates/preset-source.json +499 -0
- package/templates/ts-lib/src/index.ts +2 -2
- package/templates/ts-lib/src/name-schema.ts +3 -0
- package/templates/vue-app/playwright.package-addition.config.ts +22 -0
- package/templates/vue-app/src/App.vue +1 -1
- package/templates/vue-app/test/app.test.ts +1 -1
- package/templates/vue-hono-app/web/src/App.vue +2 -2
- package/templates/vue-hono-app/web/test/app.test.ts +1 -1
- package/dist/templates/hono-api/projection.d.ts +0 -6
- package/dist/templates/hono-api/projection.js +0 -538
- package/dist/templates/projection-plans.d.ts +0 -7
- package/dist/templates/projection-plans.js +0 -94
- package/dist/templates/registry.d.ts +0 -7
- package/dist/templates/registry.js +0 -42
- package/dist/templates/rust-bin/projection.d.ts +0 -9
- package/dist/templates/rust-bin/projection.js +0 -390
- package/dist/templates/ts-lib/projection.d.ts +0 -6
- package/dist/templates/ts-lib/projection.js +0 -523
- package/dist/templates/vue-app/projection.d.ts +0 -6
- package/dist/templates/vue-app/projection.js +0 -757
- package/dist/templates/vue-hono-app/projection.d.ts +0 -8
- package/dist/templates/vue-hono-app/projection.js +0 -693
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export function derivePackageExposure(definition) {
|
|
2
|
+
if (definition.role === "shared-library" &&
|
|
3
|
+
definition.sourcePreset === "ts-lib") {
|
|
4
|
+
return {
|
|
5
|
+
kind: "jit-source",
|
|
6
|
+
entrypoint: "./src/index.ts",
|
|
7
|
+
packageLocalImportPattern: "#/*",
|
|
8
|
+
packageLocalImportTarget: "./src/*.ts",
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
if (definition.role === "runtime-service" &&
|
|
12
|
+
definition.sourcePreset === "hono-api") {
|
|
13
|
+
return {
|
|
14
|
+
kind: "compiled",
|
|
15
|
+
entrypoint: "./dist/index.js",
|
|
16
|
+
sourceTypes: "./src/index.ts",
|
|
17
|
+
packageLocalImportPattern: "#/*",
|
|
18
|
+
packageLocalImportRuntimeTarget: "./dist/*.js",
|
|
19
|
+
packageLocalImportTypesTarget: "./src/*.ts",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`Unsupported Package Exposure for ${definition.name} at ${definition.path}`);
|
|
23
|
+
}
|
|
24
|
+
export function assertTypeScriptPackageBoundaryForLinkIntent(definition, direction) {
|
|
25
|
+
if (definition.role !== undefined && definition.sourcePreset !== undefined) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const relationship = direction === "consumer" ? "from native package" : "to native package";
|
|
29
|
+
throw new Error(`Package Link Intent ${relationship} ${definition.path} is unsupported in V1 TypeScript-only Project Linking`);
|
|
30
|
+
}
|
|
31
|
+
export function planPackageLinks(definitions, intents = []) {
|
|
32
|
+
const definitionsByPath = new Map(definitions.map((definition) => [definition.path, definition]));
|
|
33
|
+
const manifestDependenciesByPackagePath = new Map();
|
|
34
|
+
for (const intent of intents) {
|
|
35
|
+
const consumer = definitionsByPath.get(intent.consumerPackagePath);
|
|
36
|
+
const provider = definitionsByPath.get(intent.providerPackagePath);
|
|
37
|
+
if (consumer !== undefined) {
|
|
38
|
+
assertTypeScriptPackageBoundaryForLinkIntent(consumer, "consumer");
|
|
39
|
+
}
|
|
40
|
+
if (provider === undefined) {
|
|
41
|
+
throw new Error(`Package Link Intent references unknown provider package at ${intent.providerPackagePath}`);
|
|
42
|
+
}
|
|
43
|
+
assertTypeScriptPackageBoundaryForLinkIntent(provider, "provider");
|
|
44
|
+
}
|
|
45
|
+
const exposuresByPackagePath = new Map(definitions.map((definition) => [
|
|
46
|
+
definition.path,
|
|
47
|
+
derivePackageExposure(definition),
|
|
48
|
+
]));
|
|
49
|
+
let dependencyBuildsRequired = false;
|
|
50
|
+
for (const intent of intents) {
|
|
51
|
+
const provider = definitionsByPath.get(intent.providerPackagePath);
|
|
52
|
+
if (provider === undefined) {
|
|
53
|
+
throw new Error(`Package Link Intent references unknown provider package at ${intent.providerPackagePath}`);
|
|
54
|
+
}
|
|
55
|
+
if (exposuresByPackagePath.get(provider.path)?.kind === "compiled") {
|
|
56
|
+
dependencyBuildsRequired = true;
|
|
57
|
+
}
|
|
58
|
+
const dependencies = manifestDependenciesByPackagePath.get(intent.consumerPackagePath) ?? {};
|
|
59
|
+
dependencies[provider.name] = "workspace:*";
|
|
60
|
+
manifestDependenciesByPackagePath.set(intent.consumerPackagePath, dependencies);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
exposuresByPackagePath,
|
|
64
|
+
manifestDependenciesByPackagePath,
|
|
65
|
+
turboTasks: packageTurboTasks({ dependencyBuildsRequired }),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export function packageTurboTasks({ dependencyBuildsRequired, }) {
|
|
69
|
+
return {
|
|
70
|
+
typecheck: { dependsOn: ["^typecheck"] },
|
|
71
|
+
build: dependencyBuildsRequired
|
|
72
|
+
? { dependsOn: ["^build"], outputs: ["dist/**"] }
|
|
73
|
+
: { outputs: ["dist/**"] },
|
|
74
|
+
test: { dependsOn: ["^typecheck"] },
|
|
75
|
+
"test:e2e": {
|
|
76
|
+
dependsOn: dependencyBuildsRequired ? ["build", "^build"] : ["build"],
|
|
77
|
+
},
|
|
78
|
+
check: { dependsOn: ["typecheck", "build", "test", "test:e2e"] },
|
|
79
|
+
fix: { cache: false },
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export function packageManifestExposureFields(exposure) {
|
|
83
|
+
switch (exposure.kind) {
|
|
84
|
+
case "jit-source":
|
|
85
|
+
return {
|
|
86
|
+
imports: {
|
|
87
|
+
[exposure.packageLocalImportPattern]: {
|
|
88
|
+
default: exposure.packageLocalImportTarget,
|
|
89
|
+
types: exposure.packageLocalImportTarget,
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
exports: {
|
|
93
|
+
".": {
|
|
94
|
+
default: exposure.entrypoint,
|
|
95
|
+
types: exposure.entrypoint,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
case "compiled":
|
|
100
|
+
return {
|
|
101
|
+
types: exposure.sourceTypes,
|
|
102
|
+
imports: {
|
|
103
|
+
[exposure.packageLocalImportPattern]: {
|
|
104
|
+
default: exposure.packageLocalImportRuntimeTarget,
|
|
105
|
+
types: exposure.packageLocalImportTypesTarget,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
exports: {
|
|
109
|
+
".": {
|
|
110
|
+
default: exposure.entrypoint,
|
|
111
|
+
types: exposure.sourceTypes,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -2,6 +2,7 @@ import type { BuiltInPreset, ProjectBlueprint } from "./declarations.js";
|
|
|
2
2
|
import type { GenerationContext } from "./generation-context.js";
|
|
3
3
|
import { type CheckPlan, type FixPlan } from "./module-graph.js";
|
|
4
4
|
import { type NextStepInstruction } from "./next-step-instructions.js";
|
|
5
|
+
import type { PackageRole, PackageSourcePreset } from "./package-linking.js";
|
|
5
6
|
import type { DependencyMaintenancePolicy } from "./project-github.js";
|
|
6
7
|
import type { RenderOperation } from "./renderer.js";
|
|
7
8
|
export type PresetPackageAdditionOptions = {
|
|
@@ -15,7 +16,9 @@ export type PresetPackageAdditionOptions = {
|
|
|
15
16
|
export type PresetPackageAdditionPlan = {
|
|
16
17
|
readonly packagePath: string;
|
|
17
18
|
readonly workspacePackageGlob: string;
|
|
18
|
-
readonly
|
|
19
|
+
readonly workspaceMembershipGlob?: string;
|
|
20
|
+
readonly packageRole: PackageRole;
|
|
21
|
+
readonly packageSourcePreset: PackageSourcePreset;
|
|
19
22
|
readonly sourceRoot: string;
|
|
20
23
|
readonly sourceRoots?: Record<string, string>;
|
|
21
24
|
readonly operations: readonly RenderOperation[];
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
import type { BuiltInPreset, ValidationResult } from "./declarations.js";
|
|
2
|
+
import { type TemplateDependencyCatalog } from "./dependency-catalog.js";
|
|
3
|
+
import { type PresetProjectionDeclaration } from "./projection-capabilities.js";
|
|
4
|
+
export type PresetSourceManifestPresetSource = {
|
|
5
|
+
roots: string[];
|
|
6
|
+
files: string[];
|
|
7
|
+
sharedResources: string[];
|
|
8
|
+
};
|
|
9
|
+
export type PresetSourceManifestPreset = BuiltInPreset & {
|
|
10
|
+
dependencyCatalog?: string[];
|
|
11
|
+
projection?: PresetProjectionDeclaration;
|
|
12
|
+
source?: PresetSourceManifestPresetSource;
|
|
13
|
+
};
|
|
14
|
+
export type PresetSourceManifestSharedResource = {
|
|
15
|
+
id: string;
|
|
16
|
+
path: string;
|
|
17
|
+
};
|
|
18
|
+
export type PresetSourceFixtureMatrixPresetSupport = {
|
|
19
|
+
preset: string;
|
|
20
|
+
};
|
|
21
|
+
export type PresetSourceFixtureMatrixPackageAdditionSupport = {
|
|
22
|
+
preset: string;
|
|
23
|
+
packageLeafName: string;
|
|
24
|
+
};
|
|
25
|
+
export type PresetSourceFixtureMatrixCombination = {
|
|
26
|
+
basePreset: string;
|
|
27
|
+
addedPreset: string;
|
|
28
|
+
linkFrom?: string[];
|
|
29
|
+
};
|
|
30
|
+
export type PresetSourceFixtureMatrixSemanticSkip = {
|
|
31
|
+
basePreset: string;
|
|
32
|
+
addedPreset: string;
|
|
33
|
+
reason: string;
|
|
34
|
+
};
|
|
35
|
+
export type PresetSourceFixtureMatrixContract = {
|
|
36
|
+
initSupport: PresetSourceFixtureMatrixPresetSupport[];
|
|
37
|
+
packageAdditionSupport: PresetSourceFixtureMatrixPackageAdditionSupport[];
|
|
38
|
+
supportedCombinations: PresetSourceFixtureMatrixCombination[];
|
|
39
|
+
semanticSkips: PresetSourceFixtureMatrixSemanticSkip[];
|
|
40
|
+
checkRequirements: string[];
|
|
41
|
+
environmentPreparation: string[];
|
|
42
|
+
};
|
|
43
|
+
export type PresetSourceManifest = {
|
|
44
|
+
schemaVersion: 1;
|
|
45
|
+
name: string;
|
|
46
|
+
sharedResources: PresetSourceManifestSharedResource[];
|
|
47
|
+
fixtureMatrix?: PresetSourceFixtureMatrixContract;
|
|
48
|
+
presets: PresetSourceManifestPreset[];
|
|
49
|
+
};
|
|
50
|
+
export type PresetSourceManifestValidationOptions = {
|
|
51
|
+
readonly sourceRoot?: string;
|
|
52
|
+
readonly dependencyCatalog?: TemplateDependencyCatalog;
|
|
53
|
+
};
|
|
54
|
+
export declare const presetSourceManifestJsonSchema: {
|
|
55
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
56
|
+
readonly $id: "https://ykdz.dev/schemas/template/preset-source-manifest.schema.json";
|
|
57
|
+
readonly title: "Preset Source Manifest";
|
|
58
|
+
readonly type: "object";
|
|
59
|
+
readonly additionalProperties: false;
|
|
60
|
+
readonly required: readonly ["schemaVersion", "name", "presets"];
|
|
61
|
+
readonly properties: {
|
|
62
|
+
readonly schemaVersion: {
|
|
63
|
+
readonly const: 1;
|
|
64
|
+
};
|
|
65
|
+
readonly name: {
|
|
66
|
+
readonly type: "string";
|
|
67
|
+
readonly minLength: 1;
|
|
68
|
+
};
|
|
69
|
+
readonly sharedResources: {
|
|
70
|
+
readonly type: "array";
|
|
71
|
+
readonly items: {
|
|
72
|
+
readonly type: "object";
|
|
73
|
+
readonly additionalProperties: false;
|
|
74
|
+
readonly required: readonly ["id", "path"];
|
|
75
|
+
readonly properties: {
|
|
76
|
+
readonly id: {
|
|
77
|
+
readonly type: "string";
|
|
78
|
+
readonly minLength: 1;
|
|
79
|
+
};
|
|
80
|
+
readonly path: {
|
|
81
|
+
readonly type: "string";
|
|
82
|
+
readonly minLength: 1;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
readonly fixtureMatrix: {
|
|
88
|
+
readonly type: "object";
|
|
89
|
+
readonly additionalProperties: false;
|
|
90
|
+
readonly required: readonly ["initSupport", "packageAdditionSupport", "supportedCombinations", "semanticSkips", "checkRequirements", "environmentPreparation"];
|
|
91
|
+
readonly properties: {
|
|
92
|
+
readonly initSupport: {
|
|
93
|
+
readonly type: "array";
|
|
94
|
+
readonly items: {
|
|
95
|
+
readonly type: "object";
|
|
96
|
+
readonly additionalProperties: false;
|
|
97
|
+
readonly required: readonly ["preset"];
|
|
98
|
+
readonly properties: {
|
|
99
|
+
readonly preset: {
|
|
100
|
+
readonly type: "string";
|
|
101
|
+
readonly minLength: 1;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
readonly packageAdditionSupport: {
|
|
107
|
+
readonly type: "array";
|
|
108
|
+
readonly items: {
|
|
109
|
+
readonly type: "object";
|
|
110
|
+
readonly additionalProperties: false;
|
|
111
|
+
readonly required: readonly ["preset", "packageLeafName"];
|
|
112
|
+
readonly properties: {
|
|
113
|
+
readonly preset: {
|
|
114
|
+
readonly type: "string";
|
|
115
|
+
readonly minLength: 1;
|
|
116
|
+
};
|
|
117
|
+
readonly packageLeafName: {
|
|
118
|
+
readonly type: "string";
|
|
119
|
+
readonly minLength: 1;
|
|
120
|
+
readonly pattern: "^[a-z0-9][a-z0-9-]*$";
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
readonly supportedCombinations: {
|
|
126
|
+
readonly type: "array";
|
|
127
|
+
readonly items: {
|
|
128
|
+
readonly type: "object";
|
|
129
|
+
readonly additionalProperties: false;
|
|
130
|
+
readonly required: readonly ["basePreset", "addedPreset"];
|
|
131
|
+
readonly properties: {
|
|
132
|
+
readonly basePreset: {
|
|
133
|
+
readonly type: "string";
|
|
134
|
+
readonly minLength: 1;
|
|
135
|
+
};
|
|
136
|
+
readonly addedPreset: {
|
|
137
|
+
readonly type: "string";
|
|
138
|
+
readonly minLength: 1;
|
|
139
|
+
};
|
|
140
|
+
readonly linkFrom: {
|
|
141
|
+
readonly type: "array";
|
|
142
|
+
readonly items: {
|
|
143
|
+
readonly type: "string";
|
|
144
|
+
readonly minLength: 1;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
readonly semanticSkips: {
|
|
151
|
+
readonly type: "array";
|
|
152
|
+
readonly items: {
|
|
153
|
+
readonly type: "object";
|
|
154
|
+
readonly additionalProperties: false;
|
|
155
|
+
readonly required: readonly ["basePreset", "addedPreset", "reason"];
|
|
156
|
+
readonly properties: {
|
|
157
|
+
readonly basePreset: {
|
|
158
|
+
readonly type: "string";
|
|
159
|
+
readonly minLength: 1;
|
|
160
|
+
};
|
|
161
|
+
readonly addedPreset: {
|
|
162
|
+
readonly type: "string";
|
|
163
|
+
readonly minLength: 1;
|
|
164
|
+
};
|
|
165
|
+
readonly reason: {
|
|
166
|
+
readonly type: "string";
|
|
167
|
+
readonly minLength: 1;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
readonly checkRequirements: {
|
|
173
|
+
readonly type: "array";
|
|
174
|
+
readonly items: {
|
|
175
|
+
readonly enum: readonly ["machine-verifiable-next-steps", "root-check-ci"];
|
|
176
|
+
};
|
|
177
|
+
readonly uniqueItems: true;
|
|
178
|
+
};
|
|
179
|
+
readonly environmentPreparation: {
|
|
180
|
+
readonly type: "array";
|
|
181
|
+
readonly items: {
|
|
182
|
+
readonly enum: readonly ["playwright-browser-assets"];
|
|
183
|
+
};
|
|
184
|
+
readonly uniqueItems: true;
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
readonly presets: {
|
|
189
|
+
readonly type: "array";
|
|
190
|
+
readonly minItems: 1;
|
|
191
|
+
readonly items: {
|
|
192
|
+
readonly type: "object";
|
|
193
|
+
readonly additionalProperties: false;
|
|
194
|
+
readonly required: readonly ["name", "title", "description", "generation", "supportedPackageManagers", "supportedProjectKinds", "packageAdditionSupport", "features"];
|
|
195
|
+
readonly properties: {
|
|
196
|
+
readonly name: {
|
|
197
|
+
readonly type: "string";
|
|
198
|
+
readonly minLength: 1;
|
|
199
|
+
};
|
|
200
|
+
readonly title: {
|
|
201
|
+
readonly type: "string";
|
|
202
|
+
readonly minLength: 1;
|
|
203
|
+
};
|
|
204
|
+
readonly description: {
|
|
205
|
+
readonly type: "string";
|
|
206
|
+
readonly minLength: 1;
|
|
207
|
+
};
|
|
208
|
+
readonly generation: {
|
|
209
|
+
readonly enum: readonly ["supported", "future"];
|
|
210
|
+
};
|
|
211
|
+
readonly supportedPackageManagers: {
|
|
212
|
+
readonly type: "array";
|
|
213
|
+
readonly items: {
|
|
214
|
+
readonly enum: readonly ["pnpm"];
|
|
215
|
+
};
|
|
216
|
+
readonly uniqueItems: true;
|
|
217
|
+
};
|
|
218
|
+
readonly supportedProjectKinds: {
|
|
219
|
+
readonly type: "array";
|
|
220
|
+
readonly minItems: 1;
|
|
221
|
+
readonly items: {
|
|
222
|
+
readonly enum: readonly ["multi-package"];
|
|
223
|
+
};
|
|
224
|
+
readonly uniqueItems: true;
|
|
225
|
+
};
|
|
226
|
+
readonly packageAdditionSupport: {
|
|
227
|
+
readonly enum: readonly ["supported", "unsupported"];
|
|
228
|
+
};
|
|
229
|
+
readonly features: {
|
|
230
|
+
readonly type: "array";
|
|
231
|
+
readonly items: {
|
|
232
|
+
readonly enum: ("devcontainer" | "oxc-format-lint" | "cargo-test" | "github-actions" | "dependabot" | "pnpm-catalog" | "strict-typescript" | "root-check" | "fix-command" | "rustfmt-clippy" | "native-binary-release")[];
|
|
233
|
+
};
|
|
234
|
+
readonly uniqueItems: true;
|
|
235
|
+
};
|
|
236
|
+
readonly dependencyCatalog: {
|
|
237
|
+
readonly type: "array";
|
|
238
|
+
readonly items: {
|
|
239
|
+
readonly type: "string";
|
|
240
|
+
readonly minLength: 1;
|
|
241
|
+
};
|
|
242
|
+
readonly uniqueItems: true;
|
|
243
|
+
};
|
|
244
|
+
readonly projection: {
|
|
245
|
+
readonly type: "object";
|
|
246
|
+
readonly additionalProperties: false;
|
|
247
|
+
readonly required: readonly ["capabilities"];
|
|
248
|
+
readonly properties: {
|
|
249
|
+
readonly capabilities: {
|
|
250
|
+
readonly type: "array";
|
|
251
|
+
readonly items: {
|
|
252
|
+
readonly oneOf: readonly [{
|
|
253
|
+
readonly type: "object";
|
|
254
|
+
readonly additionalProperties: false;
|
|
255
|
+
readonly required: readonly ["kind", "workspacePackageGlob", "packageRole", "packageSourcePreset", "sourceFiles"];
|
|
256
|
+
readonly properties: {
|
|
257
|
+
readonly kind: {
|
|
258
|
+
readonly const: "workspace-library-package";
|
|
259
|
+
};
|
|
260
|
+
readonly workspacePackageGlob: {
|
|
261
|
+
readonly const: "packages/*";
|
|
262
|
+
};
|
|
263
|
+
readonly packageRole: {
|
|
264
|
+
readonly const: "shared-library";
|
|
265
|
+
};
|
|
266
|
+
readonly packageSourcePreset: {
|
|
267
|
+
readonly const: "ts-lib";
|
|
268
|
+
};
|
|
269
|
+
readonly sourceFiles: {
|
|
270
|
+
readonly type: "array";
|
|
271
|
+
readonly minItems: 1;
|
|
272
|
+
readonly items: {
|
|
273
|
+
readonly type: "string";
|
|
274
|
+
readonly minLength: 1;
|
|
275
|
+
};
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
}, {
|
|
279
|
+
readonly type: "object";
|
|
280
|
+
readonly additionalProperties: false;
|
|
281
|
+
readonly required: readonly ["kind", "workspacePackageGlob", "packages"];
|
|
282
|
+
readonly properties: {
|
|
283
|
+
readonly kind: {
|
|
284
|
+
readonly const: "workspace-node-packages";
|
|
285
|
+
};
|
|
286
|
+
readonly workspacePackageGlob: {
|
|
287
|
+
readonly const: "apps/*";
|
|
288
|
+
};
|
|
289
|
+
readonly packages: {
|
|
290
|
+
readonly type: "array";
|
|
291
|
+
readonly minItems: 1;
|
|
292
|
+
readonly items: {
|
|
293
|
+
readonly type: "object";
|
|
294
|
+
readonly additionalProperties: false;
|
|
295
|
+
readonly required: readonly ["kind", "path", "sourceFiles"];
|
|
296
|
+
readonly properties: {
|
|
297
|
+
readonly kind: {
|
|
298
|
+
readonly enum: readonly ["hono-api", "vue-app"];
|
|
299
|
+
};
|
|
300
|
+
readonly path: {
|
|
301
|
+
readonly enum: readonly ["apps/api", "apps/web"];
|
|
302
|
+
};
|
|
303
|
+
readonly sourceFiles: {
|
|
304
|
+
readonly type: "array";
|
|
305
|
+
readonly minItems: 1;
|
|
306
|
+
readonly items: {
|
|
307
|
+
readonly type: "string";
|
|
308
|
+
readonly minLength: 1;
|
|
309
|
+
};
|
|
310
|
+
};
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
};
|
|
314
|
+
readonly packageLinks: {
|
|
315
|
+
readonly type: "array";
|
|
316
|
+
readonly items: {
|
|
317
|
+
readonly type: "object";
|
|
318
|
+
readonly additionalProperties: false;
|
|
319
|
+
readonly required: readonly ["consumerPackagePath", "providerPackagePath"];
|
|
320
|
+
readonly properties: {
|
|
321
|
+
readonly consumerPackagePath: {
|
|
322
|
+
readonly const: "apps/web";
|
|
323
|
+
};
|
|
324
|
+
readonly providerPackagePath: {
|
|
325
|
+
readonly const: "apps/api";
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
}, {
|
|
332
|
+
readonly type: "object";
|
|
333
|
+
readonly additionalProperties: false;
|
|
334
|
+
readonly required: readonly ["kind", "workspacePackageGlob", "sourceFiles"];
|
|
335
|
+
readonly properties: {
|
|
336
|
+
readonly kind: {
|
|
337
|
+
readonly const: "rust-binary-workspace";
|
|
338
|
+
};
|
|
339
|
+
readonly workspacePackageGlob: {
|
|
340
|
+
readonly const: "packages/*";
|
|
341
|
+
};
|
|
342
|
+
readonly sourceFiles: {
|
|
343
|
+
readonly type: "array";
|
|
344
|
+
readonly minItems: 1;
|
|
345
|
+
readonly items: {
|
|
346
|
+
readonly type: "string";
|
|
347
|
+
readonly minLength: 1;
|
|
348
|
+
};
|
|
349
|
+
};
|
|
350
|
+
};
|
|
351
|
+
}, {
|
|
352
|
+
readonly type: "object";
|
|
353
|
+
readonly additionalProperties: false;
|
|
354
|
+
readonly required: readonly ["kind"];
|
|
355
|
+
readonly properties: {
|
|
356
|
+
readonly kind: {
|
|
357
|
+
readonly const: "strict-typescript-root";
|
|
358
|
+
};
|
|
359
|
+
};
|
|
360
|
+
}, {
|
|
361
|
+
readonly type: "object";
|
|
362
|
+
readonly additionalProperties: false;
|
|
363
|
+
readonly required: readonly ["kind"];
|
|
364
|
+
readonly properties: {
|
|
365
|
+
readonly kind: {
|
|
366
|
+
readonly const: "oxc-format-lint";
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
}, {
|
|
370
|
+
readonly type: "object";
|
|
371
|
+
readonly additionalProperties: false;
|
|
372
|
+
readonly required: readonly ["kind"];
|
|
373
|
+
readonly properties: {
|
|
374
|
+
readonly kind: {
|
|
375
|
+
readonly const: "node-pnpm-devcontainer";
|
|
376
|
+
};
|
|
377
|
+
};
|
|
378
|
+
}, {
|
|
379
|
+
readonly type: "object";
|
|
380
|
+
readonly additionalProperties: false;
|
|
381
|
+
readonly required: readonly ["kind"];
|
|
382
|
+
readonly properties: {
|
|
383
|
+
readonly kind: {
|
|
384
|
+
readonly const: "github-maintenance";
|
|
385
|
+
};
|
|
386
|
+
};
|
|
387
|
+
}];
|
|
388
|
+
};
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
};
|
|
392
|
+
readonly source: {
|
|
393
|
+
readonly type: "object";
|
|
394
|
+
readonly additionalProperties: false;
|
|
395
|
+
readonly properties: {
|
|
396
|
+
readonly roots: {
|
|
397
|
+
readonly type: "array";
|
|
398
|
+
readonly items: {
|
|
399
|
+
readonly type: "string";
|
|
400
|
+
readonly minLength: 1;
|
|
401
|
+
};
|
|
402
|
+
};
|
|
403
|
+
readonly files: {
|
|
404
|
+
readonly type: "array";
|
|
405
|
+
readonly items: {
|
|
406
|
+
readonly type: "string";
|
|
407
|
+
readonly minLength: 1;
|
|
408
|
+
};
|
|
409
|
+
};
|
|
410
|
+
readonly sharedResources: {
|
|
411
|
+
readonly type: "array";
|
|
412
|
+
readonly items: {
|
|
413
|
+
readonly type: "string";
|
|
414
|
+
readonly minLength: 1;
|
|
415
|
+
};
|
|
416
|
+
};
|
|
417
|
+
};
|
|
418
|
+
};
|
|
419
|
+
};
|
|
420
|
+
};
|
|
421
|
+
};
|
|
422
|
+
};
|
|
423
|
+
};
|
|
424
|
+
export declare function validatePresetSourceManifest(input: unknown, options?: PresetSourceManifestValidationOptions): ValidationResult<PresetSourceManifest>;
|
|
425
|
+
export declare function validateBuiltInPresetSourceManifest(input: unknown, options?: PresetSourceManifestValidationOptions): ValidationResult<PresetSourceManifest>;
|
|
426
|
+
export declare function manifestReferencedSourceFiles(manifest: PresetSourceManifest, sourceRoot: string): string[];
|
|
427
|
+
export declare function loadPresetSourceManifestFile(filePath: string): PresetSourceManifest;
|
|
428
|
+
export declare function loadBuiltInPresetSourceManifest(): PresetSourceManifest;
|
|
429
|
+
export declare function findPresetSourceManifestPreset(manifest: PresetSourceManifest, presetName: string): PresetSourceManifestPreset | undefined;
|
|
430
|
+
export declare function findBuiltInPresetSourceManifestPreset(presetName: string): PresetSourceManifestPreset | undefined;
|