@loaders.gl/draco 3.1.7 → 3.2.0-alpha.2

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 (50) hide show
  1. package/dist/dist.min.js +3 -3
  2. package/dist/dist.min.js.map +2 -2
  3. package/dist/draco-worker.js +1 -1
  4. package/dist/draco-worker.js.map +2 -2
  5. package/dist/draco-writer-nodejs-worker.js +192 -0
  6. package/dist/draco-writer-nodejs-worker.js.map +7 -0
  7. package/dist/draco-writer-nodejs.d.ts +3 -0
  8. package/dist/draco-writer-nodejs.d.ts.map +1 -0
  9. package/dist/draco-writer-nodejs.js +7 -0
  10. package/dist/draco-writer-worker.js +4 -0
  11. package/dist/draco-writer-worker.js.map +7 -0
  12. package/dist/draco-writer.d.ts +6 -2
  13. package/dist/draco-writer.d.ts.map +1 -1
  14. package/dist/es5/draco-writer-nodejs.js +16 -0
  15. package/dist/es5/draco-writer-nodejs.js.map +1 -0
  16. package/dist/es5/draco-writer.js.map +1 -1
  17. package/dist/es5/index.js +18 -1
  18. package/dist/es5/index.js.map +1 -1
  19. package/dist/es5/lib/utils/version.js +1 -1
  20. package/dist/es5/lib/utils/version.js.map +1 -1
  21. package/dist/es5/workers/draco-writer-nodejs-worker.js +70 -0
  22. package/dist/es5/workers/draco-writer-nodejs-worker.js.map +1 -0
  23. package/dist/es5/workers/draco-writer-worker.js +70 -0
  24. package/dist/es5/workers/draco-writer-worker.js.map +1 -0
  25. package/dist/esm/draco-writer-nodejs.js +3 -0
  26. package/dist/esm/draco-writer-nodejs.js.map +1 -0
  27. package/dist/esm/draco-writer.js.map +1 -1
  28. package/dist/esm/index.js +13 -0
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/lib/utils/version.js +1 -1
  31. package/dist/esm/lib/utils/version.js.map +1 -1
  32. package/dist/esm/workers/draco-writer-nodejs-worker.js +34 -0
  33. package/dist/esm/workers/draco-writer-nodejs-worker.js.map +1 -0
  34. package/dist/esm/workers/draco-writer-worker.js +34 -0
  35. package/dist/esm/workers/draco-writer-worker.js.map +1 -0
  36. package/dist/index.d.ts +15 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +18 -1
  39. package/dist/workers/draco-writer-nodejs-worker.d.ts +2 -0
  40. package/dist/workers/draco-writer-nodejs-worker.d.ts.map +1 -0
  41. package/dist/workers/draco-writer-nodejs-worker.js +26 -0
  42. package/dist/workers/draco-writer-worker.d.ts +2 -0
  43. package/dist/workers/draco-writer-worker.d.ts.map +1 -0
  44. package/dist/workers/draco-writer-worker.js +26 -0
  45. package/package.json +12 -6
  46. package/src/draco-writer-nodejs.ts +4 -0
  47. package/src/draco-writer.ts +7 -6
  48. package/src/index.ts +18 -0
  49. package/src/workers/draco-writer-nodejs-worker.ts +25 -0
  50. package/src/workers/draco-writer-worker.ts +25 -0
package/dist/index.d.ts CHANGED
@@ -5,6 +5,21 @@ import { DracoLoader as DracoWorkerLoader } from './draco-loader';
5
5
  export type { DracoMesh, DracoLoaderData };
6
6
  export type { DracoWriterOptions } from './draco-writer';
7
7
  export { DracoWriter } from './draco-writer';
