@forgeax/engine-pack 0.1.24 → 0.1.25

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.
Files changed (119) hide show
  1. package/dist/build.d.ts +1 -1
  2. package/dist/build.d.ts.map +1 -1
  3. package/dist/build.mjs +60 -5
  4. package/dist/build.mjs.map +1 -1
  5. package/dist/cli-asset.mjs.map +1 -1
  6. package/dist/evidence/material-cook.d.ts +15 -0
  7. package/dist/evidence/material-cook.d.ts.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.mjs +53 -2
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/material-cook.d.ts +1 -1
  13. package/dist/material-cook.d.ts.map +1 -1
  14. package/dist/material-cook.mjs +53 -2
  15. package/dist/material-cook.mjs.map +1 -1
  16. package/dist/pack-authoring-node.mjs.map +1 -1
  17. package/dist/scanner.d.ts +3 -1
  18. package/dist/scanner.d.ts.map +1 -1
  19. package/dist/scanner.mjs +7 -3
  20. package/dist/scanner.mjs.map +1 -1
  21. package/package.json +2 -2
  22. package/src/__tests__/material-declaration-boundary.unit.test.ts +35 -0
  23. package/src/__tests__/material-surface-consumer-census.test.ts +24 -0
  24. package/src/__tests__/material-surface-publication.unit.test.ts +159 -0
  25. package/src/__tests__/material-surface-wire.unit.test.ts +30 -0
  26. package/src/build.ts +2 -0
  27. package/src/evidence/material-cook.ts +91 -4
  28. package/src/index.ts +2 -0
  29. package/src/material-cook.ts +2 -0
  30. package/src/scanner.ts +7 -3
  31. package/src/schema/material-cook.schema.json +43 -0
  32. package/dist/__tests__/ai-recovery.unit.test.d.ts +0 -2
  33. package/dist/__tests__/ai-recovery.unit.test.d.ts.map +0 -1
  34. package/dist/__tests__/artifact-path.test.d.ts +0 -2
  35. package/dist/__tests__/artifact-path.test.d.ts.map +0 -1
  36. package/dist/__tests__/asset-evidence-error-hints.test.d.ts +0 -2
  37. package/dist/__tests__/asset-evidence-error-hints.test.d.ts.map +0 -1
  38. package/dist/__tests__/asset-evidence-lifecycle.test.d.ts +0 -2
  39. package/dist/__tests__/asset-evidence-lifecycle.test.d.ts.map +0 -1
  40. package/dist/__tests__/asset-evidence-schema.test.d.ts +0 -2
  41. package/dist/__tests__/asset-evidence-schema.test.d.ts.map +0 -1
  42. package/dist/__tests__/atlas-cli-region-mismatch.test.d.ts +0 -2
  43. package/dist/__tests__/atlas-cli-region-mismatch.test.d.ts.map +0 -1
  44. package/dist/__tests__/atlas-error-code-owner.test-d.d.ts +0 -2
  45. package/dist/__tests__/atlas-error-code-owner.test-d.d.ts.map +0 -1
  46. package/dist/__tests__/cli-asset-evidence.integration.test.d.ts +0 -2
  47. package/dist/__tests__/cli-asset-evidence.integration.test.d.ts.map +0 -1
  48. package/dist/__tests__/cli.unit.test.d.ts +0 -2
  49. package/dist/__tests__/cli.unit.test.d.ts.map +0 -1
  50. package/dist/__tests__/evidence-source-inventory.unit.test.d.ts +0 -2
  51. package/dist/__tests__/evidence-source-inventory.unit.test.d.ts.map +0 -1
  52. package/dist/__tests__/guid-collision.unit.test.d.ts +0 -2
  53. package/dist/__tests__/guid-collision.unit.test.d.ts.map +0 -1
  54. package/dist/__tests__/guid-validator-surface.unit.test.d.ts +0 -2
  55. package/dist/__tests__/guid-validator-surface.unit.test.d.ts.map +0 -1
  56. package/dist/__tests__/inventory-schema.test.d.ts +0 -2
  57. package/dist/__tests__/inventory-schema.test.d.ts.map +0 -1
  58. package/dist/__tests__/material-cook-dependencies.unit.test.d.ts +0 -2
  59. package/dist/__tests__/material-cook-dependencies.unit.test.d.ts.map +0 -1
  60. package/dist/__tests__/material-cook-receipt-layer-plan.unit.test.d.ts +0 -2
  61. package/dist/__tests__/material-cook-receipt-layer-plan.unit.test.d.ts.map +0 -1
  62. package/dist/__tests__/material-cook-receipt.unit.test.d.ts +0 -2
  63. package/dist/__tests__/material-cook-receipt.unit.test.d.ts.map +0 -1
  64. package/dist/__tests__/material-cook-schema.unit.test.d.ts +0 -2
  65. package/dist/__tests__/material-cook-schema.unit.test.d.ts.map +0 -1
  66. package/dist/__tests__/mesh-bin-consumer-surface.unit.test.d.ts +0 -2
  67. package/dist/__tests__/mesh-bin-consumer-surface.unit.test.d.ts.map +0 -1
  68. package/dist/__tests__/mesh-bin-contract.unit.test.d.ts +0 -2
  69. package/dist/__tests__/mesh-bin-contract.unit.test.d.ts.map +0 -1
  70. package/dist/__tests__/meta-schema-optional.test.d.ts +0 -2
  71. package/dist/__tests__/meta-schema-optional.test.d.ts.map +0 -1
  72. package/dist/__tests__/meta-source-overrides.unit.test.d.ts +0 -2
  73. package/dist/__tests__/meta-source-overrides.unit.test.d.ts.map +0 -1
  74. package/dist/__tests__/native-cooker-registry.test.d.ts +0 -2
  75. package/dist/__tests__/native-cooker-registry.test.d.ts.map +0 -1
  76. package/dist/__tests__/offline-evidence-artifact-verification-owner.test-d.d.ts +0 -2
  77. package/dist/__tests__/offline-evidence-artifact-verification-owner.test-d.d.ts.map +0 -1
  78. package/dist/__tests__/offline-evidence.integration.test.d.ts +0 -2
  79. package/dist/__tests__/offline-evidence.integration.test.d.ts.map +0 -1
  80. package/dist/__tests__/owner-chain.integration.test.d.ts +0 -2
  81. package/dist/__tests__/owner-chain.integration.test.d.ts.map +0 -1
  82. package/dist/__tests__/pack-authoring-gateway.unit.test.d.ts +0 -2
  83. package/dist/__tests__/pack-authoring-gateway.unit.test.d.ts.map +0 -1
  84. package/dist/__tests__/pack-authoring.unit.test.d.ts +0 -2
  85. package/dist/__tests__/pack-authoring.unit.test.d.ts.map +0 -1
  86. package/dist/__tests__/pack-scanner.unit.test.d.ts +0 -2
  87. package/dist/__tests__/pack-scanner.unit.test.d.ts.map +0 -1
  88. package/dist/__tests__/pack-v2-fixture-migration.test.d.ts +0 -2
  89. package/dist/__tests__/pack-v2-fixture-migration.test.d.ts.map +0 -1
  90. package/dist/__tests__/pack-v2-schema.test.d.ts +0 -2
  91. package/dist/__tests__/pack-v2-schema.test.d.ts.map +0 -1
  92. package/dist/__tests__/pack.unit.test.d.ts +0 -2
  93. package/dist/__tests__/pack.unit.test.d.ts.map +0 -1
  94. package/dist/__tests__/package-finalizer.contract.test.d.ts +0 -2
  95. package/dist/__tests__/package-finalizer.contract.test.d.ts.map +0 -1
  96. package/dist/__tests__/producer-contract-schema.unit.test.d.ts +0 -2
  97. package/dist/__tests__/producer-contract-schema.unit.test.d.ts.map +0 -1
  98. package/dist/__tests__/resolve-asset-source.test.d.ts +0 -2
  99. package/dist/__tests__/resolve-asset-source.test.d.ts.map +0 -1
  100. package/dist/__tests__/runtime-projection.unit.test.d.ts +0 -2
  101. package/dist/__tests__/runtime-projection.unit.test.d.ts.map +0 -1
  102. package/dist/__tests__/runtime.browser.test.d.ts +0 -2
  103. package/dist/__tests__/runtime.browser.test.d.ts.map +0 -1
  104. package/dist/__tests__/scanner-blacklist.test.d.ts +0 -2
  105. package/dist/__tests__/scanner-blacklist.test.d.ts.map +0 -1
  106. package/dist/__tests__/scanner-inventory.contract.test.d.ts +0 -2
  107. package/dist/__tests__/scanner-inventory.contract.test.d.ts.map +0 -1
  108. package/dist/__tests__/scanner-inventory.test.d.ts +0 -2
  109. package/dist/__tests__/scanner-inventory.test.d.ts.map +0 -1
  110. package/dist/__tests__/scanner-mount-cycle.test.d.ts +0 -2
  111. package/dist/__tests__/scanner-mount-cycle.test.d.ts.map +0 -1
  112. package/dist/__tests__/scriptable-pack-cli.integration.test.d.ts +0 -2
  113. package/dist/__tests__/scriptable-pack-cli.integration.test.d.ts.map +0 -1
  114. package/dist/__tests__/scriptable-pack-ddc-key.unit.test.d.ts +0 -2
  115. package/dist/__tests__/scriptable-pack-ddc-key.unit.test.d.ts.map +0 -1
  116. package/dist/__tests__/topology-actions.unit.test.d.ts +0 -2
  117. package/dist/__tests__/topology-actions.unit.test.d.ts.map +0 -1
  118. package/dist/__tests__/topology.unit.test.d.ts +0 -2
  119. package/dist/__tests__/topology.unit.test.d.ts.map +0 -1
