zyrk 0.5.6 → 0.5.8
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 +6 -0
- package/VERSION +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +9 -2
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +28 -3
- package/dist/install/platform.d.ts +1 -1
- package/dist/install/platform.d.ts.map +1 -1
- package/dist/install/platform.js +8 -1
- package/dist/install/workspace-install.d.ts.map +1 -1
- package/dist/install/workspace-install.js +2 -1
- package/dist/install/workspace-lock.d.ts.map +1 -1
- package/dist/install/workspace-lock.js +6 -1
- package/dist/resolve/resolver.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -395,3 +395,9 @@ Install resolution has a five-minute deadline; each archive extraction has a
|
|
|
395
395
|
two-minute deadline. Set `ZYRK_RESOLVE_TIMEOUT_MS` or `ZYRK_EXTRACT_TIMEOUT_MS`
|
|
396
396
|
to an integer from `1` to `900000` milliseconds to adjust these timeouts.
|
|
397
397
|
Graph, archive-entry, and byte limits still apply.
|
|
398
|
+
|
|
399
|
+
Platform gates run the complete check on Ubuntu and macOS/Node 24 and a
|
|
400
|
+
Windows CLI/artifact contract suite, including paths with spaces and Unicode.
|
|
401
|
+
Windows shared-store installation remains blocked until ACL isolation is
|
|
402
|
+
implemented and verified. See [compatibility gates](docs/compatibility-gates.md)
|
|
403
|
+
for the exact scope; passing portable-lock fixtures is separate from OS support.
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v0.5.
|
|
1
|
+
v0.5.8
|
package/dist/cli/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAe,SAAS,EAAe,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAM3C,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AA2DzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAe,SAAS,EAAe,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAM3C,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhF,eAAO,MAAM,uBAAuB,IAAI,CAAC;AA2DzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAyBhD;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA6EF;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,GACnD,SAAS,CAgDX;AAmBD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;CACxC,CAAC;AAEF,gFAAgF;AAChF,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ZpE"}
|
package/dist/cli/main.js
CHANGED
|
@@ -97,7 +97,7 @@ export function helpText(version) {
|
|
|
97
97
|
}
|
|
98
98
|
lines.push("", "Registry publishing and account commands (via your npm):");
|
|
99
99
|
lines.push(...delegatedHelpLines());
|
|
100
|
-
lines.push("", "zyrk never installs packages globally and never runs npm to do it.", "Need a global package? Run npm directly: npm install --global <package-spec>");
|
|
100
|
+
lines.push("", "Install timeouts: ZYRK_RESOLVE_TIMEOUT_MS and ZYRK_EXTRACT_TIMEOUT_MS (1..900000 ms).", "zyrk never installs packages globally and never runs npm to do it.", "Need a global package? Run npm directly: npm install --global <package-spec>");
|
|
101
101
|
return `${lines.join("\n")}\n`;
|
|
102
102
|
}
|
|
103
103
|
function ok(stdout, parsed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAwEA,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAwEF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAoajB"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { selectPlatformGraph, selectWorkspacePlatform, } from "../install/platform.js";
|
|
1
2
|
import { installedRegistryConfig } from "../install/registry-policy.js";
|
|
2
3
|
/** Self-contained runtime deployment and explicit local Docker commands. */
|
|
3
4
|
import { constants } from "node:fs";
|
|
@@ -179,7 +180,13 @@ export async function runDeployCommand(options) {
|
|
|
179
180
|
const installedKeys = new Set(Array.isArray(state.contexts)
|
|
180
181
|
? state.contexts.filter((v) => typeof v === "string")
|
|
181
182
|
: []);
|
|
182
|
-
const
|
|
183
|
+
const activeResolved = selectPlatformGraph({
|
|
184
|
+
...resolved,
|
|
185
|
+
roots: resolved.roots.filter((root) => installedKeys.has(root.target)),
|
|
186
|
+
}, new Set(Object.keys(object(manifest.optionalDependencies)
|
|
187
|
+
? manifest.optionalDependencies
|
|
188
|
+
: {})));
|
|
189
|
+
const installedNodes = activeResolved.nodes.filter((n) => installedKeys.has(n.key));
|
|
183
190
|
const graph = createGraphDoc(installedNodes.map((n) => ({ ...n, deps: n.edges })));
|
|
184
191
|
const directories = privateGraph
|
|
185
192
|
? await privateDirectories(project, store, graph, state)
|
|
@@ -830,7 +837,7 @@ async function exportWorkspace(options, project, manifest, state, out, parent, f
|
|
|
830
837
|
throw error("ZYRK_DEPLOY_ESCAPE", "Deployment output must be outside the managed store.");
|
|
831
838
|
const barrier = await acquireLock(path.join(store.paths.locksDir, "liveness.lock"), { name: "workspace deployment retention" });
|
|
832
839
|
try {
|
|
833
|
-
const graph = locked.graph, byKey = new Map(graph.nodes.map((n) => [n.key, n]));
|
|
840
|
+
const graph = selectWorkspacePlatform(locked.graph, undefined, true), byKey = new Map(graph.nodes.map((n) => [n.key, n]));
|
|
834
841
|
const selected = new Set();
|
|
835
842
|
const visit = (key) => {
|
|
836
843
|
if (selected.has(key))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AA4DA,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA+LF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAgRjB"}
|
package/dist/commands/project.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { selectPlatformGraph, selectWorkspacePlatform, } from "../install/platform.js";
|
|
1
2
|
import { discoverWorkspaces, findWorkspaceRoot, planWorkspaceDependencies, selectWorkspaceImporters, workspaceScriptOrder, } from "../install/workspaces.js";
|
|
2
3
|
import { readWorkspaceLock } from "../install/workspace-lock.js";
|
|
3
4
|
/** Project inspection and explicit execution (SPEC 12.2, 18.3.1, D-1). */
|
|
@@ -48,6 +49,7 @@ function validateState(raw) {
|
|
|
48
49
|
(raw.linker !== undefined &&
|
|
49
50
|
raw.linker !== "private" &&
|
|
50
51
|
raw.linker !== "shared") ||
|
|
52
|
+
(raw.omitDev !== undefined && typeof raw.omitDev !== "boolean") ||
|
|
51
53
|
!Array.isArray(raw.direct) ||
|
|
52
54
|
raw.direct.some((e) => !object(e) ||
|
|
53
55
|
typeof e.name !== "string" ||
|
|
@@ -67,7 +69,8 @@ async function load(project) {
|
|
|
67
69
|
state.lockDigest !== sha512Hex(canonicalJson(locked.doc)))
|
|
68
70
|
throw fail("ZYRK_LOCK_MISMATCH", "The workspace manifests, authoritative lock and installed generation disagree.");
|
|
69
71
|
const importer = workspace.importers.find((item) => item.directory === project);
|
|
70
|
-
const
|
|
72
|
+
const activeGraph = selectWorkspacePlatform(locked.graph, undefined, state.omitDev);
|
|
73
|
+
const own = activeGraph.nodes.find((node) => node.kind === "local" && node.importer === importer?.id);
|
|
71
74
|
if (!own)
|
|
72
75
|
throw fail("ZYRK_LOCK_MISMATCH", "The selected workspace importer is absent from the authoritative graph.");
|
|
73
76
|
return {
|
|
@@ -77,7 +80,7 @@ async function load(project) {
|
|
|
77
80
|
roots: {
|
|
78
81
|
".": Object.fromEntries(own.edges.map((edge) => [edge.name, edge.target])),
|
|
79
82
|
},
|
|
80
|
-
nodes: Object.fromEntries(
|
|
83
|
+
nodes: Object.fromEntries(activeGraph.nodes.map((node) => [
|
|
81
84
|
node.key,
|
|
82
85
|
{
|
|
83
86
|
name: node.name,
|
|
@@ -103,7 +106,29 @@ async function load(project) {
|
|
|
103
106
|
if (sha512Hex(canonicalJson(doc)) !== state.lockDigest ||
|
|
104
107
|
doc.zyrk === undefined)
|
|
105
108
|
throw fail("ZYRK_LOCK_MISMATCH", "The installed generation and package-lock.json disagree.");
|
|
106
|
-
|
|
109
|
+
const graph = selectPlatformGraph({
|
|
110
|
+
...lockedGraph(doc),
|
|
111
|
+
roots: lockedGraph(doc).roots.filter((root) => state.direct.some((entry) => entry.name === root.name)),
|
|
112
|
+
}, new Set(Object.keys(object(doc.packages?.[""]?.optionalDependencies)
|
|
113
|
+
? doc.packages[""].optionalDependencies
|
|
114
|
+
: {})));
|
|
115
|
+
return {
|
|
116
|
+
state,
|
|
117
|
+
extension: {
|
|
118
|
+
...doc.zyrk,
|
|
119
|
+
roots: {
|
|
120
|
+
".": Object.fromEntries(graph.roots.map((root) => [root.name, root.target])),
|
|
121
|
+
},
|
|
122
|
+
nodes: Object.fromEntries(graph.nodes.map((node) => [
|
|
123
|
+
node.key,
|
|
124
|
+
{
|
|
125
|
+
...doc.zyrk.nodes[node.key],
|
|
126
|
+
edges: Object.fromEntries(node.edges.map((edge) => [edge.name, edge.target])),
|
|
127
|
+
peers: Object.fromEntries(node.peerBindings.map((peer) => [peer.name, peer.target])),
|
|
128
|
+
},
|
|
129
|
+
])),
|
|
130
|
+
},
|
|
131
|
+
};
|
|
107
132
|
}
|
|
108
133
|
function emit(options, result, human) {
|
|
109
134
|
options.stdout.write(options.json
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RuntimePlatform, type FinalizedGraph } from "../resolve/resolver.ts";
|
|
2
2
|
import type { WorkspaceGraph } from "./workspace-graph.ts";
|
|
3
3
|
export declare function selectPlatformGraph(graph: FinalizedGraph, optionalRoots: ReadonlySet<string>, platform?: RuntimePlatform): FinalizedGraph;
|
|
4
|
-
export declare function selectWorkspacePlatform(graph: WorkspaceGraph, platform?: RuntimePlatform): WorkspaceGraph;
|
|
4
|
+
export declare function selectWorkspacePlatform(graph: WorkspaceGraph, platform?: RuntimePlatform, omitDev?: boolean): WorkspaceGraph;
|
|
5
5
|
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/install/platform.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAuG3D,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,EAClC,QAAQ,kBAAoB,GAC3B,cAAc,CAqBhB;AACD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EACrB,QAAQ,kBAAoB,
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/install/platform.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAuG3D,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,EAClC,QAAQ,kBAAoB,GAC3B,cAAc,CAqBhB;AACD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EACrB,QAAQ,kBAAoB,EAC5B,OAAO,UAAQ,GACd,cAAc,CA+BhB"}
|
package/dist/install/platform.js
CHANGED
|
@@ -78,7 +78,14 @@ export function selectPlatformGraph(graph, optionalRoots, platform = currentPlat
|
|
|
78
78
|
})),
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
-
export function selectWorkspacePlatform(graph, platform = currentPlatform()) {
|
|
81
|
+
export function selectWorkspacePlatform(graph, platform = currentPlatform(), omitDev = false) {
|
|
82
|
+
if (omitDev)
|
|
83
|
+
graph = {
|
|
84
|
+
...graph,
|
|
85
|
+
nodes: graph.nodes.map((node) => node.kind === "local"
|
|
86
|
+
? { ...node, edges: node.edges.filter((edge) => edge.kind !== "dev") }
|
|
87
|
+
: node),
|
|
88
|
+
};
|
|
82
89
|
const { active, viable, omissions } = select(graph.nodes, Object.entries(graph.importers).map(([name, target]) => ({ name, target })), platform);
|
|
83
90
|
return {
|
|
84
91
|
...graph,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-install.d.ts","sourceRoot":"","sources":["../../src/install/workspace-install.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAuH9D,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"workspace-install.d.ts","sourceRoot":"","sources":["../../src/install/workspace-install.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAuH9D,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CAmrBxB"}
|
|
@@ -189,7 +189,7 @@ export async function installWorkspaceProject(options) {
|
|
|
189
189
|
: workspaceLockDoc(project, graph, fp), lockText = options.frozen
|
|
190
190
|
? await readFile(path.join(root, "package-lock.json"), "utf8")
|
|
191
191
|
: JSON.stringify(doc, null, 2) + "\n";
|
|
192
|
-
graph = selectWorkspacePlatform(graph, options.platform);
|
|
192
|
+
graph = selectWorkspacePlatform(graph, options.platform, options.omitDev);
|
|
193
193
|
const warnings = graph.omissions.map((o) => `${o.name}: omitted incompatible optional workspace dependency.`);
|
|
194
194
|
for (const importer of project.importers)
|
|
195
195
|
for (const stage of ["preinstall", "install", "postinstall"])
|
|
@@ -528,6 +528,7 @@ export async function installWorkspaceProject(options) {
|
|
|
528
528
|
linker: contexts.size ? "private" : "shared",
|
|
529
529
|
workspaceRoot: root,
|
|
530
530
|
importer: importer.id,
|
|
531
|
+
omitDev: options.omitDev === true,
|
|
531
532
|
storeRoot: options.store.paths.root,
|
|
532
533
|
instances: registration.instances,
|
|
533
534
|
activeContexts: registration.contexts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-lock.d.ts","sourceRoot":"","sources":["../../src/install/workspace-lock.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASvD,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,MAAM,CAqBtD;AACD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,cAAc,EACrB,EAAE,EAAE,qBAAqB,GACxB,UAAU,CA0CZ;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAmTrE;AACD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,gBAAgB,EAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,EACpD,oBAAoB,UAAQ,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"workspace-lock.d.ts","sourceRoot":"","sources":["../../src/install/workspace-lock.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASvD,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,MAAM,CAqBtD;AACD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,cAAc,EACrB,EAAE,EAAE,qBAAqB,GACxB,UAAU,CA0CZ;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAmTrE;AACD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,gBAAgB,EAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,EACpD,oBAAoB,UAAQ,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,GAAG,IAAI,CAAC,CAwD5D"}
|
|
@@ -325,8 +325,13 @@ export async function readWorkspaceLock(root, project, registryOrigin, allowPlat
|
|
|
325
325
|
object(doc) &&
|
|
326
326
|
object(doc.zyrk) &&
|
|
327
327
|
doc.zyrk.version === 2 &&
|
|
328
|
-
doc.zyrk.platformPolicy === undefined)
|
|
328
|
+
doc.zyrk.platformPolicy === undefined) {
|
|
329
|
+
const checked = structuredClone(doc);
|
|
330
|
+
checked.zyrk.platformPolicy =
|
|
331
|
+
"portable-optional/1";
|
|
332
|
+
validateWorkspaceLockDoc(checked);
|
|
329
333
|
return null;
|
|
334
|
+
}
|
|
330
335
|
const graph = validateWorkspaceLockDoc(doc);
|
|
331
336
|
if (project) {
|
|
332
337
|
const expected = new Map(project.importers.map((i) => [i.id, i]));
|
package/dist/resolve/resolver.js
CHANGED
|
@@ -713,7 +713,7 @@ function internal(message) {
|
|
|
713
713
|
}
|
|
714
714
|
function budgetError(reason) {
|
|
715
715
|
return new ZyrkError("ZYRK_RESOLUTION_FAILED", `Cannot resolve dependencies (${reason}).`, {
|
|
716
|
-
remedy: "Review the dependency graph
|
|
716
|
+
remedy: "Review the dependency graph. For a slow registry, set ZYRK_RESOLVE_TIMEOUT_MS to at most 900000 milliseconds before retrying; graph limits remain enforced.",
|
|
717
717
|
});
|
|
718
718
|
}
|
|
719
719
|
class PlatformMismatch extends ZyrkError {
|