8
+ /**
9
+ * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
10
+ * Refused to execute script from 'https://raw.githubusercontent.com/google/draco/1.4.1/javascript/draco_encoder.js' because its MIME type ('') is not executable.
11
+ */
12
+ export declare const DracoWriterWorker: {
13
+ id: string;
14
+ name: string;
15
+ module: string;
16
+ version: any;
17
+ worker: boolean;
18
+ options: {
19
+ draco: {};
20
+ source: null;
21
+ };
22
+ };
8
23
  export type { DracoLoaderOptions };
9
24
  export { DracoWorkerLoader };
10
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,WAAW,IAAI,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAMhE,YAAY,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC;AAIzC,YAAY,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAI3C,YAAY,EAAC,kBAAkB,EAAC,CAAC;AACjC,OAAO,EAAC,iBAAiB,EAAC,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAGvB,CAAC;AAEF,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAQ/F;AAGD,eAAO,MAAM,qBAAqB,EAAE,gBAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,WAAW,IAAI,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAQhE,YAAY,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC;AAIzC,YAAY,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAU7B,CAAC;AAIF,YAAY,EAAC,kBAAkB,EAAC,CAAC;AACjC,OAAO,EAAC,iBAAiB,EAAC,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAGvB,CAAC;AAEF,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAQ/F;AAGD,eAAO,MAAM,qBAAqB,EAAE,gBAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -3,13 +3,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports._TypecheckDracoLoader = exports.DracoLoader = exports.DracoWorkerLoader = exports.DracoWriter = void 0;
6
+ exports._TypecheckDracoLoader = exports.DracoLoader = exports.DracoWorkerLoader = exports.DracoWriterWorker = exports.DracoWriter = void 0;
7
7
  const draco_loader_1 = require("./draco-loader");
8
8
  Object.defineProperty(exports, "DracoWorkerLoader", { enumerable: true, get: function () { return draco_loader_1.DracoLoader; } });
9
9
  const draco_parser_1 = __importDefault(require("./lib/draco-parser"));
10
10
  const draco_module_loader_1 = require("./lib/draco-module-loader");
11
+ const version_1 = require("./lib/utils/version");
12
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
11
13
  var draco_writer_1 = require("./draco-writer");
12
14
  Object.defineProperty(exports, "DracoWriter", { enumerable: true, get: function () { return draco_writer_1.DracoWriter; } });
15
+ /**
16
+ * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
17
+ * Refused to execute script from 'https://raw.githubusercontent.com/google/draco/1.4.1/javascript/draco_encoder.js' because its MIME type ('') is not executable.
18
+ */
19
+ exports.DracoWriterWorker = {
20
+ id: worker_utils_1.isBrowser ? 'draco-writer' : 'draco-writer-nodejs',
21
+ name: 'Draco compressed geometry writer',
22
+ module: 'draco',
23
+ version: version_1.VERSION,
24
+ worker: true,
25
+ options: {
26
+ draco: {},
27
+ source: null
28
+ }
29
+ };
13
30
  /**
14
31
  * Loader for Draco3D compressed geometries
15
32
  */
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=draco-writer-nodejs-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-writer-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/draco-writer-nodejs-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
4
+ const draco_writer_nodejs_1 = require("../draco-writer-nodejs");
5
+ (() => {
6
+ // Check that we are actually in a worker thread
7
+ if (!worker_utils_1.WorkerBody.inWorkerThread()) {
8
+ return;
9
+ }
10
+ worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
11
+ switch (type) {
12
+ case 'process':
13
+ try {
14
+ const { input, options } = payload;
15
+ const result = await draco_writer_nodejs_1.DracoWriterNodeJS.encode(input, options);
16
+ worker_utils_1.WorkerBody.postMessage('done', { result });
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : '';
20
+ worker_utils_1.WorkerBody.postMessage('error', { error: message });
21
+ }
22
+ break;
23
+ default:
24
+ }
25
+ };
26
+ })();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=draco-writer-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-writer-worker.d.ts","sourceRoot":"","sources":["../../src/workers/draco-writer-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
4
+ const draco_writer_1 = require("../draco-writer");
5
+ (() => {
6
+ // Check that we are actually in a worker thread
7
+ if (!worker_utils_1.WorkerBody.inWorkerThread()) {
8
+ return;
9
+ }
10
+ worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
11
+ switch (type) {
12
+ case 'process':
13
+ try {
14
+ const { input, options } = payload;
15
+ const result = await draco_writer_1.DracoWriter.encode(input, options);
16
+ worker_utils_1.WorkerBody.postMessage('done', { result });
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : '';
20
+ worker_utils_1.WorkerBody.postMessage('error', { error: message });
21
+ }
22
+ break;
23
+ default:
24
+ }
25
+ };
26
+ })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/draco",
3
- "version": "3.1.7",
3
+ "version": "3.2.0-alpha.2",
4
4
  "description": "Framework-independent loader and writer for Draco compressed meshes and point clouds",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -34,14 +34,20 @@
