@headless-three/renderer 0.1.10 → 0.3.0
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 +32 -0
- package/dist/gpu-output.d.ts +190 -0
- package/dist/gpu-output.d.ts.map +1 -0
- package/dist/gpu-output.js +114 -0
- package/dist/gpu-output.js.map +1 -0
- package/dist/index.d.ts +26 -770
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -6226
- package/dist/index.js.map +1 -1
- package/dist/index.part-001.d.ts +95 -0
- package/dist/index.part-001.d.ts.map +1 -0
- package/dist/index.part-001.js +273 -0
- package/dist/index.part-001.js.map +1 -0
- package/dist/index.part-002.d.ts +69 -0
- package/dist/index.part-002.d.ts.map +1 -0
- package/dist/index.part-002.js +211 -0
- package/dist/index.part-002.js.map +1 -0
- package/dist/index.part-003.d.ts +105 -0
- package/dist/index.part-003.d.ts.map +1 -0
- package/dist/index.part-003.js +270 -0
- package/dist/index.part-003.js.map +1 -0
- package/dist/index.part-004.d.ts +78 -0
- package/dist/index.part-004.d.ts.map +1 -0
- package/dist/index.part-004.js +390 -0
- package/dist/index.part-004.js.map +1 -0
- package/dist/index.part-005.d.ts +75 -0
- package/dist/index.part-005.d.ts.map +1 -0
- package/dist/index.part-005.js +236 -0
- package/dist/index.part-005.js.map +1 -0
- package/dist/index.part-006.d.ts +105 -0
- package/dist/index.part-006.d.ts.map +1 -0
- package/dist/index.part-006.js +262 -0
- package/dist/index.part-006.js.map +1 -0
- package/dist/index.part-007.d.ts +112 -0
- package/dist/index.part-007.d.ts.map +1 -0
- package/dist/index.part-007.js +358 -0
- package/dist/index.part-007.js.map +1 -0
- package/dist/index.part-008.d.ts +240 -0
- package/dist/index.part-008.d.ts.map +1 -0
- package/dist/index.part-008.js +458 -0
- package/dist/index.part-008.js.map +1 -0
- package/dist/index.part-009.d.ts +46 -0
- package/dist/index.part-009.d.ts.map +1 -0
- package/dist/index.part-009.js +379 -0
- package/dist/index.part-009.js.map +1 -0
- package/dist/index.part-010.d.ts +24 -0
- package/dist/index.part-010.d.ts.map +1 -0
- package/dist/index.part-010.js +277 -0
- package/dist/index.part-010.js.map +1 -0
- package/dist/index.part-011.d.ts +21 -0
- package/dist/index.part-011.d.ts.map +1 -0
- package/dist/index.part-011.js +361 -0
- package/dist/index.part-011.js.map +1 -0
- package/dist/index.part-012.d.ts +115 -0
- package/dist/index.part-012.d.ts.map +1 -0
- package/dist/index.part-012.js +298 -0
- package/dist/index.part-012.js.map +1 -0
- package/dist/index.part-013.d.ts +37 -0
- package/dist/index.part-013.d.ts.map +1 -0
- package/dist/index.part-013.js +341 -0
- package/dist/index.part-013.js.map +1 -0
- package/dist/index.part-014.d.ts +43 -0
- package/dist/index.part-014.d.ts.map +1 -0
- package/dist/index.part-014.js +441 -0
- package/dist/index.part-014.js.map +1 -0
- package/dist/index.part-015.d.ts +45 -0
- package/dist/index.part-015.d.ts.map +1 -0
- package/dist/index.part-015.js +432 -0
- package/dist/index.part-015.js.map +1 -0
- package/dist/index.part-016.d.ts +55 -0
- package/dist/index.part-016.d.ts.map +1 -0
- package/dist/index.part-016.js +382 -0
- package/dist/index.part-016.js.map +1 -0
- package/dist/index.part-017.d.ts +55 -0
- package/dist/index.part-017.d.ts.map +1 -0
- package/dist/index.part-017.js +436 -0
- package/dist/index.part-017.js.map +1 -0
- package/dist/index.part-018.d.ts +34 -0
- package/dist/index.part-018.d.ts.map +1 -0
- package/dist/index.part-018.js +365 -0
- package/dist/index.part-018.js.map +1 -0
- package/dist/index.part-019.d.ts +29 -0
- package/dist/index.part-019.d.ts.map +1 -0
- package/dist/index.part-019.js +261 -0
- package/dist/index.part-019.js.map +1 -0
- package/dist/index.part-020.d.ts +37 -0
- package/dist/index.part-020.d.ts.map +1 -0
- package/dist/index.part-020.js +388 -0
- package/dist/index.part-020.js.map +1 -0
- package/dist/index.part-021.d.ts +10 -0
- package/dist/index.part-021.d.ts.map +1 -0
- package/dist/index.part-021.js +142 -0
- package/dist/index.part-021.js.map +1 -0
- package/dist/loaders.d.ts +27 -91
- package/dist/loaders.d.ts.map +1 -1
- package/dist/loaders.js +22 -855
- package/dist/loaders.js.map +1 -1
- package/dist/loaders.part-001.d.ts +163 -0
- package/dist/loaders.part-001.d.ts.map +1 -0
- package/dist/loaders.part-001.js +277 -0
- package/dist/loaders.part-001.js.map +1 -0
- package/dist/loaders.part-002.d.ts +33 -0
- package/dist/loaders.part-002.d.ts.map +1 -0
- package/dist/loaders.part-002.js +511 -0
- package/dist/loaders.part-002.js.map +1 -0
- package/dist/loaders.part-003.d.ts +23 -0
- package/dist/loaders.part-003.d.ts.map +1 -0
- package/dist/loaders.part-003.js +138 -0
- package/dist/loaders.part-003.js.map +1 -0
- package/dist/materials.d.ts +33 -49
- package/dist/materials.d.ts.map +1 -1
- package/dist/materials.js +39 -4339
- package/dist/materials.js.map +1 -1
- package/dist/materials.part-001.d.ts +153 -0
- package/dist/materials.part-001.d.ts.map +1 -0
- package/dist/materials.part-001.js +347 -0
- package/dist/materials.part-001.js.map +1 -0
- package/dist/materials.part-002.d.ts +46 -0
- package/dist/materials.part-002.d.ts.map +1 -0
- package/dist/materials.part-002.js +299 -0
- package/dist/materials.part-002.js.map +1 -0
- package/dist/materials.part-003.d.ts +14 -0
- package/dist/materials.part-003.d.ts.map +1 -0
- package/dist/materials.part-003.js +438 -0
- package/dist/materials.part-003.js.map +1 -0
- package/dist/materials.part-004.d.ts +30 -0
- package/dist/materials.part-004.d.ts.map +1 -0
- package/dist/materials.part-004.js +464 -0
- package/dist/materials.part-004.js.map +1 -0
- package/dist/materials.part-005.d.ts +38 -0
- package/dist/materials.part-005.d.ts.map +1 -0
- package/dist/materials.part-005.js +366 -0
- package/dist/materials.part-005.js.map +1 -0
- package/dist/materials.part-006.d.ts +18 -0
- package/dist/materials.part-006.d.ts.map +1 -0
- package/dist/materials.part-006.js +391 -0
- package/dist/materials.part-006.js.map +1 -0
- package/dist/materials.part-007.d.ts +24 -0
- package/dist/materials.part-007.d.ts.map +1 -0
- package/dist/materials.part-007.js +467 -0
- package/dist/materials.part-007.js.map +1 -0
- package/dist/materials.part-008.d.ts +95 -0
- package/dist/materials.part-008.d.ts.map +1 -0
- package/dist/materials.part-008.js +404 -0
- package/dist/materials.part-008.js.map +1 -0
- package/dist/materials.part-009.d.ts +89 -0
- package/dist/materials.part-009.d.ts.map +1 -0
- package/dist/materials.part-009.js +412 -0
- package/dist/materials.part-009.js.map +1 -0
- package/dist/materials.part-010.d.ts +46 -0
- package/dist/materials.part-010.d.ts.map +1 -0
- package/dist/materials.part-010.js +375 -0
- package/dist/materials.part-010.js.map +1 -0
- package/dist/materials.part-011.d.ts +25 -0
- package/dist/materials.part-011.d.ts.map +1 -0
- package/dist/materials.part-011.js +435 -0
- package/dist/materials.part-011.js.map +1 -0
- package/dist/materials.part-012.d.ts +15 -0
- package/dist/materials.part-012.d.ts.map +1 -0
- package/dist/materials.part-012.js +229 -0
- package/dist/materials.part-012.js.map +1 -0
- package/dist/scene.d.ts +19 -279
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +21 -3931
- package/dist/scene.js.map +1 -1
- package/dist/scene.part-001.d.ts +375 -0
- package/dist/scene.part-001.d.ts.map +1 -0
- package/dist/scene.part-001.js +20 -0
- package/dist/scene.part-001.js.map +1 -0
- package/dist/scene.part-002.d.ts +28 -0
- package/dist/scene.part-002.d.ts.map +1 -0
- package/dist/scene.part-002.js +311 -0
- package/dist/scene.part-002.js.map +1 -0
- package/dist/scene.part-003.d.ts +26 -0
- package/dist/scene.part-003.d.ts.map +1 -0
- package/dist/scene.part-003.js +384 -0
- package/dist/scene.part-003.js.map +1 -0
- package/dist/scene.part-004.d.ts +24 -0
- package/dist/scene.part-004.d.ts.map +1 -0
- package/dist/scene.part-004.js +287 -0
- package/dist/scene.part-004.js.map +1 -0
- package/dist/scene.part-005.d.ts +37 -0
- package/dist/scene.part-005.d.ts.map +1 -0
- package/dist/scene.part-005.js +350 -0
- package/dist/scene.part-005.js.map +1 -0
- package/dist/scene.part-006.d.ts +25 -0
- package/dist/scene.part-006.d.ts.map +1 -0
- package/dist/scene.part-006.js +362 -0
- package/dist/scene.part-006.js.map +1 -0
- package/dist/scene.part-007.d.ts +36 -0
- package/dist/scene.part-007.d.ts.map +1 -0
- package/dist/scene.part-007.js +417 -0
- package/dist/scene.part-007.js.map +1 -0
- package/dist/scene.part-008.d.ts +78 -0
- package/dist/scene.part-008.d.ts.map +1 -0
- package/dist/scene.part-008.js +416 -0
- package/dist/scene.part-008.js.map +1 -0
- package/dist/scene.part-009.d.ts +25 -0
- package/dist/scene.part-009.d.ts.map +1 -0
- package/dist/scene.part-009.js +330 -0
- package/dist/scene.part-009.js.map +1 -0
- package/dist/scene.part-010.d.ts +32 -0
- package/dist/scene.part-010.d.ts.map +1 -0
- package/dist/scene.part-010.js +336 -0
- package/dist/scene.part-010.js.map +1 -0
- package/dist/scene.part-011.d.ts +100 -0
- package/dist/scene.part-011.d.ts.map +1 -0
- package/dist/scene.part-011.js +262 -0
- package/dist/scene.part-011.js.map +1 -0
- package/dist/scene.part-012.d.ts +48 -0
- package/dist/scene.part-012.d.ts.map +1 -0
- package/dist/scene.part-012.js +357 -0
- package/dist/scene.part-012.js.map +1 -0
- package/dist/scene.part-013.d.ts +51 -0
- package/dist/scene.part-013.d.ts.map +1 -0
- package/dist/scene.part-013.js +368 -0
- package/dist/scene.part-013.js.map +1 -0
- package/dist/scene.part-014.d.ts +16 -0
- package/dist/scene.part-014.d.ts.map +1 -0
- package/dist/scene.part-014.js +112 -0
- package/dist/scene.part-014.js.map +1 -0
- package/dist/types.d.ts +53 -1564
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/dist/types.part-001.d.ts +386 -0
- package/dist/types.part-001.d.ts.map +1 -0
- package/dist/types.part-001.js +4 -0
- package/dist/types.part-001.js.map +1 -0
- package/dist/types.part-002.d.ts +407 -0
- package/dist/types.part-002.d.ts.map +1 -0
- package/dist/types.part-002.js +3 -0
- package/dist/types.part-002.js.map +1 -0
- package/dist/types.part-003.d.ts +427 -0
- package/dist/types.part-003.d.ts.map +1 -0
- package/dist/types.part-003.js +3 -0
- package/dist/types.part-003.js.map +1 -0
- package/dist/types.part-004.d.ts +351 -0
- package/dist/types.part-004.d.ts.map +1 -0
- package/dist/types.part-004.js +3 -0
- package/dist/types.part-004.js.map +1 -0
- package/native.d.ts +130 -0
- package/native.js +56 -52
- package/package.json +11 -8
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolveLoadingManagerUrl = resolveLoadingManagerUrl;
|
|
7
|
+
exports.isAbsoluteOrSpecialAssetUrl = isAbsoluteOrSpecialAssetUrl;
|
|
8
|
+
exports.ensureDirectoryUrl = ensureDirectoryUrl;
|
|
9
|
+
exports.resolveLocalAssetPath = resolveLocalAssetPath;
|
|
10
|
+
exports.resolveLocalRootDir = resolveLocalRootDir;
|
|
11
|
+
exports.installLocalFileFetch = installLocalFileFetch;
|
|
12
|
+
exports.installEncodedImageSupportProbe = installEncodedImageSupportProbe;
|
|
13
|
+
exports.registerEncodedImageHandlers = registerEncodedImageHandlers;
|
|
14
|
+
exports.arrayBufferView = arrayBufferView;
|
|
15
|
+
exports.installEmbeddedGlbImageNormalizer = installEmbeddedGlbImageNormalizer;
|
|
16
|
+
exports.installNodeVisibilityExtension = installNodeVisibilityExtension;
|
|
17
|
+
exports.installAnimationPointerExtension = installAnimationPointerExtension;
|
|
18
|
+
exports.applyAnimationPointerExtension = applyAnimationPointerExtension;
|
|
19
|
+
exports.materialAnimationTargets = materialAnimationTargets;
|
|
20
|
+
exports.animationPointerColorValues = animationPointerColorValues;
|
|
21
|
+
exports.applyNodeVisibilityExtension = applyNodeVisibilityExtension;
|
|
22
|
+
exports.uniqueNodeIndexByName = uniqueNodeIndexByName;
|
|
23
|
+
exports.gltfRootScenes = gltfRootScenes;
|
|
24
|
+
exports.isTraversableObject = isTraversableObject;
|
|
25
|
+
exports.normalizeEmbeddedGlbImages = normalizeEmbeddedGlbImages;
|
|
26
|
+
exports.rewriteGlbBufferViewImages = rewriteGlbBufferViewImages;
|
|
27
|
+
exports.validateGltfTextImageReferences = validateGltfTextImageReferences;
|
|
28
|
+
exports.gltfImages = gltfImages;
|
|
29
|
+
exports.validateGltfImageUri = validateGltfImageUri;
|
|
30
|
+
exports.imageMimeTypeFromUri = imageMimeTypeFromUri;
|
|
31
|
+
exports.validateSupportedEmbeddedImageType = validateSupportedEmbeddedImageType;
|
|
32
|
+
exports.unsupportedEmbeddedImageTypeError = unsupportedEmbeddedImageTypeError;
|
|
33
|
+
exports.glbBufferViewBytes = glbBufferViewBytes;
|
|
34
|
+
exports.encodeGlb = encodeGlb;
|
|
35
|
+
exports.paddedChunk = paddedChunk;
|
|
36
|
+
exports.writeGlbUint32 = writeGlbUint32;
|
|
37
|
+
const promises_1 = require("node:fs/promises");
|
|
38
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
39
|
+
const node_url_1 = require("node:url");
|
|
40
|
+
const loaders_part_001_1 = require("./loaders.part-001");
|
|
41
|
+
const loaders_part_003_1 = require("./loaders.part-003");
|
|
42
|
+
function resolveLoadingManagerUrl(manager, url) {
|
|
43
|
+
const resolveURL = manager?.resolveURL;
|
|
44
|
+
if (resolveURL == null)
|
|
45
|
+
return url;
|
|
46
|
+
const resolved = resolveURL.call(manager, url);
|
|
47
|
+
return (0, loaders_part_003_1.requiredString)(resolved, 'manager.resolveURL return value');
|
|
48
|
+
}
|
|
49
|
+
function isAbsoluteOrSpecialAssetUrl(url) {
|
|
50
|
+
return /^data:/i.test(url)
|
|
51
|
+
|| /^blob:/i.test(url)
|
|
52
|
+
|| node_path_1.default.isAbsolute(url)
|
|
53
|
+
|| node_path_1.default.win32.isAbsolute(url)
|
|
54
|
+
|| /^file:/i.test(url)
|
|
55
|
+
|| /^[a-z][a-z0-9+.-]*:/i.test(url);
|
|
56
|
+
}
|
|
57
|
+
function ensureDirectoryUrl(url) {
|
|
58
|
+
return url.endsWith('/') ? url : `${url}/`;
|
|
59
|
+
}
|
|
60
|
+
function resolveLocalAssetPath(url, rootDir = process.cwd()) {
|
|
61
|
+
const assetUrl = (0, loaders_part_003_1.requiredString)(url, 'url');
|
|
62
|
+
(0, loaders_part_003_1.requiredString)(rootDir, 'rootDir');
|
|
63
|
+
if (/^data:/i.test(assetUrl)) {
|
|
64
|
+
throw new Error('Data URI textures should be decoded or written to files before loading in Node.');
|
|
65
|
+
}
|
|
66
|
+
if (node_path_1.default.isAbsolute(assetUrl) || node_path_1.default.win32.isAbsolute(assetUrl))
|
|
67
|
+
return node_path_1.default.normalize(assetUrl);
|
|
68
|
+
if (/^file:/i.test(assetUrl))
|
|
69
|
+
return (0, node_url_1.fileURLToPath)(assetUrl);
|
|
70
|
+
if (/^[a-z][a-z0-9+.-]*:/i.test(assetUrl)) {
|
|
71
|
+
throw new Error(`Remote texture URL is not a local file: ${assetUrl}`);
|
|
72
|
+
}
|
|
73
|
+
const root = resolveLocalRootDir(rootDir, 'rootDir');
|
|
74
|
+
return node_path_1.default.resolve(root, assetUrl);
|
|
75
|
+
}
|
|
76
|
+
function resolveLocalRootDir(rootDir, label) {
|
|
77
|
+
const value = (0, loaders_part_003_1.requiredString)(rootDir, label);
|
|
78
|
+
if (/^data:/i.test(value)) {
|
|
79
|
+
throw new Error(`${label} must be a local directory path, not a data URI.`);
|
|
80
|
+
}
|
|
81
|
+
if (node_path_1.default.isAbsolute(value) || node_path_1.default.win32.isAbsolute(value)) {
|
|
82
|
+
return node_path_1.default.normalize(value);
|
|
83
|
+
}
|
|
84
|
+
if (/^file:/i.test(value)) {
|
|
85
|
+
return (0, node_url_1.fileURLToPath)(value);
|
|
86
|
+
}
|
|
87
|
+
if (/^[a-z][a-z0-9+.-]*:/i.test(value)) {
|
|
88
|
+
throw new Error(`${label} is not a local directory path: ${value}`);
|
|
89
|
+
}
|
|
90
|
+
return node_path_1.default.resolve(value);
|
|
91
|
+
}
|
|
92
|
+
function installLocalFileFetch() {
|
|
93
|
+
const marker = Symbol.for('headless-three-renderer.local-file-fetch');
|
|
94
|
+
const globalScope = globalThis;
|
|
95
|
+
if (typeof globalScope.self === 'undefined') {
|
|
96
|
+
globalScope.self = globalScope;
|
|
97
|
+
}
|
|
98
|
+
if (globalScope[marker])
|
|
99
|
+
return;
|
|
100
|
+
if (typeof globalScope.ProgressEvent === 'undefined') {
|
|
101
|
+
const EventCtor = typeof globalScope.Event === 'function'
|
|
102
|
+
? globalScope.Event
|
|
103
|
+
: class Event {
|
|
104
|
+
constructor(type) {
|
|
105
|
+
this.type = type;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
globalScope.ProgressEvent = class ProgressEvent extends EventCtor {
|
|
109
|
+
constructor(type, init = {}) {
|
|
110
|
+
super(type);
|
|
111
|
+
this.lengthComputable = init.lengthComputable ?? false;
|
|
112
|
+
this.loaded = init.loaded ?? 0;
|
|
113
|
+
this.total = init.total ?? 0;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const nativeFetch = globalScope.fetch;
|
|
118
|
+
globalScope.fetch = async (input, init) => {
|
|
119
|
+
const url = typeof input === 'string' || input instanceof URL ? String(input) : input?.url;
|
|
120
|
+
if (typeof url === 'string' && url.startsWith('file:')) {
|
|
121
|
+
const buffer = await (0, promises_1.readFile)((0, node_url_1.fileURLToPath)(url));
|
|
122
|
+
const ResponseCtor = globalScope.Response;
|
|
123
|
+
if (typeof ResponseCtor !== 'function') {
|
|
124
|
+
throw new Error('global Response is not available; install a fetch polyfill before loading local files.');
|
|
125
|
+
}
|
|
126
|
+
return new ResponseCtor(buffer);
|
|
127
|
+
}
|
|
128
|
+
if (typeof nativeFetch !== 'function') {
|
|
129
|
+
throw new Error('global fetch is not available; install a fetch polyfill before loading remote assets.');
|
|
130
|
+
}
|
|
131
|
+
return nativeFetch(input, init);
|
|
132
|
+
};
|
|
133
|
+
globalScope[marker] = true;
|
|
134
|
+
}
|
|
135
|
+
function installEncodedImageSupportProbe() {
|
|
136
|
+
const globalScope = globalThis;
|
|
137
|
+
if (typeof globalScope.Image === 'function')
|
|
138
|
+
return;
|
|
139
|
+
const marker = Symbol.for('headless-three-renderer.encoded-image-probe');
|
|
140
|
+
if (globalScope[marker])
|
|
141
|
+
return;
|
|
142
|
+
globalScope.Image = class EncodedImageProbe {
|
|
143
|
+
constructor() {
|
|
144
|
+
this.height = 0;
|
|
145
|
+
this.onerror = null;
|
|
146
|
+
this.onload = null;
|
|
147
|
+
this.width = 0;
|
|
148
|
+
}
|
|
149
|
+
set src(value) {
|
|
150
|
+
const url = String(value ?? '');
|
|
151
|
+
const supported = /^data:image\/webp[;,]/i.test(url);
|
|
152
|
+
this.width = supported ? 1 : 0;
|
|
153
|
+
this.height = supported ? 1 : 0;
|
|
154
|
+
queueMicrotask(() => {
|
|
155
|
+
if (supported) {
|
|
156
|
+
this.onload?.();
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this.onerror?.();
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
globalScope[marker] = true;
|
|
165
|
+
}
|
|
166
|
+
function registerEncodedImageHandlers(manager, encodedImages) {
|
|
167
|
+
manager.addHandler(/^blob:/i, encodedImages);
|
|
168
|
+
manager.addHandler(/^data:image\/(?:png|jpe?g|webp)/i, encodedImages);
|
|
169
|
+
manager.addHandler(/\.(png|jpe?g|webp)$/i, encodedImages);
|
|
170
|
+
}
|
|
171
|
+
function arrayBufferView(buffer) {
|
|
172
|
+
return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
173
|
+
}
|
|
174
|
+
function installEmbeddedGlbImageNormalizer(loader) {
|
|
175
|
+
const originalParse = loader.parse.bind(loader);
|
|
176
|
+
loader.parse = (data, parsePath, onLoad, onError) => {
|
|
177
|
+
originalParse(normalizeEmbeddedGlbImages(data), parsePath, onLoad, onError);
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function installNodeVisibilityExtension(loader) {
|
|
181
|
+
(0, loaders_part_003_1.registerLoaderPlugin)(loader, (parser) => ({
|
|
182
|
+
name: 'KHR_node_visibility',
|
|
183
|
+
afterRoot(gltf) {
|
|
184
|
+
applyNodeVisibilityExtension(gltf, parser);
|
|
185
|
+
},
|
|
186
|
+
}), 'KHR_node_visibility');
|
|
187
|
+
}
|
|
188
|
+
function installAnimationPointerExtension(loader) {
|
|
189
|
+
(0, loaders_part_003_1.registerLoaderPlugin)(loader, (parser) => ({
|
|
190
|
+
name: 'KHR_animation_pointer',
|
|
191
|
+
afterRoot(gltf) {
|
|
192
|
+
return applyAnimationPointerExtension(gltf, parser);
|
|
193
|
+
},
|
|
194
|
+
}), 'KHR_animation_pointer');
|
|
195
|
+
}
|
|
196
|
+
async function applyAnimationPointerExtension(gltf, parser) {
|
|
197
|
+
const animationDefs = parser.json?.animations;
|
|
198
|
+
const clips = gltf.animations;
|
|
199
|
+
if (!Array.isArray(animationDefs) || !Array.isArray(clips) || typeof parser.getDependency !== 'function')
|
|
200
|
+
return;
|
|
201
|
+
for (let animationIndex = 0; animationIndex < animationDefs.length; animationIndex++) {
|
|
202
|
+
const animationDef = animationDefs[animationIndex];
|
|
203
|
+
const clip = clips[animationIndex];
|
|
204
|
+
if (!clip || !Array.isArray(clip.tracks) || !Array.isArray(animationDef.channels) || !Array.isArray(animationDef.samplers))
|
|
205
|
+
continue;
|
|
206
|
+
for (const channel of animationDef.channels) {
|
|
207
|
+
const pointer = channel.target?.extensions?.KHR_animation_pointer?.pointer;
|
|
208
|
+
const match = typeof pointer === 'string'
|
|
209
|
+
? pointer.match(/^\/materials\/(\d+)\/pbrMetallicRoughness\/baseColorFactor$/)
|
|
210
|
+
: null;
|
|
211
|
+
if (!match)
|
|
212
|
+
continue;
|
|
213
|
+
const samplerIndex = channel.sampler;
|
|
214
|
+
const sampler = typeof samplerIndex === 'number' ? animationDef.samplers[samplerIndex] : undefined;
|
|
215
|
+
if (!sampler || sampler.interpolation === 'CUBICSPLINE' || typeof sampler.input !== 'number' || typeof sampler.output !== 'number')
|
|
216
|
+
continue;
|
|
217
|
+
const materialIndex = Number.parseInt(match[1], 10);
|
|
218
|
+
const targets = materialAnimationTargets(gltf, parser, materialIndex);
|
|
219
|
+
if (targets.length === 0)
|
|
220
|
+
continue;
|
|
221
|
+
const [inputAccessor, outputAccessor] = await Promise.all([
|
|
222
|
+
parser.getDependency('accessor', sampler.input),
|
|
223
|
+
parser.getDependency('accessor', sampler.output),
|
|
224
|
+
]);
|
|
225
|
+
const times = inputAccessor.array;
|
|
226
|
+
const values = outputAccessor.array;
|
|
227
|
+
const itemSize = outputAccessor.itemSize ?? 0;
|
|
228
|
+
if (!times || !values || itemSize < 3)
|
|
229
|
+
continue;
|
|
230
|
+
const colorValues = animationPointerColorValues(times.length, values, itemSize);
|
|
231
|
+
const interpolation = sampler.interpolation === 'STEP' ? loaders_part_001_1.InterpolateDiscrete : loaders_part_001_1.InterpolateLinear;
|
|
232
|
+
for (const target of targets) {
|
|
233
|
+
clip.tracks.push(new loaders_part_001_1.ColorKeyframeTrack(`${target}.material.color`, times, colorValues, interpolation));
|
|
234
|
+
}
|
|
235
|
+
clip.resetDuration?.();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
function materialAnimationTargets(gltf, parser, materialIndex) {
|
|
240
|
+
const associations = parser.associations;
|
|
241
|
+
if (!associations)
|
|
242
|
+
return [];
|
|
243
|
+
const targets = [];
|
|
244
|
+
const seen = new Set();
|
|
245
|
+
for (const root of gltfRootScenes(gltf)) {
|
|
246
|
+
root.traverse?.((object) => {
|
|
247
|
+
const mesh = object;
|
|
248
|
+
if (mesh.isMesh !== true)
|
|
249
|
+
return;
|
|
250
|
+
const materials = Array.isArray(mesh.material) ? mesh.material : [mesh.material];
|
|
251
|
+
if (!materials.some((material) => associations.get(material)?.materials === materialIndex))
|
|
252
|
+
return;
|
|
253
|
+
const target = mesh.name || mesh.uuid;
|
|
254
|
+
if (target && !seen.has(target)) {
|
|
255
|
+
seen.add(target);
|
|
256
|
+
targets.push(target);
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
return targets;
|
|
261
|
+
}
|
|
262
|
+
function animationPointerColorValues(keyframeCount, values, itemSize) {
|
|
263
|
+
const colors = new Float32Array(keyframeCount * 3);
|
|
264
|
+
for (let keyframe = 0; keyframe < keyframeCount; keyframe++) {
|
|
265
|
+
const source = keyframe * itemSize;
|
|
266
|
+
const target = keyframe * 3;
|
|
267
|
+
colors[target] = Number(values[source] ?? 0);
|
|
268
|
+
colors[target + 1] = Number(values[source + 1] ?? 0);
|
|
269
|
+
colors[target + 2] = Number(values[source + 2] ?? 0);
|
|
270
|
+
}
|
|
271
|
+
return colors;
|
|
272
|
+
}
|
|
273
|
+
function applyNodeVisibilityExtension(gltf, parser) {
|
|
274
|
+
const associations = parser.associations;
|
|
275
|
+
const nodes = parser.json?.nodes;
|
|
276
|
+
if (!associations || !Array.isArray(nodes))
|
|
277
|
+
return;
|
|
278
|
+
const nodeIndexByName = uniqueNodeIndexByName(nodes);
|
|
279
|
+
for (const root of gltfRootScenes(gltf)) {
|
|
280
|
+
root.traverse?.((object) => {
|
|
281
|
+
const association = associations.get(object);
|
|
282
|
+
let nodeIndex = association?.nodes;
|
|
283
|
+
const objectName = typeof object.name === 'string'
|
|
284
|
+
? object.name
|
|
285
|
+
: '';
|
|
286
|
+
const associatedNode = typeof nodeIndex === 'number' && Number.isInteger(nodeIndex)
|
|
287
|
+
? nodes[nodeIndex]
|
|
288
|
+
: undefined;
|
|
289
|
+
const associatedName = typeof associatedNode?.name === 'string'
|
|
290
|
+
? associatedNode.name
|
|
291
|
+
: '';
|
|
292
|
+
if (objectName && associatedName !== objectName) {
|
|
293
|
+
nodeIndex = nodeIndexByName.get(objectName) ?? nodeIndex;
|
|
294
|
+
}
|
|
295
|
+
if (typeof nodeIndex !== 'number' || !Number.isInteger(nodeIndex))
|
|
296
|
+
return;
|
|
297
|
+
const node = nodes[nodeIndex];
|
|
298
|
+
if (!node || typeof node !== 'object' || Array.isArray(node))
|
|
299
|
+
return;
|
|
300
|
+
const visible = node.extensions?.KHR_node_visibility?.visible;
|
|
301
|
+
const objectLike = object;
|
|
302
|
+
if (visible === false) {
|
|
303
|
+
objectLike.visible = false;
|
|
304
|
+
}
|
|
305
|
+
else if (visible === true) {
|
|
306
|
+
objectLike.visible = true;
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
function uniqueNodeIndexByName(nodes) {
|
|
312
|
+
const counts = new Map();
|
|
313
|
+
for (const node of nodes) {
|
|
314
|
+
const name = typeof node?.name === 'string'
|
|
315
|
+
? node.name
|
|
316
|
+
: '';
|
|
317
|
+
if (name)
|
|
318
|
+
counts.set(name, (counts.get(name) ?? 0) + 1);
|
|
319
|
+
}
|
|
320
|
+
const result = new Map();
|
|
321
|
+
nodes.forEach((node, index) => {
|
|
322
|
+
const name = typeof node?.name === 'string'
|
|
323
|
+
? node.name
|
|
324
|
+
: '';
|
|
325
|
+
if (name && counts.get(name) === 1)
|
|
326
|
+
result.set(name, index);
|
|
327
|
+
});
|
|
328
|
+
return result;
|
|
329
|
+
}
|
|
330
|
+
function gltfRootScenes(gltf) {
|
|
331
|
+
const root = gltf;
|
|
332
|
+
const scenes = Array.isArray(root?.scenes) ? root.scenes : [];
|
|
333
|
+
const result = scenes.filter(isTraversableObject);
|
|
334
|
+
if (isTraversableObject(root?.scene) && !result.includes(root.scene)) {
|
|
335
|
+
result.push(root.scene);
|
|
336
|
+
}
|
|
337
|
+
return result;
|
|
338
|
+
}
|
|
339
|
+
function isTraversableObject(value) {
|
|
340
|
+
return !!value && typeof value === 'object' && typeof value.traverse === 'function';
|
|
341
|
+
}
|
|
342
|
+
function normalizeEmbeddedGlbImages(data) {
|
|
343
|
+
if (typeof data === 'string') {
|
|
344
|
+
validateGltfTextImageReferences(data);
|
|
345
|
+
return data;
|
|
346
|
+
}
|
|
347
|
+
const bytes = Buffer.from(data);
|
|
348
|
+
const normalized = rewriteGlbBufferViewImages(bytes);
|
|
349
|
+
if (!normalized) {
|
|
350
|
+
validateGltfTextImageReferences(bytes);
|
|
351
|
+
}
|
|
352
|
+
return normalized ? arrayBufferView(normalized) : data;
|
|
353
|
+
}
|
|
354
|
+
function rewriteGlbBufferViewImages(bytes) {
|
|
355
|
+
if (bytes.byteLength < 20 || bytes.readUInt32LE(0) !== 0x46546c67 || bytes.readUInt32LE(4) !== 2) {
|
|
356
|
+
return null;
|
|
357
|
+
}
|
|
358
|
+
let offset = 12;
|
|
359
|
+
let jsonChunk = null;
|
|
360
|
+
let binChunk = null;
|
|
361
|
+
while (offset + 8 <= bytes.byteLength) {
|
|
362
|
+
const chunkLength = bytes.readUInt32LE(offset);
|
|
363
|
+
const chunkType = bytes.readUInt32LE(offset + 4);
|
|
364
|
+
const chunkStart = offset + 8;
|
|
365
|
+
const chunkEnd = chunkStart + chunkLength;
|
|
366
|
+
if (chunkEnd > bytes.byteLength)
|
|
367
|
+
return null;
|
|
368
|
+
const chunk = bytes.subarray(chunkStart, chunkEnd);
|
|
369
|
+
if (chunkType === 0x4e4f534a) {
|
|
370
|
+
jsonChunk = chunk;
|
|
371
|
+
}
|
|
372
|
+
else if (chunkType === 0x004e4942 && binChunk === null) {
|
|
373
|
+
binChunk = chunk;
|
|
374
|
+
}
|
|
375
|
+
offset = chunkEnd;
|
|
376
|
+
}
|
|
377
|
+
if (!jsonChunk || !binChunk)
|
|
378
|
+
return null;
|
|
379
|
+
let json;
|
|
380
|
+
try {
|
|
381
|
+
json = JSON.parse(jsonChunk.toString('utf8').trimEnd());
|
|
382
|
+
}
|
|
383
|
+
catch {
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
let changed = false;
|
|
387
|
+
for (const image of gltfImages(json, 'GLB')) {
|
|
388
|
+
validateGltfImageUri(image);
|
|
389
|
+
if (!image || !Number.isInteger(image.bufferView))
|
|
390
|
+
continue;
|
|
391
|
+
if (typeof image.mimeType !== 'string') {
|
|
392
|
+
throw new Error('GLB bufferView image is missing mimeType. Embedded GLB images must declare PNG, JPEG, or WebP mimeType values.');
|
|
393
|
+
}
|
|
394
|
+
validateSupportedEmbeddedImageType('GLB bufferView image', image.mimeType);
|
|
395
|
+
const imageBytes = glbBufferViewBytes(json, binChunk, image.bufferView);
|
|
396
|
+
if (!imageBytes)
|
|
397
|
+
continue;
|
|
398
|
+
image.uri = `data:${image.mimeType};base64,${imageBytes.toString('base64')}`;
|
|
399
|
+
delete image.bufferView;
|
|
400
|
+
changed = true;
|
|
401
|
+
}
|
|
402
|
+
return changed ? encodeGlb(json, binChunk) : null;
|
|
403
|
+
}
|
|
404
|
+
function validateGltfTextImageReferences(data) {
|
|
405
|
+
const text = typeof data === 'string' ? data : data.toString('utf8');
|
|
406
|
+
if (!text.trimStart().startsWith('{'))
|
|
407
|
+
return;
|
|
408
|
+
let json;
|
|
409
|
+
try {
|
|
410
|
+
json = JSON.parse(text);
|
|
411
|
+
}
|
|
412
|
+
catch {
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
for (const image of gltfImages(json, 'glTF')) {
|
|
416
|
+
validateGltfImageUri(image);
|
|
417
|
+
if (image && Number.isInteger(image.bufferView)) {
|
|
418
|
+
if (typeof image.mimeType !== 'string') {
|
|
419
|
+
throw new Error('glTF bufferView image is missing mimeType. Embedded glTF images must declare PNG, JPEG, or WebP mimeType values.');
|
|
420
|
+
}
|
|
421
|
+
validateSupportedEmbeddedImageType('glTF bufferView image', image.mimeType);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
function gltfImages(json, label) {
|
|
426
|
+
const images = json.images;
|
|
427
|
+
if (images == null)
|
|
428
|
+
return [];
|
|
429
|
+
if (!Array.isArray(images)) {
|
|
430
|
+
throw new Error(`${label}.images must be an array.`);
|
|
431
|
+
}
|
|
432
|
+
for (let i = 0; i < images.length; i += 1) {
|
|
433
|
+
const image = images[i];
|
|
434
|
+
if (!image || typeof image !== 'object' || Array.isArray(image)) {
|
|
435
|
+
throw new Error(`${label}.images[${i}] must be an object.`);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
return images;
|
|
439
|
+
}
|
|
440
|
+
function validateGltfImageUri(image) {
|
|
441
|
+
const uri = typeof image?.uri === 'string' ? image.uri : null;
|
|
442
|
+
if (!uri)
|
|
443
|
+
return;
|
|
444
|
+
const mimeType = imageMimeTypeFromUri(uri);
|
|
445
|
+
if (mimeType) {
|
|
446
|
+
validateSupportedEmbeddedImageType('glTF image URI', mimeType);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
function imageMimeTypeFromUri(uri) {
|
|
450
|
+
const dataUriMatch = uri.match(/^data:([^;,]+)/i);
|
|
451
|
+
if (dataUriMatch)
|
|
452
|
+
return dataUriMatch[1].toLowerCase();
|
|
453
|
+
if (/\.ktx2(?:$|[?#])/i.test(uri))
|
|
454
|
+
return 'image/ktx2';
|
|
455
|
+
if (/\.basis(?:$|[?#])/i.test(uri))
|
|
456
|
+
return 'image/basis';
|
|
457
|
+
return null;
|
|
458
|
+
}
|
|
459
|
+
function validateSupportedEmbeddedImageType(label, mimeType) {
|
|
460
|
+
if (!/^image\/(?:png|jpe?g|webp)$/i.test(mimeType)) {
|
|
461
|
+
throw unsupportedEmbeddedImageTypeError(label, mimeType);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
function unsupportedEmbeddedImageTypeError(label, mimeType) {
|
|
465
|
+
if (/(?:ktx2|basis|compressed)/i.test(mimeType)) {
|
|
466
|
+
return new Error(`${label} uses compressed texture MIME type "${mimeType}". KTX2, Basis, and compressed texture inputs are not decoded by @headless-three/renderer yet; pre-decode the texture to RGBA data or an encoded PNG/JPEG/WebP image before loading.`);
|
|
467
|
+
}
|
|
468
|
+
return new Error(`${label} uses unsupported MIME type "${mimeType}". Embedded GLB images must be PNG, JPEG, or WebP encoded images.`);
|
|
469
|
+
}
|
|
470
|
+
function glbBufferViewBytes(json, binChunk, index) {
|
|
471
|
+
const bufferView = json.bufferViews?.[index];
|
|
472
|
+
if (!bufferView || bufferView.buffer !== 0 || !Number.isFinite(bufferView.byteLength)) {
|
|
473
|
+
return null;
|
|
474
|
+
}
|
|
475
|
+
const byteOffset = bufferView.byteOffset == null ? 0 : bufferView.byteOffset;
|
|
476
|
+
if (!Number.isFinite(byteOffset))
|
|
477
|
+
return null;
|
|
478
|
+
const start = Math.trunc(byteOffset);
|
|
479
|
+
const end = start + Math.trunc(bufferView.byteLength);
|
|
480
|
+
if (start < 0 || end < start || end > binChunk.byteLength)
|
|
481
|
+
return null;
|
|
482
|
+
return binChunk.subarray(start, end);
|
|
483
|
+
}
|
|
484
|
+
function encodeGlb(json, binChunk) {
|
|
485
|
+
const jsonBytes = paddedChunk(Buffer.from(JSON.stringify(json), 'utf8'), 0x20);
|
|
486
|
+
const binBytes = paddedChunk(binChunk, 0x00);
|
|
487
|
+
const totalLength = 12 + 8 + jsonBytes.length + 8 + binBytes.length;
|
|
488
|
+
const glb = Buffer.alloc(totalLength);
|
|
489
|
+
let offset = 0;
|
|
490
|
+
offset = writeGlbUint32(glb, offset, 0x46546c67);
|
|
491
|
+
offset = writeGlbUint32(glb, offset, 2);
|
|
492
|
+
offset = writeGlbUint32(glb, offset, totalLength);
|
|
493
|
+
offset = writeGlbUint32(glb, offset, jsonBytes.length);
|
|
494
|
+
offset = writeGlbUint32(glb, offset, 0x4e4f534a);
|
|
495
|
+
jsonBytes.copy(glb, offset);
|
|
496
|
+
offset += jsonBytes.length;
|
|
497
|
+
offset = writeGlbUint32(glb, offset, binBytes.length);
|
|
498
|
+
offset = writeGlbUint32(glb, offset, 0x004e4942);
|
|
499
|
+
binBytes.copy(glb, offset);
|
|
500
|
+
return glb;
|
|
501
|
+
}
|
|
502
|
+
function paddedChunk(buffer, fill) {
|
|
503
|
+
const padded = Buffer.alloc((buffer.length + 3) & ~3, fill);
|
|
504
|
+
buffer.copy(padded);
|
|
505
|
+
return padded;
|
|
506
|
+
}
|
|
507
|
+
function writeGlbUint32(buffer, offset, value) {
|
|
508
|
+
buffer.writeUInt32LE(value, offset);
|
|
509
|
+
return offset + 4;
|
|
510
|
+
}
|
|
511
|
+
//# sourceMappingURL=loaders.part-002.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loaders.part-002.js","sourceRoot":"","sources":["../api/loaders.part-002.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ConfigureGltfLoader, GltfLoaderModule, LoadGltfFromFileOptions, NodeGltfLoaderOptions, ThreeGltfLoaderLike, ThreeLoadingManagerLike, VrmAnimationClipFactory, VrmLoaderPluginConstructor } from './loaders.part-001';
|
|
2
|
+
export declare function optionalBoolean(value: unknown, label: string): boolean | undefined;
|
|
3
|
+
export declare function optionalNonNegativeNumber(value: unknown, label: string): number | undefined;
|
|
4
|
+
export declare function optionalNonNegativeInteger(value: unknown, label: string): number | undefined;
|
|
5
|
+
export declare function validateNodeGltfLoaderOptions(options: NodeGltfLoaderOptions): {
|
|
6
|
+
configureLoader?: ConfigureGltfLoader;
|
|
7
|
+
installFetch?: boolean;
|
|
8
|
+
manager?: ThreeLoadingManagerLike;
|
|
9
|
+
registerTextureHandlers?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function validateLoadGltfFromFileOptions(options: LoadGltfFromFileOptions): void;
|
|
12
|
+
export declare function requiredString(value: unknown, label: string): string;
|
|
13
|
+
export declare function optionalString(value: unknown, label: string): string | undefined;
|
|
14
|
+
export declare function objectOptions(value: unknown, label: string): Record<string, unknown>;
|
|
15
|
+
export declare function optionalFunction<T>(value: T | null | undefined, label: string): T | undefined;
|
|
16
|
+
export declare function optionalLoadingManager(value: ThreeLoadingManagerLike | null | undefined, label: string): ThreeLoadingManagerLike | undefined;
|
|
17
|
+
export declare function registerLoaderPlugin(loader: ThreeGltfLoaderLike, callback: (parser: unknown) => unknown, label: string): void;
|
|
18
|
+
export declare const dynamicImport: <T = unknown>(specifier: string) => Promise<T>;
|
|
19
|
+
export declare function importGltfLoader(): Promise<GltfLoaderModule>;
|
|
20
|
+
export declare function importVrmLoaderPlugin(): Promise<VrmLoaderPluginConstructor>;
|
|
21
|
+
export declare function importVrmAnimationLoaderPlugin(): Promise<VrmLoaderPluginConstructor>;
|
|
22
|
+
export declare function importVrmAnimationClipFactory(): Promise<VrmAnimationClipFactory>;
|
|
23
|
+
//# sourceMappingURL=loaders.part-003.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loaders.part-003.d.ts","sourceRoot":"","sources":["../api/loaders.part-003.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAC7N,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAIlF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI3F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI5F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,qBAAqB,GAAG;IAC7E,eAAe,CAAC,EAAE,mBAAmB,CAAA;IACrC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,uBAAuB,CAAA;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC,CAOA;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAItF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKpF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAI7F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAW5I;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,EACtC,KAAK,EAAE,MAAM,GACZ,IAAI,CAKN;AAED,eAAO,MAAM,aAAa,EAA4D,CAAC,CAAC,GAAG,OAAO,EAChG,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,CAAC,CAAC,CAAA;AAEf,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE5D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAYjF;AAED,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAY1F;AAED,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAYtF"}
|