@promptframe/cli 0.1.72 → 0.1.73
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/README.md +5 -1
- package/dist/development-build.d.ts.map +1 -1
- package/dist/development-build.js +4 -6
- package/dist/development-build.js.map +1 -1
- package/dist/development-owner.d.ts +2 -0
- package/dist/development-owner.d.ts.map +1 -1
- package/dist/development-owner.js +1 -0
- package/dist/development-owner.js.map +1 -1
- package/dist/development-process.d.ts +2 -0
- package/dist/development-process.d.ts.map +1 -1
- package/dist/development-process.js +18 -1
- package/dist/development-process.js.map +1 -1
- package/dist/development-temporary.d.ts +19 -0
- package/dist/development-temporary.d.ts.map +1 -0
- package/dist/development-temporary.js +282 -0
- package/dist/development-temporary.js.map +1 -0
- package/dist/development-validation.d.ts.map +1 -1
- package/dist/development-validation.js +23 -6
- package/dist/development-validation.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ PromptFrame component authoring CLI.
|
|
|
8
8
|
|
|
9
9
|
Use it to inspect the public component standard, check component folders, validate manifests, inspect the local preview envelope, package source archives, upload components, check build status, rebuild evidence indexes, and rerun layout/security probes.
|
|
10
10
|
|
|
11
|
-
Current source baseline is `@promptframe/cli@0.1.
|
|
11
|
+
Current source baseline is `@promptframe/cli@0.1.73`, `@promptframe/contracts@0.1.41`, `@promptframe/component-kit@0.1.35`, and `create-promptframe-component@0.1.63`. The published CLI consumes the contracts AST-aware public security policy evaluator, reports `securityPolicyDigest` / `securityEvaluatorMode` in JSON output, rejects red-team browser capability vectors such as Image/Audio beacons, Worker/SharedWorker, `window.open`, `postMessage`, dynamic script/iframe creation, browser fingerprinting, storage/cookie access, and dangerous HTML, reports `publicResources` for component-level public assets, keeps native `<img>` / `<video>` source checks case-sensitive so Remotion `<Img>` / `<Video>` remain valid, validates preview props against statically declared `propsSchema` fields and requires readable public prop descriptions, enforces strict Slot-first layout/source diagnostics, supports endpoint discovery, project list/current diagnostics, self-service CI token create/list/revoke, single-component and workspace GitHub workflow setup with `promptframe-workflow-version: 2`, `setup-ci --upgrade` stale-template repair, dynamic workspace matrix discovery, `RUNNER_LABELS` and pnpm 10 workflow support, pnpm workspace root lockfile evidence without component symlinks, `promptframe-workspace.json` validation, workspace root `check .` / `upload .` auto-detection, explicit `workspace:*` shared-package diagnostics, workspace upload source metadata headers, packages sanitized lockfile evidence for platform admission, release notes forwarding to upload, stderr NDJSON upload progress for `--json`, human-readable token kind/expiry summaries for `login`, `whoami`, and authenticated `upload`, server version auto-bump notes, and supports `status --fail-on-build-failed` for CI build-status gating.
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
npm install -D @promptframe/cli
|
|
@@ -239,3 +239,7 @@ promptframe resource clear .
|
|
|
239
239
|
市场预览的素材选择读取访问者当前作品中的就绪素材,不改变组件包或上传新素材。正式使用时将合法素材引用冻结在 Spec,渲染入口沿原授权、素材存储和预下载合同准备本地表示;签名 URL 不保存到 Spec。
|
|
240
240
|
|
|
241
241
|
工作区 dev 与 package 共用模块目录及子目录的 `.gitignore` 选择语义,不隐式读取工作区祖先的 ignore 规则;新增且未提交的合法源码仍会捕获。忽略的出图不读入快照或使已检查模块失效,必要入口、原始锁文件和 public 资源被误排时明确报错。dev 保留原始锁和工作区声明,正式源码包继续生成原锁证据;两者不是同一种字节格式。
|
|
242
|
+
|
|
243
|
+
### 开发临时目录
|
|
244
|
+
|
|
245
|
+
本地编译与校验把进程归属记录放在临时输入目录之外,正常完成后回收输入。后续编译只回收归属可核、生产进程已退出的遗留目录;活动目录、缺失或不明的记录继续保留,不按名称或文件时间批量删除。Linux 还检查原编译进程组的后代,确认其退出后再回收;其它宿主缺少相应退出证明时保留异常目录。此回收不修改组件项目、连接状态或浏览器模块内存。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-build.d.ts","sourceRoot":"","sources":["../src/development-build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"development-build.d.ts","sourceRoot":"","sources":["../src/development-build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF,sFAAsF;IACtF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED;;kFAEkF;AAClF,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACnF,OAAO,CAAC,uBAAuB,CAAC,CAiDlC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { mkdtemp, rm } from 'node:fs/promises';
|
|
2
|
-
import { tmpdir } from 'node:os';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
1
|
import { fileURLToPath } from 'node:url';
|
|
5
2
|
import { DevelopmentContents } from './development-revisions.js';
|
|
6
3
|
import { DevelopmentProcessError, runDevelopmentProcess } from './development-process.js';
|
|
4
|
+
import { createDevelopmentTemporary } from './development-temporary.js';
|
|
7
5
|
const outputLimits = Object.freeze({ maximumFiles: 512, maximumBytes: 8 * 1024 * 1024 });
|
|
8
6
|
/** Compile the capture through a fixed Vite config and a closed virtual source
|
|
9
7
|
* graph. No workspace files, child vite.config, scripts or node_modules are
|
|
@@ -21,12 +19,12 @@ export async function buildDevelopmentContents(contents, options = {}) {
|
|
|
21
19
|
throw new DevelopmentProcessError('development.build.input_limit');
|
|
22
20
|
const input = JSON.stringify({ sourceRevision: contents.revision,
|
|
23
21
|
files: files.map(file => ({ path: file.path, base64: Buffer.from(file.bytes).toString('base64') })) });
|
|
24
|
-
const
|
|
22
|
+
const temporary = await createDevelopmentTemporary('build', options.temporaryParent), directory = temporary.directory;
|
|
25
23
|
let hadFailure = false;
|
|
26
24
|
try {
|
|
27
25
|
const raw = await runDevelopmentProcess({
|
|
28
26
|
worker: fileURLToPath(new URL('./development-build-worker.js', import.meta.url)),
|
|
29
|
-
cwd: directory, input, timeoutMs, maximumOutputBytes: 20 * 1024 * 1024, signal: options.signal,
|
|
27
|
+
cwd: directory, input, timeoutMs, maximumOutputBytes: 20 * 1024 * 1024, signal: options.signal, temporary,
|
|
30
28
|
});
|
|
31
29
|
const result = JSON.parse(raw);
|
|
32
30
|
if (result.sourceRevision !== contents.revision || result.builder !== 'vite/8.0.10/captured-v1'
|
|
@@ -52,7 +50,7 @@ export async function buildDevelopmentContents(contents, options = {}) {
|
|
|
52
50
|
// The worker has actually closed before returning/throwing above. A cleanup
|
|
53
51
|
// failure must not replace the original abort/compiler cause.
|
|
54
52
|
try {
|
|
55
|
-
|
|
53
|
+
temporary.release();
|
|
56
54
|
}
|
|
57
55
|
catch (error) {
|
|
58
56
|
if (!hadFailure)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-build.js","sourceRoot":"","sources":["../src/development-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"development-build.js","sourceRoot":"","sources":["../src/development-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
declare function birth(pid: number): string | null;
|
|
2
|
+
export { birth as developmentProcessBirth };
|
|
1
3
|
/** Same CLI process, filesystem-local owner control. The Studio HTTP surface
|
|
2
4
|
* remains GET-only, and stop never signals a numeric PID. */
|
|
3
5
|
export declare function stopDevelopmentOwner(root: string, reason?: 'stop' | 'replace'): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-owner.d.ts","sourceRoot":"","sources":["../src/development-owner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"development-owner.d.ts","sourceRoot":"","sources":["../src/development-owner.ts"],"names":[],"mappings":"AAWA,iBAAS,KAAK,CAAC,GAAG,EAAC,MAAM,GAAE,MAAM,GAAC,IAAI,CAUrC;AACD,OAAO,EAAC,KAAK,IAAI,uBAAuB,EAAC,CAAC;AA8C1C;6DAC6D;AAC7D,wBAAsB,oBAAoB,CAAC,IAAI,EAAC,MAAM,EAAC,MAAM,GAAC,MAAM,GAAC,SAAgB;;;;;;;;;;;;GAcpF;AACD,wBAAsB,uBAAuB,CAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,CAAC,MAAM,EAAC,MAAM,GAAC,SAAS,GAAC,OAAO,KAAG,IAAI;;;qBAgClF,MAAM;;IAY3B"}
|
|
@@ -35,6 +35,7 @@ function birth(pid) {
|
|
|
35
35
|
throw Error('development.owner.identity_unavailable');
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
export { birth as developmentProcessBirth };
|
|
38
39
|
function paths(root, create = false) {
|
|
39
40
|
root = realpathSync(root);
|
|
40
41
|
const directory = join(root, '.promptframe', 'dev'), rootDigest = createHash('sha256').update(root).digest('hex');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-owner.js","sourceRoot":"","sources":["../src/development-owner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"development-owner.js","sourceRoot":"","sources":["../src/development-owner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,YAAY,EAAC,YAAY,EAAC,UAAU,EAAC,UAAU,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AACtK,OAAO,EAAC,gBAAgB,EAAC,YAAY,EAAa,MAAM,UAAU,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAI/B,MAAM,GAAG,GAAC,iBAAiB,CAAC;AAC5B,MAAM,IAAI,GAAC,CAAC,EAAS,EAAC,EAAE,CAAA,IAAI,OAAO,CAAO,OAAO,CAAA,EAAE,CAAA,UAAU,CAAC,OAAO,EAAC,EAAE,CAAC,CAAC,CAAC;AAC3E,SAAS,KAAK,CAAC,GAAU;IACvB,IAAG,CAAC;QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC;IAAA,CAAC;IAAA,OAAM,KAAK,EAAC,CAAC;QAAA,IAAI,KAA+B,CAAC,IAAI,KAAG,OAAO;YAAC,OAAO,IAAI,CAAC;QAAA,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAAA,CAAC;IAC5J,IAAG,CAAC;QACF,IAAG,OAAO,CAAC,QAAQ,KAAG,OAAO,EAAC,CAAC;YAC7B,MAAM,IAAI,GAAC,YAAY,CAAC,SAAS,GAAG,OAAO,EAAC,MAAM,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1G,OAAO,YAAY,CAAC,iCAAiC,EAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAC,GAAG,GAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,IAAG,OAAO,CAAC,QAAQ,KAAG,OAAO;YAAC,OAAO,YAAY,CAAC,gBAAgB,EAAC,CAAC,YAAY,EAAC,iBAAiB,EAAC,UAAU,EAAC,oBAAoB,GAAG,uDAAuD,CAAC,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtQ,OAAO,YAAY,CAAC,IAAI,EAAC,CAAC,IAAI,EAAC,MAAM,CAAC,GAAG,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,CAAC,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjJ,CAAC;IAAA,MAAK,CAAC;QAAA,IAAG,CAAC;YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC;QAAA,CAAC;QAAA,OAAM,KAAK,EAAC,CAAC;YAAA,IAAI,KAA+B,CAAC,IAAI,KAAG,OAAO;gBAAC,OAAO,IAAI,CAAC;QAAA,CAAC;QAAA,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAAA,CAAC;AACtK,CAAC;AACD,OAAO,EAAC,KAAK,IAAI,uBAAuB,EAAC,CAAC;AAC1C,SAAS,KAAK,CAAC,IAAW,EAAC,MAAM,GAAC,KAAK;IACrC,IAAI,GAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,SAAS,GAAC,IAAI,CAAC,IAAI,EAAC,cAAc,EAAC,KAAK,CAAC,EAAC,UAAU,GAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3G,KAAI,MAAM,IAAI,IAAG,CAAC,IAAI,CAAC,IAAI,EAAC,cAAc,CAAC,EAAC,SAAS,CAAC,EAAC,CAAC;QACtD,IAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,CAAC;YAAA,IAAG,CAAC,MAAM;gBAAC,SAAS;YAAA,SAAS,CAAC,IAAI,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC;QAAA,CAAC;QACxE,MAAM,IAAI,GAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAAA,IAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAE,IAAI,CAAC,cAAc,EAAE,IAAE,OAAO,CAAC,MAAM,IAAE,IAAI,CAAC,GAAG,KAAG,OAAO,CAAC,MAAM,EAAE;YAAC,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1K,CAAC;IACD,MAAM,OAAO,GAAC,IAAI,CAAC,SAAS,EAAC,YAAY,CAAC,CAAC;IAAA,IAAG,MAAM,IAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAC,aAAa,CAAC,OAAO,EAAC,KAAK,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC;IAC/H,OAAM,EAAC,SAAS,EAAC,UAAU,EAAC,KAAK,EAAC,IAAI,CAAC,SAAS,EAAC,YAAY,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,SAAS,EAAC,YAAY,CAAC,EAAC,CAAC;AACpG,CAAC;AACD,SAAS,IAAI,CAAC,IAAW;IACvB,MAAM,IAAI,GAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAAA,IAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAE,IAAI,CAAC,cAAc,EAAE,IAAE,OAAO,CAAC,MAAM,IAAE,IAAI,CAAC,GAAG,KAAG,OAAO,CAAC,MAAM,EAAE;QAAC,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChK,MAAM,EAAE,GAAC,QAAQ,CAAC,IAAI,EAAC,SAAS,CAAC,QAAQ,GAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChE,IAAG,CAAC;QAAA,MAAM,GAAG,GAAC,YAAY,CAAC,EAAE,EAAC,MAAM,CAAC,CAAC;QAAA,IAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAC,IAAI;YAAC,MAAM,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAA,CAAC;YAAO,CAAC;QAAA,SAAS,CAAC,EAAE,CAAC,CAAC;IAAA,CAAC;AACtK,CAAC;AACD,SAAS,KAAK,CAAC,IAAW,EAAC,KAAa;IACtC,MAAM,EAAE,GAAC,QAAQ,CAAC,IAAI,EAAC,SAAS,CAAC,QAAQ,GAAC,SAAS,CAAC,OAAO,GAAC,SAAS,CAAC,MAAM,GAAC,SAAS,CAAC,UAAU,EAAC,KAAK,CAAC,CAAC;IACzG,IAAG,CAAC;QAAA,aAAa,CAAC,EAAE,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC,CAAC;QAAA,SAAS,CAAC,EAAE,CAAC,CAAC;IAAA,CAAC;YAAO,CAAC;QAAA,SAAS,CAAC,EAAE,CAAC,CAAC;IAAA,CAAC;AACzF,CAAC;AACD,SAAS,QAAQ,CAAC,KAAW;IAC3B,MAAM,IAAI,GAAC,mBAAmB,OAAO,CAAC,MAAM,EAAE,EAAE,IAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC;IAC3F,yEAAyE;IACzE,0EAA0E;IAC1E,IAAG,OAAO,CAAC,QAAQ,KAAG,OAAO;QAAC,OAAO,IAAI,GAAC,IAAI,CAAC;IAC/C,OAAO,OAAO,CAAC,QAAQ,KAAG,OAAO,CAAA,CAAC,CAAA,gBAAgB,IAAI,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,MAAM,EAAE,EAAC,IAAI,GAAC,OAAO,CAAC,CAAC;AACvF,CAAC;AACD,SAAS,OAAO,CAAC,IAAW,EAAC,UAAiB;IAC5C,IAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC;IACjC,MAAM,KAAK,GAAC,IAAI,CAAC,IAAI,CAAS,CAAC;IAC/B,IAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA,EAAE,CAAA,CAAC,CAAC,SAAS,EAAC,YAAY,EAAC,YAAY,EAAC,cAAc,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAE,KAAK,CAAC,OAAO,KAAG,CAAC,IAAE,OAAO,KAAK,CAAC,UAAU,KAAG,QAAQ,IAAE,OAAO,KAAK,CAAC,YAAY,KAAG,QAAQ,IAAE,KAAK,CAAC,UAAU,KAAG,UAAU,IAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;WAC7S,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAE,KAAK,CAAC,GAAG,GAAC,CAAC,IAAE,OAAO,KAAK,CAAC,KAAK,KAAG,QAAQ,IAAE,CAAC,KAAK,CAAC,KAAK,IAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,GAAG;WAClH,KAAK,CAAC,IAAI,KAAG,SAAS,IAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,KAAK,CAAC,IAAI,GAAC,CAAC,IAAE,KAAK,CAAC,IAAI,GAAC,KAAK,CAAC;QAAC,MAAM,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC5I,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,IAAI,CAAC,CAAO,EAAC,CAAO,IAAE,OAAO,CAAC,CAAC,UAAU,KAAG,CAAC,CAAC,UAAU,IAAE,CAAC,CAAC,GAAG,KAAG,CAAC,CAAC,GAAG,IAAE,CAAC,CAAC,KAAK,KAAG,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,UAAU,KAAG,CAAC,CAAC,UAAU,CAAC,CAAA,CAAC;AAClI,SAAS,WAAW,CAAC,IAAW,EAAC,KAAW,IAAE,MAAM,OAAO,GAAC,OAAO,CAAC,IAAI,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA,IAAG,OAAO,IAAE,IAAI,CAAC,OAAO,EAAC,KAAK,CAAC;IAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC;AAE7I,KAAK,UAAU,OAAO,CAAC,KAAW,EAAC,MAAiC;IAClE,OAAO,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,MAAM,GAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAAA,IAAI,GAAG,GAAC,EAAE,CAAC;QAAA,MAAM,KAAK,GAAC,UAAU,CAAC,GAAE,EAAE,CAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC;QAC1J,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAC,GAAE,EAAE,CAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,MAAM,EAAC,UAAU,EAAC,KAAK,CAAC,UAAU,EAAC,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC;QAC5H,MAAM,CAAC,EAAE,CAAC,MAAM,EAAC,KAAK,CAAA,EAAE,GAAC,GAAG,IAAE,KAAK,CAAC,CAAA,IAAG,GAAG,CAAC,MAAM,GAAC,IAAI;YAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;QACrH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAC,MAAM,CAAC,CAAC;QAAA,MAAM,CAAC,IAAI,CAAC,OAAO,EAAC,GAAE,EAAE,GAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA,IAAG,CAAC;YAAA,MAAM,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAAA,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC,KAAK,CAAC,IAAE,MAAM,CAAC,YAAY,KAAG,KAAK,CAAC,YAAY;gBAAC,MAAM,KAAK,EAAE,CAAC;YAAA,OAAO,CAAC,MAAM,CAAC,CAAC;QAAA,CAAC;QAAA,MAAK,CAAC;YAAA,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAA,CAAC,CAAC,CAAC;IAC7Q,CAAC,CAAC,CAAC;AACL,CAAC;AACD;6DAC6D;AAC7D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAW,EAAC,SAAwB,MAAM;IACnF,MAAM,CAAC,GAAC,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAAA,IAAG,CAAC,KAAK;QAAC,OAAM,EAAC,OAAO,EAAC,KAAK,EAAC,CAAC;IACvF,MAAM,OAAO,GAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAG,OAAO,KAAG,KAAK,CAAC,KAAK;QAAC,OAAM,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,CAAC;IAC1D,MAAM,OAAO,CAAC,KAAK,EAAC,SAAS,CAAC,CAAC;IAAA,IAAI,YAAY,GAAC,IAAI,CAAC;IAAA,IAAG,CAAC;QAAA,MAAM,OAAO,CAAC,KAAK,EAAC,MAAM,CAAC,CAAC;IAAA,CAAC;IAAA,MAAK,CAAC;QAAA,YAAY,GAAC,KAAK,CAAC;IAAA,CAAC;IAChH,0EAA0E;IAC1E,MAAM,KAAK,GAAC,IAAI,CAAC,GAAG,EAAE,GAAC,MAAM,CAAC;IAC9B,OAAM,IAAI,CAAC,GAAG,EAAE,GAAC,KAAK,EAAC,CAAC;QACtB,MAAM,IAAI,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxC,IAAG,IAAI,IAAE,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC;YAAC,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACpE,IAAG,CAAC,IAAI,IAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,KAAK;YAAC,OAAM,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,EAAC,CAAC;QAC3E,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACrD,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAW,EAAC,MAA8C;IACtG,MAAM,CAAC,GAAC,KAAK,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;IAAA,IAAI,KAAW,CAAC;IACzC,IAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC;QACvB,IAAG,CAAC;YAAA,KAAK,CAAC,CAAC,CAAC,KAAK,EAAC,EAAC,OAAO,EAAC,CAAC,EAAC,YAAY,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;QAAA,CAAC;QAC7E,OAAM,KAAK,EAAC,CAAC;YAAA,IAAI,KAA+B,CAAC,IAAI,KAAG,QAAQ;gBAAC,MAAM,KAAK,CAAC;QAAA,CAAC;IAChF,CAAC;IACD,KAAK,GAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAS,CAAC;IAC5B,IAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA,EAAE,CAAA,CAAC,CAAC,SAAS,EAAC,cAAc,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAE,KAAK,CAAC,OAAO,KAAG,CAAC,IAAE,OAAO,KAAK,CAAC,YAAY,KAAG,QAAQ,IAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAE,KAAK,CAAC,IAAI,KAAG,SAAS,IAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,KAAK,CAAC,IAAI,GAAC,CAAC,IAAE,KAAK,CAAC,IAAI,GAAC,KAAK,CAAC;QAAC,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAClT,IAAI,KAAK,GAAO,EAAC,OAAO,EAAC,CAAC,EAAC,UAAU,EAAC,CAAC,CAAC,UAAU,EAAC,UAAU,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,YAAY,EAAC,KAAK,CAAC,YAAY,EAAC,GAAG,EAAC,OAAO,CAAC,GAAG,EAAC,KAAK,EAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAE,EAAC,CAAC;IACzK,IAAI,UAAU,GAAC,KAAK,CAAC;IACrB,IAAI,OAAO,GAAC,KAAK,CAAC;IAAA,MAAM,OAAO,GAAC,IAAI,GAAG,EAA6B,CAAC;IAAA,IAAI,OAAwB,CAAC;IAClG,IAAG,CAAC;QACF,OAAO,GAAC,YAAY,CAAC,EAAC,aAAa,EAAC,IAAI,EAAC,EAAC,MAAM,CAAA,EAAE;YAChD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,EAAC,GAAE,EAAE,CAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAAA,MAAM,CAAC,UAAU,CAAC,IAAI,EAAC,GAAE,EAAE,CAAA,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAAA,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAAA,IAAI,GAAG,GAAC,EAAE,CAAC;YACvJ,MAAM,CAAC,EAAE,CAAC,MAAM,EAAC,KAAK,CAAA,EAAE;gBACtB,GAAG,IAAE,KAAK,CAAC;gBAAA,IAAG,GAAG,CAAC,MAAM,GAAC,IAAI,EAAC,CAAC;oBAAA,MAAM,CAAC,OAAO,EAAE,CAAC;oBAAA,OAAO;gBAAA,CAAC;gBAAA,IAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAC,OAAO;gBACtF,IAAG,CAAC;oBAAA,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAAA,IAAG,KAAK,CAAC,UAAU,KAAG,KAAK,CAAC,UAAU,IAAE,CAAC,CAAC,SAAS,EAAC,MAAM,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;wBAAC,MAAM,KAAK,EAAE,CAAC;oBACzI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;oBAAA,IAAG,KAAK,CAAC,MAAM,KAAG,SAAS,IAAE,CAAC,OAAO,EAAC,CAAC;wBAAA,OAAO,GAAC,IAAI,CAAC;wBAAA,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAAA,CAAC;gBAC9G,CAAC;gBAAA,MAAK,CAAC;oBAAA,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAA,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAC,MAAM,EAAC,EAAE,GAAC,OAAQ,CAAC,IAAI,CAAC,OAAO,EAAC,MAAM,CAAC,CAAC,CAAA,OAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,GAAE,EAAE,GAAC,OAAQ,CAAC,cAAc,CAAC,OAAO,EAAC,MAAM,CAAC,CAAC,CAAA,OAAO,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;QACtK,OAAO,CAAC,EAAE,CAAC,OAAO,EAAC,GAAE,EAAE,GAAC,IAAG,CAAC,OAAO,EAAC,CAAC;YAAA,OAAO,GAAC,IAAI,CAAC;YAAA,MAAM,CAAC,OAAO,CAAC,CAAC;QAAA,CAAC,CAAA,CAAC,CAAC,CAAC;QACtE,IAAG,OAAO,CAAC,QAAQ,KAAG,OAAO,IAAE,OAAO,CAAC,QAAQ,KAAG,OAAO;YAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC,CAAC;QAC3F,sEAAsE;QACtE,qDAAqD;QACrD,MAAM,QAAQ,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAG,QAAQ,EAAC,CAAC;YAAA,IAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAG,QAAQ,CAAC,KAAK;gBAAC,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAAA,WAAW,CAAC,CAAC,CAAC,IAAI,EAAC,QAAQ,CAAC,CAAC;QAAA,CAAC;QAC9I,KAAK,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QAAA,UAAU,GAAC,IAAI,CAAC;QACpC,IAAI,YAAoC,CAAC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAC,YAAY,EAAC,KAAK,CAAC,YAAY;YACnD,aAAa,EAAC,KAAK,CAAC,IAAI,IAAE,KAAK,CAAC,IAAI,IAAE,KAAK,IAAE,KAAK,CAAC,IAAI,IAAE,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,IAAI,CAAA,CAAC,CAAA,KAAK,GAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,GAAC,IAAI;YAC1K,UAAU,CAAC,IAAW;gBACpB,MAAM,OAAO,GAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAAA,IAAG,CAAC,OAAO,IAAE,CAAC,IAAI,CAAC,OAAO,EAAC,KAAK,CAAC;oBAAC,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACtH,KAAK,GAAC,EAAC,GAAG,KAAK,EAAC,IAAI,EAAC,CAAC;gBAAA,KAAK,GAAC,EAAC,GAAG,KAAK,EAAC,IAAI,EAAC,CAAC;gBAC5C,KAAI,MAAK,CAAC,IAAI,EAAC,KAAK,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,CAAS,EAAC,CAAC;oBAAA,MAAM,SAAS,GAAC,IAAI,GAAC,GAAG,GAAC,KAAK,CAAC,UAAU,CAAC;oBAAA,KAAK,CAAC,SAAS,EAAC,KAAK,CAAC,CAAC;oBAAA,UAAU,CAAC,SAAS,EAAC,IAAI,CAAC,CAAC;gBAAA,CAAC;YAChK,CAAC;YACD,KAAK;gBAAG,OAAO,YAAY,KAAG,CAAC,KAAK,IAAE,EAAE;oBACtC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;oBAC1B,KAAI,MAAM,MAAM,IAAI,OAAO;wBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAAA,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAC,MAAM,EAAC,EAAE,CAAA,OAAQ,CAAC,KAAK,CAAC,KAAK,CAAA,EAAE,CAAA,KAAK,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAA,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC/I,CAAC,CAAC,EAAE,CAAC;YAAA,CAAC;SACP,CAAC,CAAC;IACL,CAAC;IAAA,OAAM,KAAK,EAAC,CAAC;QAAA,IAAG,UAAU;YAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QAAA,OAAO,EAAE,KAAK,EAAE,CAAC;QACrE,IAAI,KAA+B,CAAC,IAAI,KAAG,YAAY;YAAC,MAAM,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAAA,MAAM,KAAK,CAAC;IAAA,CAAC;AAC1H,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DevelopmentTemporaryRoot } from './development-temporary.js';
|
|
1
2
|
export declare class DevelopmentProcessError extends Error {
|
|
2
3
|
readonly code: string;
|
|
3
4
|
readonly diagnosticCode?: string | undefined;
|
|
@@ -11,5 +12,6 @@ export declare function runDevelopmentProcess(options: {
|
|
|
11
12
|
timeoutMs: number;
|
|
12
13
|
maximumOutputBytes: number;
|
|
13
14
|
signal?: AbortSignal;
|
|
15
|
+
temporary?: DevelopmentTemporaryRoot;
|
|
14
16
|
}): Promise<string>;
|
|
15
17
|
//# sourceMappingURL=development-process.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-process.d.ts","sourceRoot":"","sources":["../src/development-process.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"development-process.d.ts","sourceRoot":"","sources":["../src/development-process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAEzE,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM;gBAA9C,IAAI,EAAE,MAAM,EAAW,cAAc,CAAC,EAAE,MAAM,YAAA;CAGpE;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAC9D,kBAAkB,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAA,SAAS,CAAC,EAAC,wBAAwB,CAAC;CACtF,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ClB"}
|
|
@@ -12,9 +12,11 @@ export class DevelopmentProcessError extends Error {
|
|
|
12
12
|
/** A bounded compiler/checker process, never a component execution sandbox. */
|
|
13
13
|
export function runDevelopmentProcess(options) {
|
|
14
14
|
options.signal?.throwIfAborted();
|
|
15
|
+
options.temporary?.beforeSpawn();
|
|
15
16
|
return new Promise((resolve, reject) => {
|
|
16
17
|
const child = spawn(process.execPath, [options.worker], {
|
|
17
18
|
cwd: options.cwd, stdio: ['pipe', 'pipe', 'pipe'],
|
|
19
|
+
detached: Boolean(options.temporary && process.platform === 'linux'),
|
|
18
20
|
env: { NO_COLOR: '1', NODE_ENV: 'development',
|
|
19
21
|
...(process.platform === 'win32' && process.env.SystemRoot ? { SystemRoot: process.env.SystemRoot } : {}) },
|
|
20
22
|
});
|
|
@@ -44,6 +46,15 @@ export function runDevelopmentProcess(options) {
|
|
|
44
46
|
child.once('close', code => {
|
|
45
47
|
clearTimeout(timeout);
|
|
46
48
|
options.signal?.removeEventListener('abort', abort);
|
|
49
|
+
try {
|
|
50
|
+
options.temporary?.joined();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (!failed) {
|
|
54
|
+
failed = true;
|
|
55
|
+
firstError = error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
47
58
|
if (failed)
|
|
48
59
|
return reject(firstError);
|
|
49
60
|
if (code === 0)
|
|
@@ -57,7 +68,13 @@ export function runDevelopmentProcess(options) {
|
|
|
57
68
|
catch { /* Raw compiler paths/output are not public diagnostics. */ }
|
|
58
69
|
reject(new DevelopmentProcessError('development.build.rejected', diagnosticCode));
|
|
59
70
|
});
|
|
60
|
-
|
|
71
|
+
try {
|
|
72
|
+
options.temporary?.spawned(child.pid);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
fail(error);
|
|
76
|
+
}
|
|
77
|
+
child.stdin.end(failed ? undefined : options.input);
|
|
61
78
|
if (options.signal?.aborted)
|
|
62
79
|
abort();
|
|
63
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-process.js","sourceRoot":"","sources":["../src/development-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"development-process.js","sourceRoot":"","sources":["../src/development-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface DevelopmentTemporaryRoot {
|
|
2
|
+
directory: string;
|
|
3
|
+
beforeSpawn(): void;
|
|
4
|
+
spawned(pid: number | undefined): void;
|
|
5
|
+
joined(): void;
|
|
6
|
+
release(): void;
|
|
7
|
+
}
|
|
8
|
+
export interface DevelopmentTemporaryCleanup {
|
|
9
|
+
removed: number;
|
|
10
|
+
retained: number;
|
|
11
|
+
unknown: number;
|
|
12
|
+
truncated: boolean;
|
|
13
|
+
lock: 'held' | 'busy' | 'unsupported';
|
|
14
|
+
}
|
|
15
|
+
/** A short kernel-owned mutex, using the existing dev owner's abstract-socket /
|
|
16
|
+
* named-pipe pattern. It has no daemon, TCP port or stale lock-file takeover. */
|
|
17
|
+
export declare function cleanupDevelopmentTemporaries(parent?: string): Promise<DevelopmentTemporaryCleanup>;
|
|
18
|
+
export declare function createDevelopmentTemporary(kind: 'build' | 'check', parent?: string): Promise<DevelopmentTemporaryRoot>;
|
|
19
|
+
//# sourceMappingURL=development-temporary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development-temporary.d.ts","sourceRoot":"","sources":["../src/development-temporary.ts"],"names":[],"mappings":"AAwFA,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAC,MAAM,CAAC;IACjB,WAAW,IAAG,IAAI,CAAC;IACnB,OAAO,CAAC,GAAG,EAAC,MAAM,GAAC,SAAS,GAAE,IAAI,CAAC;IACnC,MAAM,IAAG,IAAI,CAAC;IACd,OAAO,IAAG,IAAI,CAAC;CAChB;AACD,MAAM,WAAW,2BAA2B;IAAE,OAAO,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,OAAO,CAAC;IAAA,IAAI,EAAC,MAAM,GAAC,MAAM,GAAC,aAAa,CAAA;CAAC;AAE/I;iFACiF;AACjF,wBAAsB,6BAA6B,CAAC,MAAM,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,2BAA2B,CAAC,CAuBvG;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAC,OAAO,GAAC,OAAO,EAAC,MAAM,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,wBAAwB,CAAC,CAwBtH"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { createHash, randomBytes } from 'node:crypto';
|
|
2
|
+
import { constants, closeSync, existsSync, fstatSync, fsyncSync, lstatSync, mkdirSync, mkdtempSync, openSync, opendirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { createServer } from 'node:net';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { basename, dirname, join } from 'node:path';
|
|
6
|
+
import { developmentProcessBirth } from './development-owner.js';
|
|
7
|
+
const marker = '.promptframe-temporary.json', active = new Set();
|
|
8
|
+
const sha = (value) => createHash('sha256').update(value).digest('hex');
|
|
9
|
+
const fail = () => { throw Error('development.temporary.identity_unconfirmed'); };
|
|
10
|
+
function identity(root, parent = false) {
|
|
11
|
+
const s = lstatSync(root, { bigint: true });
|
|
12
|
+
if (!s.isDirectory() || s.isSymbolicLink() || process.getuid && s.uid !== BigInt(process.getuid())
|
|
13
|
+
|| !parent && process.platform !== 'win32' && (s.mode & 18n) !== 0n)
|
|
14
|
+
fail();
|
|
15
|
+
return { dev: String(s.dev), ino: String(s.ino) };
|
|
16
|
+
}
|
|
17
|
+
function parentDirectory(parent) {
|
|
18
|
+
const value = parent ?? join(tmpdir(), 'promptframe-development-' + (process.getuid?.() ?? 'user'));
|
|
19
|
+
if (!existsSync(value))
|
|
20
|
+
try {
|
|
21
|
+
mkdirSync(value, { mode: 0o700 });
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error.code !== 'EEXIST')
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
identity(value, true);
|
|
28
|
+
const canonical = realpathSync(value), info = lstatSync(canonical, { bigint: true });
|
|
29
|
+
if (process.platform !== 'win32' && (info.mode & 18n) !== 0n) {
|
|
30
|
+
// An explicit test/compiler parent may inherit a group-write umask while
|
|
31
|
+
// remaining inside its creator's0700 root. Require that actual boundary;
|
|
32
|
+
// a writable shared parent without one is never swept.
|
|
33
|
+
let cursor = dirname(canonical), protectedByOwner = false;
|
|
34
|
+
for (let depth = 0; depth < 128; depth++) {
|
|
35
|
+
const ancestor = lstatSync(cursor, { bigint: true });
|
|
36
|
+
if (ancestor.isSymbolicLink() || !ancestor.isDirectory())
|
|
37
|
+
fail();
|
|
38
|
+
if (process.getuid && ancestor.uid === BigInt(process.getuid()) && (ancestor.mode & 63n) === 0n) {
|
|
39
|
+
protectedByOwner = true;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
const next = dirname(cursor);
|
|
43
|
+
if (next === cursor)
|
|
44
|
+
break;
|
|
45
|
+
cursor = next;
|
|
46
|
+
}
|
|
47
|
+
if (!protectedByOwner)
|
|
48
|
+
fail();
|
|
49
|
+
}
|
|
50
|
+
return canonical;
|
|
51
|
+
}
|
|
52
|
+
function parentSync(root) {
|
|
53
|
+
if (process.platform === 'win32')
|
|
54
|
+
return;
|
|
55
|
+
const fd = openSync(root, constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
|
|
56
|
+
try {
|
|
57
|
+
fsyncSync(fd);
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
closeSync(fd);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function write(root, value) {
|
|
64
|
+
const temporary = join(root, marker + '.' + value.nonce + '.new');
|
|
65
|
+
const fd = openSync(temporary, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | constants.O_NOFOLLOW, 0o600);
|
|
66
|
+
try {
|
|
67
|
+
writeFileSync(fd, JSON.stringify(value) + '\n');
|
|
68
|
+
fsyncSync(fd);
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
closeSync(fd);
|
|
72
|
+
}
|
|
73
|
+
renameSync(temporary, join(root, marker));
|
|
74
|
+
parentSync(root);
|
|
75
|
+
}
|
|
76
|
+
function read(root) {
|
|
77
|
+
const before = identity(root), file = join(root, marker), s = lstatSync(file);
|
|
78
|
+
if (!s.isFile() || s.isSymbolicLink() || s.nlink !== 1 || process.getuid && s.uid !== process.getuid()
|
|
79
|
+
|| process.platform !== 'win32' && (s.mode & 0o077) !== 0 || s.size > 4096)
|
|
80
|
+
fail();
|
|
81
|
+
const fd = openSync(file, constants.O_RDONLY | constants.O_NOFOLLOW);
|
|
82
|
+
let raw;
|
|
83
|
+
try {
|
|
84
|
+
const opened = fstatSync(fd);
|
|
85
|
+
if (opened.dev !== s.dev || opened.ino !== s.ino)
|
|
86
|
+
fail();
|
|
87
|
+
raw = readFileSync(fd, 'utf8');
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
closeSync(fd);
|
|
91
|
+
}
|
|
92
|
+
const value = JSON.parse(raw);
|
|
93
|
+
const producer = (v) => v !== null && Object.keys(v).every(k => ['pid', 'birth', 'group'].includes(k))
|
|
94
|
+
&& Number.isSafeInteger(v.pid) && v.pid > 0 && (v.birth === null || typeof v.birth === 'string' && v.birth.length > 0 && v.birth.length <= 256)
|
|
95
|
+
&& (v.group === undefined || Number.isSafeInteger(v.group) && v.group === v.pid);
|
|
96
|
+
if (Object.keys(value).some(k => !['version', 'kind', 'nonce', 'directory', 'dev', 'ino', 'creator', 'phase', 'worker'].includes(k))
|
|
97
|
+
|| value.version !== 1 || !['build', 'check'].includes(value.kind) || !/^[a-f0-9]{32}$/u.test(value.nonce)
|
|
98
|
+
|| !basename(root).startsWith('promptframe-' + value.kind + '-')
|
|
99
|
+
|| value.directory !== sha(root) || value.dev !== before.dev || value.ino !== before.ino || !producer(value.creator) || !value.creator.birth
|
|
100
|
+
|| !['preparing', 'launching', 'running', 'joined'].includes(value.phase) || value.worker !== null && !producer(value.worker))
|
|
101
|
+
fail();
|
|
102
|
+
return { value, digest: sha(raw) };
|
|
103
|
+
}
|
|
104
|
+
function gone(producer) { return producer.birth !== null && developmentProcessBirth(producer.pid) !== producer.birth; }
|
|
105
|
+
function processGroup(pid) {
|
|
106
|
+
try {
|
|
107
|
+
return Number(readFileSync('/proc/' + pid + '/stat', 'utf8').split(') ').at(-1).split(' ')[2]);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/** Linux workers have their own observed process group. Inspect every member,
|
|
114
|
+
* including compiler descendants. Truncation/read failure means unknown. */
|
|
115
|
+
function groupEmpty(group) {
|
|
116
|
+
if (process.platform !== 'linux')
|
|
117
|
+
return null;
|
|
118
|
+
const directory = opendirSync('/proc');
|
|
119
|
+
let scanned = 0;
|
|
120
|
+
try {
|
|
121
|
+
let entry;
|
|
122
|
+
while ((entry = directory.readSync())) {
|
|
123
|
+
if (!/^\d+$/u.test(entry.name))
|
|
124
|
+
continue;
|
|
125
|
+
if (++scanned > 8192)
|
|
126
|
+
return null;
|
|
127
|
+
try {
|
|
128
|
+
const fields = readFileSync('/proc/' + entry.name + '/stat', 'utf8').split(') ').at(-1).split(' ');
|
|
129
|
+
if (Number(fields[2]) === group && !['Z', 'X'].includes(fields[0]))
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
if (error.code !== 'ENOENT')
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
directory.closeSync();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function retired(value) {
|
|
144
|
+
if (value.phase === 'joined') {
|
|
145
|
+
if (!value.worker)
|
|
146
|
+
return true;
|
|
147
|
+
return Boolean(value.worker.group && gone(value.worker) && groupEmpty(value.worker.group) === true);
|
|
148
|
+
}
|
|
149
|
+
if (!gone(value.creator))
|
|
150
|
+
return false;
|
|
151
|
+
if (value.phase === 'preparing')
|
|
152
|
+
return value.worker === null;
|
|
153
|
+
// An interrupted spawn with no original worker identity is not NoStart.
|
|
154
|
+
if (!value.worker || !value.worker.group || !gone(value.worker))
|
|
155
|
+
return false;
|
|
156
|
+
return groupEmpty(value.worker.group) === true;
|
|
157
|
+
}
|
|
158
|
+
/** A short kernel-owned mutex, using the existing dev owner's abstract-socket /
|
|
159
|
+
* named-pipe pattern. It has no daemon, TCP port or stale lock-file takeover. */
|
|
160
|
+
export async function cleanupDevelopmentTemporaries(parent) {
|
|
161
|
+
const directory = parentDirectory(parent), result = { removed: 0, retained: 0, unknown: 0, truncated: false, lock: 'unsupported' };
|
|
162
|
+
if (!['linux', 'win32'].includes(process.platform))
|
|
163
|
+
return result;
|
|
164
|
+
const name = 'promptframe-devtmp-' + (process.getuid?.() ?? 'user') + '-' + sha(directory).slice(0, 24);
|
|
165
|
+
const endpoint = process.platform === 'linux' ? '\0' + name : '\\\\.\\pipe\\' + name;
|
|
166
|
+
const server = createServer(socket => socket.destroy());
|
|
167
|
+
const acquired = await new Promise((resolve, reject) => {
|
|
168
|
+
server.once('error', error => {
|
|
169
|
+
if (error.code === 'EADDRINUSE')
|
|
170
|
+
resolve(false);
|
|
171
|
+
else
|
|
172
|
+
reject(error);
|
|
173
|
+
});
|
|
174
|
+
server.listen(endpoint, () => resolve(true));
|
|
175
|
+
});
|
|
176
|
+
if (!acquired) {
|
|
177
|
+
result.lock = 'busy';
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
180
|
+
result.lock = 'held';
|
|
181
|
+
let entries;
|
|
182
|
+
try {
|
|
183
|
+
entries = opendirSync(directory);
|
|
184
|
+
let entry, scanned = 0;
|
|
185
|
+
while ((entry = entries.readSync())) {
|
|
186
|
+
if (++scanned > 512) {
|
|
187
|
+
result.truncated = true;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
if (!/^promptframe-(?:build|check)-[A-Za-z0-9]+$/u.test(entry.name))
|
|
191
|
+
continue;
|
|
192
|
+
if (result.removed >= 32) {
|
|
193
|
+
result.truncated = true;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
const root = join(directory, entry.name);
|
|
197
|
+
if (active.has(root)) {
|
|
198
|
+
result.retained++;
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
const captured = read(root);
|
|
203
|
+
if (!retired(captured.value)) {
|
|
204
|
+
result.retained++;
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
// Identity, original producer and all group members are checked again
|
|
208
|
+
// immediately before removal. A new child or uncertainty keeps the root.
|
|
209
|
+
if (read(root).digest !== captured.digest || !retired(captured.value)) {
|
|
210
|
+
result.retained++;
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
rmSync(root, { recursive: true });
|
|
214
|
+
result.removed++;
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
if (error.code !== 'ENOENT' || existsSync(root))
|
|
218
|
+
result.unknown++;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
finally {
|
|
223
|
+
try {
|
|
224
|
+
entries?.closeSync();
|
|
225
|
+
}
|
|
226
|
+
finally {
|
|
227
|
+
await new Promise(resolve => server.close(() => resolve()));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
export async function createDevelopmentTemporary(kind, parent) {
|
|
233
|
+
const base = parentDirectory(parent), cleanup = await cleanupDevelopmentTemporaries(base);
|
|
234
|
+
if (cleanup.unknown || cleanup.truncated)
|
|
235
|
+
process.stderr.write(JSON.stringify({ code: 'development.temporary.cleanup_deferred',
|
|
236
|
+
unknown: cleanup.unknown, retained: cleanup.retained, truncated: cleanup.truncated }) + '\n');
|
|
237
|
+
const directory = mkdtempSync(join(base, 'promptframe-' + kind + '-')), creator = { pid: process.pid, birth: developmentProcessBirth(process.pid) };
|
|
238
|
+
mkdirSync(join(directory, 'content'), { mode: 0o700 });
|
|
239
|
+
if (!creator.birth)
|
|
240
|
+
fail();
|
|
241
|
+
let value = { version: 1, kind, nonce: randomBytes(16).toString('hex'), directory: sha(directory), ...identity(directory), creator, phase: 'preparing', worker: null };
|
|
242
|
+
let released = false;
|
|
243
|
+
write(directory, value);
|
|
244
|
+
active.add(directory);
|
|
245
|
+
const update = (next) => { if (released || read(directory).value.nonce !== value.nonce)
|
|
246
|
+
fail(); write(directory, next); value = next; };
|
|
247
|
+
return { directory: join(directory, 'content'),
|
|
248
|
+
beforeSpawn() { if (value.phase !== 'preparing')
|
|
249
|
+
fail(); update({ ...value, phase: 'launching' }); },
|
|
250
|
+
spawned(pid) {
|
|
251
|
+
if (value.phase !== 'launching')
|
|
252
|
+
fail();
|
|
253
|
+
if (!pid)
|
|
254
|
+
return;
|
|
255
|
+
const birth = developmentProcessBirth(pid), group = process.platform === 'linux' && processGroup(pid) === pid ? pid : undefined;
|
|
256
|
+
update({ ...value, phase: 'running', worker: { pid, birth, ...(group ? { group } : {}) } });
|
|
257
|
+
},
|
|
258
|
+
joined() { if (!['launching', 'running'].includes(value.phase))
|
|
259
|
+
fail(); update({ ...value, phase: 'joined' }); },
|
|
260
|
+
release() {
|
|
261
|
+
if (released)
|
|
262
|
+
return;
|
|
263
|
+
try {
|
|
264
|
+
if (!existsSync(directory))
|
|
265
|
+
return;
|
|
266
|
+
const current = read(directory).value;
|
|
267
|
+
if (current.nonce !== value.nonce || !['preparing', 'joined'].includes(current.phase) || current.creator.pid !== process.pid || current.creator.birth !== creator.birth)
|
|
268
|
+
fail();
|
|
269
|
+
if (process.platform === 'linux' && current.worker && (!current.worker.group || groupEmpty(current.worker.group) !== true)) {
|
|
270
|
+
process.stderr.write(JSON.stringify({ code: 'development.temporary.producer_exit_unconfirmed', directory }) + '\n');
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
rmSync(directory, { recursive: true });
|
|
274
|
+
}
|
|
275
|
+
finally {
|
|
276
|
+
released = true;
|
|
277
|
+
active.delete(directory);
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=development-temporary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development-temporary.js","sourceRoot":"","sources":["../src/development-temporary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-validation.d.ts","sourceRoot":"","sources":["../src/development-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"development-validation.d.ts","sourceRoot":"","sources":["../src/development-validation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM;gBAA9C,IAAI,EAAE,MAAM,EAAW,cAAc,CAAC,EAAE,MAAM,YAAA;CAGpE;AAED;;gFAEgF;AAChF,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACnF,OAAO,CAAC,4BAA4B,CAAC,CA0CvC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
-
import {
|
|
3
|
-
import { tmpdir } from 'node:os';
|
|
2
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
4
3
|
import { dirname, join } from 'node:path';
|
|
5
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { createDevelopmentTemporary } from './development-temporary.js';
|
|
6
6
|
export class DevelopmentValidationError extends Error {
|
|
7
7
|
code;
|
|
8
8
|
diagnosticCode;
|
|
@@ -28,7 +28,7 @@ export async function validateDevelopmentContents(contents, options = {}) {
|
|
|
28
28
|
throw new DevelopmentValidationError('development.validation.excluded_input');
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
const
|
|
31
|
+
const temporary = await createDevelopmentTemporary('check', options.temporaryParent), directory = temporary.directory;
|
|
32
32
|
let hadFailure = false;
|
|
33
33
|
try {
|
|
34
34
|
for (const file of files) {
|
|
@@ -37,7 +37,7 @@ export async function validateDevelopmentContents(contents, options = {}) {
|
|
|
37
37
|
await mkdir(dirname(path), { recursive: true });
|
|
38
38
|
await writeFile(path, file.bytes, { flag: 'wx', mode: 0o400 });
|
|
39
39
|
}
|
|
40
|
-
const result = await runCapturedValidation(directory, timeoutMs, options.signal);
|
|
40
|
+
const result = await runCapturedValidation(directory, timeoutMs, options.signal, temporary);
|
|
41
41
|
const output = JSON.parse(result);
|
|
42
42
|
if (output.command !== 'validate' || output.securityEvaluatorMode !== 'ast'
|
|
43
43
|
|| typeof output.securityPolicyVersion !== 'string' || typeof output.securityPolicyDigest !== 'string'
|
|
@@ -56,7 +56,7 @@ export async function validateDevelopmentContents(contents, options = {}) {
|
|
|
56
56
|
// runCapturedValidation waits for actual child close, also after abort or
|
|
57
57
|
// timeout. Its reader cannot outlive this private input directory.
|
|
58
58
|
try {
|
|
59
|
-
|
|
59
|
+
temporary.release();
|
|
60
60
|
}
|
|
61
61
|
catch (error) {
|
|
62
62
|
if (!hadFailure)
|
|
@@ -65,11 +65,13 @@ export async function validateDevelopmentContents(contents, options = {}) {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
function runCapturedValidation(directory, timeoutMs, signal) {
|
|
68
|
+
function runCapturedValidation(directory, timeoutMs, signal, temporary) {
|
|
69
69
|
signal?.throwIfAborted();
|
|
70
|
+
temporary?.beforeSpawn();
|
|
70
71
|
return new Promise((resolve, reject) => {
|
|
71
72
|
const child = spawn(process.execPath, [fileURLToPath(new URL('./index.js', import.meta.url)), 'validate', directory, '--json'], {
|
|
72
73
|
cwd: directory, stdio: ['ignore', 'pipe', 'pipe'],
|
|
74
|
+
detached: Boolean(temporary && process.platform === 'linux'),
|
|
73
75
|
// Validation is local. Neither endpoint/auth configuration nor arbitrary
|
|
74
76
|
// Node preload options from the host belong in this subprocess.
|
|
75
77
|
env: { NO_COLOR: '1', ...(process.platform === 'win32' && process.env.SystemRoot ? { SystemRoot: process.env.SystemRoot } : {}) },
|
|
@@ -101,6 +103,15 @@ function runCapturedValidation(directory, timeoutMs, signal) {
|
|
|
101
103
|
child.once('close', code => {
|
|
102
104
|
clearTimeout(timeout);
|
|
103
105
|
signal?.removeEventListener('abort', abort);
|
|
106
|
+
try {
|
|
107
|
+
temporary?.joined();
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if (!failed) {
|
|
111
|
+
failed = true;
|
|
112
|
+
firstError = error;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
104
115
|
if (failed)
|
|
105
116
|
return reject(firstError);
|
|
106
117
|
if (code === 0)
|
|
@@ -115,6 +126,12 @@ function runCapturedValidation(directory, timeoutMs, signal) {
|
|
|
115
126
|
catch { /* Unstructured child output is not a diagnostic contract. */ }
|
|
116
127
|
reject(new DevelopmentValidationError('development.validation.rejected', diagnosticCode));
|
|
117
128
|
});
|
|
129
|
+
try {
|
|
130
|
+
temporary?.spawned(child.pid);
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
fail(error);
|
|
134
|
+
}
|
|
118
135
|
if (signal?.aborted)
|
|
119
136
|
abort();
|
|
120
137
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-validation.js","sourceRoot":"","sources":["../src/development-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"development-validation.js","sourceRoot":"","sources":["../src/development-validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptframe/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.73",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": "^20.19.0 || >=22.12.0"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"clean": "rm -rf dist"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@promptframe/contracts": "0.1.
|
|
53
|
+
"@promptframe/contracts": "0.1.41",
|
|
54
54
|
"ignore": "7.0.14",
|
|
55
55
|
"postcss": "8.5.30",
|
|
56
56
|
"postcss-selector-parser": "7.1.0",
|