zyrk 0.5.6 → 0.5.7
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/VERSION +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/package.json +1 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v0.5.
|
|
1
|
+
v0.5.7
|
|
@@ -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]));
|