@forgeax/engine-import 0.1.19 → 0.1.21
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/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/scriptable-pack-texture.unit.test.d.ts +2 -0
- package/dist/__tests__/scriptable-pack-texture.unit.test.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +42 -18
- package/dist/index.mjs.map +1 -1
- package/dist/scriptable-pack-output-producers.d.ts +1 -0
- package/dist/scriptable-pack-output-producers.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/__tests__/scriptable-pack-product.contract.test.ts +4 -5
- package/src/__tests__/scriptable-pack-production-producers.unit.test.ts +9 -6
- package/src/__tests__/scriptable-pack-texture.unit.test.ts +96 -0
- package/src/index.ts +1 -0
- package/src/scriptable-pack-output-producers.ts +57 -17
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { type MeshBinEncodeError, packMeshBinV4, } from './mesh-bin.js';
|
|
|
10
10
|
export { projectImportProductForBuild } from './pack-projection.js';
|
|
11
11
|
export { type AssetOutputInput, type AssetOutputPayload, type AssetOutputProducer, AssetOutputProducerRegistry, type AssetOutputProduct, type BuildScriptablePackOptions, buildScriptablePack, type ScriptablePackAssetSnapshot, type ScriptablePackAssetSnapshotSource, type ScriptablePackBuildBridgeResult, type ScriptablePackBuildProduct, type ScriptablePackDomainError, type ScriptablePackExternalEvidence, type ScriptablePackExternalUsage, type ScriptablePackSourceClosureEntry, type ScriptablePackStagedOutput, } from './scriptable-pack.js';
|
|
12
12
|
export { type AuthoredPackTransport, type CookedAuthoredPack, canonicalScriptableSourcePath, declaredPackExternalOutputs, materializePreparedScriptablePack, type PreparedScriptablePack, prepareAuthoredPackTransport, produceScriptablePackProducts, projectScriptablePackPublication, readCookedAuthoredPack, type ScriptablePackExternalImportOptions, type ScriptablePackInput, type ScriptablePackPublicationFacts, type ScriptablePackTransportPaths, type ScriptablePackTransportPolicy, type ScriptablePackTransportSink, scriptablePackInputs, } from './scriptable-pack-host.js';
|
|
13
|
-
export { createSceneAssetOutputProducer, createStandardAssetOutputProducerRegistry, materialAssetOutputProducer, meshAssetOutputProducer, } from './scriptable-pack-output-producers.js';
|
|
13
|
+
export { createSceneAssetOutputProducer, createStandardAssetOutputProducerRegistry, materialAssetOutputProducer, meshAssetOutputProducer, textureAssetOutputProducer, } from './scriptable-pack-output-producers.js';
|
|
14
14
|
export { createScriptablePackStagedAssetSnapshotSource, type ScriptablePackSnapshotError, type ScriptablePackStagedOwner, type ScriptablePackStagedSnapshotOptions, } from './scriptable-pack-staged-snapshot.js';
|
|
15
15
|
export { produceScriptableSourcePackage, type ScriptableSourcePackageProduct, type ScriptableSourcePackageResult, } from './scriptable-source-package.js';
|
|
16
16
|
export { finalizeSourcePackage, type ProducerReadiness, type ProducerReadinessError, type ProducerReadinessResult, parseProducerReadiness, produceSourcePackage, type SourcePackageClosureDetail, type SourcePackageClosureError, type SourcePackageProducerInput, type SourcePackageProducerResult, type SourcePackageProduct, sourcePackageAssetsByGuid, } from './source-package.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,YAAY,EACV,aAAa,EACb,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,WAAW,EAChB,kBAAkB,EAClB,KAAK,aAAa,EAClB,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,SAAS,EACT,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,KAAK,kBAAkB,EACvB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,2BAA2B,EAC3B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,mBAAmB,EACnB,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,+BAA+B,EACpC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,GAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EACjC,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,sBAAsB,EACtB,KAAK,mCAAmC,EACxC,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,EAC9B,yCAAyC,EACzC,2BAA2B,EAC3B,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ok, validateSourceOverrideMap, ImportError, IMPORT_ERROR_HINTS, canonicalizeSourceOverrides, err, AssetError, MATERIAL_TEXTURE_SLOTS } from '@forgeax/engine-types';
|
|
1
|
+
import { ok, validateSourceOverrideMap, ImportError, IMPORT_ERROR_HINTS, canonicalizeSourceOverrides, err, AssetError, MATERIAL_TEXTURE_SLOTS, deriveTextureLayout } from '@forgeax/engine-types';
|
|
2
2
|
export { IMPORT_ERROR_HINTS, ImportError } from '@forgeax/engine-types';
|
|
3
3
|
import { resolve, isAbsolute, relative, dirname } from 'path';
|
|
4
4
|
import { upgradeLegacyAuthoredPack, loadAssetConfig, resolveAssetSource, finalizePackageTransportSource, catalogSourcePathFor, projectCookedPackageEntry, buildCatalogProjection, createRuntimePackPublication, metaPathForGuid } from '@forgeax/engine-pack/build';
|
|
@@ -1165,7 +1165,9 @@ function materialProduct(input) {
|
|
|
1165
1165
|
return addRef(value, sourceField);
|
|
1166
1166
|
};
|
|
1167
1167
|
const textureFields = material.parameters === void 0 ? new Set(MATERIAL_TEXTURE_SLOTS) : new Set(
|
|
1168
|
-
material.parameters.filter(
|
|
1168
|
+
material.parameters.filter(
|
|
1169
|
+
(parameter) => parameter.type === "texture" || parameter.type === "texture_cube"
|
|
1170
|
+
).map((parameter) => parameter.name)
|
|
1169
1171
|
);
|
|
1170
1172
|
const parent = material.parent === void 0 ? void 0 : addRef(material.parent, { fieldName: "parent" });
|
|
1171
1173
|
const values = {};
|
|
@@ -1281,23 +1283,40 @@ function ref(guid, fieldName, arrayIndex) {
|
|
|
1281
1283
|
function bytes(value) {
|
|
1282
1284
|
return Uint8Array.from(value);
|
|
1283
1285
|
}
|
|
1286
|
+
function textureProduct(input) {
|
|
1287
|
+
if (input.asset.kind !== "texture") throw new TypeError("expected TextureAsset");
|
|
1288
|
+
const texture = input.asset;
|
|
1289
|
+
const layout = deriveTextureLayout({
|
|
1290
|
+
shape: texture.shape,
|
|
1291
|
+
format: texture.format,
|
|
1292
|
+
mips: texture.mips,
|
|
1293
|
+
actualByteLength: texture.data.byteLength,
|
|
1294
|
+
order: "mip-major,image-major,row-major"
|
|
1295
|
+
});
|
|
1296
|
+
if (!layout.ok) {
|
|
1297
|
+
const expectedBytes = layout.error.code === "texture-packing-invalid" ? layout.error.detail.expectedBytes : texture.data.byteLength;
|
|
1298
|
+
const actualBytes = layout.error.code === "texture-packing-invalid" ? layout.error.detail.actualBytes : texture.data.byteLength;
|
|
1299
|
+
throw new TypeError(
|
|
1300
|
+
`texture data is not canonical: expected ${expectedBytes} bytes, got ${actualBytes}`
|
|
1301
|
+
);
|
|
1302
|
+
}
|
|
1303
|
+
return {
|
|
1304
|
+
payload: texture,
|
|
1305
|
+
refs: [],
|
|
1306
|
+
artifacts: {
|
|
1307
|
+
body: {
|
|
1308
|
+
mediaType: texture.format === "r8unorm" ? "application/x-forgeax-r8" : `application/x-forgeax-${texture.format}`,
|
|
1309
|
+
assetCodec: { name: texture.format, version: "1" },
|
|
1310
|
+
bytes: bytes(texture.data)
|
|
1311
|
+
}
|
|
1312
|
+
}
|
|
1313
|
+
};
|
|
1314
|
+
}
|
|
1284
1315
|
function ordinaryPodProduct(input) {
|
|
1285
1316
|
const asset = input.asset;
|
|
1286
1317
|
switch (asset.kind) {
|
|
1287
|
-
case "texture":
|
|
1288
|
-
|
|
1289
|
-
return {
|
|
1290
|
-
payload: texture,
|
|
1291
|
-
refs: [],
|
|
1292
|
-
artifacts: {
|
|
1293
|
-
body: {
|
|
1294
|
-
mediaType: "image/raw",
|
|
1295
|
-
assetCodec: { name: "raw-image", version: "1" },
|
|
1296
|
-
bytes: bytes(texture.data)
|
|
1297
|
-
}
|
|
1298
|
-
}
|
|
1299
|
-
};
|
|
1300
|
-
}
|
|
1318
|
+
case "texture":
|
|
1319
|
+
return textureProduct(input);
|
|
1301
1320
|
case "equirect": {
|
|
1302
1321
|
const equirect = asset;
|
|
1303
1322
|
return {
|
|
@@ -1452,6 +1471,11 @@ var materialAssetOutputProducer = createSafeProducer(
|
|
|
1452
1471
|
materialProduct
|
|
1453
1472
|
);
|
|
1454
1473
|
var meshAssetOutputProducer = createSafeProducer("mesh", "mesh-binary/4", meshProduct);
|
|
1474
|
+
var textureAssetOutputProducer = createSafeProducer(
|
|
1475
|
+
"texture",
|
|
1476
|
+
"texture-pack/1",
|
|
1477
|
+
textureProduct
|
|
1478
|
+
);
|
|
1455
1479
|
function createSceneAssetOutputProducer(sceneComponents = []) {
|
|
1456
1480
|
const schemas = new Map(
|
|
1457
1481
|
sceneComponents.map((component) => [component.name, component.fields])
|
|
@@ -1462,9 +1486,9 @@ function createStandardAssetOutputProducerRegistry(sceneComponents = []) {
|
|
|
1462
1486
|
const registry = new AssetOutputProducerRegistry();
|
|
1463
1487
|
registry.register(materialAssetOutputProducer);
|
|
1464
1488
|
registry.register(meshAssetOutputProducer);
|
|
1489
|
+
registry.register(textureAssetOutputProducer);
|
|
1465
1490
|
registry.register(createSceneAssetOutputProducer(sceneComponents));
|
|
1466
1491
|
for (const kind of [
|
|
1467
|
-
"texture",
|
|
1468
1492
|
"equirect",
|
|
1469
1493
|
"sampler",
|
|
1470
1494
|
"font",
|
|
@@ -2917,6 +2941,6 @@ async function restoreImportPublication(candidate) {
|
|
|
2917
2941
|
await candidate.ddc.session.restoreEntry(candidate.ddc);
|
|
2918
2942
|
}
|
|
2919
2943
|
|
|
2920
|
-
export { AssetOutputProducerRegistry, DEFAULT_CATALOG_IMPORTER_KEYS, ImporterRegistry, SHADER_RESERVED_IMPORTER_KEY, buildCatalogResult, buildScriptablePack, canonicalScriptableSourcePath, catalogImporterPolicy, commitImportPublication, containsSourcePackageError, createImportProduct, createSceneAssetOutputProducer, createScriptablePackStagedAssetSnapshotSource, createStandardAssetOutputProducerRegistry, declaredPackExternalOutputs, discardImportPublication, finalizeImportProducts, finalizeSourcePackage, materialAssetOutputProducer, materializePreparedScriptablePack, meshAssetOutputProducer, normaliseForPack, normalizeSourcePackageError, packMeshBinV4, parseProducerReadiness, prepareAuthoredPackTransport, produceBuildAssets, produceScriptablePackProducts, produceScriptableSourcePackage, produceSourcePackage, projectImportProductForBuild, projectScriptablePackPublication, publishImportPublication, readCookedAuthoredPack, restoreImportPublication, runImport, scriptablePackInputs, sourceDeclarationForCatalogPath, sourcePackageAssetsByGuid, sourcePackageError, stageImportPublication };
|
|
2944
|
+
export { AssetOutputProducerRegistry, DEFAULT_CATALOG_IMPORTER_KEYS, ImporterRegistry, SHADER_RESERVED_IMPORTER_KEY, buildCatalogResult, buildScriptablePack, canonicalScriptableSourcePath, catalogImporterPolicy, commitImportPublication, containsSourcePackageError, createImportProduct, createSceneAssetOutputProducer, createScriptablePackStagedAssetSnapshotSource, createStandardAssetOutputProducerRegistry, declaredPackExternalOutputs, discardImportPublication, finalizeImportProducts, finalizeSourcePackage, materialAssetOutputProducer, materializePreparedScriptablePack, meshAssetOutputProducer, normaliseForPack, normalizeSourcePackageError, packMeshBinV4, parseProducerReadiness, prepareAuthoredPackTransport, produceBuildAssets, produceScriptablePackProducts, produceScriptableSourcePackage, produceSourcePackage, projectImportProductForBuild, projectScriptablePackPublication, publishImportPublication, readCookedAuthoredPack, restoreImportPublication, runImport, scriptablePackInputs, sourceDeclarationForCatalogPath, sourcePackageAssetsByGuid, sourcePackageError, stageImportPublication, textureAssetOutputProducer };
|
|
2921
2945
|
//# sourceMappingURL=index.mjs.map
|
|
2922
2946
|
//# sourceMappingURL=index.mjs.map
|