@loaders.gl/i3s 4.0.0-alpha.8 → 4.0.0-beta.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 (213) hide show
  1. package/dist/dist.min.js +4925 -445
  2. package/dist/es5/arcgis-webscene-loader.js +4 -4
  3. package/dist/es5/arcgis-webscene-loader.js.map +1 -1
  4. package/dist/es5/i3s-attribute-loader.js +1 -1
  5. package/dist/es5/i3s-attribute-loader.js.map +1 -1
  6. package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
  7. package/dist/es5/i3s-building-scene-layer-loader.js.map +1 -1
  8. package/dist/es5/i3s-content-loader.js +1 -1
  9. package/dist/es5/i3s-content-loader.js.map +1 -1
  10. package/dist/es5/i3s-loader.js +6 -6
  11. package/dist/es5/i3s-loader.js.map +1 -1
  12. package/dist/es5/i3s-node-page-loader.js +14 -12
  13. package/dist/es5/i3s-node-page-loader.js.map +1 -1
  14. package/dist/es5/i3s-slpk-loader.js +30 -2
  15. package/dist/es5/i3s-slpk-loader.js.map +1 -1
  16. package/dist/es5/index.js +9 -2
  17. package/dist/es5/index.js.map +1 -1
  18. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js +9 -5
  19. package/dist/es5/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  20. package/dist/es5/lib/parsers/constants.js +14 -15
  21. package/dist/es5/lib/parsers/constants.js.map +1 -1
  22. package/dist/es5/lib/parsers/parse-arcgis-webscene.js.map +1 -1
  23. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +34 -31
  24. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  25. package/dist/es5/lib/parsers/parse-i3s.js +31 -19
  26. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
  27. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +42 -67
  28. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  29. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +76 -51
  30. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  31. package/dist/es5/lib/utils/customize-/321/201olors.js.map +1 -1
  32. package/dist/es5/lib/utils/url-utils.js +3 -3
  33. package/dist/es5/lib/utils/url-utils.js.map +1 -1
  34. package/dist/es5/types.js +1 -14
  35. package/dist/es5/types.js.map +1 -1
  36. package/dist/esm/arcgis-webscene-loader.js +2 -2
  37. package/dist/esm/arcgis-webscene-loader.js.map +1 -1
  38. package/dist/esm/i3s-attribute-loader.js +1 -1
  39. package/dist/esm/i3s-attribute-loader.js.map +1 -1
  40. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  41. package/dist/esm/i3s-building-scene-layer-loader.js.map +1 -1
  42. package/dist/esm/i3s-content-loader.js +1 -1
  43. package/dist/esm/i3s-content-loader.js.map +1 -1
  44. package/dist/esm/i3s-loader.js +3 -4
  45. package/dist/esm/i3s-loader.js.map +1 -1
  46. package/dist/esm/i3s-node-page-loader.js +7 -5
  47. package/dist/esm/i3s-node-page-loader.js.map +1 -1
  48. package/dist/esm/i3s-slpk-loader.js +8 -2
  49. package/dist/esm/i3s-slpk-loader.js.map +1 -1
  50. package/dist/esm/index.js +2 -1
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js +9 -5
  53. package/dist/esm/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  54. package/dist/esm/lib/parsers/constants.js +14 -15
  55. package/dist/esm/lib/parsers/constants.js.map +1 -1
  56. package/dist/esm/lib/parsers/parse-arcgis-webscene.js.map +1 -1
  57. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +5 -2
  58. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  59. package/dist/esm/lib/parsers/parse-i3s.js +23 -12
  60. package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
  61. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +19 -33
  62. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  63. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +23 -32
  64. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  65. package/dist/esm/lib/utils/customize-/321/201olors.js.map +1 -1
  66. package/dist/esm/lib/utils/url-utils.js +2 -3
  67. package/dist/esm/lib/utils/url-utils.js.map +1 -1
  68. package/dist/esm/types.js +0 -12
  69. package/dist/esm/types.js.map +1 -1
  70. package/dist/i3s-content-worker-node.js +47 -47
  71. package/dist/i3s-content-worker-node.js.map +3 -3
  72. package/dist/i3s-content-worker.js +191 -126
  73. package/dist/src/arcgis-webscene-loader.d.ts +9 -0
  74. package/dist/src/arcgis-webscene-loader.d.ts.map +1 -0
  75. package/dist/src/bundle.d.ts.map +1 -0
  76. package/dist/{i3s-attribute-loader.d.ts → src/i3s-attribute-loader.d.ts} +3 -2
  77. package/dist/src/i3s-attribute-loader.d.ts.map +1 -0
  78. package/dist/src/i3s-building-scene-layer-loader.d.ts +8 -0
  79. package/dist/src/i3s-building-scene-layer-loader.d.ts.map +1 -0
  80. package/dist/src/i3s-content-loader.d.ts +8 -0
  81. package/dist/src/i3s-content-loader.d.ts.map +1 -0
  82. package/dist/src/i3s-loader.d.ts +11 -0
  83. package/dist/src/i3s-loader.d.ts.map +1 -0
  84. package/dist/src/i3s-node-page-loader.d.ts +8 -0
  85. package/dist/src/i3s-node-page-loader.d.ts.map +1 -0
  86. package/dist/src/i3s-slpk-loader.d.ts +15 -0
  87. package/dist/src/i3s-slpk-loader.d.ts.map +1 -0
  88. package/dist/src/index.d.ts +12 -0
  89. package/dist/src/index.d.ts.map +1 -0
  90. package/dist/{lib → src/lib}/helpers/i3s-nodepages-tiles.d.ts +5 -3
  91. package/dist/src/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
  92. package/dist/src/lib/parsers/constants.d.ts.map +1 -0
  93. package/dist/src/lib/parsers/parse-arcgis-webscene.d.ts +7 -0
  94. package/dist/src/lib/parsers/parse-arcgis-webscene.d.ts.map +1 -0
  95. package/dist/src/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
  96. package/dist/src/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
  97. package/dist/{lib → src/lib}/parsers/parse-i3s-tile-content.d.ts +1 -1
  98. package/dist/src/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
  99. package/dist/{lib → src/lib}/parsers/parse-i3s.d.ts +2 -2
  100. package/dist/src/lib/parsers/parse-i3s.d.ts.map +1 -0
  101. package/dist/src/lib/parsers/parse-slpk/parse-slpk.d.ts +10 -0
  102. package/dist/src/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -0
  103. package/dist/{lib → src/lib}/parsers/parse-slpk/slpk-archieve.d.ts +6 -12
  104. package/dist/src/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -0
  105. package/dist/src/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +1 -0
  106. package/dist/src/lib/utils/customize-/321/201olors.d.ts.map +1 -0
  107. package/dist/{lib → src/lib}/utils/url-utils.d.ts +5 -4
  108. package/dist/src/lib/utils/url-utils.d.ts.map +1 -0
  109. package/dist/{types.d.ts → src/types.d.ts} +138 -74
  110. package/dist/src/types.d.ts.map +1 -0
  111. package/dist/src/workers/i3s-content-worker-node.d.ts.map +1 -0
  112. package/dist/src/workers/i3s-content-worker.d.ts.map +1 -0
  113. package/dist/tsconfig.tsbuildinfo +1 -0
  114. package/package.json +10 -10
  115. package/src/arcgis-webscene-loader.ts +12 -6
  116. package/src/i3s-attribute-loader.ts +2 -1
  117. package/src/i3s-building-scene-layer-loader.ts +6 -1
  118. package/src/i3s-content-loader.ts +3 -2
  119. package/src/i3s-loader.ts +6 -8
  120. package/src/i3s-node-page-loader.ts +9 -6
  121. package/src/i3s-slpk-loader.ts +21 -3
  122. package/src/index.ts +6 -2
  123. package/src/lib/helpers/i3s-nodepages-tiles.ts +16 -9
  124. package/src/lib/parsers/constants.ts +14 -15
  125. package/src/lib/parsers/parse-arcgis-webscene.ts +2 -2
  126. package/src/lib/parsers/parse-i3s-tile-content.ts +7 -9
  127. package/src/lib/parsers/parse-i3s.ts +30 -18
  128. package/src/lib/parsers/parse-slpk/parse-slpk.ts +43 -55
  129. package/src/lib/parsers/parse-slpk/slpk-archieve.ts +30 -62
  130. package/src/lib/utils/customize-/321/201olors.ts +2 -2
  131. package/src/lib/utils/url-utils.ts +6 -5
  132. package/src/types.ts +143 -91
  133. package/dist/arcgis-webscene-loader.d.ts +0 -7
  134. package/dist/arcgis-webscene-loader.d.ts.map +0 -1
  135. package/dist/arcgis-webscene-loader.js +0 -28
  136. package/dist/bundle.d.ts.map +0 -1
  137. package/dist/bundle.js +0 -5
  138. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +0 -44
  139. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +0 -1
  140. package/dist/es5/lib/parsers/parse-zip/local-file-header.js +0 -26
  141. package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +0 -1
  142. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +0 -37
  143. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +0 -1
  144. package/dist/esm/lib/parsers/parse-zip/local-file-header.js +0 -19
  145. package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +0 -1
  146. package/dist/i3s-attribute-loader.d.ts.map +0 -1
  147. package/dist/i3s-attribute-loader.js +0 -175
  148. package/dist/i3s-building-scene-layer-loader.d.ts +0 -6
  149. package/dist/i3s-building-scene-layer-loader.d.ts.map +0 -1
  150. package/dist/i3s-building-scene-layer-loader.js +0 -26
  151. package/dist/i3s-content-loader.d.ts +0 -6
  152. package/dist/i3s-content-loader.d.ts.map +0 -1
  153. package/dist/i3s-content-loader.js +0 -32
  154. package/dist/i3s-loader.d.ts +0 -11
  155. package/dist/i3s-loader.d.ts.map +0 -1
  156. package/dist/i3s-loader.js +0 -102
  157. package/dist/i3s-node-page-loader.d.ts +0 -7
  158. package/dist/i3s-node-page-loader.d.ts.map +0 -1
  159. package/dist/i3s-node-page-loader.js +0 -22
  160. package/dist/i3s-slpk-loader.d.ts +0 -13
  161. package/dist/i3s-slpk-loader.d.ts.map +0 -1
  162. package/dist/i3s-slpk-loader.js +0 -20
  163. package/dist/index.d.ts +0 -10
  164. package/dist/index.d.ts.map +0 -1
  165. package/dist/index.js +0 -21
  166. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +0 -1
  167. package/dist/lib/helpers/i3s-nodepages-tiles.js +0 -242
  168. package/dist/lib/parsers/constants.d.ts.map +0 -1
  169. package/dist/lib/parsers/constants.js +0 -89
  170. package/dist/lib/parsers/parse-arcgis-webscene.d.ts +0 -7
  171. package/dist/lib/parsers/parse-arcgis-webscene.d.ts.map +0 -1
  172. package/dist/lib/parsers/parse-arcgis-webscene.js +0 -88
  173. package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +0 -1
  174. package/dist/lib/parsers/parse-i3s-attribute.js +0 -99
  175. package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +0 -1
  176. package/dist/lib/parsers/parse-i3s-building-scene-layer.js +0 -46
  177. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +0 -1
  178. package/dist/lib/parsers/parse-i3s-tile-content.js +0 -499
  179. package/dist/lib/parsers/parse-i3s.d.ts.map +0 -1
  180. package/dist/lib/parsers/parse-i3s.js +0 -95
  181. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +0 -4
  182. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +0 -1
  183. package/dist/lib/parsers/parse-slpk/parse-slpk.js +0 -50
  184. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +0 -1
  185. package/dist/lib/parsers/parse-slpk/slpk-archieve.js +0 -142
  186. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +0 -38
  187. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +0 -1
  188. package/dist/lib/parsers/parse-zip/cd-file-header.js +0 -48
  189. package/dist/lib/parsers/parse-zip/local-file-header.d.ts +0 -30
  190. package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +0 -1
  191. package/dist/lib/parsers/parse-zip/local-file-header.js +0 -28
  192. package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +0 -1
  193. package/dist/lib/utils/convert-i3s-obb-to-mbs.js +0 -20
  194. package/dist/lib/utils/customize-/321/201olors.d.ts.map +0 -1
  195. package/dist/lib/utils/customize-/321/201olors.js +0 -104
  196. package/dist/lib/utils/url-utils.d.ts.map +0 -1
  197. package/dist/lib/utils/url-utils.js +0 -44
  198. package/dist/types.d.ts.map +0 -1
  199. package/dist/types.js +0 -20
  200. package/dist/workers/i3s-content-worker-node.d.ts.map +0 -1
  201. package/dist/workers/i3s-content-worker-node.js +0 -7
  202. package/dist/workers/i3s-content-worker.d.ts.map +0 -1
  203. package/dist/workers/i3s-content-worker.js +0 -5
  204. package/src/lib/parsers/parse-zip/cd-file-header.ts +0 -93
  205. package/src/lib/parsers/parse-zip/local-file-header.ts +0 -56
  206. /package/dist/{bundle.d.ts → src/bundle.d.ts} +0 -0
  207. /package/dist/{lib → src/lib}/parsers/constants.d.ts +0 -0
  208. /package/dist/{lib → src/lib}/parsers/parse-i3s-attribute.d.ts +0 -0
  209. /package/dist/{lib → src/lib}/parsers/parse-i3s-building-scene-layer.d.ts +0 -0
  210. /package/dist/{lib → src/lib}/utils/convert-i3s-obb-to-mbs.d.ts +0 -0
  211. /package/dist/{lib → src/lib}/utils/customize-/321/201olors.d.ts" +0 -0
  212. /package/dist/{workers → src/workers}/i3s-content-worker-node.d.ts +0 -0
  213. /package/dist/{workers → src/workers}/i3s-content-worker.d.ts +0 -0