package/dist/build.d.ts CHANGED
@@ -4,7 +4,7 @@ export { validateArtifactPath } from './artifact-path.js';
4
4
  export { buildCatalogProjection, type CatalogAuthority, type CatalogBuildError, type CatalogBuildErrorCode, type CatalogBuildProjectionOptions, type CatalogBuildResult, type CatalogImporterPolicy, type CatalogProducerVisibility, catalogSourcePathFor, metaPathForGuid, } from './catalog-builder.js';
5
5
  export { calculateCatalogDelta } from './catalog-delta.js';
6
6
  export { type CatalogOutputDeclaration, type CatalogProducerMeta, type CookedPackageProjection, catalogProjectionFor, currentProjectionFor, findReservedAssetKindConflict, type PackageCatalogInput, projectCookedPackageEntry, projectExternalCatalogEntries, projectPackageCatalog, projectRuntimeCatalogRow, type RuntimeCatalogRowInput, } from './catalog-projection.js';
7
- export { type CookedMaterialRecord, collectMaterialCookRefs, createMaterialArtifactDigest, type MaterialCookArtifact, type MaterialCookIdentityExpectation, type MaterialCookReceipt, type MaterialCookRecordError, type MaterialCookRefs, projectCookedMaterialRecord, serializeCookedMaterialRecord, serializeMaterialCookReceipt, validateCookedMaterialRecord, validateMaterialCookReceipt, } from './evidence/material-cook.js';
7
+ export { type CookedMaterialRecord, collectMaterialCookRefs, createMaterialArtifactDigest, type MaterialCookArtifact, type MaterialCookIdentityExpectation, type MaterialCookReceipt, type MaterialCookRecordError, type MaterialCookRefs, type MaterialCookVariant, type MaterialCookVariantContext, projectCookedMaterialRecord, serializeCookedMaterialRecord, serializeMaterialCookReceipt, validateCookedMaterialRecord, validateMaterialCookReceipt, } from './evidence/material-cook.js';
8
8
  export { buildOfflineAssetEvidence, packageVerification } from './evidence/offline-evidence.js';