34
34
  "scripts": {
35
35
  "pre-build": "npm run build-bundle && npm run build-worker",
36
36
  "build-bundle": "esbuild src/bundle.ts --outfile=dist/dist.min.js --bundle --minify --sourcemap",
37
- "build-worker": "esbuild src/workers/draco-worker.ts --outfile=dist/draco-worker.js --bundle --minify --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\""
37
+ "build-loader-worker": "esbuild src/workers/draco-worker.ts --outfile=dist/draco-worker.js --bundle --minify --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\"",
38
+ "build-writer-worker": "esbuild src/workers/draco-writer-worker.ts --outfile=dist/draco-writer-worker.js --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\"",
39
+ "build-writer-worker-nodejs": "esbuild src/workers/draco-writer-nodejs-worker.ts --outfile=dist/draco-writer-nodejs-worker.js --platform=node --target=esnext,node12 --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\"",
40
+ "build-worker": "yarn build-loader-worker && yarn build-writer-worker && yarn build-writer-worker-nodejs"
38
41
  },
39
42
  "dependencies": {
40
43
  "@babel/runtime": "^7.3.1",
41
- "@loaders.gl/loader-utils": "3.1.7",
42
- "@loaders.gl/schema": "3.1.7",
43
- "@loaders.gl/worker-utils": "3.1.7",
44
+ "@loaders.gl/loader-utils": "3.2.0-alpha.2",
45
+ "@loaders.gl/schema": "3.2.0-alpha.2",
46
+ "@loaders.gl/worker-utils": "3.2.0-alpha.2",
44
47
  "draco3d": "1.4.1"
45
48
  },
46
- "gitHead": "e48d29e426e9f23879875763e73efc5c58345be1"
49
+ "devDependencies": {
50
+ "@loaders.gl/polyfills": "3.2.0-alpha.2"
51
+ },
52
+ "gitHead": "52a602739cbfce60fc314f474efc984d199dff78"
47
53
  }
@@ -0,0 +1,4 @@
1
+ // Polyfills increases the bundle size significantly. Use it for NodeJS worker only
2
+ import '@loaders.gl/polyfills';
3
+
4
+ export {DracoWriter as DracoWriterNodeJS} from './draco-writer';
@@ -1,11 +1,15 @@
1
- import type {Writer} from '@loaders.gl/loader-utils';
1
+ import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
2
2
  import type {DracoMesh} from './lib/draco-types';
3
3
  import type {DracoBuildOptions} from './lib/draco-builder';
4
4
  import DRACOBuilder from './lib/draco-builder';
5
5
  import {loadDracoEncoderModule} from './lib/draco-module-loader';
6
6
  import {VERSION} from './lib/utils/version';
7
7
 
8
- export type DracoWriterOptions = DracoBuildOptions & {};
8
+ export type DracoWriterOptions = WriterOptions & {
9
+ draco?: DracoBuildOptions & {
10
+ attributeNameEntry: string;
11
+ };
12
+ };
9
13
 
