@loaders.gl/textures 4.4.0-alpha.9 → 4.4.1

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 (164) hide show
  1. package/README.md +197 -1
  2. package/dist/basis-loader.d.ts +15 -10
  3. package/dist/basis-loader.d.ts.map +1 -1
  4. package/dist/basis-loader.js +0 -1
  5. package/dist/basis-loader.js.map +1 -1
  6. package/dist/basis-worker-node.js +797 -9971
  7. package/dist/basis-worker.js +300 -145
  8. package/dist/compressed-texture-loader.d.ts +0 -4
  9. package/dist/compressed-texture-loader.d.ts.map +1 -1
  10. package/dist/compressed-texture-loader.js +0 -1
  11. package/dist/compressed-texture-loader.js.map +1 -1
  12. package/dist/compressed-texture-worker.js +1110 -358
  13. package/dist/crunch-loader.d.ts +1 -5
  14. package/dist/crunch-loader.d.ts.map +1 -1
  15. package/dist/crunch-loader.js +1 -3
  16. package/dist/crunch-loader.js.map +1 -1
  17. package/dist/crunch-worker.js +168 -87
  18. package/dist/dist.dev.js +2648 -671
  19. package/dist/dist.min.js +1 -2
  20. package/dist/index.cjs +1642 -428
  21. package/dist/index.cjs.map +4 -4
  22. package/dist/index.d.ts +13 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +6 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/ktx2-basis-writer-worker-node.js +444 -9763
  27. package/dist/ktx2-basis-writer-worker.js +13 -3
  28. package/dist/lib/composite-image/image-texture-cube.d.ts +47 -0
  29. package/dist/lib/composite-image/image-texture-cube.d.ts.map +1 -0
  30. package/dist/lib/composite-image/image-texture-cube.js +42 -0
  31. package/dist/lib/composite-image/image-texture-cube.js.map +1 -0
  32. package/dist/lib/composite-image/parse-composite-image.d.ts +43 -0
  33. package/dist/lib/composite-image/parse-composite-image.d.ts.map +1 -0
  34. package/dist/lib/composite-image/parse-composite-image.js +437 -0
  35. package/dist/lib/composite-image/parse-composite-image.js.map +1 -0
  36. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  37. package/dist/lib/encoders/encode-ktx2-basis-texture.js +2 -1
  38. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  39. package/dist/lib/gl-extensions.d.ts +166 -58
  40. package/dist/lib/gl-extensions.d.ts.map +1 -1
  41. package/dist/lib/gl-extensions.js +177 -66
  42. package/dist/lib/gl-extensions.js.map +1 -1
  43. package/dist/lib/gl-types.d.ts +4 -0
  44. package/dist/lib/gl-types.d.ts.map +1 -0
  45. package/dist/lib/gl-types.js +5 -0
  46. package/dist/lib/gl-types.js.map +1 -0
  47. package/dist/lib/parsers/crunch-module-loader.d.ts +2 -2
  48. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
  49. package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
  50. package/dist/lib/parsers/parse-basis.d.ts +24 -2
  51. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-basis.js +262 -64
  53. package/dist/lib/parsers/parse-basis.js.map +1 -1
  54. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  55. package/dist/lib/parsers/parse-crunch.js +6 -6
  56. package/dist/lib/parsers/parse-crunch.js.map +1 -1
  57. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  58. package/dist/lib/parsers/parse-dds.js +10 -11
  59. package/dist/lib/parsers/parse-dds.js.map +1 -1
  60. package/dist/lib/parsers/parse-hdr.d.ts +21 -0
  61. package/dist/lib/parsers/parse-hdr.d.ts.map +1 -0
  62. package/dist/lib/parsers/parse-hdr.js +305 -0
  63. package/dist/lib/parsers/parse-hdr.js.map +1 -0
  64. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  65. package/dist/lib/parsers/parse-ktx.js +10 -3
  66. package/dist/lib/parsers/parse-ktx.js.map +1 -1
  67. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  68. package/dist/lib/parsers/parse-pvr.js +31 -74
  69. package/dist/lib/parsers/parse-pvr.js.map +1 -1
  70. package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
  71. package/dist/lib/texture-api/generate-url.js +2 -10
  72. package/dist/lib/texture-api/generate-url.js.map +1 -1
  73. package/dist/lib/texture-api/load-image-array.d.ts +6 -3
  74. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
  75. package/dist/lib/texture-api/load-image-array.js +5 -3
  76. package/dist/lib/texture-api/load-image-array.js.map +1 -1
  77. package/dist/lib/texture-api/load-image-cube.d.ts +7 -11
  78. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  79. package/dist/lib/texture-api/load-image-cube.js +8 -20
  80. package/dist/lib/texture-api/load-image-cube.js.map +1 -1
  81. package/dist/lib/texture-api/load-image.d.ts +6 -3
  82. package/dist/lib/texture-api/load-image.d.ts.map +1 -1
  83. package/dist/lib/texture-api/load-image.js +8 -4
  84. package/dist/lib/texture-api/load-image.js.map +1 -1
  85. package/dist/lib/texture-api/texture-api-types.d.ts +13 -0
  86. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  87. package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
  88. package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
  89. package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
  90. package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
  91. package/dist/lib/utils/extract-mipmap-images.d.ts +6 -2
  92. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  93. package/dist/lib/utils/extract-mipmap-images.js +13 -2
  94. package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
  95. package/dist/lib/utils/ktx-format-helper.d.ts +9 -1
  96. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  97. package/dist/lib/utils/ktx-format-helper.js +76 -109
  98. package/dist/lib/utils/ktx-format-helper.js.map +1 -1
  99. package/dist/lib/utils/texture-format-map.d.ts +10 -0
  100. package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
  101. package/dist/lib/utils/texture-format-map.js +87 -0
  102. package/dist/lib/utils/texture-format-map.js.map +1 -0
  103. package/dist/lib/utils/version.js +1 -1
  104. package/dist/lib/utils/version.js.map +1 -1
  105. package/dist/npy-loader.d.ts +2 -2
  106. package/dist/npy-worker.js +1 -1
  107. package/dist/radiance-hdr-loader.d.ts +25 -0
  108. package/dist/radiance-hdr-loader.d.ts.map +1 -0
  109. package/dist/radiance-hdr-loader.js +23 -0
  110. package/dist/radiance-hdr-loader.js.map +1 -0
  111. package/dist/texture-array-loader.d.ts +25 -0
  112. package/dist/texture-array-loader.d.ts.map +1 -0
  113. package/dist/texture-array-loader.js +24 -0
  114. package/dist/texture-array-loader.js.map +1 -0
  115. package/dist/texture-cube-array-loader.d.ts +25 -0
  116. package/dist/texture-cube-array-loader.d.ts.map +1 -0
  117. package/dist/texture-cube-array-loader.js +24 -0
  118. package/dist/texture-cube-array-loader.js.map +1 -0
  119. package/dist/texture-cube-loader.d.ts +25 -0
  120. package/dist/texture-cube-loader.d.ts.map +1 -0
  121. package/dist/texture-cube-loader.js +24 -0
  122. package/dist/texture-cube-loader.js.map +1 -0
  123. package/dist/texture-loader.d.ts +25 -0
  124. package/dist/texture-loader.d.ts.map +1 -0
  125. package/dist/texture-loader.js +24 -0
  126. package/dist/texture-loader.js.map +1 -0
  127. package/dist/workers/crunch-worker.d.ts +1 -3
  128. package/dist/workers/crunch-worker.d.ts.map +1 -1
  129. package/package.json +7 -7
  130. package/src/basis-loader.ts +19 -9
  131. package/src/compressed-texture-loader.ts +0 -3
  132. package/src/crunch-loader.ts +1 -5
  133. package/src/index.ts +21 -4
  134. package/src/lib/composite-image/image-texture-cube.ts +49 -0
  135. package/src/lib/composite-image/parse-composite-image.ts +699 -0
  136. package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -1
  137. package/src/lib/gl-extensions.ts +188 -81
  138. package/src/lib/gl-types.ts +136 -0
  139. package/src/lib/parsers/crunch-module-loader.ts +4 -4
  140. package/src/lib/parsers/parse-basis.ts +326 -62
  141. package/src/lib/parsers/parse-crunch.ts +11 -8
  142. package/src/lib/parsers/parse-dds.ts +11 -12
  143. package/src/lib/parsers/parse-hdr.ts +426 -0
  144. package/src/lib/parsers/parse-ktx.ts +13 -3
  145. package/src/lib/parsers/parse-pvr.ts +33 -75
  146. package/src/lib/texture-api/generate-url.ts +2 -12
  147. package/src/lib/texture-api/load-image-array.ts +15 -6
  148. package/src/lib/texture-api/load-image-cube.ts +20 -34
  149. package/src/lib/texture-api/load-image.ts +19 -8
  150. package/src/lib/texture-api/texture-api-types.ts +15 -0
  151. package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
  152. package/src/lib/utils/extract-mipmap-images.ts +23 -4
  153. package/src/lib/utils/ktx-format-helper.ts +135 -111
  154. package/src/lib/utils/texture-format-map.ts +162 -0
  155. package/src/radiance-hdr-loader.ts +36 -0
  156. package/src/texture-array-loader.ts +46 -0
  157. package/src/texture-cube-array-loader.ts +49 -0
  158. package/src/texture-cube-loader.ts +46 -0
  159. package/src/texture-loader.ts +49 -0
  160. package/dist/lib/utils/texture-formats.d.ts +0 -8
  161. package/dist/lib/utils/texture-formats.d.ts.map +0 -1
  162. package/dist/lib/utils/texture-formats.js +0 -51
  163. package/dist/lib/utils/texture-formats.js.map +0 -1
  164. package/src/lib/utils/texture-formats.ts +0 -59
