@loaders.gl/gltf 4.4.0-alpha.17 → 4.4.0-alpha.19

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.
@@ -1,2 +1,3 @@
1
- export declare function resolveUrl(url: any, options: any): any;
1
+ import type { LoaderContext, StrictLoaderOptions } from '@loaders.gl/loader-utils';
2
+ export declare function resolveUrl(url: string, options?: StrictLoaderOptions, context?: LoaderContext): string;
2
3
  //# sourceMappingURL=resolve-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-url.d.ts","sourceRoot":"","sources":["../../../src/lib/gltf-utils/resolve-url.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,OAWtC"}
1
+ {"version":3,"file":"resolve-url.d.ts","sourceRoot":"","sources":["../../../src/lib/gltf-utils/resolve-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAIjF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,aAAa,UAW7F"}
@@ -1,15 +1,25 @@
1
1
  // Resolves a relative url against a baseUrl
2
2
  // If url is absolute, return it unchanged
3
- export function resolveUrl(url, options) {
3
+ export function resolveUrl(url, options, context) {
4
4
  // TODO: Use better logic to handle all protocols plus not delay on data
5
5
  const absolute = url.startsWith('data:') || url.startsWith('http:') || url.startsWith('https:');
6
6
  if (absolute) {
7
7
  return url;
8
8
  }
9
- const baseUrl = options?.core?.baseUri || options.baseUri || options.uri;
9
+ const baseUrl = context?.baseUrl || getResolveBaseUrl(options?.core?.baseUrl);
10
10
  if (!baseUrl) {
11
- throw new Error(`'baseUri' must be provided to resolve relative url ${url}`);
11
+ throw new Error(`'baseUrl' must be provided to resolve relative url ${url}`);
12
12
  }
13
- return baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1) + url;
13
+ return baseUrl.endsWith('/') ? `${baseUrl}${url}` : `${baseUrl}/${url}`;
14
+ }
15
+ function getResolveBaseUrl(baseUrl) {
16
+ if (!baseUrl) {
17
+ return undefined;
18
+ }
19
+ if (baseUrl.endsWith('/')) {
20
+ return baseUrl;
21
+ }
22
+ const slashIndex = baseUrl.lastIndexOf('/');
23
+ return slashIndex >= 0 ? baseUrl.slice(0, slashIndex + 1) : '';
14
24
  }
15
25
  //# sourceMappingURL=resolve-url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-url.js","sourceRoot":"","sources":["../../../src/lib/gltf-utils/resolve-url.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,GAAG,EAAE,OAAO;IACrC,wEAAwE;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChG,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;IACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"resolve-url.js","sourceRoot":"","sources":["../../../src/lib/gltf-utils/resolve-url.ts"],"names":[],"mappings":"AAEA,4CAA4C;AAC5C,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAA6B,EAAE,OAAuB;IAC5F,wEAAwE;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChG,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC"}
@@ -37,8 +37,8 @@ export async function parseGLTF(gltf, arrayBufferOrString, byteOffset = 0, optio
37
37
  */
38
38
  function parseGLTFContainerSync(gltf, data, byteOffset, options) {
39
39
  // Initialize gltf container
40
- if (options.core?.baseUri) {
41
- gltf.baseUri = options.core?.baseUri;
40
+ if (options.core?.baseUrl) {
41
+ gltf.baseUri = options.core?.baseUrl;
42
42
  }
43
43
  // If data is binary and starting with magic bytes, assume binary JSON text, convert to string
44
44
  if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options.glb)) {
@@ -91,7 +91,7 @@ async function loadBuffers(gltf, options, context) {
91
91
  if (buffer.uri) {
92
92
  const { fetch } = context;
93
93
  assert(fetch);
94
- const uri = resolveUrl(buffer.uri, options);
94
+ const uri = resolveUrl(buffer.uri, options, context);
95
95
  const response = await context?.fetch?.(uri);
96
96
  const arrayBuffer = await response?.arrayBuffer?.();
97
97
  gltf.buffers[i] = {
@@ -142,7 +142,7 @@ function getReferencesImageIndices(gltf) {
142
142
  async function loadImage(gltf, image, index, options, context) {
143
143
  let arrayBuffer;
144
144
  if (image.uri && !image.hasOwnProperty('bufferView')) {
145
- const uri = resolveUrl(image.uri, options);
145
+ const uri = resolveUrl(image.uri, options, context);
146
146
  const { fetch } = context;
147
147
  const response = await fetch(uri);
148
148
  arrayBuffer = await response.arrayBuffer();
@@ -1 +1 @@
1
- {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // Version constant cannot be imported, it needs to correspond to the build version of **this** module.
2
2
  // __VERSION__ is injected by babel-plugin-version-inline
3
3
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
4
- export const VERSION = typeof "4.4.0-alpha.17" !== 'undefined' ? "4.4.0-alpha.17" : 'latest';
4
+ export const VERSION = typeof "4.4.0-alpha.19" !== 'undefined' ? "4.4.0-alpha.19" : 'latest';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/gltf",
3
- "version": "4.4.0-alpha.17",
3
+ "version": "4.4.0-alpha.19",
4
4
  "description": "Framework-independent loader for the glTF format",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -43,15 +43,15 @@
43
43
  "build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
44
44
  },
45
45
  "dependencies": {
46
- "@loaders.gl/draco": "4.4.0-alpha.17",
47
- "@loaders.gl/images": "4.4.0-alpha.17",
48
- "@loaders.gl/loader-utils": "4.4.0-alpha.17",
49
- "@loaders.gl/schema": "4.4.0-alpha.17",
50
- "@loaders.gl/textures": "4.4.0-alpha.17",
46
+ "@loaders.gl/draco": "4.4.0-alpha.19",
47
+ "@loaders.gl/images": "4.4.0-alpha.19",
48
+ "@loaders.gl/loader-utils": "4.4.0-alpha.19",
49
+ "@loaders.gl/schema": "4.4.0-alpha.19",
50
+ "@loaders.gl/textures": "4.4.0-alpha.19",
51
51
  "@math.gl/core": "^4.1.0"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "@loaders.gl/core": "4.4.0-alpha.1"
55
55
  },
56
- "gitHead": "1379fa4a0c29df20dbc834a4ed1c9800e4aaec2f"
56
+ "gitHead": "e29d8964be2d7304d212560b44e6669ce01e9b8a"
57
57
  }
@@ -1,14 +1,29 @@
1
+ import type {LoaderContext, StrictLoaderOptions} from '@loaders.gl/loader-utils';
2
+
1
3
  // Resolves a relative url against a baseUrl
2
4
  // If url is absolute, return it unchanged
3
- export function resolveUrl(url, options) {
5
+ export function resolveUrl(url: string, options?: StrictLoaderOptions, context?: LoaderContext) {
4
6
  // TODO: Use better logic to handle all protocols plus not delay on data
5
7
  const absolute = url.startsWith('data:') || url.startsWith('http:') || url.startsWith('https:');
6
8
  if (absolute) {
7
9
  return url;
8
10
  }
9
- const baseUrl = options?.core?.baseUri || options.baseUri || options.uri;
11
+ const baseUrl = context?.baseUrl || getResolveBaseUrl(options?.core?.baseUrl);
10
12
  if (!baseUrl) {
11
- throw new Error(`'baseUri' must be provided to resolve relative url ${url}`);
13
+ throw new Error(`'baseUrl' must be provided to resolve relative url ${url}`);
12
14
  }
13
- return baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1) + url;
15
+ return baseUrl.endsWith('/') ? `${baseUrl}${url}` : `${baseUrl}/${url}`;
16
+ }
17
+
18
+ function getResolveBaseUrl(baseUrl?: string): string | undefined {
19
+ if (!baseUrl) {
20
+ return undefined;
21
+ }
22
+
23
+ if (baseUrl.endsWith('/')) {
24
+ return baseUrl;
25
+ }
26
+
27
+ const slashIndex = baseUrl.lastIndexOf('/');
28
+ return slashIndex >= 0 ? baseUrl.slice(0, slashIndex + 1) : '';
14
29
  }
@@ -72,8 +72,8 @@ export async function parseGLTF(
72
72
  */
73
73
  function parseGLTFContainerSync(gltf, data, byteOffset, options: GLTFLoaderOptions) {
74
74
  // Initialize gltf container
75
- if (options.core?.baseUri) {
76
- gltf.baseUri = options.core?.baseUri;
75
+ if (options.core?.baseUrl) {
76
+ gltf.baseUri = options.core?.baseUrl;
77
77
  }
78
78
 
79
79
  // If data is binary and starting with magic bytes, assume binary JSON text, convert to string
@@ -134,7 +134,7 @@ async function loadBuffers(gltf: GLTFWithBuffers, options, context: LoaderContex
134
134
  const {fetch} = context;
135
135
  assert(fetch);
136
136
 
137
- const uri = resolveUrl(buffer.uri, options);
137
+ const uri = resolveUrl(buffer.uri, options, context);
138
138
  const response = await context?.fetch?.(uri);
139
139
  const arrayBuffer = await response?.arrayBuffer?.();
140
140
 
@@ -201,7 +201,7 @@ async function loadImage(
201
201
  let arrayBuffer;
202
202
 
203
203
  if (image.uri && !image.hasOwnProperty('bufferView')) {
204
- const uri = resolveUrl(image.uri, options);
204
+ const uri = resolveUrl(image.uri, options, context);
205
205
 
206
206
  const {fetch} = context;
207
207
  const response = await fetch(uri);