10
14
  const DEFAULT_DRACO_OPTIONS = {
11
15
  pointcloud: false, // Set to true if pointcloud (mode: 0, no indices)
@@ -33,10 +37,7 @@ export const DracoWriter: Writer = {
33
37
  }
34
38
  };
35
39
 
36
- async function encode(
37
- data: DracoMesh,
38
- options: {draco?: DracoWriterOptions} = {}
39
- ): Promise<ArrayBuffer> {
40
+ async function encode(data: DracoMesh, options: DracoWriterOptions = {}): Promise<ArrayBuffer> {
40
41
  // Dynamically load draco
41
42
  const {draco} = await loadDracoEncoderModule(options);
42
43
  const dracoBuilder = new DRACOBuilder(draco);
package/src/index.ts CHANGED
@@ -4,6 +4,8 @@ import type {DracoLoaderOptions} from './draco-loader';
4
4
  import {DracoLoader as DracoWorkerLoader} from './draco-loader';
5
5
  import DracoParser from './lib/draco-parser';
6
6
  import {loadDracoDecoderModule} from './lib/draco-module-loader';
7
+ import {VERSION} from './lib/utils/version';
8
+ import {isBrowser} from '@loaders.gl/worker-utils';
7
9
 
8
10
  // Draco data types
9
11
 
@@ -14,6 +16,22 @@ export type {DracoMesh, DracoLoaderData};
14
16
  export type {DracoWriterOptions} from './draco-writer';
15
17
  export {DracoWriter} from './draco-writer';
16
18
 
19
+ /**
20
+ * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
21
+ * Refused to execute script from 'https://raw.githubusercontent.com/google/draco/1.4.1/javascript/draco_encoder.js' because its MIME type ('') is not executable.
22
+ */
23
+ export const DracoWriterWorker = {
24
+ id: isBrowser ? 'draco-writer' : 'draco-writer-nodejs',
25
+ name: 'Draco compressed geometry writer',
26
+ module: 'draco',
27
+ version: VERSION,
28
+ worker: true,
29
+ options: {
30
+ draco: {},
31
+ source: null
32
+ }
33
+ };
34
+
17
35
  // Draco Loader
18
36
 
19
37
  export type {DracoLoaderOptions};
@@ -0,0 +1,25 @@
1
+ import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';
2
+ import {DracoWriterNodeJS} from '../draco-writer-nodejs';
3
+
4
+ (() => {
5
+ // Check that we are actually in a worker thread
6
+ if (!WorkerBody.inWorkerThread()) {
7
+ return;
8
+ }
9
+
10
+ WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {
11
+ switch (type) {
12
+ case 'process':
13
+ try {
14
+ const {input, options} = payload;
15
+ const result = await DracoWriterNodeJS.encode!(input, options);
16
+ WorkerBody.postMessage('done', {result});
17
+ } catch (error) {
18
+ const message = error instanceof Error ? error.message : '';
19
+ WorkerBody.postMessage('error', {error: message});
20
+ }
21
+ break;
22
+ default:
23
+ }
24
+ };
25
+ })();
@@ -0,0 +1,25 @@
1
+ import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';
2
+ import {DracoWriter} from '../draco-writer';
3
+
4
+ (() => {
5
+ // Check that we are actually in a worker thread
6
+ if (!WorkerBody.inWorkerThread()) {
7
+ return;
8
+ }
9
+
10
+ WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {
11
+ switch (type) {
12
+ case 'process':
13
+ try {
14
+ const {input, options} = payload;
15
+ const result = await DracoWriter.encode!(input, options);
16
+ WorkerBody.postMessage('done', {result});
17
+ } catch (error) {
18
+ const message = error instanceof Error ? error.message : '';
19
+ WorkerBody.postMessage('error', {error: message});
20
+ }
21
+ break;
22
+ default:
23
+ }
24
+ };
25
+ })();