@forgeax/engine-pack 0.1.28 → 0.1.29
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 +17 -5
- package/dist/build.mjs +34 -51
- package/dist/build.mjs.map +1 -1
- package/dist/cli-asset.mjs +21 -12
- package/dist/cli-asset.mjs.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/inventory/declaration.d.ts +1 -1
- package/dist/inventory/declaration.d.ts.map +1 -1
- package/dist/inventory/sync.d.ts.map +1 -1
- package/dist/native-cooker-registry.d.ts +1 -0
- package/dist/native-cooker-registry.d.ts.map +1 -1
- package/dist/native-cooker.mjs.map +1 -1
- package/dist/pack-authoring-node.mjs +21 -12
- package/dist/pack-authoring-node.mjs.map +1 -1
- package/dist/runtime.mjs.map +1 -1
- package/dist/scanner.mjs +21 -12
- package/dist/scanner.mjs.map +1 -1
- package/dist/schema-compiled.d.ts.map +1 -1
- package/dist/schema.mjs +40 -62
- package/dist/schema.mjs.map +1 -1
- package/dist/scriptable-pack-node.d.ts.map +1 -1
- package/dist/scriptable-pack-node.mjs +11 -3
- package/dist/scriptable-pack-node.mjs.map +1 -1
- package/dist/scriptable-pack-worker.mjs +5 -1
- package/dist/scriptable-pack-worker.mjs.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/inventory-schema.test.ts +10 -10
- package/src/__tests__/pack-authoring.unit.test.ts +2 -4
- package/src/__tests__/pack.unit.test.ts +86 -124
- package/src/__tests__/scanner-instance-cycle.test.ts +92 -0
- package/src/__tests__/scanner-inventory.contract.test.ts +2 -2
- package/src/__tests__/scriptable-pack-diagnostic.integration.test.ts +45 -0
- package/src/inventory/binding.ts +3 -3
- package/src/inventory/declaration.ts +10 -48
- package/src/inventory/sync.ts +3 -2
- package/src/native-cooker-registry.ts +1 -0
- package/src/scanner.ts +28 -28
- package/src/schema-compiled.ts +40 -79
- package/src/scriptable-pack-node.ts +11 -3
- package/src/scriptable-pack-worker.ts +8 -1
- package/src/__tests__/scanner-mount-cycle.test.ts +0 -232
package/dist/cli-asset.mjs
CHANGED
|
@@ -8919,9 +8919,17 @@ var WorkerScriptablePackExecutor = class {
|
|
|
8919
8919
|
}
|
|
8920
8920
|
};
|
|
8921
8921
|
worker.on("message", onMessage);
|
|
8922
|
-
|
|
8922
|
+
const fail = (error) => {
|
|
8923
|
+
rejectLoad(error);
|
|
8924
|
+
const active = this.build;
|
|
8925
|
+
this.build = void 0;
|
|
8926
|
+
active?.reject(error);
|
|
8927
|
+
void this.dispose("failure");
|
|
8928
|
+
};
|
|
8929
|
+
worker.once("error", fail);
|
|
8923
8930
|
worker.once("exit", (code) => {
|
|
8924
|
-
if (
|
|
8931
|
+
if (this.disposal !== void 0) return;
|
|
8932
|
+
fail(new Error(`ScriptablePack worker exited with code ${code}`));
|
|
8925
8933
|
});
|
|
8926
8934
|
});
|
|
8927
8935
|
}
|
|
@@ -9150,16 +9158,17 @@ function makePackError(code, detail) {
|
|
|
9150
9158
|
detail
|
|
9151
9159
|
});
|
|
9152
9160
|
}
|
|
9153
|
-
function*
|
|
9161
|
+
function* extractInstanceSourceGuids(asset) {
|
|
9154
9162
|
if (asset.kind !== "scene") return;
|
|
9155
9163
|
const payload = asset.payload;
|
|
9156
|
-
if (!payload ||
|
|
9157
|
-
|
|
9158
|
-
|
|
9159
|
-
|
|
9160
|
-
|
|
9161
|
-
if (
|
|
9162
|
-
const
|
|
9164
|
+
if (!payload || payload.entities === null || typeof payload.entities !== "object" || Array.isArray(payload.entities))
|
|
9165
|
+
return;
|
|
9166
|
+
for (const rawEntity of Object.values(payload.entities)) {
|
|
9167
|
+
if (rawEntity === null || typeof rawEntity !== "object" || Array.isArray(rawEntity)) continue;
|
|
9168
|
+
const instance = rawEntity.instance;
|
|
9169
|
+
if (instance === null || typeof instance !== "object" || Array.isArray(instance)) continue;
|
|
9170
|
+
const source = instance.source;
|
|
9171
|
+
const resolved = typeof source === "number" && Number.isInteger(source) ? asset.refs[source] : typeof source === "string" ? source : void 0;
|
|
9163
9172
|
if (typeof resolved !== "string") continue;
|
|
9164
9173
|
yield resolved.toLowerCase();
|
|
9165
9174
|
}
|
|
@@ -9277,7 +9286,7 @@ async function scanValidated(roots, opts = {}, capture) {
|
|
|
9277
9286
|
guidToPath.set(normalizedGuid, packPath);
|
|
9278
9287
|
packRefs.set(normalizedGuid, [
|
|
9279
9288
|
...asset.refs.map((ref) => ref.toLowerCase()),
|
|
9280
|
-
...
|
|
9289
|
+
...extractInstanceSourceGuids(asset)
|
|
9281
9290
|
]);
|
|
9282
9291
|
}
|
|
9283
9292
|
}
|
|
@@ -9381,7 +9390,7 @@ async function scanValidated(roots, opts = {}, capture) {
|
|
|
9381
9390
|
guidToPath.set(normalizedGuid, packPath);
|
|
9382
9391
|
packRefs.set(normalizedGuid, [
|
|
9383
9392
|
...asset.refs.map((ref) => ref.toLowerCase()),
|
|
9384
|
-
...
|
|
9393
|
+
...extractInstanceSourceGuids(asset)
|
|
9385
9394
|
]);
|
|
9386
9395
|
}
|
|
9387
9396
|
capture?.declarations.set(packPath, {
|