@@ -11,7 +11,7 @@
11
11
  globalThis._loadersgl_.version = NPM_TAG;
12
12
  warningIssued = true;
13
13
  } else {
14
- globalThis._loadersgl_.version = "4.4.0-alpha.9";
14
+ globalThis._loadersgl_.version = "4.4.1";
15
15
  }
16
16
  }
17
17
  return globalThis._loadersgl_.version;
@@ -165,6 +165,16 @@
165
165
 
166
166
  // ../worker-utils/src/lib/library-utils/library-utils.ts
167
167
  var loadLibraryPromises = {};
168
+ function extractLoadLibraryOptions(options = {}) {
169
+ const useLocalLibraries = options.useLocalLibraries ?? options.core?.useLocalLibraries;
170
+ const CDN = options.CDN ?? options.core?.CDN;
171
+ const modules = options.modules;
172
+ return {
173
+ ...useLocalLibraries !== void 0 ? { useLocalLibraries } : {},
174
+ ...CDN !== void 0 ? { CDN } : {},
175
+ ...modules !== void 0 ? { modules } : {}
176
+ };
177
+ }
168
178
  async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
169
179
  if (moduleName) {
170
180
  libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
@@ -277,7 +287,7 @@
277
287
  }
278
288
 
279
289
  // src/lib/utils/version.ts
280
- var VERSION2 = true ? "4.4.0-alpha.9" : "latest";
290
+ var VERSION2 = true ? "4.4.1" : "latest";
281
291
 
