@loaders.gl/i3s 4.0.0-alpha.4 → 4.0.0-alpha.5

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 (65) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/dist.min.js +10374 -0
  4. package/dist/i3s-attribute-loader.d.ts +14 -0
  5. package/dist/i3s-attribute-loader.d.ts.map +1 -0
  6. package/dist/i3s-attribute-loader.js +1 -1
  7. package/dist/i3s-building-scene-layer-loader.d.ts +6 -0
  8. package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -0
  9. package/dist/i3s-building-scene-layer-loader.js +1 -1
  10. package/dist/i3s-content-loader.d.ts +6 -0
  11. package/dist/i3s-content-loader.d.ts.map +1 -0
  12. package/dist/i3s-content-loader.js +1 -1
  13. package/dist/i3s-content-worker.js +391 -270
  14. package/dist/i3s-loader.d.ts +6 -0
  15. package/dist/i3s-loader.d.ts.map +1 -0
  16. package/dist/i3s-loader.js +1 -1
  17. package/dist/i3s-node-page-loader.d.ts +6 -0
  18. package/dist/i3s-node-page-loader.d.ts.map +1 -0
  19. package/dist/i3s-node-page-loader.js +1 -1
  20. package/dist/index.d.ts +7 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +73 -0
  24. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
  25. package/dist/lib/helpers/i3s-nodepages-tiles.js +33 -23
  26. package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  27. package/dist/lib/parsers/constants.d.ts +40 -0
  28. package/dist/lib/parsers/constants.d.ts.map +1 -0
  29. package/dist/lib/parsers/constants.js +54 -38
  30. package/dist/lib/parsers/constants.js.map +1 -1
  31. package/dist/lib/parsers/parse-i3s-attribute.d.ts +10 -0
  32. package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
  33. package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts +9 -0
  34. package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
  35. package/dist/lib/parsers/parse-i3s-building-scene-layer.js +2 -0
  36. package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -1
  37. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +4 -0
  38. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
  39. package/dist/lib/parsers/parse-i3s-tile-content.js +76 -79
  40. package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  41. package/dist/lib/parsers/parse-i3s.d.ts +6 -0
  42. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -0
  43. package/dist/lib/parsers/parse-i3s.js +40 -25
  44. package/dist/lib/parsers/parse-i3s.js.map +1 -1
  45. package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts +2 -0
  46. package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +1 -0
  47. package/dist/lib/utils/url-utils.d.ts +22 -0
  48. package/dist/lib/utils/url-utils.d.ts.map +1 -0
  49. package/dist/lib/utils/url-utils.js +2 -3
  50. package/dist/lib/utils/url-utils.js.map +1 -1
  51. package/dist/types.d.ts +643 -0
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/types.js +20 -1
  54. package/dist/types.js.map +1 -1
  55. package/dist/workers/i3s-content-worker.d.ts +2 -0
  56. package/dist/workers/i3s-content-worker.d.ts.map +1 -0
  57. package/package.json +12 -12
  58. package/src/index.ts +3 -3
  59. package/src/lib/helpers/i3s-nodepages-tiles.ts +71 -55
  60. package/src/lib/parsers/constants.ts +67 -54
  61. package/src/lib/parsers/parse-i3s-building-scene-layer.ts +2 -1
  62. package/src/lib/parsers/parse-i3s-tile-content.ts +150 -146
  63. package/src/lib/parsers/parse-i3s.ts +48 -37
  64. package/src/lib/utils/url-utils.ts +7 -7
  65. package/src/types.ts +412 -73
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/parsers/parse-i3s.ts"],"names":["OrientedBoundingBox","Ellipsoid","load","TILE_TYPE","TILE_REFINEMENT","TILESET_TYPE","I3SNodePagesTiles","generateTileAttributeUrls","getUrlWithToken","normalizeTileData","tile","options","context","url","featureData","featureUrl","href","geometryData","contentUrl","textureData","textureUrl","attributeData","attributeUrls","normalizeTileNonUrlData","box","obb","WGS84","cartographicToCartesian","center","halfSize","quaternion","undefined","sphere","mbs","slice","fromCenterHalfSizeQuaternion","boundingSphere","getBoundingSphere","radius","boundingVolume","lodMetricType","lodSelection","metricType","lodMetricValue","maxError","transformMatrix","transform","type","MESH","refine","REPLACE","normalizeTilesetData","tileset","nodePages","nodePagesTile","root","formTileFromNodePages","rootNodeUrl","i3s","token","loader","loadContent","isTileHeader","isTileset","basePath","I3S"],"mappings":"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","sourcesContent":["import {OrientedBoundingBox} from '@math.gl/culling';\nimport {Ellipsoid} from '@math.gl/geospatial';\nimport {load} from '@loaders.gl/core';\nimport {TILE_TYPE, TILE_REFINEMENT, TILESET_TYPE} from '@loaders.gl/tiles';\nimport I3SNodePagesTiles from '../helpers/i3s-nodepages-tiles';\nimport {generateTileAttributeUrls, getUrlWithToken} from '../utils/url-utils';\n\nexport function normalizeTileData(tile, options, context) {\n tile.url = context.url;\n\n if (tile.featureData) {\n tile.featureUrl = `${tile.url}/${tile.featureData[0].href}`;\n }\n\n if (tile.geometryData) {\n tile.contentUrl = `${tile.url}/${tile.geometryData[0].href}`;\n }\n\n if (tile.textureData) {\n tile.textureUrl = `${tile.url}/${tile.textureData[0].href}`;\n }\n\n if (tile.attributeData) {\n tile.attributeUrls = generateTileAttributeUrls(tile);\n }\n\n return normalizeTileNonUrlData(tile);\n}\n\nexport function normalizeTileNonUrlData(tile) {\n const box = tile.obb\n ? [\n ...Ellipsoid.WGS84.cartographicToCartesian(tile.obb.center), // cartesian center of box\n ...tile.obb.halfSize, // halfSize\n ...tile.obb.quaternion // quaternion\n ]\n : undefined;\n let sphere;\n if (tile.mbs) {\n sphere = [\n ...Ellipsoid.WGS84.cartographicToCartesian(tile.mbs.slice(0, 3)), // cartesian center of sphere\n tile.mbs[3] // radius of sphere\n ];\n } else if (box) {\n const obb = new OrientedBoundingBox().fromCenterHalfSizeQuaternion(\n box.slice(0, 3),\n tile.obb.halfSize,\n tile.obb.quaternion\n );\n const boundingSphere = obb.getBoundingSphere();\n sphere = [...boundingSphere.center, boundingSphere.radius];\n tile.mbs = [...tile.obb.center, boundingSphere.radius];\n }\n\n tile.boundingVolume = {\n sphere,\n box\n };\n tile.lodMetricType = tile.lodSelection[0].metricType;\n tile.lodMetricValue = tile.lodSelection[0].maxError;\n tile.transformMatrix = tile.transform;\n tile.type = TILE_TYPE.MESH;\n // TODO only support replacement for now\n tile.refine = TILE_REFINEMENT.REPLACE;\n\n return tile;\n}\n\nexport async function normalizeTilesetData(tileset, options, context) {\n tileset.url = context.url;\n\n if (tileset.nodePages) {\n tileset.nodePagesTile = new I3SNodePagesTiles(tileset, options);\n tileset.root = await tileset.nodePagesTile.formTileFromNodePages(0);\n } else {\n const rootNodeUrl = getUrlWithToken(`${tileset.url}/nodes/root`, options.i3s?.token);\n // eslint-disable-next-line no-use-before-define\n tileset.root = await load(rootNodeUrl, tileset.loader, {\n i3s: {loadContent: false, isTileHeader: true, isTileset: false}\n });\n }\n\n // base path that non-absolute paths in tileset are relative to.\n tileset.basePath = tileset.url;\n tileset.type = TILESET_TYPE.I3S;\n\n // populate from root node\n tileset.lodMetricType = tileset.root.lodMetricType;\n tileset.lodMetricValue = tileset.root.lodMetricValue;\n}\n"],"file":"parse-i3s.js"}
1
+ {"version":3,"sources":["../../../src/lib/parsers/parse-i3s.ts"],"names":["OrientedBoundingBox","Ellipsoid","load","TILE_TYPE","TILE_REFINEMENT","TILESET_TYPE","I3SNodePagesTiles","generateTileAttributeUrls","getUrlWithToken","normalizeTileData","tile","options","context","url","contentUrl","geometryData","href","textureUrl","textureData","attributeUrls","attributeData","normalizeTileNonUrlData","isDracoGeometry","boundingVolume","mbs","sphere","WGS84","cartographicToCartesian","slice","obb","box","center","halfSize","quaternion","fromCenterHalfSizeQuaternion","boundingSphere","getBoundingSphere","radius","lodMetricType","lodSelection","metricType","lodMetricValue","maxError","transformMatrix","transform","type","MESH","refine","REPLACE","normalizeTilesetData","tileset","nodePages","nodePagesTile","root","formTileFromNodePages","rootNodeUrl","i3s","token","loader","loadContent","isTileHeader","isTileset","basePath","I3S"],"mappings":"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","sourcesContent":["import {OrientedBoundingBox} from '@math.gl/culling';\nimport {Ellipsoid} from '@math.gl/geospatial';\nimport {load} from '@loaders.gl/core';\nimport {TILE_TYPE, TILE_REFINEMENT, TILESET_TYPE} from '@loaders.gl/tiles';\nimport I3SNodePagesTiles from '../helpers/i3s-nodepages-tiles';\nimport {generateTileAttributeUrls, getUrlWithToken} from '../utils/url-utils';\nimport {\n I3STilesetHeader,\n I3STileHeader,\n Mbs,\n I3SMinimalNodeData,\n Node3DIndexDocument\n} from '../../types';\nimport type {LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';\n\nexport function normalizeTileData(tile : Node3DIndexDocument, options : LoaderOptions, context: LoaderContext): I3STileHeader {\n const url: string = context.url || '';\n let contentUrl: string | undefined;\n if (tile.geometryData) {\n contentUrl = `${url}/${tile.geometryData[0].href}`;\n }\n\n let textureUrl: string | undefined;\n if (tile.textureData) {\n textureUrl = `${url}/${tile.textureData[0].href}`;\n }\n\n let attributeUrls: string[] | undefined;\n if (tile.attributeData) {\n attributeUrls = generateTileAttributeUrls(url, tile);\n }\n\n return normalizeTileNonUrlData({\n ...tile,\n url,\n contentUrl,\n textureUrl,\n attributeUrls,\n isDracoGeometry: false\n });\n}\n\nexport function normalizeTileNonUrlData(tile : I3SMinimalNodeData): I3STileHeader {\n const boundingVolume: {box?: number[]; sphere?: number[]} = {};\n let mbs: Mbs = [0, 0, 0, 1];\n if (tile.mbs) {\n mbs = tile.mbs;\n boundingVolume.sphere = [\n ...Ellipsoid.WGS84.cartographicToCartesian(tile.mbs.slice(0, 3)), // cartesian center of sphere\n tile.mbs[3] // radius of sphere\n ] as Mbs;\n } else if (tile.obb) {\n boundingVolume.box = [\n ...Ellipsoid.WGS84.cartographicToCartesian(tile.obb.center), // cartesian center of box\n ...tile.obb.halfSize, // halfSize\n ...tile.obb.quaternion // quaternion\n ];\n const obb = new OrientedBoundingBox().fromCenterHalfSizeQuaternion(\n boundingVolume.box.slice(0, 3),\n tile.obb.halfSize,\n tile.obb.quaternion\n );\n const boundingSphere = obb.getBoundingSphere();\n boundingVolume.sphere = [...boundingSphere.center , boundingSphere.radius] as Mbs;\n mbs = [...tile.obb.center, boundingSphere.radius] as Mbs;\n }\n\n const lodMetricType = tile.lodSelection?.[0].metricType;\n const lodMetricValue = tile.lodSelection?.[0].maxError;\n const transformMatrix = tile.transform;\n const type = TILE_TYPE.MESH;\n /**\n * I3S specification supports only REPLACE\n */\n const refine = TILE_REFINEMENT.REPLACE;\n\n return {...tile, mbs, boundingVolume, lodMetricType, lodMetricValue, transformMatrix, type, refine};\n}\n\nexport async function normalizeTilesetData(tileset : I3STilesetHeader, options : LoaderOptions, context: LoaderContext) {\n tileset.url = context.url;\n\n if (tileset.nodePages) {\n tileset.nodePagesTile = new I3SNodePagesTiles(tileset, options);\n tileset.root = await tileset.nodePagesTile.formTileFromNodePages(0);\n } else {\n const rootNodeUrl = getUrlWithToken(`${tileset.url}/nodes/root`, options.i3s?.token);\n // eslint-disable-next-line no-use-before-define\n tileset.root = await load(rootNodeUrl, tileset.loader, {\n i3s: {loadContent: false, isTileHeader: true, isTileset: false}\n });\n }\n\n // base path that non-absolute paths in tileset are relative to.\n tileset.basePath = tileset.url;\n tileset.type = TILESET_TYPE.I3S;\n\n // populate from root node\n tileset.lodMetricType = tileset.root.lodMetricType;\n tileset.lodMetricValue = tileset.root.lodMetricValue;\n}\n"],"file":"parse-i3s.js"}
@@ -0,0 +1,2 @@
1
+ export declare function convertI3SObbToMbs(obb: any): any[];
2
+ //# sourceMappingURL=convert-i3s-obb-to-mbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-i3s-obb-to-mbs.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/convert-i3s-obb-to-mbs.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,GAAG,KAAA,SAgBrC"}
@@ -0,0 +1,22 @@
1
+ import { Node3DIndexDocument } from '../../types';
2
+ /**
3
+ * Generates url with token if it is exists.
4
+ * @param url
5
+ * @param token
6
+ * @returns
7
+ */
8
+ export declare function getUrlWithToken(url: string, token?: string | null): string;
9
+ /**
10
+ * Generates attribute urls for tile.
11
+ * @param tile
12
+ * @returns list of attribute urls
13
+ */
14
+ export declare function generateTileAttributeUrls(url: string, tile: Node3DIndexDocument): string[];
15
+ /**
16
+ * Generates attribute urls for tileset based on tileset and resource
17
+ * @param {Object} tileset
18
+ * @param {number} resource
19
+ * @returns {Array}
20
+ */
21
+ export declare function generateTilesetAttributeUrls(tileset: any, resource: any): string[];
22
+ //# sourceMappingURL=url-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/url-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAU1F;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,KAAA,EAAE,QAAQ,KAAA,YAU7D"}
@@ -1,10 +1,9 @@
1
1
  export function getUrlWithToken(url, token = null) {
2
2
  return token ? "".concat(url, "?token=").concat(token) : url;
3
3
  }
4
- export function generateTileAttributeUrls(tile) {
4
+ export function generateTileAttributeUrls(url, tile) {
5
5
  const {
6
- url,
7
- attributeData
6
+ attributeData = []
8
7
  } = tile;
9
8
  const attributeUrls = [];
10
9
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils/url-utils.ts"],"names":["getUrlWithToken","url","token","generateTileAttributeUrls","tile","attributeData","attributeUrls","index","length","attributeUrl","href","replace","push","generateTilesetAttributeUrls","tileset","resource","attributeStorageInfo","fileName","key"],"mappings":"AAQA,OAAO,SAASA,eAAT,CAAyBC,GAAzB,EAA8BC,KAAK,GAAG,IAAtC,EAA4C;AACjD,SAAOA,KAAK,aAAMD,GAAN,oBAAmBC,KAAnB,IAA6BD,GAAzC;AACD;AAOD,OAAO,SAASE,yBAAT,CAAmCC,IAAnC,EAAyD;AAC9D,QAAM;AAACH,IAAAA,GAAD;AAAMI,IAAAA;AAAN,MAAuBD,IAA7B;AACA,QAAME,aAAuB,GAAG,EAAhC;;AAEA,OAAK,IAAIC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGF,aAAa,CAACG,MAA1C,EAAkDD,KAAK,EAAvD,EAA2D;AACzD,UAAME,YAAY,GAAGJ,aAAa,CAACE,KAAD,CAAb,CAAqBG,IAArB,CAA0BC,OAA1B,CAAkC,IAAlC,EAAwC,EAAxC,CAArB;AACAL,IAAAA,aAAa,CAACM,IAAd,WAAsBX,GAAtB,cAA6BQ,YAA7B;AACD;;AAED,SAAOH,aAAP;AACD;AAQD,OAAO,SAASO,4BAAT,CAAsCC,OAAtC,EAA+CC,QAA/C,EAAyD;AAC9D,QAAMT,aAAuB,GAAG,EAAhC;AACA,QAAM;AAACU,IAAAA,oBAAD;AAAuBf,IAAAA;AAAvB,MAA8Ba,OAApC;;AAEA,OAAK,IAAIP,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGS,oBAAoB,CAACR,MAAjD,EAAyDD,KAAK,EAA9D,EAAkE;AAChE,UAAMU,QAAQ,GAAGD,oBAAoB,CAACT,KAAD,CAApB,CAA4BW,GAA7C;AACAZ,IAAAA,aAAa,CAACM,IAAd,WAAsBX,GAAtB,oBAAmCc,QAAnC,yBAA0DE,QAA1D;AACD;;AAED,SAAOX,aAAP;AACD","sourcesContent":["import {Tile} from '../../types';\n\n/**\n * Generates url with token if it is exists.\n * @param {String} url\n * @param {any} token\n * @returns {string}\n */\nexport function getUrlWithToken(url, token = null) {\n return token ? `${url}?token=${token}` : url;\n}\n\n/**\n * Generates attribute urls for tile.\n * @param tile\n * @returns list of attribute urls\n */\nexport function generateTileAttributeUrls(tile: Tile): string[] {\n const {url, attributeData} = tile;\n const attributeUrls: string[] = [];\n\n for (let index = 0; index < attributeData.length; index++) {\n const attributeUrl = attributeData[index].href.replace('./', '');\n attributeUrls.push(`${url}/${attributeUrl}`);\n }\n\n return attributeUrls;\n}\n\n/**\n * Generates attribute urls for tileset based on tileset and resource\n * @param {Object} tileset\n * @param {number} resource\n * @returns {Array}\n */\nexport function generateTilesetAttributeUrls(tileset, resource) {\n const attributeUrls: string[] = [];\n const {attributeStorageInfo, url} = tileset;\n\n for (let index = 0; index < attributeStorageInfo.length; index++) {\n const fileName = attributeStorageInfo[index].key;\n attributeUrls.push(`${url}/nodes/${resource}/attributes/${fileName}/0`);\n }\n\n return attributeUrls;\n}\n"],"file":"url-utils.js"}
1
+ {"version":3,"sources":["../../../src/lib/utils/url-utils.ts"],"names":["getUrlWithToken","url","token","generateTileAttributeUrls","tile","attributeData","attributeUrls","index","length","attributeUrl","href","replace","push","generateTilesetAttributeUrls","tileset","resource","attributeStorageInfo","fileName","key"],"mappings":"AAQA,OAAO,SAASA,eAAT,CAAyBC,GAAzB,EAAsCC,KAAoB,GAAG,IAA7D,EAA2E;AAChF,SAAOA,KAAK,aAAMD,GAAN,oBAAmBC,KAAnB,IAA6BD,GAAzC;AACD;AAOD,OAAO,SAASE,yBAAT,CAAmCF,GAAnC,EAAgDG,IAAhD,EAAqF;AAC1F,QAAM;AAACC,IAAAA,aAAa,GAAG;AAAjB,MAAuBD,IAA7B;AACA,QAAME,aAAuB,GAAG,EAAhC;;AAEA,OAAK,IAAIC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGF,aAAa,CAACG,MAA1C,EAAkDD,KAAK,EAAvD,EAA2D;AACzD,UAAME,YAAY,GAAGJ,aAAa,CAACE,KAAD,CAAb,CAAqBG,IAArB,CAA0BC,OAA1B,CAAkC,IAAlC,EAAwC,EAAxC,CAArB;AACAL,IAAAA,aAAa,CAACM,IAAd,WAAsBX,GAAtB,cAA6BQ,YAA7B;AACD;;AAED,SAAOH,aAAP;AACD;AAQD,OAAO,SAASO,4BAAT,CAAsCC,OAAtC,EAA+CC,QAA/C,EAAyD;AAC9D,QAAMT,aAAuB,GAAG,EAAhC;AACA,QAAM;AAACU,IAAAA,oBAAD;AAAuBf,IAAAA;AAAvB,MAA8Ba,OAApC;;AAEA,OAAK,IAAIP,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGS,oBAAoB,CAACR,MAAjD,EAAyDD,KAAK,EAA9D,EAAkE;AAChE,UAAMU,QAAQ,GAAGD,oBAAoB,CAACT,KAAD,CAApB,CAA4BW,GAA7C;AACAZ,IAAAA,aAAa,CAACM,IAAd,WAAsBX,GAAtB,oBAAmCc,QAAnC,yBAA0DE,QAA1D;AACD;;AAED,SAAOX,aAAP;AACD","sourcesContent":["import {Node3DIndexDocument} from '../../types';\n\n/**\n * Generates url with token if it is exists.\n * @param url\n * @param token\n * @returns\n */\nexport function getUrlWithToken(url: string, token: string | null = null): string {\n return token ? `${url}?token=${token}` : url;\n}\n\n/**\n * Generates attribute urls for tile.\n * @param tile\n * @returns list of attribute urls\n */\nexport function generateTileAttributeUrls(url: string, tile: Node3DIndexDocument): string[] {\n const {attributeData = []} = tile;\n const attributeUrls: string[] = [];\n\n for (let index = 0; index < attributeData.length; index++) {\n const attributeUrl = attributeData[index].href.replace('./', '');\n attributeUrls.push(`${url}/${attributeUrl}`);\n }\n\n return attributeUrls;\n}\n\n/**\n * Generates attribute urls for tileset based on tileset and resource\n * @param {Object} tileset\n * @param {number} resource\n * @returns {Array}\n */\nexport function generateTilesetAttributeUrls(tileset, resource) {\n const attributeUrls: string[] = [];\n const {attributeStorageInfo, url} = tileset;\n\n for (let index = 0; index < attributeStorageInfo.length; index++) {\n const fileName = attributeStorageInfo[index].key;\n attributeUrls.push(`${url}/nodes/${resource}/attributes/${fileName}/0`);\n }\n\n return attributeUrls;\n}\n"],"file":"url-utils.js"}