@loaders.gl/worker-utils 3.3.0-alpha.5 → 3.3.0-alpha.7

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 (99) hide show
  1. package/dist/es5/index.js +35 -52
  2. package/dist/es5/index.js.map +1 -1
  3. package/dist/es5/lib/async-queue/async-queue.js +15 -22
  4. package/dist/es5/lib/async-queue/async-queue.js.map +1 -1
  5. package/dist/es5/lib/env-utils/assert.js.map +1 -1
  6. package/dist/es5/lib/env-utils/globals.js +7 -4
  7. package/dist/es5/lib/env-utils/globals.js.map +1 -1
  8. package/dist/es5/lib/env-utils/version.js +3 -3
  9. package/dist/es5/lib/env-utils/version.js.map +1 -1
  10. package/dist/es5/lib/library-utils/library-utils.js +6 -45
  11. package/dist/es5/lib/library-utils/library-utils.js.map +1 -1
  12. package/dist/es5/lib/node/require-utils.node.js +0 -22
  13. package/dist/es5/lib/node/require-utils.node.js.map +1 -1
  14. package/dist/es5/lib/node/worker_threads-browser.js +3 -6
  15. package/dist/es5/lib/node/worker_threads-browser.js.map +1 -1
  16. package/dist/es5/lib/node/worker_threads.js +0 -2
  17. package/dist/es5/lib/node/worker_threads.js.map +1 -1
  18. package/dist/es5/lib/process-utils/child-process-proxy.js +6 -49
  19. package/dist/es5/lib/process-utils/child-process-proxy.js.map +1 -1
  20. package/dist/es5/lib/process-utils/process-utils.js +0 -7
  21. package/dist/es5/lib/process-utils/process-utils.js.map +1 -1
  22. package/dist/es5/lib/worker-api/create-worker.js +40 -96
  23. package/dist/es5/lib/worker-api/create-worker.js.map +1 -1
  24. package/dist/es5/lib/worker-api/get-worker-url.js +2 -7
  25. package/dist/es5/lib/worker-api/get-worker-url.js.map +1 -1
  26. package/dist/es5/lib/worker-api/process-on-worker.js +13 -39
  27. package/dist/es5/lib/worker-api/process-on-worker.js.map +1 -1
  28. package/dist/es5/lib/worker-api/validate-worker-version.js +0 -4
  29. package/dist/es5/lib/worker-api/validate-worker-version.js.map +1 -1
  30. package/dist/es5/lib/worker-farm/worker-body.js +13 -30
  31. package/dist/es5/lib/worker-farm/worker-body.js.map +1 -1
  32. package/dist/es5/lib/worker-farm/worker-farm.js +21 -32
  33. package/dist/es5/lib/worker-farm/worker-farm.js.map +1 -1
  34. package/dist/es5/lib/worker-farm/worker-job.js +9 -13
  35. package/dist/es5/lib/worker-farm/worker-job.js.map +1 -1
  36. package/dist/es5/lib/worker-farm/worker-pool.js +18 -51
  37. package/dist/es5/lib/worker-farm/worker-pool.js.map +1 -1
  38. package/dist/es5/lib/worker-farm/worker-thread.js +21 -33
  39. package/dist/es5/lib/worker-farm/worker-thread.js.map +1 -1
  40. package/dist/es5/lib/worker-utils/get-loadable-worker-url.js +1 -5
  41. package/dist/es5/lib/worker-utils/get-loadable-worker-url.js.map +1 -1
  42. package/dist/es5/lib/worker-utils/get-transfer-list.js +4 -11
  43. package/dist/es5/lib/worker-utils/get-transfer-list.js.map +1 -1
  44. package/dist/es5/lib/worker-utils/remove-nontransferable-options.js +0 -4
  45. package/dist/es5/lib/worker-utils/remove-nontransferable-options.js.map +1 -1
  46. package/dist/es5/types.js.map +1 -1
  47. package/dist/es5/workers/null-worker.js +0 -6
  48. package/dist/es5/workers/null-worker.js.map +1 -1
  49. package/dist/esm/index.js +8 -0
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/lib/async-queue/async-queue.js +1 -14
  52. package/dist/esm/lib/async-queue/async-queue.js.map +1 -1
  53. package/dist/esm/lib/env-utils/assert.js +2 -0
  54. package/dist/esm/lib/env-utils/assert.js.map +1 -1
  55. package/dist/esm/lib/env-utils/globals.js +9 -1
  56. package/dist/esm/lib/env-utils/globals.js.map +1 -1
  57. package/dist/esm/lib/env-utils/version.js +4 -3
  58. package/dist/esm/lib/env-utils/version.js.map +1 -1
  59. package/dist/esm/lib/library-utils/library-utils.js +10 -12
  60. package/dist/esm/lib/library-utils/library-utils.js.map +1 -1
  61. package/dist/esm/lib/node/require-utils.node.js +7 -9
  62. package/dist/esm/lib/node/require-utils.node.js.map +1 -1
  63. package/dist/esm/lib/node/worker_threads-browser.js +1 -0
  64. package/dist/esm/lib/node/worker_threads-browser.js.map +1 -1
  65. package/dist/esm/lib/node/worker_threads.js.map +1 -1
  66. package/dist/esm/lib/process-utils/child-process-proxy.js +13 -25
  67. package/dist/esm/lib/process-utils/child-process-proxy.js.map +1 -1
  68. package/dist/esm/lib/process-utils/process-utils.js +3 -5
  69. package/dist/esm/lib/process-utils/process-utils.js.map +1 -1
  70. package/dist/esm/lib/worker-api/create-worker.js +4 -14
  71. package/dist/esm/lib/worker-api/create-worker.js.map +1 -1
  72. package/dist/esm/lib/worker-api/get-worker-url.js +6 -5
  73. package/dist/esm/lib/worker-api/get-worker-url.js.map +1 -1
  74. package/dist/esm/lib/worker-api/process-on-worker.js +7 -11
  75. package/dist/esm/lib/worker-api/process-on-worker.js.map +1 -1
  76. package/dist/esm/lib/worker-api/validate-worker-version.js +3 -2
  77. package/dist/esm/lib/worker-api/validate-worker-version.js.map +1 -1
  78. package/dist/esm/lib/worker-farm/worker-body.js +1 -13
  79. package/dist/esm/lib/worker-farm/worker-body.js.map +1 -1
  80. package/dist/esm/lib/worker-farm/worker-farm.js +9 -14
  81. package/dist/esm/lib/worker-farm/worker-farm.js.map +1 -1
  82. package/dist/esm/lib/worker-farm/worker-job.js +2 -9
  83. package/dist/esm/lib/worker-farm/worker-job.js.map +1 -1
  84. package/dist/esm/lib/worker-farm/worker-pool.js +8 -31
  85. package/dist/esm/lib/worker-farm/worker-pool.js.map +1 -1
  86. package/dist/esm/lib/worker-farm/worker-thread.js +2 -23
  87. package/dist/esm/lib/worker-farm/worker-thread.js.map +1 -1
  88. package/dist/esm/lib/worker-utils/get-loadable-worker-url.js +2 -3
  89. package/dist/esm/lib/worker-utils/get-loadable-worker-url.js.map +1 -1
  90. package/dist/esm/lib/worker-utils/get-transfer-list.js +9 -10
  91. package/dist/esm/lib/worker-utils/get-transfer-list.js.map +1 -1
  92. package/dist/esm/lib/worker-utils/remove-nontransferable-options.js +1 -1
  93. package/dist/esm/lib/worker-utils/remove-nontransferable-options.js.map +1 -1
  94. package/dist/esm/types.js.map +1 -1
  95. package/dist/esm/workers/null-worker.js.map +1 -1
  96. package/dist/lib/library-utils/library-utils.js +5 -1
  97. package/dist/lib/node/worker_threads.js +5 -1
  98. package/dist/lib/process-utils/child-process-proxy.js +5 -1
  99. package/package.json +2 -2