package/src/types.ts CHANGED
@@ -1,29 +1,31 @@
1
1
  import type {Matrix4, Quaternion, Vector3} from '@math.gl/core';
2
2
  import type {TypedArray, MeshAttribute, TextureLevel} from '@loaders.gl/schema';
3
- import {Tile3D, Tileset3D} from '@loaders.gl/tiles';
4
-
5
- export enum DATA_TYPE {
6
- UInt8 = 'UInt8',
7
- UInt16 = 'UInt16',
8
- UInt32 = 'UInt32',
9
- UInt64 = 'UInt64',
10
- Int16 = 'Int16',
11
- Int32 = 'Int32',
12
- Int64 = 'Int64',
13
- Float32 = 'Float32',
14
- Float64 = 'Float64'
15
- }
3
+ import {TILESET_TYPE, TILE_REFINEMENT, TILE_TYPE, Tile3D, Tileset3D} from '@loaders.gl/tiles';
4
+ import I3SNodePagesTiles from './lib/helpers/i3s-nodepages-tiles';
5
+ import {LoaderWithParser} from '@loaders.gl/loader-utils';
16
6
 
17
7
  export type COLOR = [number, number, number, number];
18
8
 
19
9
  /**
20
- * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/3DSceneLayer.cmn.md
10
+ * Extension of SceneLayer3D JSON with postprocessed loader data
21
11
  */
