@warpgogol/forge 0.11.0 → 0.12.1
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/AGENTS.md +4 -2
- package/dist/os/core/core.module.d.ts.map +1 -1
- package/dist/os/core/core.module.js +123 -0
- package/dist/os/core/core.module.js.map +1 -1
- package/dist/os/core/handlers/assets-check.d.ts +19 -0
- package/dist/os/core/handlers/assets-check.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-check.js +91 -0
- package/dist/os/core/handlers/assets-check.js.map +1 -0
- package/dist/os/core/handlers/assets-helpers.d.ts +28 -0
- package/dist/os/core/handlers/assets-helpers.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-helpers.js +128 -0
- package/dist/os/core/handlers/assets-helpers.js.map +1 -0
- package/dist/os/core/handlers/assets-list.d.ts +9 -0
- package/dist/os/core/handlers/assets-list.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-list.js +76 -0
- package/dist/os/core/handlers/assets-list.js.map +1 -0
- package/dist/os/core/handlers/determinism-check.d.ts +20 -0
- package/dist/os/core/handlers/determinism-check.d.ts.map +1 -0
- package/dist/os/core/handlers/determinism-check.js +289 -0
- package/dist/os/core/handlers/determinism-check.js.map +1 -0
- package/dist/os/core/handlers/release-prepare.d.ts +25 -0
- package/dist/os/core/handlers/release-prepare.d.ts.map +1 -0
- package/dist/os/core/handlers/release-prepare.js +228 -0
- package/dist/os/core/handlers/release-prepare.js.map +1 -0
- package/dist/os/core/handlers/release-publish.d.ts +13 -0
- package/dist/os/core/handlers/release-publish.d.ts.map +1 -0
- package/dist/os/core/handlers/release-publish.js +173 -0
- package/dist/os/core/handlers/release-publish.js.map +1 -0
- package/dist/os/core/handlers/workspace-deps.d.ts +12 -0
- package/dist/os/core/handlers/workspace-deps.d.ts.map +1 -0
- package/dist/os/core/handlers/workspace-deps.js +39 -0
- package/dist/os/core/handlers/workspace-deps.js.map +1 -0
- package/dist/src/profiles/profile-schema.d.ts +73 -0
- package/dist/src/profiles/profile-schema.d.ts.map +1 -1
- package/dist/src/profiles/profile-schema.js +32 -0
- package/dist/src/profiles/profile-schema.js.map +1 -1
- package/dist/src/profiles/stack-profile.d.ts +23 -0
- package/dist/src/profiles/stack-profile.d.ts.map +1 -1
- package/dist/src/profiles/stack-profile.js +6 -0
- package/dist/src/profiles/stack-profile.js.map +1 -1
- package/package.json +2 -1
- package/profiles/editframe-html.yaml +16 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>forge.release.publish — publish a prepared release to the declared target (local, R2, S3). Supports --dry-run, --json, --profile.</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not implement release preparation — that lives in release-prepare.ts.</item>
|
|
6
|
+
<item>Do not import from @warpgogol/* in autonomous modules — os/core/ may import from @warpgogol/*.</item>
|
|
7
|
+
</non-goals>
|
|
8
|
+
</MODULE_CONTRACT>
|
|
9
|
+
<CHANGE_SUMMARY>
|
|
10
|
+
<item>RFC-0680: initial forge.release.publish handler with local/r2/s3 targets, --dry-run, env var validation.</item>
|
|
11
|
+
<item>RFC-0680 review fix: remove unused readdir import (A-1).</item>
|
|
12
|
+
<item>RFC-0680 review fix: add S3_ENDPOINT to required env vars (G-1).</item>
|
|
13
|
+
<item>RFC-0680 review fix: add 30s request timeout on S3Client (G-2).</item>
|
|
14
|
+
</CHANGE_SUMMARY>
|
|
15
|
+
*/
|
|
16
|
+
import { readFile, copyFile, mkdir } from "node:fs/promises";
|
|
17
|
+
import { join, basename } from "node:path";
|
|
18
|
+
import { resolveActiveProfile, resolveLifecycleFlags } from "./profile-resolve.js";
|
|
19
|
+
function getRequiredEnvVars(target) {
|
|
20
|
+
if (target === "r2") {
|
|
21
|
+
return ["R2_ACCOUNT_ID", "R2_ACCESS_KEY_ID", "R2_SECRET_ACCESS_KEY"];
|
|
22
|
+
}
|
|
23
|
+
if (target === "s3") {
|
|
24
|
+
return ["S3_BUCKET", "S3_ACCESS_KEY_ID", "S3_SECRET_ACCESS_KEY", "S3_ENDPOINT"];
|
|
25
|
+
}
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
export async function runReleasePublish(input, context) {
|
|
29
|
+
const { workspaceRoot, logger } = context;
|
|
30
|
+
const { dryRun, profileIdOverride } = resolveLifecycleFlags(input, context);
|
|
31
|
+
const resolved = resolveActiveProfile(workspaceRoot, context.forgeRoot, profileIdOverride);
|
|
32
|
+
if (!resolved) {
|
|
33
|
+
return {
|
|
34
|
+
data: {
|
|
35
|
+
command: "forge.release.publish",
|
|
36
|
+
profileId: "",
|
|
37
|
+
target: "",
|
|
38
|
+
publishedFiles: [],
|
|
39
|
+
manifestPath: "",
|
|
40
|
+
},
|
|
41
|
+
exitCode: 1,
|
|
42
|
+
summary: "No active profile found. Set `profile` in forge.yaml or use --profile <id>.",
|
|
43
|
+
nextSteps: [{ action: "Set profile in forge.yaml or use --profile <id>", kind: "required" }],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const { profile } = resolved;
|
|
47
|
+
if (!profile.release) {
|
|
48
|
+
return {
|
|
49
|
+
data: {
|
|
50
|
+
command: "forge.release.publish",
|
|
51
|
+
profileId: profile.id,
|
|
52
|
+
target: "",
|
|
53
|
+
publishedFiles: [],
|
|
54
|
+
manifestPath: "",
|
|
55
|
+
},
|
|
56
|
+
exitCode: 1,
|
|
57
|
+
summary: `Profile ${profile.id} does not declare a release configuration.`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const releaseConfig = profile.release;
|
|
61
|
+
const releaseDir = join(workspaceRoot, releaseConfig.outputDir);
|
|
62
|
+
const manifestPath = join(releaseDir, releaseConfig.manifestName);
|
|
63
|
+
let manifest;
|
|
64
|
+
try {
|
|
65
|
+
const raw = await readFile(manifestPath, "utf8");
|
|
66
|
+
manifest = JSON.parse(raw);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return {
|
|
70
|
+
data: {
|
|
71
|
+
command: "forge.release.publish",
|
|
72
|
+
profileId: profile.id,
|
|
73
|
+
target: releaseConfig.target,
|
|
74
|
+
publishedFiles: [],
|
|
75
|
+
manifestPath,
|
|
76
|
+
},
|
|
77
|
+
exitCode: 1,
|
|
78
|
+
summary: `No release manifest found at ${manifestPath}. Run \`forge release prepare\` first.`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const target = releaseConfig.target;
|
|
82
|
+
const requiredVars = getRequiredEnvVars(target);
|
|
83
|
+
const missingVars = requiredVars.filter((v) => !process.env[v]);
|
|
84
|
+
if (missingVars.length > 0) {
|
|
85
|
+
return {
|
|
86
|
+
data: {
|
|
87
|
+
command: "forge.release.publish",
|
|
88
|
+
profileId: profile.id,
|
|
89
|
+
target,
|
|
90
|
+
publishedFiles: [],
|
|
91
|
+
manifestPath,
|
|
92
|
+
},
|
|
93
|
+
exitCode: 1,
|
|
94
|
+
summary: `Missing required environment variables: ${missingVars.join(", ")}`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const filesToPublish = [];
|
|
98
|
+
for (const a of manifest.artifacts) {
|
|
99
|
+
filesToPublish.push(join(releaseDir, basename(a.path)));
|
|
100
|
+
}
|
|
101
|
+
filesToPublish.push(manifestPath);
|
|
102
|
+
if (dryRun) {
|
|
103
|
+
logger.info(`[dry-run] forge.release.publish — profile: ${profile.id}`);
|
|
104
|
+
logger.info(` target: ${target}`);
|
|
105
|
+
for (const f of filesToPublish) {
|
|
106
|
+
logger.info(` file: ${f}`);
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
data: {
|
|
110
|
+
command: "forge.release.publish",
|
|
111
|
+
profileId: profile.id,
|
|
112
|
+
target,
|
|
113
|
+
publishedFiles: filesToPublish.map((f) => ({
|
|
114
|
+
path: f,
|
|
115
|
+
targetPath: target === "local"
|
|
116
|
+
? join(releaseDir, "published", basename(f))
|
|
117
|
+
: `${target}://${basename(f)}`,
|
|
118
|
+
})),
|
|
119
|
+
manifestPath,
|
|
120
|
+
},
|
|
121
|
+
summary: `[dry-run] Would publish ${filesToPublish.length} file(s) to ${target}`,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
const publishedFiles = [];
|
|
125
|
+
if (target === "local") {
|
|
126
|
+
const publishedDir = join(releaseDir, "published");
|
|
127
|
+
await mkdir(publishedDir, { recursive: true });
|
|
128
|
+
for (const f of filesToPublish) {
|
|
129
|
+
const dst = join(publishedDir, basename(f));
|
|
130
|
+
await copyFile(f, dst);
|
|
131
|
+
publishedFiles.push({ path: f, targetPath: dst });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else if (target === "r2" || target === "s3") {
|
|
135
|
+
const { S3Client, PutObjectCommand } = await import("@aws-sdk/client-s3");
|
|
136
|
+
const { readFile: fsReadFile } = await import("node:fs/promises");
|
|
137
|
+
const endpoint = target === "r2"
|
|
138
|
+
? `https://${process.env.R2_ACCOUNT_ID}.r2.cloudflarestorage.com`
|
|
139
|
+
: process.env.S3_ENDPOINT;
|
|
140
|
+
const bucket = target === "r2" ? releaseConfig.r2?.bucket : process.env.S3_BUCKET;
|
|
141
|
+
const accessKeyId = target === "r2" ? process.env.R2_ACCESS_KEY_ID : process.env.S3_ACCESS_KEY_ID;
|
|
142
|
+
const secretAccessKey = target === "r2" ? process.env.R2_SECRET_ACCESS_KEY : process.env.S3_SECRET_ACCESS_KEY;
|
|
143
|
+
const prefix = target === "r2" ? (releaseConfig.r2?.prefix ?? "") : "";
|
|
144
|
+
const client = new S3Client({
|
|
145
|
+
endpoint,
|
|
146
|
+
region: "auto",
|
|
147
|
+
credentials: { accessKeyId: accessKeyId, secretAccessKey: secretAccessKey },
|
|
148
|
+
requestHandler: { requestTimeout: 30_000 },
|
|
149
|
+
});
|
|
150
|
+
for (const f of filesToPublish) {
|
|
151
|
+
const key = prefix ? `${prefix}/${basename(f)}` : basename(f);
|
|
152
|
+
const body = await fsReadFile(f);
|
|
153
|
+
await client.send(new PutObjectCommand({
|
|
154
|
+
Bucket: bucket,
|
|
155
|
+
Key: key,
|
|
156
|
+
Body: body,
|
|
157
|
+
}));
|
|
158
|
+
publishedFiles.push({ path: f, targetPath: `${target}://${bucket}/${key}` });
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
logger.success(` Published ${publishedFiles.length} file(s) to ${target}`);
|
|
162
|
+
return {
|
|
163
|
+
data: {
|
|
164
|
+
command: "forge.release.publish",
|
|
165
|
+
profileId: profile.id,
|
|
166
|
+
target,
|
|
167
|
+
publishedFiles,
|
|
168
|
+
manifestPath,
|
|
169
|
+
},
|
|
170
|
+
summary: `Published ${publishedFiles.length} file(s) to ${target}`,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=release-publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-publish.js","sourceRoot":"","sources":["../../../../os/core/handlers/release-publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type CollectFilesFn = (root: string, options?: {
|
|
2
|
+
extensions?: string[];
|
|
3
|
+
ignore?: (name: string) => boolean;
|
|
4
|
+
}) => Promise<string[]>;
|
|
5
|
+
export type ByteHashFileFn = (filePath: string) => Promise<string>;
|
|
6
|
+
interface WorkspaceDeps {
|
|
7
|
+
collectFiles: CollectFilesFn;
|
|
8
|
+
byteHashFile: ByteHashFileFn;
|
|
9
|
+
}
|
|
10
|
+
export declare function loadWorkspaceDeps(): Promise<WorkspaceDeps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=workspace-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-deps.d.ts","sourceRoot":"","sources":["../../../../os/core/handlers/workspace-deps.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACpC,KACE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEvB,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnE,UAAU,aAAa;IACrB,YAAY,EAAE,cAAc,CAAC;IAC7B,YAAY,EAAE,cAAc,CAAC;CAC9B;AAKD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CAqBhE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Lazy dynamic-import bridge for @warpgogol/fingerprint and @warpgogol/share/fs. These workspace packages are not published to npm — when forge is installed standalone from npm, they are unavailable and handlers that depend on them must degrade gracefully.</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not re-export types from @warpgogol/* — only runtime functions.</item>
|
|
6
|
+
<item>Do not use static imports — that would break npm installs without workspace deps.</item>
|
|
7
|
+
</non-goals>
|
|
8
|
+
</MODULE_CONTRACT>
|
|
9
|
+
<CHANGE_SUMMARY>
|
|
10
|
+
<item>RFC-0682: extract dynamic-import helper so forge publishes without workspace:* deps.</item>
|
|
11
|
+
</CHANGE_SUMMARY>
|
|
12
|
+
*/
|
|
13
|
+
let cached = null;
|
|
14
|
+
let loadError = null;
|
|
15
|
+
export async function loadWorkspaceDeps() {
|
|
16
|
+
if (cached)
|
|
17
|
+
return cached;
|
|
18
|
+
if (loadError)
|
|
19
|
+
throw new Error(loadError);
|
|
20
|
+
try {
|
|
21
|
+
// @ts-ignore — workspace dep, may not be installed when forge is used standalone from npm
|
|
22
|
+
const shareMod = await import("@warpgogol/share/fs");
|
|
23
|
+
// @ts-ignore — workspace dep, may not be installed when forge is used standalone from npm
|
|
24
|
+
const fpMod = await import("@warpgogol/fingerprint");
|
|
25
|
+
cached = {
|
|
26
|
+
collectFiles: shareMod.collectFiles,
|
|
27
|
+
byteHashFile: fpMod.byteHashFile,
|
|
28
|
+
};
|
|
29
|
+
return cached;
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
loadError =
|
|
33
|
+
`@warpgogol/fingerprint and @warpgogol/share are required for this command but not installed. ` +
|
|
34
|
+
`When using forge standalone from npm, install them separately or use forge within the warpgogol workspace. ` +
|
|
35
|
+
`Error: ${err.message}`;
|
|
36
|
+
throw new Error(loadError);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=workspace-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-deps.js","sourceRoot":"","sources":["../../../../os/core/handlers/workspace-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAiBF,IAAI,MAAM,GAAyB,IAAI,CAAC;AACxC,IAAI,SAAS,GAAkB,IAAI,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACrD,0FAA0F;QAC1F,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACrD,MAAM,GAAG;YACP,YAAY,EAAE,QAAQ,CAAC,YAA8B;YACrD,YAAY,EAAE,KAAK,CAAC,YAA8B;SACnD,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS;YACP,+FAA+F;gBAC/F,6GAA6G;gBAC7G,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -108,6 +108,54 @@ export interface ProfileDevServer {
|
|
|
108
108
|
port?: number;
|
|
109
109
|
readinessTimeout?: number;
|
|
110
110
|
}
|
|
111
|
+
export declare const profileAssetTypeSchema: z.ZodObject<{
|
|
112
|
+
id: z.ZodString;
|
|
113
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
114
|
+
referencePattern: z.ZodOptional<z.ZodString>;
|
|
115
|
+
}, z.core.$strip>;
|
|
116
|
+
export interface ProfileAssetType {
|
|
117
|
+
id: string;
|
|
118
|
+
extensions: string[];
|
|
119
|
+
referencePattern?: string;
|
|
120
|
+
}
|
|
121
|
+
export declare const profileAssetSchema: z.ZodObject<{
|
|
122
|
+
dir: z.ZodString;
|
|
123
|
+
types: z.ZodArray<z.ZodObject<{
|
|
124
|
+
id: z.ZodString;
|
|
125
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
126
|
+
referencePattern: z.ZodOptional<z.ZodString>;
|
|
127
|
+
}, z.core.$strip>>;
|
|
128
|
+
}, z.core.$strip>;
|
|
129
|
+
export interface ProfileAsset {
|
|
130
|
+
dir: string;
|
|
131
|
+
types: ProfileAssetType[];
|
|
132
|
+
}
|
|
133
|
+
export declare const profileReleaseSchema: z.ZodObject<{
|
|
134
|
+
target: z.ZodEnum<{
|
|
135
|
+
local: "local";
|
|
136
|
+
r2: "r2";
|
|
137
|
+
s3: "s3";
|
|
138
|
+
}>;
|
|
139
|
+
outputDir: z.ZodString;
|
|
140
|
+
manifestName: z.ZodDefault<z.ZodString>;
|
|
141
|
+
includeArtifacts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
142
|
+
r2: z.ZodOptional<z.ZodObject<{
|
|
143
|
+
bucket: z.ZodString;
|
|
144
|
+
accountId: z.ZodString;
|
|
145
|
+
prefix: z.ZodDefault<z.ZodString>;
|
|
146
|
+
}, z.core.$strip>>;
|
|
147
|
+
}, z.core.$strip>;
|
|
148
|
+
export interface ProfileRelease {
|
|
149
|
+
target: "local" | "r2" | "s3";
|
|
150
|
+
outputDir: string;
|
|
151
|
+
manifestName: string;
|
|
152
|
+
includeArtifacts?: string[];
|
|
153
|
+
r2?: {
|
|
154
|
+
bucket: string;
|
|
155
|
+
accountId: string;
|
|
156
|
+
prefix: string;
|
|
157
|
+
};
|
|
158
|
+
}
|
|
111
159
|
export declare const stackProfileDomainFieldsSchema: z.ZodObject<{
|
|
112
160
|
domain: z.ZodOptional<z.ZodString>;
|
|
113
161
|
terminology: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -168,6 +216,29 @@ export declare const stackProfileDomainFieldsSchema: z.ZodObject<{
|
|
|
168
216
|
port: z.ZodOptional<z.ZodNumber>;
|
|
169
217
|
readinessTimeout: z.ZodOptional<z.ZodNumber>;
|
|
170
218
|
}, z.core.$strip>>;
|
|
219
|
+
assets: z.ZodOptional<z.ZodObject<{
|
|
220
|
+
dir: z.ZodString;
|
|
221
|
+
types: z.ZodArray<z.ZodObject<{
|
|
222
|
+
id: z.ZodString;
|
|
223
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
224
|
+
referencePattern: z.ZodOptional<z.ZodString>;
|
|
225
|
+
}, z.core.$strip>>;
|
|
226
|
+
}, z.core.$strip>>;
|
|
227
|
+
release: z.ZodOptional<z.ZodObject<{
|
|
228
|
+
target: z.ZodEnum<{
|
|
229
|
+
local: "local";
|
|
230
|
+
r2: "r2";
|
|
231
|
+
s3: "s3";
|
|
232
|
+
}>;
|
|
233
|
+
outputDir: z.ZodString;
|
|
234
|
+
manifestName: z.ZodDefault<z.ZodString>;
|
|
235
|
+
includeArtifacts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
236
|
+
r2: z.ZodOptional<z.ZodObject<{
|
|
237
|
+
bucket: z.ZodString;
|
|
238
|
+
accountId: z.ZodString;
|
|
239
|
+
prefix: z.ZodDefault<z.ZodString>;
|
|
240
|
+
}, z.core.$strip>>;
|
|
241
|
+
}, z.core.$strip>>;
|
|
171
242
|
}, z.core.$strip>;
|
|
172
243
|
export interface StackProfileDomainFields {
|
|
173
244
|
domain?: string;
|
|
@@ -177,5 +248,7 @@ export interface StackProfileDomainFields {
|
|
|
177
248
|
invariants?: ProfileInvariant[];
|
|
178
249
|
register?: "business" | "creative";
|
|
179
250
|
devServer?: ProfileDevServer;
|
|
251
|
+
assets?: ProfileAsset;
|
|
252
|
+
release?: ProfileRelease;
|
|
180
253
|
}
|
|
181
254
|
//# sourceMappingURL=profile-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-schema.d.ts","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile-schema.d.ts","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,0BAA0B,6FAQ7B,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQvD,CAAC;AAMF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAsBhC,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAMD,eAAO,MAAM,0BAA0B;;;;;;;;;iBASrC,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,eAAO,MAAM,2BAA2B;;;;;;;;;iBAKtC,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,GAAG,eAAe,GAAG,mBAAmB,CAAC;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;iBAQjC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B;AAMD,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,kBAAkB;;;;;;;iBAG7B,CAAC;AAEH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAMD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAY/B,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,EAAE,CAAC,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAMD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUzC,CAAC;AAEH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B"}
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
<item>RFC-0638: initial domain-neutral profile schema extensions with six optional fields.</item>
|
|
11
11
|
<item>RFC-0674: add profileDevServerSchema and devServer field for lifecycle commands.</item>
|
|
12
12
|
<item>RFC-0675: add profileInvariantCheckSchema and check field to profileInvariantSchema for enforcement.</item>
|
|
13
|
+
<item>RFC-0679: add profileAssetSchema and assets field for asset management commands.</item>
|
|
14
|
+
<item>RFC-0680: add profileReleaseSchema and release field for release lifecycle commands.</item>
|
|
13
15
|
</CHANGE_SUMMARY>
|
|
14
16
|
*/
|
|
15
17
|
import { z } from "zod";
|
|
@@ -100,6 +102,34 @@ export const profileDevServerSchema = z.object({
|
|
|
100
102
|
readinessTimeout: z.number().int().positive().optional(),
|
|
101
103
|
});
|
|
102
104
|
// ---------------------------------------------------------------------------
|
|
105
|
+
// Profile asset schema (RFC-0679)
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
export const profileAssetTypeSchema = z.object({
|
|
108
|
+
id: z.string().min(1),
|
|
109
|
+
extensions: z.array(z.string().min(1)),
|
|
110
|
+
referencePattern: z.string().optional(),
|
|
111
|
+
});
|
|
112
|
+
export const profileAssetSchema = z.object({
|
|
113
|
+
dir: z.string().min(1),
|
|
114
|
+
types: z.array(profileAssetTypeSchema),
|
|
115
|
+
});
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
// Profile release schema (RFC-0680)
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
export const profileReleaseSchema = z.object({
|
|
120
|
+
target: z.enum(["local", "r2", "s3"]),
|
|
121
|
+
outputDir: z.string().min(1),
|
|
122
|
+
manifestName: z.string().default("release-manifest.json"),
|
|
123
|
+
includeArtifacts: z.array(z.string()).optional(),
|
|
124
|
+
r2: z
|
|
125
|
+
.object({
|
|
126
|
+
bucket: z.string().min(1),
|
|
127
|
+
accountId: z.string().min(1),
|
|
128
|
+
prefix: z.string().default(""),
|
|
129
|
+
})
|
|
130
|
+
.optional(),
|
|
131
|
+
});
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
103
133
|
// Stack profile domain fields
|
|
104
134
|
// ---------------------------------------------------------------------------
|
|
105
135
|
export const stackProfileDomainFieldsSchema = z.object({
|
|
@@ -110,5 +140,7 @@ export const stackProfileDomainFieldsSchema = z.object({
|
|
|
110
140
|
invariants: z.array(profileInvariantSchema).optional(),
|
|
111
141
|
register: z.enum(["business", "creative"]).optional(),
|
|
112
142
|
devServer: profileDevServerSchema.optional(),
|
|
143
|
+
assets: profileAssetSchema.optional(),
|
|
144
|
+
release: profileReleaseSchema.optional(),
|
|
113
145
|
});
|
|
114
146
|
//# sourceMappingURL=profile-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-schema.js","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"profile-schema.js","sourceRoot":"","sources":["../../../src/profiles/profile-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE;AAEF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,UAAU;IACV,gBAAgB;IAChB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,WAAW;IAC3B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC;SACD,QAAQ,EAAE;IACb,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC5B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAoBH,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACtC,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAaH,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,KAAK,CAAC,cAAc,EAAE,uDAAuD,CAAC;IACjF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtC,KAAK,EAAE,2BAA2B,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AASH,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzD,CAAC,CAAC;AAQH,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CACvC,CAAC,CAAC;AAOH,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACzD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,EAAE,EAAE,CAAC;SACF,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KAC/B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAcH,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACpD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;IAC9D,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IACtD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,SAAS,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC"}
|
|
@@ -82,6 +82,29 @@ export declare const stackProfileSchema: z.ZodObject<{
|
|
|
82
82
|
port: z.ZodOptional<z.ZodNumber>;
|
|
83
83
|
readinessTimeout: z.ZodOptional<z.ZodNumber>;
|
|
84
84
|
}, z.core.$strip>>;
|
|
85
|
+
assets: z.ZodOptional<z.ZodObject<{
|
|
86
|
+
dir: z.ZodString;
|
|
87
|
+
types: z.ZodArray<z.ZodObject<{
|
|
88
|
+
id: z.ZodString;
|
|
89
|
+
extensions: z.ZodArray<z.ZodString>;
|
|
90
|
+
referencePattern: z.ZodOptional<z.ZodString>;
|
|
91
|
+
}, z.core.$strip>>;
|
|
92
|
+
}, z.core.$strip>>;
|
|
93
|
+
release: z.ZodOptional<z.ZodObject<{
|
|
94
|
+
target: z.ZodEnum<{
|
|
95
|
+
local: "local";
|
|
96
|
+
r2: "r2";
|
|
97
|
+
s3: "s3";
|
|
98
|
+
}>;
|
|
99
|
+
outputDir: z.ZodString;
|
|
100
|
+
manifestName: z.ZodDefault<z.ZodString>;
|
|
101
|
+
includeArtifacts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
102
|
+
r2: z.ZodOptional<z.ZodObject<{
|
|
103
|
+
bucket: z.ZodString;
|
|
104
|
+
accountId: z.ZodString;
|
|
105
|
+
prefix: z.ZodDefault<z.ZodString>;
|
|
106
|
+
}, z.core.$strip>>;
|
|
107
|
+
}, z.core.$strip>>;
|
|
85
108
|
}, z.core.$strip>;
|
|
86
109
|
export interface ProfileFile {
|
|
87
110
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-profile.d.ts","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stack-profile.d.ts","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAkC,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAMpG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0C7B,CAAC;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,wBAAwB;IAC5D,MAAM,EAAE,uBAAuB,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5B,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,EAAE,WAAW,EAAE,CAAC;KACtB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAkBlE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAiBnE;AAMD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI,CAO9F"}
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
<item>RFC-0392: initial stack profile module with zod schema, listStackProfiles, detectStack.</item>
|
|
11
11
|
<item>RFC-0638: extended stackProfileSchema with optional domain-neutral fields (domain, terminology, artifacts, workspaceTypes, invariants, register).</item>
|
|
12
12
|
<item>RFC-0674: add devServer field to stackProfileSchema for lifecycle commands.</item>
|
|
13
|
+
<item>RFC-0679: add assets field to stackProfileSchema for asset management commands.</item>
|
|
14
|
+
<item>RFC-0680: add release field to stackProfileSchema for release lifecycle commands.</item>
|
|
13
15
|
</CHANGE_SUMMARY>
|
|
14
16
|
*/
|
|
15
17
|
import fs from "node:fs";
|
|
@@ -54,6 +56,10 @@ export const stackProfileSchema = z.object({
|
|
|
54
56
|
register: stackProfileDomainFieldsSchema.shape.register,
|
|
55
57
|
// RFC-0674: Dev server declaration for lifecycle commands
|
|
56
58
|
devServer: stackProfileDomainFieldsSchema.shape.devServer,
|
|
59
|
+
// RFC-0679: Asset management declaration
|
|
60
|
+
assets: stackProfileDomainFieldsSchema.shape.assets,
|
|
61
|
+
// RFC-0680: Release lifecycle declaration
|
|
62
|
+
release: stackProfileDomainFieldsSchema.shape.release,
|
|
57
63
|
});
|
|
58
64
|
// ---------------------------------------------------------------------------
|
|
59
65
|
// Loader
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-profile.js","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"stack-profile.js","sourceRoot":"","sources":["../../../src/profiles/stack-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE;AAEF,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAiC,MAAM,qBAAqB,CAAC;AAEpG,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;SACpB,CAAC,CACH;KACF,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC;SACd,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;SACpB,CAAC,CACH;QACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACzC,CAAC;SACD,QAAQ,EAAE;IACb,2CAA2C;IAC3C,MAAM,EAAE,8BAA8B,CAAC,KAAK,CAAC,MAAM;IACnD,WAAW,EAAE,8BAA8B,CAAC,KAAK,CAAC,WAAW;IAC7D,SAAS,EAAE,8BAA8B,CAAC,KAAK,CAAC,SAAS;IACzD,cAAc,EAAE,8BAA8B,CAAC,KAAK,CAAC,cAAc;IACnE,UAAU,EAAE,8BAA8B,CAAC,KAAK,CAAC,UAAU;IAC3D,QAAQ,EAAE,8BAA8B,CAAC,KAAK,CAAC,QAAQ;IACvD,0DAA0D;IAC1D,SAAS,EAAE,8BAA8B,CAAC,KAAK,CAAC,SAAS;IACzD,yCAAyC;IACzC,MAAM,EAAE,8BAA8B,CAAC,KAAK,CAAC,MAAM;IACnD,0CAA0C;IAC1C,OAAO,EAAE,8BAA8B,CAAC,KAAK,CAAC,OAAO;CACtD,CAAC,CAAC;AAwBH,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,WAAW,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aACnD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,WAAW,+BAA+B,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,MAAM,CAAC,IAAoB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,QAAwB;IACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB,EAAE,QAAkB;IAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,OAAe;IAC9C,8DAA8D;IAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClF,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AACpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warpgogol/forge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -130,6 +130,7 @@
|
|
|
130
130
|
"LICENSE"
|
|
131
131
|
],
|
|
132
132
|
"dependencies": {
|
|
133
|
+
"@aws-sdk/client-s3": "^3.700.0",
|
|
133
134
|
"yaml": "^2.9.0",
|
|
134
135
|
"zod": "^4.4.3"
|
|
135
136
|
},
|
|
@@ -32,6 +32,22 @@ artifacts:
|
|
|
32
32
|
inputs:
|
|
33
33
|
- compositions/**/*.html
|
|
34
34
|
- assets/**
|
|
35
|
+
assets:
|
|
36
|
+
dir: assets
|
|
37
|
+
types:
|
|
38
|
+
- id: video
|
|
39
|
+
extensions: [.mp4, .webm]
|
|
40
|
+
referencePattern: 'src="([^"]+\.(?:mp4|webm))"'
|
|
41
|
+
- id: audio
|
|
42
|
+
extensions: [.mp3, .wav]
|
|
43
|
+
referencePattern: 'src="([^"]+\.(?:mp3|wav))"'
|
|
44
|
+
- id: image
|
|
45
|
+
extensions: [.png, .jpg, .jpeg, .webp, .svg]
|
|
46
|
+
referencePattern: 'src="([^"]+\.(?:png|jpe?g|webp|svg))"'
|
|
47
|
+
release:
|
|
48
|
+
target: local
|
|
49
|
+
outputDir: release
|
|
50
|
+
manifestName: release-manifest.json
|
|
35
51
|
workspaceTypes:
|
|
36
52
|
- id: composition
|
|
37
53
|
detect:
|