package/dist/es5/index.js CHANGED
@@ -1,44 +1,38 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- Object.defineProperty(exports, "assert", {
9
- enumerable: true,
10
- get: function get() {
11
- return _assert.assert;
12
- }
13
- });
14
- Object.defineProperty(exports, "isBrowser", {
7
+ Object.defineProperty(exports, "AsyncQueue", {
15
8
  enumerable: true,
16
9
  get: function get() {
17
- return _globals.isBrowser;
10
+ return _asyncQueue.default;
18
11
  }
19
12
  });
20
- Object.defineProperty(exports, "isWorker", {
13
+ Object.defineProperty(exports, "ChildProcessProxy", {
21
14
  enumerable: true,
22
15
  get: function get() {
23
- return _globals.isWorker;
16
+ return _childProcessProxy.default;
24
17
  }
25
18
  });
26
- Object.defineProperty(exports, "WorkerJob", {
19
+ exports.NullWorker = void 0;
20
+ Object.defineProperty(exports, "WorkerBody", {
27
21
  enumerable: true,
28
22
  get: function get() {
29
- return _workerJob.default;
23
+ return _workerBody.default;
30
24
  }
31
25
  });
32
- Object.defineProperty(exports, "WorkerThread", {
26
+ Object.defineProperty(exports, "WorkerFarm", {
33
27
  enumerable: true,
34
28
  get: function get() {
35
- return _workerThread.default;
29
+ return _workerFarm.default;
36
30
  }
37
31
  });
38
- Object.defineProperty(exports, "WorkerFarm", {
32
+ Object.defineProperty(exports, "WorkerJob", {
39
33
  enumerable: true,
40
34
  get: function get() {
41
- return _workerFarm.default;
35
+ return _workerJob.default;
42
36
  }
43
37
  });
44
38
  Object.defineProperty(exports, "WorkerPool", {
@@ -47,16 +41,16 @@ Object.defineProperty(exports, "WorkerPool", {
47
41
  return _workerPool.default;
48
42
  }
49
43
  });
50
- Object.defineProperty(exports, "WorkerBody", {
44
+ Object.defineProperty(exports, "WorkerThread", {
51
45
  enumerable: true,
52
46
  get: function get() {
53
- return _workerBody.default;
47
+ return _workerThread.default;
54
48
  }
55
49
  });
56
- Object.defineProperty(exports, "processOnWorker", {
50
+ Object.defineProperty(exports, "assert", {
57
51
  enumerable: true,
58
52
  get: function get() {
59
- return _processOnWorker.processOnWorker;
53
+ return _assert.assert;
60
54
  }
61
55
  });
62
56
  Object.defineProperty(exports, "canProcessOnWorker", {
@@ -71,16 +65,10 @@ Object.defineProperty(exports, "createWorker", {
71
65
  return _createWorker.createWorker;
72
66
  }
73
67
  });
74
- Object.defineProperty(exports, "getWorkerURL", {
75
- enumerable: true,
76
- get: function get() {
77
- return _getWorkerUrl.getWorkerURL;
78
- }
79
- });
80
- Object.defineProperty(exports, "validateWorkerVersion", {
68
+ Object.defineProperty(exports, "getLibraryUrl", {
81
69
  enumerable: true,
82
70
  get: function get() {
83
- return _validateWorkerVersion.validateWorkerVersion;
71
+ return _libraryUtils.getLibraryUrl;
84
72
  }
85
73
  });
86
74
  Object.defineProperty(exports, "getTransferList", {
@@ -95,10 +83,22 @@ Object.defineProperty(exports, "getTransferListForWriter", {
95
83
  return _getTransferList.getTransferListForWriter;
96
84
  }
97
85
  });
98
- Object.defineProperty(exports, "getLibraryUrl", {
86
+ Object.defineProperty(exports, "getWorkerURL", {
99
87
  enumerable: true,
100
88
  get: function get() {
101
- return _libraryUtils.getLibraryUrl;
89
+ return _getWorkerUrl.getWorkerURL;
90
+ }
91
+ });
92
+ Object.defineProperty(exports, "isBrowser", {
93
+ enumerable: true,
94
+ get: function get() {
95
+ return _globals.isBrowser;
96
+ }
97
+ });
98
+ Object.defineProperty(exports, "isWorker", {
99
+ enumerable: true,
100
+ get: function get() {
101
+ return _globals.isWorker;
102
102
  }
103
103
  });
104
104
  Object.defineProperty(exports, "loadLibrary", {
@@ -107,50 +107,33 @@ Object.defineProperty(exports, "loadLibrary", {
107
107
  return _libraryUtils.loadLibrary;
108
108
  }
109
109
  });
110
- Object.defineProperty(exports, "AsyncQueue", {
110
+ Object.defineProperty(exports, "processOnWorker", {
111
111
  enumerable: true,
112
112
  get: function get() {
113
- return _asyncQueue.default;
113
+ return _processOnWorker.processOnWorker;
114
114
  }
115
115
  });
116
- Object.defineProperty(exports, "ChildProcessProxy", {
116
+ Object.defineProperty(exports, "validateWorkerVersion", {
117
117
  enumerable: true,
118
118
  get: function get() {
119
- return _childProcessProxy.default;
119
+ return _validateWorkerVersion.validateWorkerVersion;
120
120
  }
121
121
  });
122
- exports.NullWorker = void 0;
123
-
124
122
  var _version = require("./lib/env-utils/version");
125
-
126
123
  var _assert = require("./lib/env-utils/assert");
127
-
128
124
  var _globals = require("./lib/env-utils/globals");
129
-
130
125
  var _workerJob = _interopRequireDefault(require("./lib/worker-farm/worker-job"));
131
-
132
126
  var _workerThread = _interopRequireDefault(require("./lib/worker-farm/worker-thread"));
133
-
134
127
  var _workerFarm = _interopRequireDefault(require("./lib/worker-farm/worker-farm"));
135
-
136
128
  var _workerPool = _interopRequireDefault(require("./lib/worker-farm/worker-pool"));
137
-
138
129
  var _workerBody = _interopRequireDefault(require("./lib/worker-farm/worker-body"));
139
-
140
130
  var _processOnWorker = require("./lib/worker-api/process-on-worker");
141
-
142
131
  var _createWorker = require("./lib/worker-api/create-worker");
143
-
144
132
  var _getWorkerUrl = require("./lib/worker-api/get-worker-url");
145
-
146
133
  var _validateWorkerVersion = require("./lib/worker-api/validate-worker-version");
147
-
148
134
  var _getTransferList = require("./lib/worker-utils/get-transfer-list");
149
-
150
135
  var _libraryUtils = require("./lib/library-utils/library-utils");
151
-
152
136
  var _asyncQueue = _interopRequireDefault(require("./lib/async-queue/async-queue"));
153
-
154
137
  var _childProcessProxy = _interopRequireDefault(require("./lib/process-utils/child-process-proxy"));
155
138
 
156
139
  var NullWorker = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["NullWorker","id","name","module","version","VERSION","options","null"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAcA;;AACA;;AAGA;;AACA;;AAGA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AACA;;AACA;;AAGA;;AAGA;;AAGA;;AAKO,IAAMA,UAAwB,GAAG;AACtCC,EAAAA,EAAE,EAAE,MADkC;AAEtCC,EAAAA,IAAI,EAAE,MAFgC;AAGtCC,EAAAA,MAAM,EAAE,cAH8B;AAItCC,EAAAA,OAAO,EAAEC,gBAJ6B;AAKtCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AADC;AAL6B,CAAjC","sourcesContent":["import type {WorkerObject} from './types';\nimport {VERSION} from './lib/env-utils/version';\n\n// TYPES\nexport type {\n WorkerObject,\n WorkerOptions,\n // Protocol\n WorkerMessage,\n WorkerMessageType,\n WorkerMessageData,\n WorkerMessagePayload\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {isBrowser, isWorker} from './lib/env-utils/globals';\n\n// WORKER UTILS - TYPES\nexport {default as WorkerJob} from './lib/worker-farm/worker-job';\nexport {default as WorkerThread} from './lib/worker-farm/worker-thread';\n\n// WORKER FARMS\nexport {default as WorkerFarm} from './lib/worker-farm/worker-farm';\nexport {default as WorkerPool} from './lib/worker-farm/worker-pool';\nexport {default as WorkerBody} from './lib/worker-farm/worker-body';\n\nexport {processOnWorker, canProcessOnWorker} from './lib/worker-api/process-on-worker';\nexport {createWorker} from './lib/worker-api/create-worker';\n\n// WORKER UTILS - EXPORTS\nexport {getWorkerURL} from './lib/worker-api/get-worker-url';\nexport {validateWorkerVersion} from './lib/worker-api/validate-worker-version';\nexport {getTransferList, getTransferListForWriter} from './lib/worker-utils/get-transfer-list';\n\n// LIBRARY UTILS\nexport {getLibraryUrl, loadLibrary} from './lib/library-utils/library-utils';\n\n// PARSER UTILS\nexport {default as AsyncQueue} from './lib/async-queue/async-queue';\n\n// PROCESS UTILS\nexport {default as ChildProcessProxy} from './lib/process-utils/child-process-proxy';\n\n// WORKER OBJECTS\n\n/** A null worker to test that worker processing is functional */\nexport const NullWorker: WorkerObject = {\n id: 'null',\n name: 'null',\n module: 'worker-utils',\n version: VERSION,\n options: {\n null: {}\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["NullWorker","id","name","module","version","VERSION","options","null"],"sources":["../../src/index.ts"],"sourcesContent":["import type {WorkerObject} from './types';\nimport {VERSION} from './lib/env-utils/version';\n\n// TYPES\nexport type {\n WorkerObject,\n WorkerOptions,\n // Protocol\n WorkerMessage,\n WorkerMessageType,\n WorkerMessageData,\n WorkerMessagePayload\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {isBrowser, isWorker} from './lib/env-utils/globals';\n\n// WORKER UTILS - TYPES\nexport {default as WorkerJob} from './lib/worker-farm/worker-job';\nexport {default as WorkerThread} from './lib/worker-farm/worker-thread';\n\n// WORKER FARMS\nexport {default as WorkerFarm} from './lib/worker-farm/worker-farm';\nexport {default as WorkerPool} from './lib/worker-farm/worker-pool';\nexport {default as WorkerBody} from './lib/worker-farm/worker-body';\n\nexport {processOnWorker, canProcessOnWorker} from './lib/worker-api/process-on-worker';\nexport {createWorker} from './lib/worker-api/create-worker';\n\n// WORKER UTILS - EXPORTS\nexport {getWorkerURL} from './lib/worker-api/get-worker-url';\nexport {validateWorkerVersion} from './lib/worker-api/validate-worker-version';\nexport {getTransferList, getTransferListForWriter} from './lib/worker-utils/get-transfer-list';\n\n// LIBRARY UTILS\nexport {getLibraryUrl, loadLibrary} from './lib/library-utils/library-utils';\n\n// PARSER UTILS\nexport {default as AsyncQueue} from './lib/async-queue/async-queue';\n\n// PROCESS UTILS\nexport {default as ChildProcessProxy} from './lib/process-utils/child-process-proxy';\n\n// WORKER OBJECTS\n\n/** A null worker to test that worker processing is functional */\nexport const NullWorker: WorkerObject = {\n id: 'null',\n name: 'null',\n module: 'worker-utils',\n version: VERSION,\n options: {\n null: {}\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAcA;AACA;AAGA;AACA;AAGA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AAGA;AAGA;AAGA;;AAKO,IAAMA,UAAwB,GAAG;EACtCC,EAAE,EAAE,MAAM;EACVC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,cAAc;EACtBC,OAAO,EAAEC,gBAAO;EAChBC,OAAO,EAAE;IACPC,IAAI,EAAE,CAAC;EACT;AACF,CAAC;AAAC"}
@@ -1,22 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _Symbol$asyncIterator;
17
-
18
12
  _Symbol$asyncIterator = Symbol.asyncIterator;
19
-
20
13
  var AsyncQueue = function () {
21
14
  function AsyncQueue() {
22
15
  (0, _classCallCheck2.default)(this, AsyncQueue);
@@ -30,28 +23,30 @@ var AsyncQueue = function () {
30
23
 
31
24
  (0, _createClass2.default)(AsyncQueue, [{
32
25
  key: _Symbol$asyncIterator,
33
- value: function value() {
26
+ value:
27
+ function value() {
34
28
  return this;
35
29
  }
30
+
36
31
  }, {
37
32
  key: "push",
38
- value: function push(value) {
33
+ value:
34
+ function push(value) {
39
35
  return this.enqueue(value);
40
36
  }
37
+
41
38
  }, {
42
39
  key: "enqueue",
43
- value: function enqueue(value) {
40
+ value:
41
+ function enqueue(value) {
44
42
  if (this._closed) {
45
43
  throw new Error('Closed');
46
44
  }
47
-
48
45
  if (this._settlers.length > 0) {
49
46
  if (this._values.length > 0) {
50
47
  throw new Error('Illegal internal state');
51
48
  }
52
-
53
49
  var settler = this._settlers.shift();
54
-
55
50
  if (value instanceof Error) {
56
51
  settler.reject(value);
57
52
  } else {
@@ -63,31 +58,31 @@ var AsyncQueue = function () {
63
58
  this._values.push(value);
64
59
  }
65
60
  }
61
+
66
62
  }, {
67
63
  key: "close",
68
- value: function close() {
64
+ value:
65
+ function close() {
69
66
  while (this._settlers.length > 0) {
70
67
  var settler = this._settlers.shift();
71
-
72
68
  settler.resolve({
73
69
  done: true
74
70
  });
75
71
  }
76
-
77
72
  this._closed = true;
78
73
  }
74
+
79
75
  }, {
80
76
  key: "next",
81
- value: function next() {
82
- var _this = this;
77
+ value:
83
78
 
79
+ function next() {
80
+ var _this = this;
84
81
  if (this._values.length > 0) {
85
82
  var value = this._values.shift();
86
-
87
83
  if (value instanceof Error) {
88
84
  return Promise.reject(value);
89
85
  }
90
-
91
86
  return Promise.resolve({
92
87
  done: false,
93
88
  value: value
@@ -98,7 +93,6 @@ var AsyncQueue = function () {
98
93
  if (this._settlers.length > 0) {
99
94
  throw new Error('Illegal internal state');
100
95
  }
101
-
102
96
  return Promise.resolve({
103
97
  done: true,
104
98
  value: undefined
@@ -115,6 +109,5 @@ var AsyncQueue = function () {
115
109
  }]);
116
110
  return AsyncQueue;
117
111
  }();
118
-
119
112
  exports.default = AsyncQueue;
120
113
  //# sourceMappingURL=async-queue.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/async-queue/async-queue.ts"],"names":["Symbol","asyncIterator","AsyncQueue","_values","_settlers","_closed","value","enqueue","Error","length","settler","shift","reject","resolve","push","done","Promise","undefined"],"mappings":";;;;;;;;;;;;;;;;;wBA2BGA,MAAM,CAACC,a;;IAZWC,U;AAKnB,wBAAc;AAAA;AAAA;AAAA;AAAA;AACZ,SAAKC,OAAL,GAAe,EAAf;AACA,SAAKC,SAAL,GAAiB,EAAjB;AACA,SAAKC,OAAL,GAAe,KAAf;AACD;;;;WAGD,iBAA2C;AACzC,aAAO,IAAP;AACD;;;WAGD,cAAKC,KAAL,EAAqB;AACnB,aAAO,KAAKC,OAAL,CAAaD,KAAb,CAAP;AACD;;;WAMD,iBAAQA,KAAR,EAAgC;AAC9B,UAAI,KAAKD,OAAT,EAAkB;AAChB,cAAM,IAAIG,KAAJ,CAAU,QAAV,CAAN;AACD;;AAED,UAAI,KAAKJ,SAAL,CAAeK,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,YAAI,KAAKN,OAAL,CAAaM,MAAb,GAAsB,CAA1B,EAA6B;AAC3B,gBAAM,IAAID,KAAJ,CAAU,wBAAV,CAAN;AACD;;AACD,YAAME,OAAO,GAAG,KAAKN,SAAL,CAAeO,KAAf,EAAhB;;AACA,YAAIL,KAAK,YAAYE,KAArB,EAA4B;AAC1BE,UAAAA,OAAO,CAACE,MAAR,CAAeN,KAAf;AACD,SAFD,MAEO;AACLI,UAAAA,OAAO,CAACG,OAAR,CAAgB;AAACP,YAAAA,KAAK,EAALA;AAAD,WAAhB;AACD;AACF,OAVD,MAUO;AACL,aAAKH,OAAL,CAAaW,IAAb,CAAkBR,KAAlB;AACD;AACF;;;WAGD,iBAAc;AACZ,aAAO,KAAKF,SAAL,CAAeK,MAAf,GAAwB,CAA/B,EAAkC;AAChC,YAAMC,OAAO,GAAG,KAAKN,SAAL,CAAeO,KAAf,EAAhB;;AACAD,QAAAA,OAAO,CAACG,OAAR,CAAgB;AAACE,UAAAA,IAAI,EAAE;AAAP,SAAhB;AACD;;AACD,WAAKV,OAAL,GAAe,IAAf;AACD;;;WAKD,gBAAwC;AAAA;;AAEtC,UAAI,KAAKF,OAAL,CAAaM,MAAb,GAAsB,CAA1B,EAA6B;AAC3B,YAAMH,KAAK,GAAG,KAAKH,OAAL,CAAaQ,KAAb,EAAd;;AACA,YAAIL,KAAK,YAAYE,KAArB,EAA4B;AAC1B,iBAAOQ,OAAO,CAACJ,MAAR,CAAeN,KAAf,CAAP;AACD;;AACD,eAAOU,OAAO,CAACH,OAAR,CAAgB;AAACE,UAAAA,IAAI,EAAE,KAAP;AAAcT,UAAAA,KAAK,EAALA;AAAd,SAAhB,CAAP;AACD;;AAGD,UAAI,KAAKD,OAAT,EAAkB;AAChB,YAAI,KAAKD,SAAL,CAAeK,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,gBAAM,IAAID,KAAJ,CAAU,wBAAV,CAAN;AACD;;AACD,eAAOQ,OAAO,CAACH,OAAR,CAAgB;AAACE,UAAAA,IAAI,EAAE,IAAP;AAAaT,UAAAA,KAAK,EAAEW;AAApB,SAAhB,CAAP;AACD;;AAGD,aAAO,IAAID,OAAJ,CAAY,UAACH,OAAD,EAAUD,MAAV,EAAqB;AACtC,QAAA,KAAI,CAACR,SAAL,CAAeU,IAAf,CAAoB;AAACD,UAAAA,OAAO,EAAPA,OAAD;AAAUD,UAAAA,MAAM,EAANA;AAAV,SAApB;AACD,OAFM,CAAP;AAGD","sourcesContent":["// From https://github.com/rauschma/async-iter-demo/tree/master/src under MIT license\n// http://2ality.com/2016/10/asynchronous-iteration.html\n\n/**\n * Async Queue\n * - AsyncIterable: An async iterator can be\n * - Values can be pushed onto the queue\n * @example\n * const asyncQueue = new AsyncQueue();\n * setTimeout(() => asyncQueue.enqueue('tick'), 1000);\n * setTimeout(() => asyncQueue.enqueue(new Error('done')), 10000);\n * for await (const value of asyncQueue) {\n * console.log(value); // tick\n * }\n */\nexport default class AsyncQueue<T> {\n private _values: any[];\n private _settlers: any[];\n private _closed: boolean;\n\n constructor() {\n this._values = []; // enqueues > dequeues\n this._settlers = []; // dequeues > enqueues\n this._closed = false;\n }\n\n /** Return an async iterator for this queue */\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n }\n\n /** Push a new value - the async iterator will yield a promise resolved to this value */\n push(value: T): void {\n return this.enqueue(value);\n }\n\n /**\n * Push a new value - the async iterator will yield a promise resolved to this value\n * Add an error - the async iterator will yield a promise rejected with this value\n */\n enqueue(value: T | Error): void {\n if (this._closed) {\n throw new Error('Closed');\n }\n\n if (this._settlers.length > 0) {\n if (this._values.length > 0) {\n throw new Error('Illegal internal state');\n }\n const settler = this._settlers.shift();\n if (value instanceof Error) {\n settler.reject(value);\n } else {\n settler.resolve({value});\n }\n } else {\n this._values.push(value);\n }\n }\n\n /** Indicate that we not waiting for more values - The async iterator will be done */\n close(): void {\n while (this._settlers.length > 0) {\n const settler = this._settlers.shift();\n settler.resolve({done: true});\n }\n this._closed = true;\n }\n\n // ITERATOR IMPLEMENTATION\n\n /** @returns a Promise for an IteratorResult */\n next(): Promise<IteratorResult<T, any>> {\n // If values in queue, yield the first value\n if (this._values.length > 0) {\n const value = this._values.shift();\n if (value instanceof Error) {\n return Promise.reject(value);\n }\n return Promise.resolve({done: false, value});\n }\n\n // If queue is closed, the iterator is done\n if (this._closed) {\n if (this._settlers.length > 0) {\n throw new Error('Illegal internal state');\n }\n return Promise.resolve({done: true, value: undefined});\n }\n\n // Yield a promise that waits for new values to be enqueued\n return new Promise((resolve, reject) => {\n this._settlers.push({resolve, reject});\n });\n }\n}\n"],"file":"async-queue.js"}
1
+ {"version":3,"file":"async-queue.js","names":["Symbol","asyncIterator","AsyncQueue","_values","_settlers","_closed","value","enqueue","Error","length","settler","shift","reject","resolve","push","done","Promise","undefined"],"sources":["../../../../src/lib/async-queue/async-queue.ts"],"sourcesContent":["// From https://github.com/rauschma/async-iter-demo/tree/master/src under MIT license\n// http://2ality.com/2016/10/asynchronous-iteration.html\n\n/**\n * Async Queue\n * - AsyncIterable: An async iterator can be\n * - Values can be pushed onto the queue\n * @example\n * const asyncQueue = new AsyncQueue();\n * setTimeout(() => asyncQueue.enqueue('tick'), 1000);\n * setTimeout(() => asyncQueue.enqueue(new Error('done')), 10000);\n * for await (const value of asyncQueue) {\n * console.log(value); // tick\n * }\n */\nexport default class AsyncQueue<T> {\n private _values: any[];\n private _settlers: any[];\n private _closed: boolean;\n\n constructor() {\n this._values = []; // enqueues > dequeues\n this._settlers = []; // dequeues > enqueues\n this._closed = false;\n }\n\n /** Return an async iterator for this queue */\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n }\n\n /** Push a new value - the async iterator will yield a promise resolved to this value */\n push(value: T): void {\n return this.enqueue(value);\n }\n\n /**\n * Push a new value - the async iterator will yield a promise resolved to this value\n * Add an error - the async iterator will yield a promise rejected with this value\n */\n enqueue(value: T | Error): void {\n if (this._closed) {\n throw new Error('Closed');\n }\n\n if (this._settlers.length > 0) {\n if (this._values.length > 0) {\n throw new Error('Illegal internal state');\n }\n const settler = this._settlers.shift();\n if (value instanceof Error) {\n settler.reject(value);\n } else {\n settler.resolve({value});\n }\n } else {\n this._values.push(value);\n }\n }\n\n /** Indicate that we not waiting for more values - The async iterator will be done */\n close(): void {\n while (this._settlers.length > 0) {\n const settler = this._settlers.shift();\n settler.resolve({done: true});\n }\n this._closed = true;\n }\n\n // ITERATOR IMPLEMENTATION\n\n /** @returns a Promise for an IteratorResult */\n next(): Promise<IteratorResult<T, any>> {\n // If values in queue, yield the first value\n if (this._values.length > 0) {\n const value = this._values.shift();\n if (value instanceof Error) {\n return Promise.reject(value);\n }\n return Promise.resolve({done: false, value});\n }\n\n // If queue is closed, the iterator is done\n if (this._closed) {\n if (this._settlers.length > 0) {\n throw new Error('Illegal internal state');\n }\n return Promise.resolve({done: true, value: undefined});\n }\n\n // Yield a promise that waits for new values to be enqueued\n return new Promise((resolve, reject) => {\n this._settlers.push({resolve, reject});\n });\n }\n}\n"],"mappings":";;;;;;;;;;;wBA2BGA,MAAM,CAACC,aAAa;AAAA,IAZFC,UAAU;EAK7B,sBAAc;IAAA;IAAA;IAAA;IAAA;IACZ,IAAI,CAACC,OAAO,GAAG,EAAE;IACjB,IAAI,CAACC,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,OAAO,GAAG,KAAK;EACtB;;EAAC;IAAA;IAAA;IAGD,iBAA2C;MACzC,OAAO,IAAI;IACb;;EAAC;IAAA;IAAA;IAGD,cAAKC,KAAQ,EAAQ;MACnB,OAAO,IAAI,CAACC,OAAO,CAACD,KAAK,CAAC;IAC5B;;EAAC;IAAA;IAAA;IAMD,iBAAQA,KAAgB,EAAQ;MAC9B,IAAI,IAAI,CAACD,OAAO,EAAE;QAChB,MAAM,IAAIG,KAAK,CAAC,QAAQ,CAAC;MAC3B;MAEA,IAAI,IAAI,CAACJ,SAAS,CAACK,MAAM,GAAG,CAAC,EAAE;QAC7B,IAAI,IAAI,CAACN,OAAO,CAACM,MAAM,GAAG,CAAC,EAAE;UAC3B,MAAM,IAAID,KAAK,CAAC,wBAAwB,CAAC;QAC3C;QACA,IAAME,OAAO,GAAG,IAAI,CAACN,SAAS,CAACO,KAAK,EAAE;QACtC,IAAIL,KAAK,YAAYE,KAAK,EAAE;UAC1BE,OAAO,CAACE,MAAM,CAACN,KAAK,CAAC;QACvB,CAAC,MAAM;UACLI,OAAO,CAACG,OAAO,CAAC;YAACP,KAAK,EAALA;UAAK,CAAC,CAAC;QAC1B;MACF,CAAC,MAAM;QACL,IAAI,CAACH,OAAO,CAACW,IAAI,CAACR,KAAK,CAAC;MAC1B;IACF;;EAAC;IAAA;IAAA;IAGD,iBAAc;MACZ,OAAO,IAAI,CAACF,SAAS,CAACK,MAAM,GAAG,CAAC,EAAE;QAChC,IAAMC,OAAO,GAAG,IAAI,CAACN,SAAS,CAACO,KAAK,EAAE;QACtCD,OAAO,CAACG,OAAO,CAAC;UAACE,IAAI,EAAE;QAAI,CAAC,CAAC;MAC/B;MACA,IAAI,CAACV,OAAO,GAAG,IAAI;IACrB;;EAAC;IAAA;IAAA;;IAKD,gBAAwC;MAAA;MAEtC,IAAI,IAAI,CAACF,OAAO,CAACM,MAAM,GAAG,CAAC,EAAE;QAC3B,IAAMH,KAAK,GAAG,IAAI,CAACH,OAAO,CAACQ,KAAK,EAAE;QAClC,IAAIL,KAAK,YAAYE,KAAK,EAAE;UAC1B,OAAOQ,OAAO,CAACJ,MAAM,CAACN,KAAK,CAAC;QAC9B;QACA,OAAOU,OAAO,CAACH,OAAO,CAAC;UAACE,IAAI,EAAE,KAAK;UAAET,KAAK,EAALA;QAAK,CAAC,CAAC;MAC9C;;MAGA,IAAI,IAAI,CAACD,OAAO,EAAE;QAChB,IAAI,IAAI,CAACD,SAAS,CAACK,MAAM,GAAG,CAAC,EAAE;UAC7B,MAAM,IAAID,KAAK,CAAC,wBAAwB,CAAC;QAC3C;QACA,OAAOQ,OAAO,CAACH,OAAO,CAAC;UAACE,IAAI,EAAE,IAAI;UAAET,KAAK,EAAEW;QAAS,CAAC,CAAC;MACxD;;MAGA,OAAO,IAAID,OAAO,CAAC,UAACH,OAAO,EAAED,MAAM,EAAK;QACtC,KAAI,CAACR,SAAS,CAACU,IAAI,CAAC;UAACD,OAAO,EAAPA,OAAO;UAAED,MAAM,EAANA;QAAM,CAAC,CAAC;MACxC,CAAC,CAAC;IACJ;EAAC;EAAA;AAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/env-utils/assert.ts"],"names":["assert","condition","message","Error"],"mappings":";;;;;;;AAKO,SAASA,MAAT,CAAgBC,SAAhB,EAAgCC,OAAhC,EAAwD;AAC7D,MAAI,CAACD,SAAL,EAAgB;AACd,UAAM,IAAIE,KAAJ,CAAUD,OAAO,IAAI,8BAArB,CAAN;AACD;AACF","sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\n\n/** Throws an `Error` with the optional `message` if `condition` is falsy */\nexport function assert(condition: any, message?: string): void {\n if (!condition) {\n throw new Error(message || 'loaders.gl assertion failed.');\n }\n}\n"],"file":"assert.js"}
1
+ {"version":3,"file":"assert.js","names":["assert","condition","message","Error"],"sources":["../../../../src/lib/env-utils/assert.ts"],"sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\n\n/** Throws an `Error` with the optional `message` if `condition` is falsy */\nexport function assert(condition: any, message?: string): void {\n if (!condition) {\n throw new Error(message || 'loaders.gl assertion failed.');\n }\n}\n"],"mappings":";;;;;;;AAKO,SAASA,MAAM,CAACC,SAAc,EAAEC,OAAgB,EAAQ;EAC7D,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAIE,KAAK,CAACD,OAAO,IAAI,8BAA8B,CAAC;EAC5D;AACF"}
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.nodeVersion = exports.isMobile = exports.isWorker = exports.isBrowser = exports.document = exports.global = exports.window = exports.self = void 0;
9
-
7
+ exports.window = exports.self = exports.nodeVersion = exports.isWorker = exports.isMobile = exports.isBrowser = exports.global = exports.document = void 0;
10
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
9
 
12
10
  var globals = {
@@ -23,13 +21,18 @@ var global_ = globals.global || globals.self || globals.window || {};
23
21
  exports.global = global_;
24
22
  var document_ = globals.document || {};
25
23
  exports.document = document_;
26
- var isBrowser = (typeof process === "undefined" ? "undefined" : (0, _typeof2.default)(process)) !== 'object' || String(process) !== '[object process]' || process.browser;
24
+ var isBrowser =
25
+ (typeof process === "undefined" ? "undefined" : (0, _typeof2.default)(process)) !== 'object' || String(process) !== '[object process]' || process.browser;
26
+
27
27
  exports.isBrowser = isBrowser;
28
28
  var isWorker = typeof importScripts === 'function';
29
+
29
30
  exports.isWorker = isWorker;
30
31
  var isMobile = typeof window !== 'undefined' && typeof window.orientation !== 'undefined';
32
+
31
33
  exports.isMobile = isMobile;
32
34
  var matches = typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);
35
+
33
36
  var nodeVersion = matches && parseFloat(matches[1]) || 0;
34
37
  exports.nodeVersion = nodeVersion;
35
38
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/env-utils/globals.ts"],"names":["globals","self","window","global","document","self_","window_","global_","document_","isBrowser","process","String","browser","isWorker","importScripts","isMobile","orientation","matches","version","exec","nodeVersion","parseFloat"],"mappings":";;;;;;;;;;;AAIA,IAAMA,OAAO,GAAG;AACdC,EAAAA,IAAI,EAAE,OAAOA,IAAP,KAAgB,WAAhB,IAA+BA,IADvB;AAEdC,EAAAA,MAAM,EAAE,OAAOA,MAAP,KAAkB,WAAlB,IAAiCA,MAF3B;AAGdC,EAAAA,MAAM,EAAE,OAAOA,MAAP,KAAkB,WAAlB,IAAiCA,MAH3B;AAIdC,EAAAA,QAAQ,EAAE,OAAOA,QAAP,KAAoB,WAApB,IAAmCA;AAJ/B,CAAhB;AAOA,IAAMC,KAA2B,GAAGL,OAAO,CAACC,IAAR,IAAgBD,OAAO,CAACE,MAAxB,IAAkCF,OAAO,CAACG,MAA1C,IAAoD,EAAxF;;AACA,IAAMG,OAA6B,GAAGN,OAAO,CAACE,MAAR,IAAkBF,OAAO,CAACC,IAA1B,IAAkCD,OAAO,CAACG,MAA1C,IAAoD,EAA1F;;AACA,IAAMI,OAA6B,GAAGP,OAAO,CAACG,MAAR,IAAkBH,OAAO,CAACC,IAA1B,IAAkCD,OAAO,CAACE,MAA1C,IAAoD,EAA1F;;AACA,IAAMM,SAA+B,GAAGR,OAAO,CAACI,QAAR,IAAoB,EAA5D;;AAKO,IAAMK,SAAkB,GAE7B,QAAOC,OAAP,uDAAOA,OAAP,OAAmB,QAAnB,IAA+BC,MAAM,CAACD,OAAD,CAAN,KAAoB,kBAAnD,IAAyEA,OAAO,CAACE,OAF5E;;AAKA,IAAMC,QAAiB,GAAG,OAAOC,aAAP,KAAyB,UAAnD;;AAGA,IAAMC,QAAiB,GAC5B,OAAOb,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAACc,WAAd,KAA8B,WAD1D;;AAIP,IAAMC,OAAO,GACX,OAAOP,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,CAACQ,OAA1C,IAAqD,YAAYC,IAAZ,CAAiBT,OAAO,CAACQ,OAAzB,CADvD;AAIO,IAAME,WAAmB,GAAIH,OAAO,IAAII,UAAU,CAACJ,OAAO,CAAC,CAAD,CAAR,CAAtB,IAAuC,CAAnE","sourcesContent":["// Purpose: include this in your module to avoids adding dependencies on\n// micro modules like 'global' and 'is-browser';\n\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\n\nconst self_: {[key: string]: any} = globals.self || globals.window || globals.global || {};\nconst window_: {[key: string]: any} = globals.window || globals.self || globals.global || {};\nconst global_: {[key: string]: any} = globals.global || globals.self || globals.window || {};\nconst document_: {[key: string]: any} = globals.document || {};\n\nexport {self_ as self, window_ as window, global_ as global, document_ as document};\n\n/** true if running in the browser, false if running in Node.js */\nexport const isBrowser: boolean =\n // @ts-ignore process.browser\n typeof process !== 'object' || String(process) !== '[object process]' || process.browser;\n\n/** true if running on a worker thread */\nexport const isWorker: boolean = typeof importScripts === 'function';\n\n/** true if running on a mobile device */\nexport const isMobile: boolean =\n typeof window !== 'undefined' && typeof window.orientation !== 'undefined';\n\n// Extract node major version\nconst matches =\n typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n\n/** Version of Node.js if running under Node, otherwise 0 */\nexport const nodeVersion: number = (matches && parseFloat(matches[1])) || 0;\n"],"file":"globals.js"}
1
+ {"version":3,"file":"globals.js","names":["globals","self","window","global","document","self_","window_","global_","document_","isBrowser","process","String","browser","isWorker","importScripts","isMobile","orientation","matches","version","exec","nodeVersion","parseFloat"],"sources":["../../../../src/lib/env-utils/globals.ts"],"sourcesContent":["// Purpose: include this in your module to avoids adding dependencies on\n// micro modules like 'global' and 'is-browser';\n\n/* eslint-disable no-restricted-globals */\nconst globals = {\n self: typeof self !== 'undefined' && self,\n window: typeof window !== 'undefined' && window,\n global: typeof global !== 'undefined' && global,\n document: typeof document !== 'undefined' && document\n};\n\nconst self_: {[key: string]: any} = globals.self || globals.window || globals.global || {};\nconst window_: {[key: string]: any} = globals.window || globals.self || globals.global || {};\nconst global_: {[key: string]: any} = globals.global || globals.self || globals.window || {};\nconst document_: {[key: string]: any} = globals.document || {};\n\nexport {self_ as self, window_ as window, global_ as global, document_ as document};\n\n/** true if running in the browser, false if running in Node.js */\nexport const isBrowser: boolean =\n // @ts-ignore process.browser\n typeof process !== 'object' || String(process) !== '[object process]' || process.browser;\n\n/** true if running on a worker thread */\nexport const isWorker: boolean = typeof importScripts === 'function';\n\n/** true if running on a mobile device */\nexport const isMobile: boolean =\n typeof window !== 'undefined' && typeof window.orientation !== 'undefined';\n\n// Extract node major version\nconst matches =\n typeof process !== 'undefined' && process.version && /v([0-9]*)/.exec(process.version);\n\n/** Version of Node.js if running under Node, otherwise 0 */\nexport const nodeVersion: number = (matches && parseFloat(matches[1])) || 0;\n"],"mappings":";;;;;;;;;AAIA,IAAMA,OAAO,GAAG;EACdC,IAAI,EAAE,OAAOA,IAAI,KAAK,WAAW,IAAIA,IAAI;EACzCC,MAAM,EAAE,OAAOA,MAAM,KAAK,WAAW,IAAIA,MAAM;EAC/CC,MAAM,EAAE,OAAOA,MAAM,KAAK,WAAW,IAAIA,MAAM;EAC/CC,QAAQ,EAAE,OAAOA,QAAQ,KAAK,WAAW,IAAIA;AAC/C,CAAC;AAED,IAAMC,KAA2B,GAAGL,OAAO,CAACC,IAAI,IAAID,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACG,MAAM,IAAI,CAAC,CAAC;AAAC;AAC3F,IAAMG,OAA6B,GAAGN,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACC,IAAI,IAAID,OAAO,CAACG,MAAM,IAAI,CAAC,CAAC;AAAC;AAC7F,IAAMI,OAA6B,GAAGP,OAAO,CAACG,MAAM,IAAIH,OAAO,CAACC,IAAI,IAAID,OAAO,CAACE,MAAM,IAAI,CAAC,CAAC;AAAC;AAC7F,IAAMM,SAA+B,GAAGR,OAAO,CAACI,QAAQ,IAAI,CAAC,CAAC;AAAC;AAKxD,IAAMK,SAAkB;AAE7B,QAAOC,OAAO,uDAAPA,OAAO,OAAK,QAAQ,IAAIC,MAAM,CAACD,OAAO,CAAC,KAAK,kBAAkB,IAAIA,OAAO,CAACE,OAAO;;AAAC;AAGpF,IAAMC,QAAiB,GAAG,OAAOC,aAAa,KAAK,UAAU;;AAAC;AAG9D,IAAMC,QAAiB,GAC5B,OAAOb,MAAM,KAAK,WAAW,IAAI,OAAOA,MAAM,CAACc,WAAW,KAAK,WAAW;;AAAC;AAG7E,IAAMC,OAAO,GACX,OAAOP,OAAO,KAAK,WAAW,IAAIA,OAAO,CAACQ,OAAO,IAAI,WAAW,CAACC,IAAI,CAACT,OAAO,CAACQ,OAAO,CAAC;;AAGjF,IAAME,WAAmB,GAAIH,OAAO,IAAII,UAAU,CAACJ,OAAO,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC;AAAC"}
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VERSION = void 0;
7
+
7
8
  var DEFAULT_VERSION = 'beta';
8
- var VERSION = typeof "3.3.0-alpha.5" !== 'undefined' ? "3.3.0-alpha.5" : DEFAULT_VERSION;
9
+ var VERSION = typeof "3.3.0-alpha.7" !== 'undefined' ? "3.3.0-alpha.7" : DEFAULT_VERSION;
9
10
  exports.VERSION = VERSION;
10
-
11
- if (typeof "3.3.0-alpha.5" === 'undefined') {
11
+ if (typeof "3.3.0-alpha.7" === 'undefined') {
12
12
  console.error('loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.');
13
13
  }
14
14
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/env-utils/version.ts"],"names":["DEFAULT_VERSION","VERSION","console","error"],"mappings":";;;;;;AAIA,IAAMA,eAAe,GAAG,MAAxB;AAEO,IAAMC,OAAO,GAAG,2BAAuB,WAAvB,qBAAmDD,eAAnE;;;AACP,IAAI,2BAAuB,WAA3B,EAAwC;AAEtCE,EAAAA,OAAO,CAACC,KAAR,CACE,iIADF;AAGD","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n\n// Change to `latest` on production branches\nconst DEFAULT_VERSION = 'beta';\ndeclare let __VERSION__: string;\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : DEFAULT_VERSION;\nif (typeof __VERSION__ === 'undefined') {\n // eslint-disable-next-line\n console.error(\n 'loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.'\n );\n}\n"],"file":"version.js"}
1
+ {"version":3,"file":"version.js","names":["DEFAULT_VERSION","VERSION","console","error"],"sources":["../../../../src/lib/env-utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n\n// Change to `latest` on production branches\nconst DEFAULT_VERSION = 'beta';\ndeclare let __VERSION__: string;\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : DEFAULT_VERSION;\nif (typeof __VERSION__ === 'undefined') {\n // eslint-disable-next-line\n console.error(\n 'loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.'\n );\n}\n"],"mappings":";;;;;;;AAIA,IAAMA,eAAe,GAAG,MAAM;AAEvB,IAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiBD,eAAe;AAAC;AAC1F,IAAI,sBAAkB,KAAK,WAAW,EAAE;EAEtCE,OAAO,CAACC,KAAK,CACX,iIAAiI,CAClI;AACH"}
@@ -1,62 +1,49 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.loadLibrary = loadLibrary;
11
8
  exports.getLibraryUrl = getLibraryUrl;
12
-
9
+ exports.loadLibrary = loadLibrary;
13
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
-
15
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
12
  var _globals = require("../env-utils/globals");
18
-
19
13
  var node = _interopRequireWildcard(require("../node/require-utils.node"));
20
-
21
14
  var _assert = require("../env-utils/assert");
22
-
23
15
  var _version = require("../env-utils/version");
24
-
25
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
-
27
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
18
 
29
19
  var LATEST = 'beta';
30
- var VERSION = typeof "3.3.0-alpha.5" !== 'undefined' ? "3.3.0-alpha.5" : LATEST;
20
+ var VERSION = typeof "3.3.0-alpha.7" !== 'undefined' ? "3.3.0-alpha.7" : LATEST;
31
21
  var loadLibraryPromises = {};
32
22
 
33
23
  function loadLibrary(_x) {
34
24
  return _loadLibrary.apply(this, arguments);
35
25
  }
36
-
37
26
  function _loadLibrary() {
38
27
  _loadLibrary = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(libraryUrl) {
39
28
  var moduleName,
40
- options,
41
- _args = arguments;
29
+ options,
30
+ _args = arguments;
42
31
  return _regenerator.default.wrap(function _callee$(_context) {
43
32
  while (1) {
44
33
  switch (_context.prev = _context.next) {
45
34
  case 0:
46
35
  moduleName = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
47
36
  options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};
48
-
49
37
  if (moduleName) {
50
38
  libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
51
39
  }
52
40
 
53
- loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
41
+ loadLibraryPromises[libraryUrl] =
42
+ loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
54
43
  _context.next = 6;
55
44
  return loadLibraryPromises[libraryUrl];
56
-
57
45
  case 6:
58
46
  return _context.abrupt("return", _context.sent);
59
-
60
47
  case 7:
61
48
  case "end":
62
49
  return _context.stop();
@@ -66,14 +53,12 @@ function _loadLibrary() {
66
53
  }));
67
54
  return _loadLibrary.apply(this, arguments);
68
55
  }
69
-
70
56
  function getLibraryUrl(library, moduleName, options) {
71
57
  if (library.startsWith('http')) {
72
58
  return library;
73
59
  }
74
60
 
75
61
  var modules = options.modules || {};
76
-
77
62
  if (modules[library]) {
78
63
  return modules[library];
79
64
  }
@@ -90,18 +75,14 @@ function getLibraryUrl(library, moduleName, options) {
90
75
  if (_globals.isWorker) {
91
76
  return "../src/libs/".concat(library);
92
77
  }
93
-
94
78
  return "modules/".concat(moduleName, "/src/libs/").concat(library);
95
79
  }
96
-
97
80
  function loadLibraryFromFile(_x2) {
98
81
  return _loadLibraryFromFile.apply(this, arguments);
99
82
  }
100
-
101
83
  function _loadLibraryFromFile() {
102
84
  _loadLibraryFromFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(libraryUrl) {
103
85
  var _response, response, scriptSource;
104
-
105
86
  return _regenerator.default.wrap(function _callee2$(_context2) {
106
87
  while (1) {
107
88
  switch (_context2.prev = _context2.next) {
@@ -110,67 +91,51 @@ function _loadLibraryFromFile() {
110
91
  _context2.next = 7;
111
92
  break;
112
93
  }
113
-
114
94
  _context2.next = 3;
115
95
  return fetch(libraryUrl);
116
-
117
96
  case 3:
118
97
  _response = _context2.sent;
119
98
  _context2.next = 6;
120
99
  return _response.arrayBuffer();
121
-
122
100
  case 6:
123
101
  return _context2.abrupt("return", _context2.sent);
124
-
125
102
  case 7:
126
103
  if (_globals.isBrowser) {
127
104
  _context2.next = 20;
128
105
  break;
129
106
  }
130
-
131
107
  _context2.prev = 8;
132
108
  _context2.t0 = node && node.requireFromFile;
133
-
134
109
  if (!_context2.t0) {
135
110
  _context2.next = 14;
136
111
  break;
137
112
  }
138
-
139
113
  _context2.next = 13;
140
114
  return node.requireFromFile(libraryUrl);
141
-
142
115
  case 13:
143
116
  _context2.t0 = _context2.sent;
144
-
145
117
  case 14:
146
118
  return _context2.abrupt("return", _context2.t0);
147
-
148
119
  case 17:
149
120
  _context2.prev = 17;
150
121
  _context2.t1 = _context2["catch"](8);
151
122
  return _context2.abrupt("return", null);
152
-
153
123
  case 20:
154
124
  if (!_globals.isWorker) {
155
125
  _context2.next = 22;
156
126
  break;
157
127
  }
158
-
159
128
  return _context2.abrupt("return", importScripts(libraryUrl));
160
-
161
129
  case 22:
162
130
  _context2.next = 24;
163
131
  return fetch(libraryUrl);
164
-
165
132
  case 24:
166
133
  response = _context2.sent;
167
134
  _context2.next = 27;
168
135
  return response.text();
169
-
170
136
  case 27:
171
137
  scriptSource = _context2.sent;
172
138
  return _context2.abrupt("return", loadLibraryFromString(scriptSource, libraryUrl));
173
-
174
139
  case 29:
175
140
  case "end":
176
141
  return _context2.stop();
@@ -185,21 +150,17 @@ function loadLibraryFromString(scriptSource, id) {
185
150
  if (!_globals.isBrowser) {
186
151
  return node.requireFromString && node.requireFromString(scriptSource, id);
187
152
  }
188
-
189
153
  if (_globals.isWorker) {
190
154
  eval.call(_globals.global, scriptSource);
191
155
  return null;
192
156
  }
193
-
194
157
  var script = document.createElement('script');
195
158
  script.id = id;
196
-
197
159
  try {
198
160
  script.appendChild(document.createTextNode(scriptSource));
199
161
  } catch (e) {
200
162
  script.text = scriptSource;
201
163
  }
202
-
203
164
  document.body.appendChild(script);
204
165
  return null;
205
166
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/library-utils/library-utils.ts"],"names":["LATEST","VERSION","loadLibraryPromises","loadLibrary","libraryUrl","moduleName","options","getLibraryUrl","loadLibraryFromFile","library","startsWith","modules","isBrowser","CDN","isWorker","endsWith","fetch","response","arrayBuffer","node","requireFromFile","importScripts","text","scriptSource","loadLibraryFromString","id","requireFromString","eval","call","global","script","document","createElement","appendChild","createTextNode","e","body"],"mappings":"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","sourcesContent":["/* global importScripts */\nimport {global, isBrowser, isWorker} from '../env-utils/globals';\nimport * as node from '../node/require-utils.node';\nimport {assert} from '../env-utils/assert';\nimport {VERSION as __VERSION__} from '../env-utils/version';\n\n// TODO - unpkg.com doesn't seem to have a `latest` specifier for alpha releases...\nconst LATEST = 'beta';\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : LATEST;\n\nconst loadLibraryPromises: Record<string, Promise<any>> = {}; // promises\n\n/**\n * Dynamically loads a library (\"module\")\n *\n * - wasm library: Array buffer is returned\n * - js library: Parse JS is returned\n *\n * Method depends on environment\n * - browser - script element is created and installed on document\n * - worker - eval is called on global context\n * - node - file is required\n *\n * @param libraryUrl\n * @param moduleName\n * @param options\n */\nexport async function loadLibrary(\n libraryUrl: string,\n moduleName: string | null = null,\n options: object = {}\n): Promise<any> {\n if (moduleName) {\n libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);\n }\n\n // Ensure libraries are only loaded once\n\n loadLibraryPromises[libraryUrl] =\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);\n return await loadLibraryPromises[libraryUrl];\n}\n\n// TODO - sort out how to resolve paths for main/worker and dev/prod\nexport function getLibraryUrl(library: string, moduleName?: string, options?: any): string {\n // Check if already a URL\n if (library.startsWith('http')) {\n return library;\n }\n\n // Allow application to import and supply libraries through `options.modules`\n const modules = options.modules || {};\n if (modules[library]) {\n return modules[library];\n }\n\n // Load from local files, not from CDN scripts in Node.js\n // TODO - needs to locate the modules directory when installed!\n if (!isBrowser) {\n return `modules/${moduleName}/dist/libs/${library}`;\n }\n\n // In browser, load from external scripts\n if (options.CDN) {\n assert(options.CDN.startsWith('http'));\n return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${library}`;\n }\n\n // TODO - loading inside workers requires paths relative to worker script location...\n if (isWorker) {\n return `../src/libs/${library}`;\n }\n\n return `modules/${moduleName}/src/libs/${library}`;\n}\n\nasync function loadLibraryFromFile(libraryUrl: string): Promise<any> {\n if (libraryUrl.endsWith('wasm')) {\n const response = await fetch(libraryUrl);\n return await response.arrayBuffer();\n }\n\n if (!isBrowser) {\n try {\n return node && node.requireFromFile && (await node.requireFromFile(libraryUrl));\n } catch {\n return null;\n }\n }\n if (isWorker) {\n return importScripts(libraryUrl);\n }\n // TODO - fix - should be more secure than string parsing since observes CORS\n // if (isBrowser) {\n // return await loadScriptFromFile(libraryUrl);\n // }\n\n const response = await fetch(libraryUrl);\n const scriptSource = await response.text();\n return loadLibraryFromString(scriptSource, libraryUrl);\n}\n\n/*\nasync function loadScriptFromFile(libraryUrl) {\n const script = document.createElement('script');\n script.src = libraryUrl;\n return await new Promise((resolve, reject) => {\n script.onload = data => {\n resolve(data);\n };\n script.onerror = reject;\n });\n}\n*/\n\n// TODO - Needs security audit...\n// - Raw eval call\n// - Potentially bypasses CORS\n// Upside is that this separates fetching and parsing\n// we could create a`LibraryLoader` or`ModuleLoader`\nfunction loadLibraryFromString(scriptSource: string, id: string): null | any {\n if (!isBrowser) {\n return node.requireFromString && node.requireFromString(scriptSource, id);\n }\n\n if (isWorker) {\n // Use lvalue trick to make eval run in global scope\n eval.call(global, scriptSource); // eslint-disable-line no-eval\n // https://stackoverflow.com/questions/9107240/1-evalthis-vs-evalthis-in-javascript\n // http://perfectionkills.com/global-eval-what-are-the-options/\n return null;\n }\n\n const script = document.createElement('script');\n script.id = id;\n // most browsers like a separate text node but some throw an error. The second method covers those.\n try {\n script.appendChild(document.createTextNode(scriptSource));\n } catch (e) {\n script.text = scriptSource;\n }\n document.body.appendChild(script);\n return null;\n}\n\n// TODO - technique for module injection into worker, from THREE.DracoLoader...\n/*\nfunction combineWorkerWithLibrary(worker, jsContent) {\n var fn = wWorker.toString();\n var body = [\n '// injected',\n jsContent,\n '',\n '// worker',\n fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'))\n ].join('\\n');\n this.workerSourceURL = URL.createObjectURL(new Blob([body]));\n}\n*/\n"],"file":"library-utils.js"}
1
+ {"version":3,"file":"library-utils.js","names":["LATEST","VERSION","loadLibraryPromises","loadLibrary","libraryUrl","moduleName","options","getLibraryUrl","loadLibraryFromFile","library","startsWith","modules","isBrowser","CDN","assert","isWorker","endsWith","fetch","response","arrayBuffer","node","requireFromFile","importScripts","text","scriptSource","loadLibraryFromString","id","requireFromString","eval","call","global","script","document","createElement","appendChild","createTextNode","e","body"],"sources":["../../../../src/lib/library-utils/library-utils.ts"],"sourcesContent":["/* global importScripts */\nimport {global, isBrowser, isWorker} from '../env-utils/globals';\nimport * as node from '../node/require-utils.node';\nimport {assert} from '../env-utils/assert';\nimport {VERSION as __VERSION__} from '../env-utils/version';\n\n// TODO - unpkg.com doesn't seem to have a `latest` specifier for alpha releases...\nconst LATEST = 'beta';\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : LATEST;\n\nconst loadLibraryPromises: Record<string, Promise<any>> = {}; // promises\n\n/**\n * Dynamically loads a library (\"module\")\n *\n * - wasm library: Array buffer is returned\n * - js library: Parse JS is returned\n *\n * Method depends on environment\n * - browser - script element is created and installed on document\n * - worker - eval is called on global context\n * - node - file is required\n *\n * @param libraryUrl\n * @param moduleName\n * @param options\n */\nexport async function loadLibrary(\n libraryUrl: string,\n moduleName: string | null = null,\n options: object = {}\n): Promise<any> {\n if (moduleName) {\n libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);\n }\n\n // Ensure libraries are only loaded once\n\n loadLibraryPromises[libraryUrl] =\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);\n return await loadLibraryPromises[libraryUrl];\n}\n\n// TODO - sort out how to resolve paths for main/worker and dev/prod\nexport function getLibraryUrl(library: string, moduleName?: string, options?: any): string {\n // Check if already a URL\n if (library.startsWith('http')) {\n return library;\n }\n\n // Allow application to import and supply libraries through `options.modules`\n const modules = options.modules || {};\n if (modules[library]) {\n return modules[library];\n }\n\n // Load from local files, not from CDN scripts in Node.js\n // TODO - needs to locate the modules directory when installed!\n if (!isBrowser) {\n return `modules/${moduleName}/dist/libs/${library}`;\n }\n\n // In browser, load from external scripts\n if (options.CDN) {\n assert(options.CDN.startsWith('http'));\n return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${library}`;\n }\n\n // TODO - loading inside workers requires paths relative to worker script location...\n if (isWorker) {\n return `../src/libs/${library}`;\n }\n\n return `modules/${moduleName}/src/libs/${library}`;\n}\n\nasync function loadLibraryFromFile(libraryUrl: string): Promise<any> {\n if (libraryUrl.endsWith('wasm')) {\n const response = await fetch(libraryUrl);\n return await response.arrayBuffer();\n }\n\n if (!isBrowser) {\n try {\n return node && node.requireFromFile && (await node.requireFromFile(libraryUrl));\n } catch {\n return null;\n }\n }\n if (isWorker) {\n return importScripts(libraryUrl);\n }\n // TODO - fix - should be more secure than string parsing since observes CORS\n // if (isBrowser) {\n // return await loadScriptFromFile(libraryUrl);\n // }\n\n const response = await fetch(libraryUrl);\n const scriptSource = await response.text();\n return loadLibraryFromString(scriptSource, libraryUrl);\n}\n\n/*\nasync function loadScriptFromFile(libraryUrl) {\n const script = document.createElement('script');\n script.src = libraryUrl;\n return await new Promise((resolve, reject) => {\n script.onload = data => {\n resolve(data);\n };\n script.onerror = reject;\n });\n}\n*/\n\n// TODO - Needs security audit...\n// - Raw eval call\n// - Potentially bypasses CORS\n// Upside is that this separates fetching and parsing\n// we could create a`LibraryLoader` or`ModuleLoader`\nfunction loadLibraryFromString(scriptSource: string, id: string): null | any {\n if (!isBrowser) {\n return node.requireFromString && node.requireFromString(scriptSource, id);\n }\n\n if (isWorker) {\n // Use lvalue trick to make eval run in global scope\n eval.call(global, scriptSource); // eslint-disable-line no-eval\n // https://stackoverflow.com/questions/9107240/1-evalthis-vs-evalthis-in-javascript\n // http://perfectionkills.com/global-eval-what-are-the-options/\n return null;\n }\n\n const script = document.createElement('script');\n script.id = id;\n // most browsers like a separate text node but some throw an error. The second method covers those.\n try {\n script.appendChild(document.createTextNode(scriptSource));\n } catch (e) {\n script.text = scriptSource;\n }\n document.body.appendChild(script);\n return null;\n}\n\n// TODO - technique for module injection into worker, from THREE.DracoLoader...\n/*\nfunction combineWorkerWithLibrary(worker, jsContent) {\n var fn = wWorker.toString();\n var body = [\n '// injected',\n jsContent,\n '',\n '// worker',\n fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'))\n ].join('\\n');\n this.workerSourceURL = URL.createObjectURL(new Blob([body]));\n}\n*/\n"],"mappings":"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"}