9
9
  export { AssetGuid, isValidAssetGuidString, isValidPackSourceKey, PACK_SOURCE_KEY_RE, PackageId, } from './guid.js';
10
10
  export { projectAssetRefs, projectSceneEntityRefs } from './inventory/binding.js';
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
package/dist/build.mjs CHANGED
@@ -9245,9 +9245,13 @@ function packErr(error) {
9245
9245
  function record(value) {
9246
9246
  return value !== null && typeof value === "object" && !Array.isArray(value);
9247
9247
  }
9248
- var STANDARD_SCRIPTABLE_PACK_SCAN_OPTIONS = Object.freeze(
9249
- {}
9250
- );
9248
+ var STANDARD_SCRIPTABLE_PACK_SCAN_OPTIONS = Object.freeze({
9249
+ // Scriptable Packs execute in an isolated worker. A cold worker must
9250
+ // compile the authored source closure before it can return metadata;
9251
+ // heavy procedural packs otherwise make the shared catalog fall back to
9252
+ // an empty degraded projection at the old 15-second budget.
9253
+ timeoutMs: 6e4
9254
+ });
9251
9255
  var BLACKLIST = /* @__PURE__ */ new Set([
9252
9256
  "node_modules",
9253
9257
  "__tests__",
@@ -10295,7 +10299,8 @@ var STANDARD_ROOT_MODULES = /* @__PURE__ */ new Set([
10295
10299
  "forgeax::default-standard-pbr",
10296
10300
  "forgeax::pbr-skin",
10297
10301
  "forgeax_material::standard",
10298
- "forgeax_material::pbr-skin"
10302
+ "forgeax_material::pbr-skin",
10303
+ "forgeax::default-shadow-caster"
10299
10304
  ]);
10300
10305
  function isStandardRootModule(module) {
10301
10306
  return STANDARD_ROOT_MODULES.has(module);
@@ -10383,6 +10388,14 @@ function invalid(field, actual) {
10383
10388
  }
10384
10389
  });
10385
10390
  }
10391
+ function normalizeArtifactBytes(value) {
10392
+ if (Array.isArray(value)) {
10393
+ return value.every((byte) => Number.isInteger(byte) && byte >= 0 && byte <= 255) ? Uint8Array.from(value) : void 0;
10394
+ }
10395
+ if (!ArrayBuffer.isView(value)) return void 0;
10396
+ const view = value;
10397
+ return new Uint8Array(view.buffer, view.byteOffset, view.byteLength).slice();
10398
+ }
10386
10399
  var IDENTITY_FIELDS = [
10387
10400
  "materialContractDigest",
10388
10401
  "sourceRevision",
@@ -10488,6 +10501,33 @@ function validateCookedMaterialRecord(value) {
10488
10501
  return invalid("publicationGeneration", candidate.publicationGeneration);
10489
10502
  if (candidate.specializationKey !== void 0 && typeof candidate.specializationKey !== "string")
10490
10503
  return invalid("specializationKey");
10504
+ if (candidate.variantContext !== void 0) {
10505
+ if (candidate.variantContext === null || typeof candidate.variantContext !== "object")
10506
+ return invalid("variantContext");
10507
+ const context = candidate.variantContext;
10508
+ if (context.backend !== "webgpu" && context.backend !== "webgl2" && context.backend !== "wgpu-native" || context.capability !== "storage-buffer" && context.capability !== "uniform-fallback")
10509
+ return invalid("variantContext", candidate.variantContext);
10510
+ }
10511
+ if (candidate.variants !== void 0) {
10512
+ if (!Array.isArray(candidate.variants)) return invalid("variants");
10513
+ for (const [index, value2] of candidate.variants.entries()) {
10514
+ if (value2 === null || typeof value2 !== "object") return invalid(`variants[${index}]`);
10515
+ const variant = value2;
10516
+ const context = variant.context;
10517
+ if (context === null || typeof context !== "object")
10518
+ return invalid(`variants[${index}].context`);
10519
+ const contextRecord = context;
10520
+ if (contextRecord.backend !== "webgpu" && contextRecord.backend !== "webgl2" && contextRecord.backend !== "wgpu-native" || contextRecord.capability !== "storage-buffer" && contextRecord.capability !== "uniform-fallback")
10521
+ return invalid(`variants[${index}].context`, context);
10522
+ if (typeof variant.specializationKey !== "string" || variant.specializationKey.length === 0)
10523
+ return invalid(`variants[${index}].specializationKey`);
10524
+ if (variant.artifact === null || typeof variant.artifact !== "object")
10525
+ return invalid(`variants[${index}].artifact`);
10526
+ const variantArtifact = variant.artifact;
10527
+ if (typeof variantArtifact.mediaType !== "string" || typeof variantArtifact.path !== "string" || typeof variantArtifact.digest !== "string" || normalizeArtifactBytes(variantArtifact.bytes) === void 0)
10528
+ return invalid(`variants[${index}].artifact`);
10529
+ }
10530
+ }
10491
10531
  if (candidate.artifactDigest !== void 0 && typeof candidate.artifactDigest !== "string")
10492
10532
  return invalid("artifactDigest");
10493
10533
  if (candidate.sourceClosure !== void 0 && (!Array.isArray(candidate.sourceClosure) || candidate.sourceClosure.some((path) => typeof path !== "string")))
@@ -10544,8 +10584,21 @@ function validateCookedMaterialRecord(value) {
10544
10584
  ...candidate,
10545
10585
  artifact: {
10546
10586
  ...artifact,
10547
- bytes: ArrayBuffer.isView(artifact.bytes) ? Uint8Array.from(artifact.bytes) : Uint8Array.from(artifact.bytes)
10587
+ bytes: normalizeArtifactBytes(artifact.bytes)
10548
10588
  },
10589
+ ...Array.isArray(candidate.variants) ? {
10590
+ variants: candidate.variants.map((value2) => {
10591
+ const variant = value2;
10592
+ const variantArtifact = variant.artifact;
10593
+ return {
10594
+ ...variant,
10595
+ artifact: {
10596
+ ...variantArtifact,
10597
+ bytes: normalizeArtifactBytes(variantArtifact.bytes)
10598
+ }
10599
+ };
10600
+ })
10601
+ } : {},
10549
10602
  receipt: receiptResult.value
10550
10603
  };
10551
10604
  return ok(normalized);
@@ -10555,6 +10608,8 @@ function projectCookedMaterialRecord(record2) {
10555
10608
  resolved: record2.resolved,
10556
10609
  refs: record2.refs,
10557
10610
  artifact: record2.artifact,
10611
+ ...record2.variantContext === void 0 ? {} : { variantContext: record2.variantContext },
10612
+ ...record2.variants === void 0 ? {} : { variants: record2.variants },
10558
10613
  receipt: record2.receipt,
10559
10614
  schemaVersion: record2.schemaVersion
10560
10615
  };