282
292
  // src/lib/parsers/basis-module-loader.ts
283
293
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -331,7 +341,7 @@
331
341
  encodeUASTC = false,
332
342
  mipmaps = false
333
343
  } = options?.["ktx2-basis-writer"] || {};
334
- const { BasisEncoder } = await loadBasisEncoderModule(options.core || {});
344
+ const { BasisEncoder } = await loadBasisEncoderModule(extractLoadLibraryOptions(options));
335
345
  const basisEncoder = new BasisEncoder();
336
346
  try {
337
347
  const basisFileData = new Uint8Array(image.width * image.height * 4);
@@ -0,0 +1,47 @@
1
+ export declare const GL_TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
2
+ export declare const GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
3
+ export declare const GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
4
+ export declare const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
5
+ export declare const GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
6
+ export declare const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
7
+ export type ImageTextureCubeFace = '+X' | '-X' | '+Y' | '-Y' | '+Z' | '-Z';
8
+ export type ImageTextureCubeDirectionAlias = 'right' | 'left' | 'top' | 'bottom' | 'front' | 'back';
9
+ export declare const IMAGE_TEXTURE_CUBE_FACES: readonly [{
10
+ readonly face: 34069;
11
+ readonly name: "+X";
12
+ readonly direction: "right";
13
+ readonly axis: "x";
14
+ readonly sign: "positive";
15
+ }, {
16
+ readonly face: 34070;
17
+ readonly name: "-X";
18
+ readonly direction: "left";
19
+ readonly axis: "x";
20
+ readonly sign: "negative";
21
+ }, {
22
+ readonly face: 34071;
23
+ readonly name: "+Y";
24
+ readonly direction: "top";
25
+ readonly axis: "y";
26
+ readonly sign: "positive";
27
+ }, {
28
+ readonly face: 34072;
29
+ readonly name: "-Y";
30
+ readonly direction: "bottom";
31
+ readonly axis: "y";
32
+ readonly sign: "negative";
33
+ }, {
34
+ readonly face: 34073;
35
+ readonly name: "+Z";
36
+ readonly direction: "front";
37
+ readonly axis: "z";
38
+ readonly sign: "positive";
39
+ }, {
40
+ readonly face: 34074;
41
+ readonly name: "-Z";
42
+ readonly direction: "back";
43
+ readonly axis: "z";
44
+ readonly sign: "negative";
45
+ }];
46
+ export type ImageCubeTexture = Record<number, any>;
47
+ //# sourceMappingURL=image-texture-cube.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-texture-cube.d.ts","sourceRoot":"","sources":["../../../src/lib/composite-image/image-texture-cube.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3E,MAAM,MAAM,8BAA8B,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpG,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B3B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export const GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
5
+ export const GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
6
+ export const GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
7
+ export const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
8
+ export const GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
9
+ export const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851a;
10
+ export const IMAGE_TEXTURE_CUBE_FACES = [
11
+ {
12
+ face: GL_TEXTURE_CUBE_MAP_POSITIVE_X,
13
+ name: '+X',
14
+ direction: 'right',
15
+ axis: 'x',
16
+ sign: 'positive'
17
+ },
18
+ {
19
+ face: GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
20
+ name: '-X',
21
+ direction: 'left',
22
+ axis: 'x',
23
+ sign: 'negative'
24
+ },
25
+ { face: GL_TEXTURE_CUBE_MAP_POSITIVE_Y, name: '+Y', direction: 'top', axis: 'y', sign: 'positive' },
26
+ {
27
+ face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
28
+ name: '-Y',
29
+ direction: 'bottom',
30
+ axis: 'y',
31
+ sign: 'negative'
32
+ },
33
+ {
34
+ face: GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
35
+ name: '+Z',
36
+ direction: 'front',
37
+ axis: 'z',
38
+ sign: 'positive'
39
+ },
40
+ { face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, name: '-Z', direction: 'back', axis: 'z', sign: 'negative' }
41
+ ];
42
+ //# sourceMappingURL=image-texture-cube.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-texture-cube.js","sourceRoot":"","sources":["../../../src/lib/composite-image/image-texture-cube.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAMrD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC;QACE,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,UAAU;KACjB;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,UAAU;KACjB;IACD,EAAC,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAC;IACjG;QACE,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,UAAU;KACjB;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,UAAU;KACjB;IACD,EAAC,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAC;CAC1F,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { LoaderContext } from '@loaders.gl/loader-utils';
2
+ import type { Texture } from '@loaders.gl/schema';
3
+ import type { TextureLoaderOptions } from "../texture-api/texture-api-types.js";
4
+ import { type ImageCubeTexture, type ImageTextureCubeDirectionAlias, type ImageTextureCubeFace } from "./image-texture-cube.js";
5
+ export type ImageTextureTemplateSource = {
6
+ mipLevels: number | 'auto';
7
+ template: string;
8
+ };
9
+ export type ImageTextureSource = string | string[] | ImageTextureTemplateSource;
10
+ export type ImageTextureManifest = {
11
+ shape: 'image-texture';
12
+ image?: string;
13
+ mipLevels?: number | 'auto';
14
+ template?: string;
15
+ mipmaps?: string[];
16
+ };
17
+ export type ImageTextureArrayManifest = {
18
+ shape: 'image-texture-array';
19
+ layers: ImageTextureSource[];
20
+ };
21
+ export type ImageTextureCubeFaces = Partial<Record<ImageTextureCubeFace | ImageTextureCubeDirectionAlias, ImageTextureSource>>;
22
+ export type ImageTextureCubeManifest = {
23
+ shape: 'image-texture-cube';
24
+ faces: ImageTextureCubeFaces;
25
+ };
26
+ export type ImageTextureCubeArrayLayer = {
27
+ faces: ImageTextureCubeFaces;
28
+ };
29
+ export type ImageTextureCubeArrayManifest = {
30
+ shape: 'image-texture-cube-array';
31
+ layers: ImageTextureCubeArrayLayer[];
32
+ };
33
+ export type CompositeImageManifest = ImageTextureManifest | ImageTextureArrayManifest | ImageTextureCubeManifest | ImageTextureCubeArrayManifest;
34
+ export type CompositeImageUrlTree = ImageTextureSource | ImageTextureSource[] | ImageCubeTexture | ImageCubeTexture[];
35
+ export declare function parseCompositeImageManifest(text: string, expectedShape: CompositeImageManifest['shape'], options?: TextureLoaderOptions, context?: LoaderContext): Promise<any>;
36
+ export declare function testCompositeImageManifestShape(text: string, shape: CompositeImageManifest['shape']): boolean;
37
+ export declare function loadCompositeImageManifest(manifest: CompositeImageManifest, options?: TextureLoaderOptions, context?: LoaderContext): Promise<Texture>;
38
+ export declare function loadCompositeImageUrlTree(urlTree: CompositeImageUrlTree, options?: TextureLoaderOptions, context?: LoaderContext): Promise<any>;
39
+ export declare function loadCompositeImageMember(url: string, options?: TextureLoaderOptions, context?: LoaderContext): Promise<any>;
40
+ export declare function getCompositeImageUrlTree(manifest: CompositeImageManifest, options?: TextureLoaderOptions, context?: LoaderContext): Promise<CompositeImageUrlTree>;
41
+ export declare function normalizeCompositeImageOptions(options?: TextureLoaderOptions): TextureLoaderOptions;
42
+ export declare function resolveCompositeImageUrl(url: string, options?: TextureLoaderOptions, context?: LoaderContext): string;
43
+ //# sourceMappingURL=parse-composite-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-composite-image.d.ts","sourceRoot":"","sources":["../../../src/lib/composite-image/parse-composite-image.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,437 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { parseFromContext, path, resolvePath } from '@loaders.gl/loader-utils';
5
+ import { ImageLoader, getImageSize, isImage } from '@loaders.gl/images';
6
+ import { asyncDeepMap } from "../texture-api/async-deep-map.js";
7
+ import { IMAGE_TEXTURE_CUBE_FACES } from "./image-texture-cube.js";
8
+ export async function parseCompositeImageManifest(text, expectedShape, options = {}, context) {
9
+ const manifest = parseCompositeImageManifestJSON(text);
10
+ if (manifest.shape !== expectedShape) {
11
+ throw new Error(`Expected ${expectedShape} manifest, got ${manifest.shape}`);
12
+ }
13
+ return await loadCompositeImageManifest(manifest, options, context);
14
+ }
15
+ export function testCompositeImageManifestShape(text, shape) {
16
+ try {
17
+ return parseCompositeImageManifestJSON(text).shape === shape;
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ export async function loadCompositeImageManifest(manifest, options = {}, context) {
24
+ const normalizedOptions = normalizeCompositeImageManifestOptions(options);
25
+ const urlTree = await getCompositeImageUrlTree(manifest, normalizedOptions, context);
26
+ const imageData = await loadCompositeImageUrlTree(urlTree, normalizedOptions, context);
27
+ return convertCompositeImageToTexture(manifest.shape, imageData);
28
+ }
29
+ export async function loadCompositeImageUrlTree(urlTree, options = {}, context) {
30
+ const normalizedOptions = normalizeCompositeImageOptions(options);
31
+ return await asyncDeepMap(urlTree, async (url) => await loadCompositeImageMember(url, normalizedOptions, context));
32
+ }
33
+ export async function loadCompositeImageMember(url, options = {}, context) {
34
+ const resolvedUrl = resolveCompositeImageUrl(url, options, context);
35
+ const fetch = getCompositeImageFetch(options, context);
36
+ const response = await fetch(resolvedUrl);
37
+ const subloaderOptions = getCompositeImageSubloaderOptions(options);
38
+ if (context) {
39
+ const childContext = getCompositeImageMemberContext(resolvedUrl, response, context);
40
+ return await parseFromContext(response, [ImageLoader], subloaderOptions, childContext);
41
+ }
42
+ const arrayBuffer = await response.arrayBuffer();
43
+ return await ImageLoader.parse(arrayBuffer, subloaderOptions);
44
+ }
45
+ export async function getCompositeImageUrlTree(manifest, options = {}, context) {
46
+ switch (manifest.shape) {
47
+ case 'image-texture':
48
+ return await getImageTextureSource(manifest, options, context);
49
+ case 'image-texture-array':
50
+ if (!Array.isArray(manifest.layers) || manifest.layers.length === 0) {
51
+ throw new Error('image-texture-array manifest must define one or more layers');
52
+ }
53
+ return await Promise.all(manifest.layers.map(async (layer, index) => await getNormalizedImageTextureSource(layer, options, context, { index })));
54
+ case 'image-texture-cube':
55
+ return await getImageTextureCubeUrls(manifest, options, context);
56
+ case 'image-texture-cube-array':
57
+ if (!Array.isArray(manifest.layers) || manifest.layers.length === 0) {
58
+ throw new Error('image-texture-cube-array manifest must define one or more layers');
59
+ }
60
+ return await Promise.all(manifest.layers.map(async (layer, index) => await getImageTextureCubeUrls(layer, options, context, { index })));
61
+ default:
62
+ throw new Error('Unsupported composite image manifest');
63
+ }
64
+ }
65
+ export function normalizeCompositeImageOptions(options = {}) {
66
+ if (options.core?.baseUrl) {
67
+ return options;
68
+ }
69
+ const fallbackBaseUrl = options.baseUrl;
70
+ if (!fallbackBaseUrl) {
71
+ return options;
72
+ }
73
+ return {
74
+ ...options,
75
+ core: {
76
+ ...options.core,
77
+ baseUrl: fallbackBaseUrl
78
+ }
79
+ };
80
+ }
81
+ export function resolveCompositeImageUrl(url, options = {}, context) {
82
+ const resolvedUrl = resolvePath(url);
83
+ if (isAbsoluteCompositeImageUrl(url)) {
84
+ return resolvedUrl;
85
+ }
86
+ const baseUrl = getCompositeImageBaseUrl(options, context);
87
+ if (!baseUrl) {
88
+ if (resolvedUrl !== url || url.startsWith('@')) {
89
+ return resolvedUrl;
90
+ }
91
+ throw new Error(`Unable to resolve relative image URL ${url} without a base URL`);
92
+ }
93
+ return resolvePath(joinCompositeImageUrl(baseUrl, url));
94
+ }
95
+ function parseCompositeImageManifestJSON(text) {
96
+ const manifest = JSON.parse(text);
97
+ if (!manifest?.shape) {
98
+ throw new Error('Composite image manifest must contain a shape field');
99
+ }
100
+ return manifest;
101
+ }
102
+ async function getImageTextureSource(manifest, options, context) {
103
+ if ((manifest.image || manifest.mipmaps) && manifest.template) {
104
+ throw new Error('image-texture manifest must define image, mipmaps, or template source');
105
+ }
106
+ if (manifest.image && manifest.mipmaps) {
107
+ throw new Error('image-texture manifest must define image, mipmaps, or template source');
108
+ }
109
+ if (manifest.image) {
110
+ return manifest.image;
111
+ }
112
+ if (manifest.mipmaps?.length) {
113
+ return manifest.mipmaps;
114
+ }
115
+ if (manifest.template) {
116
+ return await expandImageTextureSource({ mipLevels: manifest.mipLevels ?? 'auto', template: manifest.template }, options, context, {});
117
+ }
118
+ throw new Error('image-texture manifest must define image, mipmaps, or template source');
119
+ }
120
+ async function getImageTextureCubeUrls(manifest, options, context, templateOptions = {}) {
121
+ const urls = {};
122
+ for (const { face, name, direction, axis, sign } of IMAGE_TEXTURE_CUBE_FACES) {
123
+ const source = manifest.faces?.[name] || manifest.faces?.[direction];
124
+ if (!source) {
125
+ throw new Error(`image-texture-cube manifest is missing ${name} face`);
126
+ }
127
+ urls[face] = await getNormalizedImageTextureSource(source, options, context, {
128
+ ...templateOptions,
129
+ face: name,
130
+ direction,
131
+ axis,
132
+ sign
133
+ });
134
+ }
135
+ return urls;
136
+ }
137
+ async function getNormalizedImageTextureSource(source, options, context, templateOptions) {
138
+ if (typeof source === 'string') {
139
+ return source;
140
+ }
141
+ if (Array.isArray(source) && source.length > 0) {
142
+ return source;
143
+ }
144
+ if (isImageTextureTemplateSource(source)) {
145
+ return await expandImageTextureSource(source, options, context, templateOptions);
146
+ }
147
+ throw new Error('Composite image source entries must be strings or non-empty mip arrays');
148
+ }
149
+ async function expandImageTextureSource(source, options, context, templateOptions) {
150
+ const mipLevels = source.mipLevels === 'auto'
151
+ ? await getAutoMipLevels(source.template, options, context, templateOptions)
152
+ : source.mipLevels;
153
+ if (!Number.isFinite(mipLevels) || mipLevels <= 0) {
154
+ throw new Error(`Invalid mipLevels value ${source.mipLevels}`);
155
+ }
156
+ const urls = [];
157
+ for (let lod = 0; lod < mipLevels; lod++) {
158
+ urls.push(expandTemplate(source.template, { ...templateOptions, lod }));
159
+ }
160
+ return urls;
161
+ }
162
+ async function getAutoMipLevels(template, options, context, templateOptions) {
163
+ if (!template.includes('{lod}')) {
164
+ throw new Error('Template sources with mipLevels: auto must include a {lod} placeholder');
165
+ }
166
+ const level0Url = expandTemplate(template, { ...templateOptions, lod: 0 });
167
+ const image = await loadCompositeImageMember(level0Url, normalizeCompositeImageOptions(options), context);
168
+ const { width, height } = getImageSize(image);
169
+ return 1 + Math.floor(Math.log2(Math.max(width, height)));
170
+ }
171
+ function expandTemplate(template, templateOptions) {
172
+ let expanded = '';
173
+ for (let index = 0; index < template.length; index++) {
174
+ const character = template[index];
175
+ if (character === '\\') {
176
+ const nextCharacter = template[index + 1];
177
+ if (nextCharacter === '{' || nextCharacter === '}' || nextCharacter === '\\') {
178
+ expanded += nextCharacter;
179
+ index++;
180
+ continue;
181
+ }
182
+ throw new Error(`Invalid escape sequence \\${nextCharacter || ''} in template ${template}`);
183
+ }
184
+ if (character === '}') {
185
+ throw new Error(`Unexpected } in template ${template}`);
186
+ }
187
+ if (character !== '{') {
188
+ expanded += character;
189
+ continue;
190
+ }
191
+ const closingBraceIndex = findClosingBraceIndex(template, index + 1);
192
+ if (closingBraceIndex < 0) {
193
+ throw new Error(`Unterminated placeholder in template ${template}`);
194
+ }
195
+ const placeholder = template.slice(index + 1, closingBraceIndex);
196
+ if (!/^[a-z][a-zA-Z0-9]*$/.test(placeholder)) {
197
+ throw new Error(`Invalid placeholder {${placeholder}} in template ${template}`);
198
+ }
199
+ const value = getTemplateValue(placeholder, templateOptions);
200
+ if (value === undefined) {
201
+ throw new Error(`Template ${template} uses unsupported placeholder {${placeholder}} for this source`);
202
+ }
203
+ expanded += String(value);
204
+ index = closingBraceIndex;
205
+ }
206
+ return expanded;
207
+ }
208
+ function findClosingBraceIndex(template, startIndex) {
209
+ for (let index = startIndex; index < template.length; index++) {
210
+ const character = template[index];
211
+ if (character === '\\') {
212
+ index++;
213
+ continue;
214
+ }
215
+ if (character === '{') {
216
+ throw new Error(`Nested placeholders are not supported in template ${template}`);
217
+ }
218
+ if (character === '}') {
219
+ return index;
220
+ }
221
+ }
222
+ return -1;
223
+ }
224
+ function getTemplateValue(placeholder, templateOptions) {
225
+ switch (placeholder) {
226
+ case 'lod':
227
+ return templateOptions.lod;
228
+ case 'index':
229
+ return templateOptions.index;
230
+ case 'face':
231
+ return templateOptions.face;
232
+ case 'direction':
233
+ return templateOptions.direction;
234
+ case 'axis':
235
+ return templateOptions.axis;
236
+ case 'sign':
237
+ return templateOptions.sign;
238
+ default:
239
+ return undefined;
240
+ }
241
+ }
242
+ function isImageTextureTemplateSource(source) {
243
+ return typeof source === 'object' && source !== null && !Array.isArray(source);
244
+ }
245
+ function getCompositeImageBaseUrl(options, context) {
246
+ if (context?.baseUrl) {
247
+ return context.baseUrl;
248
+ }
249
+ if (options.baseUrl) {
250
+ return stripTrailingSlash(options.baseUrl);
251
+ }
252
+ if (options.core?.baseUrl) {
253
+ return getSourceUrlDirectory(options.core.baseUrl);
254
+ }
255
+ return null;
256
+ }
257
+ function stripTrailingSlash(baseUrl) {
258
+ if (baseUrl.endsWith('/')) {
259
+ return baseUrl.slice(0, -1);
260
+ }
261
+ return baseUrl;
262
+ }
263
+ function getSourceUrlDirectory(baseUrl) {
264
+ return stripTrailingSlash(path.dirname(baseUrl));
265
+ }
266
+ function joinCompositeImageUrl(baseUrl, url) {
267
+ if (isRequestLikeUrl(baseUrl)) {
268
+ return new URL(url, `${stripTrailingSlash(baseUrl)}/`).toString();
269
+ }
270
+ const normalizedBaseUrl = baseUrl.startsWith('/') ? baseUrl : `/${baseUrl}`;
271
+ const normalizedUrl = path.resolve(normalizedBaseUrl, url);
272
+ return baseUrl.startsWith('/') ? normalizedUrl : normalizedUrl.slice(1);
273
+ }
274
+ function isRequestLikeUrl(url) {
275
+ return (url.startsWith('http:') ||
276
+ url.startsWith('https:') ||
277
+ url.startsWith('file:') ||
278
+ url.startsWith('blob:'));
279
+ }
280
+ function getCompositeImageFetch(options, context) {
281
+ const fetchOption = options.fetch ?? options.core?.fetch;
282
+ if (context?.fetch) {
283
+ return context.fetch;
284
+ }
285
+ if (typeof fetchOption === 'function') {
286
+ return fetchOption;
287
+ }
288
+ if (fetchOption && typeof fetchOption === 'object') {
289
+ return (url) => fetch(url, fetchOption);
290
+ }
291
+ return fetch;
292
+ }
293
+ function getCompositeImageSubloaderOptions(options) {
294
+ const core = options.core;
295
+ const rest = { ...options };
296
+ delete rest.baseUrl;
297
+ if (!core?.baseUrl) {
298
+ return rest;
299
+ }
300
+ const restCore = { ...core };
301
+ delete restCore.baseUrl;
302
+ return {
303
+ ...rest,
304
+ core: restCore
305
+ };
306
+ }
307
+ function normalizeCompositeImageManifestOptions(options) {
308
+ if (options.image?.type || typeof ImageBitmap === 'undefined') {
309
+ return options;
310
+ }
311
+ return {
312
+ ...options,
313
+ image: {
314
+ ...options.image,
315
+ type: 'imagebitmap'
316
+ }
317
+ };
318
+ }
319
+ function getCompositeImageMemberContext(resolvedUrl, response, context) {
320
+ const url = response.url || resolvedUrl;
321
+ const [urlWithoutQueryString, queryString = ''] = url.split('?');
322
+ return {
323
+ ...context,
324
+ url,
325
+ response,
326
+ filename: path.filename(urlWithoutQueryString),
327
+ baseUrl: path.dirname(urlWithoutQueryString),
328
+ queryString
329
+ };
330
+ }
331
+ function convertCompositeImageToTexture(shape, imageData) {
332
+ switch (shape) {
333
+ case 'image-texture': {
334
+ const data = normalizeCompositeImageMember(imageData);
335
+ return {
336
+ shape: 'texture',
337
+ type: '2d',
338
+ format: getCompositeTextureFormat(data),
339
+ data
340
+ };
341
+ }
342
+ case 'image-texture-array': {
343
+ const data = imageData.map((layer) => normalizeCompositeImageMember(layer));
344
+ return {
345
+ shape: 'texture',
346
+ type: '2d-array',
347
+ format: getCompositeTextureFormat(data[0]),
348
+ data
349
+ };
350
+ }
351
+ case 'image-texture-cube': {
352
+ const data = IMAGE_TEXTURE_CUBE_FACES.map(({ face }) => normalizeCompositeImageMember(imageData[face]));
353
+ return {
354
+ shape: 'texture',
355
+ type: 'cube',
356
+ format: getCompositeTextureFormat(data[0]),
357
+ data
358
+ };
359
+ }
360
+ case 'image-texture-cube-array': {
361
+ const data = imageData.map((layer) => IMAGE_TEXTURE_CUBE_FACES.map(({ face }) => normalizeCompositeImageMember(layer[face])));
362
+ return {
363
+ shape: 'texture',
364
+ type: 'cube-array',
365
+ format: getCompositeTextureFormat(data[0][0]),
366
+ data
367
+ };
368
+ }
369
+ default:
370
+ throw new Error(`Unsupported composite image shape ${shape}`);
371
+ }
372
+ }
373
+ function normalizeCompositeImageMember(imageData) {
374
+ if (Array.isArray(imageData)) {
375
+ if (imageData.length === 0) {
376
+ throw new Error('Composite image members must not be empty');
377
+ }
378
+ if (imageData.every(isTextureLevel)) {
379
+ return imageData;
380
+ }
381
+ if (imageData.every(isImage)) {
382
+ return imageData.map((image) => getTextureLevelFromImage(image));
383
+ }
384
+ if (imageData.every((entry) => Array.isArray(entry) && entry.every(isTextureLevel))) {
385
+ if (imageData.length !== 1) {
386
+ throw new Error('Composite image members must resolve to a single image or mip chain');
387
+ }
388
+ return imageData[0];
389
+ }
390
+ }
391
+ if (isTexture(imageData)) {
392
+ if (imageData.type !== '2d') {
393
+ throw new Error(`Composite image members must resolve to 2d textures, got ${imageData.type}`);
394
+ }
395
+ return imageData.data;
396
+ }
397
+ if (isTextureLevel(imageData)) {
398
+ return [imageData];
399
+ }
400
+ if (isImage(imageData)) {
401
+ return [getTextureLevelFromImage(imageData)];
402
+ }
403
+ throw new Error('Composite image members must resolve to an image, mip chain, or texture');
404
+ }
405
+ function getTextureLevelFromImage(image) {
406
+ const { width, height } = getImageSize(image);
407
+ return {
408
+ shape: 'texture-level',
409
+ compressed: false,
410
+ width,
411
+ height,
412
+ imageBitmap: typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ? image : undefined,
413
+ data: new Uint8Array(0),
414
+ textureFormat: 'rgba8unorm'
415
+ };
416
+ }
417
+ function getCompositeTextureFormat(textureLevels) {
418
+ return textureLevels[0]?.textureFormat || 'rgba8unorm';
419
+ }
420
+ function isTextureLevel(textureLevel) {
421
+ return Boolean(textureLevel &&
422
+ typeof textureLevel === 'object' &&
423
+ 'shape' in textureLevel &&
424
+ textureLevel.shape === 'texture-level');
425
+ }
426
+ function isTexture(texture) {
427
+ return Boolean(texture && typeof texture === 'object' && 'shape' in texture && texture.shape === 'texture');
428
+ }
429
+ function isAbsoluteCompositeImageUrl(url) {
430
+ return (url.startsWith('data:') ||
431
+ url.startsWith('blob:') ||
432
+ url.startsWith('file:') ||
433
+ url.startsWith('http:') ||
434
+ url.startsWith('https:') ||
435
+ url.startsWith('/'));
436
+ }
437
+ //# sourceMappingURL=parse-composite-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-composite-image.js","sourceRoot":"","sources":["../../../src/lib/composite-image/parse-composite-image.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAC,YAAY,EAAC,yCAAsC;AAE3D,OAAO,EACL,wBAAwB,EAIzB,gCAA6B;AAoD9B,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAY,EACZ,aAA8C,EAC9C,UAAgC,EAAE,EAClC,OAAuB;IAEvB,MAAM,QAAQ,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,YAAY,aAAa,kBAAkB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,MAAM,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,IAAY,EACZ,KAAsC;IAEtC,IAAI,CAAC;QACH,OAAO,+BAA+B,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAgC,EAChC,UAAgC,EAAE,EAClC,OAAuB;IAEvB,MAAM,iBAAiB,GAAG,sCAAsC,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACvF,OAAO,8BAA8B,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAA8B,EAC9B,UAAgC,EAAE,EAClC,OAAuB;IAEvB,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAClE,OAAO,MAAM,YAAY,CACvB,OAAO,EACP,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,CACvF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAW,EACX,UAAgC,EAAE,EAClC,OAAuB;IAEvB,MAAM,WAAW,GAAG,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAAG,8BAA8B,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpF,OAAO,MAAM,gBAAgB,CAC3B,QAAe,EACf,CAAC,WAAW,CAAC,EACb,gBAAuB,EACvB,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAuB,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgC,EAChC,UAAgC,EAAE,EAClC,OAAuB;IAEvB,QAAQ,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,eAAe;YAClB,OAAO,MAAM,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEjE,KAAK,qBAAqB;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,CACjB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CACrB,MAAM,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAC,KAAK,EAAC,CAAC,CAC1E,CACF,CAAC;QAEJ,KAAK,oBAAoB;YACvB,OAAO,MAAM,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEnE,KAAK,0BAA0B;YAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,CACjB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAC,KAAK,EAAC,CAAC,CACxF,CACF,CAAC;QAEJ;YACE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,UAAgC,EAAE;IAElC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,IAAI,EAAE;YACJ,GAAG,OAAO,CAAC,IAAI;YACf,OAAO,EAAE,eAAe;SACzB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,GAAW,EACX,UAAgC,EAAE,EAClC,OAAuB;IAEvB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,WAAW,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,qBAAqB,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,WAAW,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAY;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,QAA8B,EAC9B,OAA6B,EAC7B,OAAuB;IAEvB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,MAAM,wBAAwB,CACnC,EAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAC,EACtE,OAAO,EACP,OAAO,EACP,EAAE,CACH,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC3F,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAAiD,EACjD,OAA6B,EAC7B,OAAuB,EACvB,kBAAmC,EAAE;IAErC,MAAM,IAAI,GAAqB,EAAE,CAAC;IAElC,KAAK,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,wBAAwB,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,OAAO,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,+BAA+B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;YAC3E,GAAG,eAAe;YAClB,IAAI,EAAE,IAAI;YACV,SAAS;YACT,IAAI;YACJ,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,MAA0B,EAC1B,OAA6B,EAC7B,OAAkC,EAClC,eAAgC;IAEhC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,4BAA4B,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,MAAkC,EAClC,OAA6B,EAC7B,OAAkC,EAClC,eAAgC;IAEhC,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,KAAK,MAAM;QACzB,CAAC,CAAC,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC;QAC5E,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IAEvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAC,GAAG,eAAe,EAAE,GAAG,EAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,QAAgB,EAChB,OAA6B,EAC7B,OAAkC,EAClC,eAAgC;IAEhC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,EAAE,EAAC,GAAG,eAAe,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAC1C,SAAS,EACT,8BAA8B,CAAC,OAAO,CAAC,EACvC,OAAO,CACR,CAAC;IACF,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAWD,SAAS,cAAc,CAAC,QAAgB,EAAE,eAAgC;IACxE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC1C,IAAI,aAAa,KAAK,GAAG,IAAI,aAAa,KAAK,GAAG,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC7E,QAAQ,IAAI,aAAa,CAAC;gBAC1B,KAAK,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,aAAa,IAAI,EAAE,gBAAgB,QAAQ,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,QAAQ,IAAI,SAAS,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrE,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACjE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,YAAY,QAAQ,kCAAkC,WAAW,mBAAmB,CACrF,CAAC;QACJ,CAAC;QAED,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,GAAG,iBAAiB,CAAC;IAC5B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB,EAAE,UAAkB;IACjE,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,KAAK,EAAE,CAAC;YACR,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,QAAQ,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CACvB,WAAmB,EACnB,eAAgC;IAEhC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,KAAK;YACR,OAAO,eAAe,CAAC,GAAG,CAAC;QAC7B,KAAK,OAAO;YACV,OAAO,eAAe,CAAC,KAAK,CAAC;QAC/B,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,IAAI,CAAC;QAC9B,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,SAAS,CAAC;QACnC,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,IAAI,CAAC;QAC9B,KAAK,MAAM;YACT,OAAO,eAAe,CAAC,IAAI,CAAC;QAC9B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,MAA0B;IAE1B,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAA6B,EAC7B,OAAuB;IAEvB,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,GAAW;IACzD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;IAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,CACL,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CACxB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAA6B,EAC7B,OAAuB;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IAEzD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,KAAqB,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,WAA2B,CAAC;IACrC,CAAC;IAED,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iCAAiC,CAAC,OAA6B;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,EAAC,GAAG,OAAO,EAAC,CAAC;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC;IACpB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,EAAC,GAAG,IAAI,EAAC,CAAC;IAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC;IACxB,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,OAA6B;IAE7B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;QAC9D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE;YACL,GAAG,OAAO,CAAC,KAAK;YAChB,IAAI,EAAE,aAAa;SACpB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,WAAmB,EACnB,QAAkB,EAClB,OAAsB;IAEtB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,WAAW,CAAC;IACxC,MAAM,CAAC,qBAAqB,EAAE,WAAW,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjE,OAAO;QACL,GAAG,OAAO;QACV,GAAG;QACH,QAAQ;QACR,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC9C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAC5C,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAsC,EACtC,SAAc;IAEd,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,6BAA6B,CAAC,SAAS,CAAC,CAAC;YACtD,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,yBAAyB,CAAC,IAAI,CAAC;gBACvC,IAAI;aACL,CAAC;QACJ,CAAC;QAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI;aACL,CAAC;QACJ,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CACnD,6BAA6B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI;aACL,CAAC;QACJ,CAAC;QAED,KAAK,0BAA0B,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACrF,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI;aACL,CAAC;QACJ,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,SAAc;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YACpF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACzF,CAAC;YACD,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4DAA4D,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAgB;IAChD,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE,KAAK;QACjB,KAAK;QACL,MAAM;QACN,WAAW,EACT,OAAO,WAAW,KAAK,WAAW,IAAI,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACxF,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;QACvB,aAAa,EAAE,YAAY;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,aAA6B;IAC9D,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,YAAY,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,YAAqB;IAC3C,OAAO,OAAO,CACZ,YAAY;QACZ,OAAO,YAAY,KAAK,QAAQ;QAChC,OAAO,IAAI,YAAY;QACvB,YAAY,CAAC,KAAK,KAAK,eAAe,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAgB;IACjC,OAAO,OAAO,CACZ,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAC5F,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAW;IAC9C,OAAO,CACL,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CACpB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-ktx2-basis-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAC,KAAK,sBAAsB,EAAC,mCAAgC;AAEpE;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
1
+ {"version":3,"file":"encode-ktx2-basis-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAC,KAAK,sBAAsB,EAAC,mCAAgC;AAEpE;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,WAAW,CAAC,CAmCtB"}