22
- // TODO Replace "[key: string]: any" with actual defenition
23
12
  export interface I3STilesetHeader extends SceneLayer3D {
24
13
  /** Not in spec, but is necessary for woking */
25
14
  url?: string;
26
- [key: string]: any;
15
+ /** Base path that non-absolute paths in tileset are relative to. */
16
+ basePath?: string;
17
+ /** root node metadata */
18
+ root: I3STileHeader;
19
+ /** instance of the NodePages to tiles loader */
20
+ nodePagesTile?: I3SNodePagesTiles;
21
+ /** Type of the tileset */
22
+ type: TILESET_TYPE.I3S;
23
+ /** LOD metric type per I3S spec*/
24
+ lodMetricType?: string;
25
+ /** LOD metric value */
26
+ lodMetricValue?: number;
27
+ /** Loader that has to be used to load content */
28
+ loader: LoaderWithParser;
27
29
  }
28
30
  /** https://github.com/Esri/i3s-spec/blob/master/docs/1.8/nodePage.cmn.md */
29
31
  export type NodePage = {
@@ -69,20 +71,62 @@ type meshAttribute = {
69
71
  resource: number;
70
72
  };
71
73
 
74
+ /**
75
+ * Texture format
76
+ * @see https://github.com/Esri/i3s-spec/blob/master/docs/1.7/textureSetDefinitionFormat.cmn.md
77
+ */
72
78
  export type I3STextureFormat = 'jpg' | 'png' | 'ktx-etc2' | 'dds' | 'ktx2';
73
79
 
74
- // TODO Replace "[key: string]: any" with actual defenition
75
- export type I3STileHeader = {
76
- isDracoGeometry: boolean;
77
- textureUrl?: string;
78
- url?: string;
79
- textureFormat?: I3STextureFormat;
80
- textureLoaderOptions?: any;
81
- materialDefinition?: I3SMaterialDefinition;
80
+ /** Postprocessed I3S Node */
81
+ export type I3STileHeader = I3SMinimalNodeData & {
82
+ /** MBS per I3S spec */
82
83
  mbs: Mbs;
83
- obb?: Obb;
84
+ /** Material definition from the layer metadata per I3S spec */
85
+ materialDefinition?: I3SMaterialDefinition;
86
+ /** Bounding volume converted to 3DTiles format. It is generic for `tile` module */
87
+ boundingVolume: {box?: number[]; sphere?: number[]};
88
+ /** LOD metric selected for usage */
89
+ lodMetricType?: string;
90
+ /** LOD metric value */
91
+ lodMetricValue?: number;
92
+ /** Tile content type */
93
+ type: TILE_TYPE.MESH;
94
+ /** Tile refinement type. I3S supports only `REPLACE` */
95
+ refine: TILE_REFINEMENT.REPLACE;
96
+ };
97
+
98
+ /**
99
+ * Minimal I3S node data is needed for loading
100
+ * These data can come from 3DNodeIndexDocument (I3S spec) or from `I3SNodePagesTiles` instance
101
+ * @see https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md
102
+ */
103
+ export type I3SMinimalNodeData = {
104
+ /** Node ID */
105
+ id: string;
106
+ /** Node base path */
107
+ url?: string;
108
+ /** LOD selection metrics */
84
109
  lodSelection?: LodSelection[];
85
- [key: string]: any;
110
+ // OBB per I3S spec
111
+ obb?: Obb;
112
+ /** MBS per I3S spec */
113
+ mbs?: Mbs;
114
+ /** Geometry content URL */
115
+ contentUrl?: string;
116
+ /** Texture image URL */
117
+ textureUrl?: string;
118
+ /** Feature attributes URLs */
119
+ attributeUrls?: string[];
120
+ /** Material definition from I3S layer metadata */
121
+ materialDefinition?: I3SMaterialDefinition;
122
+ /** Texture format per I3S spec */
123
+ textureFormat: I3STextureFormat;
124
+ /** Loader options for texture loader. The loader might be `CompressedTextureLoader` for `dds`, BasisLoader for `ktx2` or ImageLoader for `jpg`and `png` */
125
+ textureLoaderOptions?: {[key: string]: any};
126
+ /** Child Nodes references */
127
+ children: NodeReference[];
128
+ /** Is the node has Draco compressed geometry */
129
+ isDracoGeometry: boolean;
86
130
  };
87
131
 
88
132
  export type I3SParseOptions = {
@@ -108,13 +152,20 @@ export type I3SParseOptions = {
108
152
  * Supported coordinate systems: METER_OFFSETS, LNGLAT_OFFSETS
109
153
  */
110
154
  coordinateSystem?: number;
155
+ /** Options to colorize 3DObjects by attribute value */
111
156
  colorsByAttribute?: {
157
+ /** Feature attribute name */
112
158
  attributeName: string;
159
+ /** Minimum attribute value */
113
160
  minValue: number;
161
+ /** Maximum attribute value */
114
162
  maxValue: number;
163
+ /** Minimum color. 3DObject will be colorized with gradient from `minColor to `maxColor` */
115
164
  minColor: COLOR;
165
+ /** Maximum color. 3DObject will be colorized with gradient from `minColor to `maxColor` */
116
166
  maxColor: COLOR;
117
- mode: string;
167
+ /** Colorization mode. `replace` - replace vertex colors with a new colors, `multiply` - multiply vertex colors with new colors */
168
+ mode: 'multiply' | 'replace';
118
169
  };
119
170
 
120
171
  /** @deprecated */
@@ -169,12 +220,20 @@ export type BoundingVolumes = {
169
220
  obb: Obb;
170
221
  };
171
222
 
223
+ /**
224
+ * Oriented bounding box per I3S spec
225
+ * @see https://github.com/Esri/i3s-spec/blob/master/docs/1.7/obb.cmn.md
226
+ */
172
227
  export type Obb = {
173
228
  center: number[] | Vector3;
174
229
  halfSize: number[] | Vector3;
175
230
  quaternion: number[] | Quaternion;
176
231
  };
177
232
 
233
+ /**
234
+ * Minimum bounding sphere per I3S spec
235
+ * @see https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DNodeIndexDocument.cmn.md#properties
236
+ */
178
237
  export type Mbs = [number, number, number, number];
179
238
 
180
239
  /** SceneLayer3D based on I3S specification - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/3DSceneLayer.cmn.md */
@@ -382,36 +441,32 @@ export type Node3DIndexDocument = {
382
441
  };
383
442
 
384
443
  /**
385
- * Minimal I3S node data is needed for loading
444
+ * LOD selection metrics per I3S spec
445
+ * @see https://github.com/Esri/i3s-spec/blob/master/docs/1.7/lodSelection.cmn.md
386
446
  */
387
- export type I3SMinimalNodeData = {
388
- id: string;
389
- url?: string;
390
- transform?: number[];
391
- lodSelection?: LodSelection[];
392
- obb?: Obb;
393
- mbs?: Mbs;
394
- contentUrl?: string;
395
- textureUrl?: string;
396
- attributeUrls?: string[];
397
- materialDefinition?: I3SMaterialDefinition;
398
- textureFormat?: I3STextureFormat;
399
- textureLoaderOptions?: {[key: string]: any};
400
- children?: NodeReference[];
401
- isDracoGeometry: boolean;
402
- };
403
-
404
447
  export type LodSelection = {
448
+ /** */
405
449
  metricType?: string;
406
450
  maxError: number;
407
451
  };
408
452
 
453
+ /**
454
+ * Node reference per I3S spec
455
+ * @see https://github.com/Esri/i3s-spec/blob/master/docs/1.7/nodeReference.cmn.md
456
+ */
409
457
  export type NodeReference = {
458
+ /** Tree Key ID of the referenced node represented as string. */
410
459
  id: string;
460
+ /** Version (store update session ID) of the referenced node. */
411
461
  version?: string;
462
+ /** An array of four doubles, corresponding to x, y, z and radius of the minimum bounding sphere of a node. */
412
463
  mbs?: Mbs;
464
+ /** Describes oriented bounding box. */
413
465
  obb?: Obb;
466
+ /** Number of values per element. */
414
467
  href?: string;
468
+ /** Number of features in the referenced node and its descendants, down to the leaf nodes. */
469
+ featureCount?: number;
415
470
  };
416
471
 
417
472
  export type Resource = {
@@ -690,20 +745,24 @@ type Domain = {
690
745
  * spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/store.cmn.md
691
746
  */
692
747
  type Store = {
693
- id: string | number;
748
+ id?: string | number;
694
749
  profile: string;
695
750
  version: number | string;
696
- resourcePattern: string[];
697
- rootNode: string;
698
- extent: number[];
699
- indexCRS: string;
700
- vertexCRS: string;
701
- normalReferenceFrame: string;
702
- attributeEncoding: string;
703
- textureEncoding: string[];
704
- lodType: string;
705
- lodModel: string;
751
+ resourcePattern?: string[];
752
+ rootNode?: string;
753
+ extent?: number[];
754
+ indexCRS?: string;
755
+ vertexCRS?: string;
756
+ normalReferenceFrame?: string;
757
+ lodType?: string;
758
+ lodModel?: string;
706
759
  defaultGeometrySchema: DefaultGeometrySchema;
760
+ nidEncoding?: string;
761
+ textureEncoding?: string[];
762
+ featureEncoding?: string;
763
+ geometryEncoding?: string;
764
+ attributeEncoding?: string;
765
+ indexingScheme?: string;
707
766
  };
708
767
  /**
709
768
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/defaultGeometrySchema.cmn.md
@@ -726,15 +785,15 @@ type DefaultGeometrySchema = {
726
785
  export type HeaderAttribute = {
727
786
  property: HeaderAttributeProperty.vertexCount | HeaderAttributeProperty.featureCount | string;
728
787
  type:
729
- | DATA_TYPE.UInt8
730
- | DATA_TYPE.UInt16
731
- | DATA_TYPE.UInt32
732
- | DATA_TYPE.UInt64
733
- | DATA_TYPE.Int16
734
- | DATA_TYPE.Int32
735
- | DATA_TYPE.Int64
736
- | DATA_TYPE.Float32
737
- | DATA_TYPE.Float64;
788
+ | 'UInt8'
789
+ | 'UInt16'
790
+ | 'UInt32'
791
+ | 'UInt64'
792
+ | 'Int16'
793
+ | 'Int32'
794
+ | 'Int64'
795
+ | 'Float32'
796
+ | 'Float64';
738
797
  };
739
798
  export enum HeaderAttributeProperty {
740
799
  vertexCount = 'vertexCount',
@@ -749,14 +808,7 @@ export type VertexAttribute = {
749
808
  };
750
809
  export type GeometryAttribute = {
751
810
  byteOffset?: number;
752
- valueType:
753
- | DATA_TYPE.UInt8
754
- | DATA_TYPE.UInt16
755
- | DATA_TYPE.Int16
756
- | DATA_TYPE.Int32
757
- | DATA_TYPE.Int64
758
- | DATA_TYPE.Float32
759
- | DATA_TYPE.Float64;
811
+ valueType: 'UInt8' | 'UInt16' | 'Int16' | 'Int32' | 'Int64' | 'Float32' | 'Float64';
760
812
  valuesPerElement: number;
761
813
  };
762
814
  export type I3SMeshAttributes = {
@@ -804,7 +856,7 @@ type TextureSetDefinition = {
804
856
 
805
857
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/geometryDefinition.cmn.md */
806
858
  type GeometryDefinition = {
807
- topology: 'triangle' | string;
859
+ topology?: 'triangle';
808
860
  geometryBuffers: GeometryBuffer[];
809
861
  };
810
862
  /** Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/geometryBuffer.cmn.md */
@@ -820,7 +872,7 @@ type GeometryBuffer = {
820
872
  compressedAttributes?: {encoding: string; attributes: string[]};
821
873
  };
822
874
 
823
- type GeometryBufferItem = {type: string; component: number; encoding?: string; binding: string};
875
+ type GeometryBufferItem = {type: string; component: number; encoding?: string; binding?: string};
824
876
 
825
877
  type AttributeValue = {valueType: string; encoding?: string; valuesPerElement?: number};
826
878
 
@@ -831,16 +883,16 @@ export type FieldInfo = {
831
883
  label: string;
832
884
  };
833
885
 
834
- export type ArcGisWebSceneData = {
835
- header: ArcGisWebScene;
886
+ export type ArcGISWebSceneData = {
887
+ header: ArcGISWebScene;
836
888
  layers: OperationalLayer[];
837
889
  unsupportedLayers: OperationalLayer[];
838
890
  };
839
891
 
840
892
  /**
841
- * ArcGis WebScene spec - https://developers.arcgis.com/web-scene-specification/objects/webscene/
893
+ * ArcGIS WebScene spec - https://developers.arcgis.com/web-scene-specification/objects/webscene/
842
894
  */
843
- export type ArcGisWebScene = {
895
+ export type ArcGISWebScene = {
844
896
  /**
845
897
  * @todo add type.
846
898
  * Spec - https://developers.arcgis.com/web-scene-specification/objects/applicationProperties/
@@ -881,7 +933,7 @@ export type ArcGisWebScene = {
881
933
  * Spec - https://developers.arcgis.com/web-scene-specification/objects/presentation/
882
934
  * @todo Add presentation type.
883
935
  */
884
- presentation: ArcGisPresentation;
936
+ presentation: ArcGISPresentation;
885
937
  /**
886
938
  * An object that provides information about the initial environment settings and viewpoint of the web scene.
887
939
  */
@@ -931,7 +983,7 @@ export type ArcGisWebScene = {
931
983
  /**
932
984
  * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-webscene-Presentation.html
933
985
  */
934
- type ArcGisPresentation = {
986
+ type ArcGISPresentation = {
935
987
  slides: Slide[];
936
988
  };
937
989
 
@@ -954,26 +1006,26 @@ type Slide = {
954
1006
  ground: {
955
1007
  transparency: number;
956
1008
  };
957
- baseMap: ArcGisBaseMap;
958
- visibleLayers: ArcGisVisibleLayer[];
959
- viewpoint: ArcGisViewPoint;
1009
+ baseMap: ArcGISBaseMap;
1010
+ visibleLayers: ArcGISVisibleLayer[];
1011
+ viewpoint: ArcGISViewPoint;
960
1012
  };
961
1013
 
962
1014
  /**
963
1015
  * The basemap of the scene. Only the base and reference layers of the basemap are stored in a slide.
964
1016
  * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html
965
1017
  */
966
- type ArcGisBaseMap = {
1018
+ type ArcGISBaseMap = {
967
1019
  id: string;
968
1020
  title: string;
969
- baseMapLayers: ArcGisBaseMapLayer[];
1021
+ baseMapLayers: ArcGISBaseMapLayer[];
970
1022
  };
971
1023
 
972
1024
  /**
973
1025
  * The visible layers of the scene.
974
1026
  * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-webscene-Slide.html#visibleLayers
975
1027
  */
976
- type ArcGisVisibleLayer = {
1028
+ type ArcGISVisibleLayer = {
977
1029
  id: string;
978
1030
  sublayerIds: number[];
979
1031
  };
@@ -981,7 +1033,7 @@ type ArcGisVisibleLayer = {
981
1033
  * The basemap of the scene.
982
1034
  * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html
983
1035
  */
984
- type ArcGisBaseMapLayer = {
1036
+ type ArcGISBaseMapLayer = {
985
1037
  id: string;
986
1038
  title: string;
987
1039
  url: string;
@@ -993,14 +1045,14 @@ type ArcGisBaseMapLayer = {
993
1045
  * The viewpoint of the slide. This acts like a bookmark, saving a predefined location or point of view from which to view the scene.
994
1046
  * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html
995
1047
  */
996
- type ArcGisViewPoint = {
1048
+ type ArcGISViewPoint = {
997
1049
  scale: number;
998
1050
  rotation?: number;
999
1051
  /**
1000
1052
  * Spec - https://developers.arcgis.com/web-scene-specification/objects/viewpoint/
1001
1053
  */
1002
1054
  targetGeometry: any;
1003
- camera: ArcGisCamera;
1055
+ camera: ArcGISCamera;
1004
1056
  };
1005
1057
 
1006
1058
  /**
@@ -1008,7 +1060,7 @@ type ArcGisViewPoint = {
1008
1060
  * It is not associated with device hardware. This class only applies to 3D SceneViews.
1009
1061
  * Spec - https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html
1010
1062
  */
1011
- export type ArcGisCamera = {
1063
+ export type ArcGISCamera = {
1012
1064
  position: {
1013
1065
  x: number;
1014
1066
  y: number;
@@ -1,7 +0,0 @@
1
- import type { LoaderWithParser } from '@loaders.gl/loader-utils';
2
- /**
3
- * Loader for ArcGis WebScene
4
- * Spec - https://developers.arcgis.com/web-scene-specification/objects/webscene/
5
- */
6
- export declare const ArcGisWebSceneLoader: LoaderWithParser;
7
- //# sourceMappingURL=arcgis-webscene-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"arcgis-webscene-loader.d.ts","sourceRoot":"","sources":["../src/arcgis-webscene-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAS/D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,gBASlC,CAAC"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ArcGisWebSceneLoader = void 0;
4
- const parse_arcgis_webscene_1 = require("./lib/parsers/parse-arcgis-webscene");
5
- // __VERSION__ is injected by babel-plugin-version-inline
6
- // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
- const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
8
- /**
9
- * Loader for ArcGis WebScene
10
- * Spec - https://developers.arcgis.com/web-scene-specification/objects/webscene/
11
- */
12
- exports.ArcGisWebSceneLoader = {
13
- name: 'ArcGIS Web Scene Loader',
14
- id: 'arcgis-web-scene',
15
- module: 'i3s',
16
- version: VERSION,
17
- mimeTypes: ['application/json'],
18
- parse,
19
- extensions: ['json'],
20
- options: {}
21
- };
22
- /**
23
- * Parse ArcGis webscene
24
- * @param data
25
- */
26
- async function parse(data) {
27
- return (0, parse_arcgis_webscene_1.parseWebscene)(data);
28
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
package/dist/bundle.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- // @ts-nocheck
3
- const moduleExports = require('./index');
4
- globalThis.loaders = globalThis.loaders || {};
5
- module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.parseZipCDFileHeader = void 0;
7
- var parseZipCDFileHeader = function parseZipCDFileHeader(headerOffset, buffer) {
8
- var offsets = {
9
- CD_COMPRESSED_SIZE_OFFSET: 20,
10
- CD_UNCOMPRESSED_SIZE_OFFSET: 24,
11
- CD_FILE_NAME_LENGTH_OFFSET: 28,
12
- CD_EXTRA_FIELD_LENGTH_OFFSET: 30,
13
- CD_LOCAL_HEADER_OFFSET_OFFSET: 42,
14
- CD_FILE_NAME_OFFSET: 46
15
- };
16
- var compressedSize = buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET, true);
17
- var uncompressedSize = buffer.getUint32(headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET, true);
18
- var fileNameLength = buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET, true);
19
- var fileName = buffer.buffer.slice(headerOffset + offsets.CD_FILE_NAME_OFFSET, headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength);
20
- var extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength;
21
- var oldFormatOffset = buffer.getUint32(headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET, true);
22
- var fileDataOffset = oldFormatOffset;
23
- if (fileDataOffset === 0xffffffff) {
24
- var offsetInZip64Data = 4;
25
- if (compressedSize === 0xffffffff) {
26
- offsetInZip64Data += 8;
27
- }
28
- if (uncompressedSize === 0xffffffff) {
29
- offsetInZip64Data += 8;
30
- }
31
- fileDataOffset = buffer.getUint32(extraOffset + offsetInZip64Data, true);
32
- }
33
- var localHeaderOffset = fileDataOffset;
34
- return {
35
- compressedSize: compressedSize,
36
- uncompressedSize: uncompressedSize,
37
- fileNameLength: fileNameLength,
38
- fileName: fileName,
39
- extraOffset: extraOffset,
40
- localHeaderOffset: localHeaderOffset
41
- };
42
- };
43
- exports.parseZipCDFileHeader = parseZipCDFileHeader;
44
- //# sourceMappingURL=cd-file-header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cd-file-header.js","names":["parseZipCDFileHeader","headerOffset","buffer","offsets","CD_COMPRESSED_SIZE_OFFSET","CD_UNCOMPRESSED_SIZE_OFFSET","CD_FILE_NAME_LENGTH_OFFSET","CD_EXTRA_FIELD_LENGTH_OFFSET","CD_LOCAL_HEADER_OFFSET_OFFSET","CD_FILE_NAME_OFFSET","compressedSize","getUint32","uncompressedSize","fileNameLength","getUint16","fileName","slice","extraOffset","oldFormatOffset","fileDataOffset","offsetInZip64Data","localHeaderOffset","exports"],"sources":["../../../../../src/lib/parsers/parse-zip/cd-file-header.ts"],"sourcesContent":["/**\n * zip central directory file header info\n * according to https://en.wikipedia.org/wiki/ZIP_(file_format)\n */\nexport type ZipCDFileHeader = {\n /**\n * Compressed size\n */\n compressedSize: number;\n /**\n * Uncompressed size\n */\n uncompressedSize: number;\n /**\n * File name length\n */\n fileNameLength: number;\n /**\n * File name\n */\n fileName: ArrayBuffer;\n /**\n * Extra field offset\n */\n extraOffset: number;\n /**\n * Relative offset of local file header\n */\n localHeaderOffset: number;\n};\n\n/**\n * Parses central directory file header of zip file\n * @param headerOffset - offset in the archive where header starts\n * @param buffer - buffer containing whole array\n * @returns Info from the header\n */\nexport const parseZipCDFileHeader = (headerOffset: number, buffer: DataView): ZipCDFileHeader => {\n const offsets = {\n CD_COMPRESSED_SIZE_OFFSET: 20,\n CD_UNCOMPRESSED_SIZE_OFFSET: 24,\n CD_FILE_NAME_LENGTH_OFFSET: 28,\n CD_EXTRA_FIELD_LENGTH_OFFSET: 30,\n CD_LOCAL_HEADER_OFFSET_OFFSET: 42,\n CD_FILE_NAME_OFFSET: 46\n };\n\n const compressedSize = buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET, true);\n\n const uncompressedSize = buffer.getUint32(\n headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET,\n true\n );\n\n const fileNameLength = buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET, true);\n\n const fileName = buffer.buffer.slice(\n headerOffset + offsets.CD_FILE_NAME_OFFSET,\n headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength\n );\n\n const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength;\n\n const oldFormatOffset = buffer.getUint32(\n headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET,\n true\n );\n\n let fileDataOffset = oldFormatOffset;\n if (fileDataOffset === 0xffffffff) {\n let offsetInZip64Data = 4;\n // looking for info that might be also be in zip64 extra field\n if (compressedSize === 0xffffffff) {\n offsetInZip64Data += 8;\n }\n if (uncompressedSize === 0xffffffff) {\n offsetInZip64Data += 8;\n }\n\n // getUint32 needs to be replaced with getBigUint64 for archieves bigger than 2gb\n fileDataOffset = buffer.getUint32(extraOffset + offsetInZip64Data, true); // setting it to the one from zip64\n }\n const localHeaderOffset = fileDataOffset;\n\n return {\n compressedSize,\n uncompressedSize,\n fileNameLength,\n fileName,\n extraOffset,\n localHeaderOffset\n };\n};\n"],"mappings":";;;;;;AAqCO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,YAAoB,EAAEC,MAAgB,EAAsB;EAC/F,IAAMC,OAAO,GAAG;IACdC,yBAAyB,EAAE,EAAE;IAC7BC,2BAA2B,EAAE,EAAE;IAC/BC,0BAA0B,EAAE,EAAE;IAC9BC,4BAA4B,EAAE,EAAE;IAChCC,6BAA6B,EAAE,EAAE;IACjCC,mBAAmB,EAAE;EACvB,CAAC;EAED,IAAMC,cAAc,GAAGR,MAAM,CAACS,SAAS,CAACV,YAAY,GAAGE,OAAO,CAACC,yBAAyB,EAAE,IAAI,CAAC;EAE/F,IAAMQ,gBAAgB,GAAGV,MAAM,CAACS,SAAS,CACvCV,YAAY,GAAGE,OAAO,CAACE,2BAA2B,EAClD,IACF,CAAC;EAED,IAAMQ,cAAc,GAAGX,MAAM,CAACY,SAAS,CAACb,YAAY,GAAGE,OAAO,CAACG,0BAA0B,EAAE,IAAI,CAAC;EAEhG,IAAMS,QAAQ,GAAGb,MAAM,CAACA,MAAM,CAACc,KAAK,CAClCf,YAAY,GAAGE,OAAO,CAACM,mBAAmB,EAC1CR,YAAY,GAAGE,OAAO,CAACM,mBAAmB,GAAGI,cAC/C,CAAC;EAED,IAAMI,WAAW,GAAGhB,YAAY,GAAGE,OAAO,CAACM,mBAAmB,GAAGI,cAAc;EAE/E,IAAMK,eAAe,GAAGhB,MAAM,CAACS,SAAS,CACtCV,YAAY,GAAGE,OAAO,CAACK,6BAA6B,EACpD,IACF,CAAC;EAED,IAAIW,cAAc,GAAGD,eAAe;EACpC,IAAIC,cAAc,KAAK,UAAU,EAAE;IACjC,IAAIC,iBAAiB,GAAG,CAAC;IAEzB,IAAIV,cAAc,KAAK,UAAU,EAAE;MACjCU,iBAAiB,IAAI,CAAC;IACxB;IACA,IAAIR,gBAAgB,KAAK,UAAU,EAAE;MACnCQ,iBAAiB,IAAI,CAAC;IACxB;IAGAD,cAAc,GAAGjB,MAAM,CAACS,SAAS,CAACM,WAAW,GAAGG,iBAAiB,EAAE,IAAI,CAAC;EAC1E;EACA,IAAMC,iBAAiB,GAAGF,cAAc;EAExC,OAAO;IACLT,cAAc,EAAdA,cAAc;IACdE,gBAAgB,EAAhBA,gBAAgB;IAChBC,cAAc,EAAdA,cAAc;IACdE,QAAQ,EAARA,QAAQ;IACRE,WAAW,EAAXA,WAAW;IACXI,iBAAiB,EAAjBA;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAAtB,oBAAA,GAAAA,oBAAA"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.parseZipLocalFileHeader = void 0;
7
- var parseZipLocalFileHeader = function parseZipLocalFileHeader(headerOffset, buffer) {
8
- var offsets = {
9
- COMPRESSED_SIZE_OFFSET: 18,
10
- FILE_NAME_LENGTH_OFFSET: 26,
11
- EXTRA_FIELD_LENGTH_OFFSET: 28,
12
- FILE_NAME_OFFSET: 30
13
- };
14
- var fileNameLength = buffer.getUint16(headerOffset + offsets.FILE_NAME_LENGTH_OFFSET, true);
15
- var extraFieldLength = buffer.getUint16(headerOffset + offsets.EXTRA_FIELD_LENGTH_OFFSET, true);
16
- var fileDataOffset = headerOffset + offsets.FILE_NAME_OFFSET + fileNameLength + extraFieldLength;
17
- var compressedSize = buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET, true);
18
- return {
19
- fileNameLength: fileNameLength,
20
- extraFieldLength: extraFieldLength,
21
- fileDataOffset: fileDataOffset,
22
- compressedSize: compressedSize
23
- };
24
- };
25
- exports.parseZipLocalFileHeader = parseZipLocalFileHeader;
26
- //# sourceMappingURL=local-file-header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-file-header.js","names":["parseZipLocalFileHeader","headerOffset","buffer","offsets","COMPRESSED_SIZE_OFFSET","FILE_NAME_LENGTH_OFFSET","EXTRA_FIELD_LENGTH_OFFSET","FILE_NAME_OFFSET","fileNameLength","getUint16","extraFieldLength","fileDataOffset","compressedSize","getUint32","exports"],"sources":["../../../../../src/lib/parsers/parse-zip/local-file-header.ts"],"sourcesContent":["/**\n * zip local file header info\n * according to https://en.wikipedia.org/wiki/ZIP_(file_format)\n */\nexport type ZipLocalFileHeader = {\n /**\n * File name length\n */\n fileNameLength: number;\n /**\n * Extra field length\n */\n extraFieldLength: number;\n /**\n * Offset of the file data\n */\n fileDataOffset: number;\n /**\n * Compressed size\n */\n compressedSize: number;\n};\n\n/**\n * Parses local file header of zip file\n * @param headerOffset - offset in the archive where header starts\n * @param buffer - buffer containing whole array\n * @returns Info from the header\n */\nexport const parseZipLocalFileHeader = (\n headerOffset: number,\n buffer: DataView\n): ZipLocalFileHeader => {\n const offsets = {\n COMPRESSED_SIZE_OFFSET: 18,\n FILE_NAME_LENGTH_OFFSET: 26,\n EXTRA_FIELD_LENGTH_OFFSET: 28,\n FILE_NAME_OFFSET: 30\n };\n\n const fileNameLength = buffer.getUint16(headerOffset + offsets.FILE_NAME_LENGTH_OFFSET, true);\n\n const extraFieldLength = buffer.getUint16(headerOffset + offsets.EXTRA_FIELD_LENGTH_OFFSET, true);\n\n const fileDataOffset =\n headerOffset + offsets.FILE_NAME_OFFSET + fileNameLength + extraFieldLength;\n\n const compressedSize = buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET, true);\n\n return {\n fileNameLength,\n extraFieldLength,\n fileDataOffset,\n compressedSize\n };\n};\n"],"mappings":";;;;;;AA6BO,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAClCC,YAAoB,EACpBC,MAAgB,EACO;EACvB,IAAMC,OAAO,GAAG;IACdC,sBAAsB,EAAE,EAAE;IAC1BC,uBAAuB,EAAE,EAAE;IAC3BC,yBAAyB,EAAE,EAAE;IAC7BC,gBAAgB,EAAE;EACpB,CAAC;EAED,IAAMC,cAAc,GAAGN,MAAM,CAACO,SAAS,CAACR,YAAY,GAAGE,OAAO,CAACE,uBAAuB,EAAE,IAAI,CAAC;EAE7F,IAAMK,gBAAgB,GAAGR,MAAM,CAACO,SAAS,CAACR,YAAY,GAAGE,OAAO,CAACG,yBAAyB,EAAE,IAAI,CAAC;EAEjG,IAAMK,cAAc,GAClBV,YAAY,GAAGE,OAAO,CAACI,gBAAgB,GAAGC,cAAc,GAAGE,gBAAgB;EAE7E,IAAME,cAAc,GAAGV,MAAM,CAACW,SAAS,CAACZ,YAAY,GAAGE,OAAO,CAACC,sBAAsB,EAAE,IAAI,CAAC;EAE5F,OAAO;IACLI,cAAc,EAAdA,cAAc;IACdE,gBAAgB,EAAhBA,gBAAgB;IAChBC,cAAc,EAAdA,cAAc;IACdC,cAAc,EAAdA;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAAd,uBAAA,GAAAA,uBAAA"}
@@ -1,37 +0,0 @@
1
- export const parseZipCDFileHeader = (headerOffset, buffer) => {
2
- const offsets = {
3
- CD_COMPRESSED_SIZE_OFFSET: 20,
4
- CD_UNCOMPRESSED_SIZE_OFFSET: 24,
5
- CD_FILE_NAME_LENGTH_OFFSET: 28,
6
- CD_EXTRA_FIELD_LENGTH_OFFSET: 30,
7
- CD_LOCAL_HEADER_OFFSET_OFFSET: 42,
8
- CD_FILE_NAME_OFFSET: 46
9
- };
10
- const compressedSize = buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET, true);
11
- const uncompressedSize = buffer.getUint32(headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET, true);
12
- const fileNameLength = buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET, true);
13
- const fileName = buffer.buffer.slice(headerOffset + offsets.CD_FILE_NAME_OFFSET, headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength);
14
- const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength;
15
- const oldFormatOffset = buffer.getUint32(headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET, true);
16
- let fileDataOffset = oldFormatOffset;
17
- if (fileDataOffset === 0xffffffff) {
18
- let offsetInZip64Data = 4;
19
- if (compressedSize === 0xffffffff) {
20
- offsetInZip64Data += 8;
21
- }
22
- if (uncompressedSize === 0xffffffff) {
23
- offsetInZip64Data += 8;
24
- }
25
- fileDataOffset = buffer.getUint32(extraOffset + offsetInZip64Data, true);
26
- }
27
- const localHeaderOffset = fileDataOffset;
28
- return {
29
- compressedSize,
30
- uncompressedSize,
31
- fileNameLength,
32
- fileName,
33
- extraOffset,
34
- localHeaderOffset
35
- };
36
- };
37
- //# sourceMappingURL=cd-file-header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cd-file-header.js","names":["parseZipCDFileHeader","headerOffset","buffer","offsets","CD_COMPRESSED_SIZE_OFFSET","CD_UNCOMPRESSED_SIZE_OFFSET","CD_FILE_NAME_LENGTH_OFFSET","CD_EXTRA_FIELD_LENGTH_OFFSET","CD_LOCAL_HEADER_OFFSET_OFFSET","CD_FILE_NAME_OFFSET","compressedSize","getUint32","uncompressedSize","fileNameLength","getUint16","fileName","slice","extraOffset","oldFormatOffset","fileDataOffset","offsetInZip64Data","localHeaderOffset"],"sources":["../../../../../src/lib/parsers/parse-zip/cd-file-header.ts"],"sourcesContent":["/**\n * zip central directory file header info\n * according to https://en.wikipedia.org/wiki/ZIP_(file_format)\n */\nexport type ZipCDFileHeader = {\n /**\n * Compressed size\n */\n compressedSize: number;\n /**\n * Uncompressed size\n */\n uncompressedSize: number;\n /**\n * File name length\n */\n fileNameLength: number;\n /**\n * File name\n */\n fileName: ArrayBuffer;\n /**\n * Extra field offset\n */\n extraOffset: number;\n /**\n * Relative offset of local file header\n */\n localHeaderOffset: number;\n};\n\n/**\n * Parses central directory file header of zip file\n * @param headerOffset - offset in the archive where header starts\n * @param buffer - buffer containing whole array\n * @returns Info from the header\n */\nexport const parseZipCDFileHeader = (headerOffset: number, buffer: DataView): ZipCDFileHeader => {\n const offsets = {\n CD_COMPRESSED_SIZE_OFFSET: 20,\n CD_UNCOMPRESSED_SIZE_OFFSET: 24,\n CD_FILE_NAME_LENGTH_OFFSET: 28,\n CD_EXTRA_FIELD_LENGTH_OFFSET: 30,\n CD_LOCAL_HEADER_OFFSET_OFFSET: 42,\n CD_FILE_NAME_OFFSET: 46\n };\n\n const compressedSize = buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET, true);\n\n const uncompressedSize = buffer.getUint32(\n headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET,\n true\n );\n\n const fileNameLength = buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET, true);\n\n const fileName = buffer.buffer.slice(\n headerOffset + offsets.CD_FILE_NAME_OFFSET,\n headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength\n );\n\n const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + fileNameLength;\n\n const oldFormatOffset = buffer.getUint32(\n headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET,\n true\n );\n\n let fileDataOffset = oldFormatOffset;\n if (fileDataOffset === 0xffffffff) {\n let offsetInZip64Data = 4;\n // looking for info that might be also be in zip64 extra field\n if (compressedSize === 0xffffffff) {\n offsetInZip64Data += 8;\n }\n if (uncompressedSize === 0xffffffff) {\n offsetInZip64Data += 8;\n }\n\n // getUint32 needs to be replaced with getBigUint64 for archieves bigger than 2gb\n fileDataOffset = buffer.getUint32(extraOffset + offsetInZip64Data, true); // setting it to the one from zip64\n }\n const localHeaderOffset = fileDataOffset;\n\n return {\n compressedSize,\n uncompressedSize,\n fileNameLength,\n fileName,\n extraOffset,\n localHeaderOffset\n };\n};\n"],"mappings":"AAqCA,OAAO,MAAMA,oBAAoB,GAAGA,CAACC,YAAoB,EAAEC,MAAgB,KAAsB;EAC/F,MAAMC,OAAO,GAAG;IACdC,yBAAyB,EAAE,EAAE;IAC7BC,2BAA2B,EAAE,EAAE;IAC/BC,0BAA0B,EAAE,EAAE;IAC9BC,4BAA4B,EAAE,EAAE;IAChCC,6BAA6B,EAAE,EAAE;IACjCC,mBAAmB,EAAE;EACvB,CAAC;EAED,MAAMC,cAAc,GAAGR,MAAM,CAACS,SAAS,CAACV,YAAY,GAAGE,OAAO,CAACC,yBAAyB,EAAE,IAAI,CAAC;EAE/F,MAAMQ,gBAAgB,GAAGV,MAAM,CAACS,SAAS,CACvCV,YAAY,GAAGE,OAAO,CAACE,2BAA2B,EAClD,IACF,CAAC;EAED,MAAMQ,cAAc,GAAGX,MAAM,CAACY,SAAS,CAACb,YAAY,GAAGE,OAAO,CAACG,0BAA0B,EAAE,IAAI,CAAC;EAEhG,MAAMS,QAAQ,GAAGb,MAAM,CAACA,MAAM,CAACc,KAAK,CAClCf,YAAY,GAAGE,OAAO,CAACM,mBAAmB,EAC1CR,YAAY,GAAGE,OAAO,CAACM,mBAAmB,GAAGI,cAC/C,CAAC;EAED,MAAMI,WAAW,GAAGhB,YAAY,GAAGE,OAAO,CAACM,mBAAmB,GAAGI,cAAc;EAE/E,MAAMK,eAAe,GAAGhB,MAAM,CAACS,SAAS,CACtCV,YAAY,GAAGE,OAAO,CAACK,6BAA6B,EACpD,IACF,CAAC;EAED,IAAIW,cAAc,GAAGD,eAAe;EACpC,IAAIC,cAAc,KAAK,UAAU,EAAE;IACjC,IAAIC,iBAAiB,GAAG,CAAC;IAEzB,IAAIV,cAAc,KAAK,UAAU,EAAE;MACjCU,iBAAiB,IAAI,CAAC;IACxB;IACA,IAAIR,gBAAgB,KAAK,UAAU,EAAE;MACnCQ,iBAAiB,IAAI,CAAC;IACxB;IAGAD,cAAc,GAAGjB,MAAM,CAACS,SAAS,CAACM,WAAW,GAAGG,iBAAiB,EAAE,IAAI,CAAC;EAC1E;EACA,MAAMC,iBAAiB,GAAGF,cAAc;EAExC,OAAO;IACLT,cAAc;IACdE,gBAAgB;IAChBC,cAAc;IACdE,QAAQ;IACRE,WAAW;IACXI;EACF,CAAC;AACH,CAAC"}
@@ -1,19 +0,0 @@
1
- export const parseZipLocalFileHeader = (headerOffset, buffer) => {
2
- const offsets = {
3
- COMPRESSED_SIZE_OFFSET: 18,
4
- FILE_NAME_LENGTH_OFFSET: 26,
5
- EXTRA_FIELD_LENGTH_OFFSET: 28,
6
- FILE_NAME_OFFSET: 30
7
- };
8
- const fileNameLength = buffer.getUint16(headerOffset + offsets.FILE_NAME_LENGTH_OFFSET, true);
9
- const extraFieldLength = buffer.getUint16(headerOffset + offsets.EXTRA_FIELD_LENGTH_OFFSET, true);
10
- const fileDataOffset = headerOffset + offsets.FILE_NAME_OFFSET + fileNameLength + extraFieldLength;
11
- const compressedSize = buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET, true);
12
- return {
13
- fileNameLength,
14
- extraFieldLength,
15
- fileDataOffset,
16
- compressedSize
17
- };
18
- };
19
- //# sourceMappingURL=local-file-header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-file-header.js","names":["parseZipLocalFileHeader","headerOffset","buffer","offsets","COMPRESSED_SIZE_OFFSET","FILE_NAME_LENGTH_OFFSET","EXTRA_FIELD_LENGTH_OFFSET","FILE_NAME_OFFSET","fileNameLength","getUint16","extraFieldLength","fileDataOffset","compressedSize","getUint32"],"sources":["../../../../../src/lib/parsers/parse-zip/local-file-header.ts"],"sourcesContent":["/**\n * zip local file header info\n * according to https://en.wikipedia.org/wiki/ZIP_(file_format)\n */\nexport type ZipLocalFileHeader = {\n /**\n * File name length\n */\n fileNameLength: number;\n /**\n * Extra field length\n */\n extraFieldLength: number;\n /**\n * Offset of the file data\n */\n fileDataOffset: number;\n /**\n * Compressed size\n */\n compressedSize: number;\n};\n\n/**\n * Parses local file header of zip file\n * @param headerOffset - offset in the archive where header starts\n * @param buffer - buffer containing whole array\n * @returns Info from the header\n */\nexport const parseZipLocalFileHeader = (\n headerOffset: number,\n buffer: DataView\n): ZipLocalFileHeader => {\n const offsets = {\n COMPRESSED_SIZE_OFFSET: 18,\n FILE_NAME_LENGTH_OFFSET: 26,\n EXTRA_FIELD_LENGTH_OFFSET: 28,\n FILE_NAME_OFFSET: 30\n };\n\n const fileNameLength = buffer.getUint16(headerOffset + offsets.FILE_NAME_LENGTH_OFFSET, true);\n\n const extraFieldLength = buffer.getUint16(headerOffset + offsets.EXTRA_FIELD_LENGTH_OFFSET, true);\n\n const fileDataOffset =\n headerOffset + offsets.FILE_NAME_OFFSET + fileNameLength + extraFieldLength;\n\n const compressedSize = buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET, true);\n\n return {\n fileNameLength,\n extraFieldLength,\n fileDataOffset,\n compressedSize\n };\n};\n"],"mappings":"AA6BA,OAAO,MAAMA,uBAAuB,GAAGA,CACrCC,YAAoB,EACpBC,MAAgB,KACO;EACvB,MAAMC,OAAO,GAAG;IACdC,sBAAsB,EAAE,EAAE;IAC1BC,uBAAuB,EAAE,EAAE;IAC3BC,yBAAyB,EAAE,EAAE;IAC7BC,gBAAgB,EAAE;EACpB,CAAC;EAED,MAAMC,cAAc,GAAGN,MAAM,CAACO,SAAS,CAACR,YAAY,GAAGE,OAAO,CAACE,uBAAuB,EAAE,IAAI,CAAC;EAE7F,MAAMK,gBAAgB,GAAGR,MAAM,CAACO,SAAS,CAACR,YAAY,GAAGE,OAAO,CAACG,yBAAyB,EAAE,IAAI,CAAC;EAEjG,MAAMK,cAAc,GAClBV,YAAY,GAAGE,OAAO,CAACI,gBAAgB,GAAGC,cAAc,GAAGE,gBAAgB;EAE7E,MAAME,cAAc,GAAGV,MAAM,CAACW,SAAS,CAACZ,YAAY,GAAGE,OAAO,CAACC,sBAAsB,EAAE,IAAI,CAAC;EAE5F,OAAO;IACLI,cAAc;IACdE,gBAAgB;IAChBC,cAAc;IACdC;EACF,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"i3s-attribute-loader.d.ts","sourceRoot":"","sources":["../src/i3s-attribute-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AAUzE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,EAAE,aAAa,CAUxF,CAAC;AAKF;;;;;;GAMG;AAEH,wBAAsB,qBAAqB,CAAC,IAAI,KAAA,EAAE,SAAS,KAAA,EAAE,OAAO,KAAK,sBA+BxE;AAeD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,KAAA,OAO9C"}