@accordproject/concerto-util 4.2.0 → 5.0.0-beta.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.
- package/dist/baseexception.d.ts +2 -1
- package/dist/baseexception.js +5 -2
- package/dist/basefileexception.d.ts +3 -2
- package/dist/basefileexception.js +10 -4
- package/dist/esm/baseexception.mjs +13 -0
- package/dist/esm/baseexception.mjs.map +7 -0
- package/dist/esm/basefileexception.mjs +14 -0
- package/dist/esm/basefileexception.mjs.map +7 -0
- package/dist/esm/chunk-3RJ6JXLX.mjs +29 -0
- package/dist/esm/chunk-3RJ6JXLX.mjs.map +7 -0
- package/dist/esm/chunk-3U4T7O4P.mjs +41 -0
- package/dist/esm/chunk-3U4T7O4P.mjs.map +7 -0
- package/dist/esm/chunk-D4MNWWBB.mjs +43 -0
- package/dist/esm/chunk-D4MNWWBB.mjs.map +7 -0
- package/dist/esm/chunk-DTVQ7VXD.mjs +30 -0
- package/dist/esm/chunk-DTVQ7VXD.mjs.map +7 -0
- package/dist/esm/chunk-FHUVVHGR.mjs +48 -0
- package/dist/esm/chunk-FHUVVHGR.mjs.map +7 -0
- package/dist/esm/chunk-FK2LDKS6.mjs +36 -0
- package/dist/esm/chunk-FK2LDKS6.mjs.map +7 -0
- package/dist/esm/chunk-G6IDW2UD.mjs +183 -0
- package/dist/esm/chunk-G6IDW2UD.mjs.map +7 -0
- package/dist/esm/chunk-GOLEPEBI.mjs +56 -0
- package/dist/esm/chunk-GOLEPEBI.mjs.map +7 -0
- package/dist/esm/chunk-I33X6SGY.mjs +70 -0
- package/dist/esm/chunk-I33X6SGY.mjs.map +7 -0
- package/dist/esm/chunk-K4OOJFK5.mjs +93 -0
- package/dist/esm/chunk-K4OOJFK5.mjs.map +7 -0
- package/dist/esm/chunk-LPNGJFU2.mjs +22 -0
- package/dist/esm/chunk-LPNGJFU2.mjs.map +7 -0
- package/dist/esm/chunk-PBL5N3A2.mjs +33 -0
- package/dist/esm/chunk-PBL5N3A2.mjs.map +7 -0
- package/dist/esm/chunk-PMP2SMHG.mjs +17 -0
- package/dist/esm/chunk-PMP2SMHG.mjs.map +7 -0
- package/dist/esm/chunk-Q6G4HQJ7.mjs +151 -0
- package/dist/esm/chunk-Q6G4HQJ7.mjs.map +7 -0
- package/dist/esm/chunk-RBUQLLXW.mjs +51 -0
- package/dist/esm/chunk-RBUQLLXW.mjs.map +7 -0
- package/dist/esm/chunk-T6ZBQYEB.mjs +97 -0
- package/dist/esm/chunk-T6ZBQYEB.mjs.map +7 -0
- package/dist/esm/chunk-TP3CT6S4.mjs +35 -0
- package/dist/esm/chunk-TP3CT6S4.mjs.map +7 -0
- package/dist/esm/chunk-WPVG6LP3.mjs +63 -0
- package/dist/esm/chunk-WPVG6LP3.mjs.map +7 -0
- package/dist/esm/chunk-YQVUNOO6.mjs +93 -0
- package/dist/esm/chunk-YQVUNOO6.mjs.map +7 -0
- package/dist/esm/errorcodes.mjs +22 -0
- package/dist/esm/errorcodes.mjs.map +7 -0
- package/dist/esm/filedownloader.mjs +12 -0
- package/dist/esm/filedownloader.mjs.map +7 -0
- package/dist/esm/filewriter.mjs +13 -0
- package/dist/esm/filewriter.mjs.map +7 -0
- package/dist/esm/identifiers.mjs +12 -0
- package/dist/esm/identifiers.mjs.map +7 -0
- package/dist/esm/index.mjs +78 -0
- package/dist/esm/index.mjs.map +7 -0
- package/dist/esm/inmemorywriter.mjs +13 -0
- package/dist/esm/inmemorywriter.mjs.map +7 -0
- package/dist/esm/label.mjs +12 -0
- package/dist/esm/label.mjs.map +7 -0
- package/dist/esm/loaders/compositefileloader.mjs +12 -0
- package/dist/esm/loaders/compositefileloader.mjs.map +7 -0
- package/dist/esm/loaders/defaultfileloader.mjs +15 -0
- package/dist/esm/loaders/defaultfileloader.mjs.map +7 -0
- package/dist/esm/loaders/fileloader.mjs +3 -0
- package/dist/esm/loaders/fileloader.mjs.map +7 -0
- package/dist/esm/loaders/githubfileloader.mjs +13 -0
- package/dist/esm/loaders/githubfileloader.mjs.map +7 -0
- package/dist/esm/loaders/httpfileloader.mjs +12 -0
- package/dist/esm/loaders/httpfileloader.mjs.map +7 -0
- package/dist/esm/logger.mjs +12 -0
- package/dist/esm/logger.mjs.map +7 -0
- package/dist/esm/modelwriter.mjs +10 -0
- package/dist/esm/modelwriter.mjs.map +7 -0
- package/dist/esm/null.mjs +12 -0
- package/dist/esm/null.mjs.map +7 -0
- package/dist/esm/typedstack.mjs +12 -0
- package/dist/esm/typedstack.mjs.map +7 -0
- package/dist/esm/warning.mjs +10 -0
- package/dist/esm/warning.mjs.map +7 -0
- package/dist/esm/writer.mjs +12 -0
- package/dist/esm/writer.mjs.map +7 -0
- package/dist/esm-browser/baseexception.mjs +11 -0
- package/dist/esm-browser/baseexception.mjs.map +7 -0
- package/dist/esm-browser/basefileexception.mjs +12 -0
- package/dist/esm-browser/basefileexception.mjs.map +7 -0
- package/dist/esm-browser/chunk-3XGAUT4O.mjs +100 -0
- package/dist/esm-browser/chunk-3XGAUT4O.mjs.map +7 -0
- package/dist/esm-browser/chunk-4X5DBZDM.mjs +24 -0
- package/dist/esm-browser/chunk-4X5DBZDM.mjs.map +7 -0
- package/dist/esm-browser/chunk-6SOOHVQB.mjs +65 -0
- package/dist/esm-browser/chunk-6SOOHVQB.mjs.map +7 -0
- package/dist/esm-browser/chunk-7DYPHXUR.mjs +50 -0
- package/dist/esm-browser/chunk-7DYPHXUR.mjs.map +7 -0
- package/dist/esm-browser/chunk-7LYWQ57N.mjs +461 -0
- package/dist/esm-browser/chunk-7LYWQ57N.mjs.map +7 -0
- package/dist/esm-browser/chunk-BDMF4RRF.mjs +72 -0
- package/dist/esm-browser/chunk-BDMF4RRF.mjs.map +7 -0
- package/dist/esm-browser/chunk-BSBOEFWN.mjs +57 -0
- package/dist/esm-browser/chunk-BSBOEFWN.mjs.map +7 -0
- package/dist/esm-browser/chunk-DOL2YKDZ.mjs +26 -0
- package/dist/esm-browser/chunk-DOL2YKDZ.mjs.map +7 -0
- package/dist/esm-browser/chunk-EGOFDABS.mjs +62 -0
- package/dist/esm-browser/chunk-EGOFDABS.mjs.map +7 -0
- package/dist/esm-browser/chunk-LZTTRWN3.mjs +153 -0
- package/dist/esm-browser/chunk-LZTTRWN3.mjs.map +7 -0
- package/dist/esm-browser/chunk-MCUSZIV7.mjs +41 -0
- package/dist/esm-browser/chunk-MCUSZIV7.mjs.map +7 -0
- package/dist/esm-browser/chunk-N42BHUZ6.mjs +35 -0
- package/dist/esm-browser/chunk-N42BHUZ6.mjs.map +7 -0
- package/dist/esm-browser/chunk-NAP47VIV.mjs +36 -0
- package/dist/esm-browser/chunk-NAP47VIV.mjs.map +7 -0
- package/dist/esm-browser/chunk-NQ5PDAAD.mjs +95 -0
- package/dist/esm-browser/chunk-NQ5PDAAD.mjs.map +7 -0
- package/dist/esm-browser/chunk-NSJTBLWA.mjs +71 -0
- package/dist/esm-browser/chunk-NSJTBLWA.mjs.map +7 -0
- package/dist/esm-browser/chunk-R6CSKES3.mjs +183 -0
- package/dist/esm-browser/chunk-R6CSKES3.mjs.map +7 -0
- package/dist/esm-browser/chunk-S52XDDAF.mjs +30 -0
- package/dist/esm-browser/chunk-S52XDDAF.mjs.map +7 -0
- package/dist/esm-browser/chunk-SU6SG5PJ.mjs +45 -0
- package/dist/esm-browser/chunk-SU6SG5PJ.mjs.map +7 -0
- package/dist/esm-browser/chunk-WCGRUR5U.mjs +30 -0
- package/dist/esm-browser/chunk-WCGRUR5U.mjs.map +7 -0
- package/dist/esm-browser/chunk-YJQCJTA7.mjs +53 -0
- package/dist/esm-browser/chunk-YJQCJTA7.mjs.map +7 -0
- package/dist/esm-browser/chunk-YURYZDD2.mjs +453 -0
- package/dist/esm-browser/chunk-YURYZDD2.mjs.map +7 -0
- package/dist/esm-browser/errorcodes.mjs +20 -0
- package/dist/esm-browser/errorcodes.mjs.map +7 -0
- package/dist/esm-browser/filedownloader.mjs +11 -0
- package/dist/esm-browser/filedownloader.mjs.map +7 -0
- package/dist/esm-browser/filewriter.mjs +12 -0
- package/dist/esm-browser/filewriter.mjs.map +7 -0
- package/dist/esm-browser/identifiers.mjs +10 -0
- package/dist/esm-browser/identifiers.mjs.map +7 -0
- package/dist/esm-browser/index.mjs +83 -0
- package/dist/esm-browser/index.mjs.map +7 -0
- package/dist/esm-browser/inmemorywriter.mjs +11 -0
- package/dist/esm-browser/inmemorywriter.mjs.map +7 -0
- package/dist/esm-browser/label.mjs +10 -0
- package/dist/esm-browser/label.mjs.map +7 -0
- package/dist/esm-browser/loaders/compositefileloader.mjs +10 -0
- package/dist/esm-browser/loaders/compositefileloader.mjs.map +7 -0
- package/dist/esm-browser/loaders/defaultfileloader.mjs +14 -0
- package/dist/esm-browser/loaders/defaultfileloader.mjs.map +7 -0
- package/dist/esm-browser/loaders/fileloader.mjs +7 -0
- package/dist/esm-browser/loaders/fileloader.mjs.map +7 -0
- package/dist/esm-browser/loaders/githubfileloader.mjs +12 -0
- package/dist/esm-browser/loaders/githubfileloader.mjs.map +7 -0
- package/dist/esm-browser/loaders/httpfileloader.mjs +11 -0
- package/dist/esm-browser/loaders/httpfileloader.mjs.map +7 -0
- package/dist/esm-browser/logger.mjs +10 -0
- package/dist/esm-browser/logger.mjs.map +7 -0
- package/dist/esm-browser/modelwriter.mjs +9 -0
- package/dist/esm-browser/modelwriter.mjs.map +7 -0
- package/dist/esm-browser/null.mjs +10 -0
- package/dist/esm-browser/null.mjs.map +7 -0
- package/dist/esm-browser/typedstack.mjs +10 -0
- package/dist/esm-browser/typedstack.mjs.map +7 -0
- package/dist/esm-browser/warning.mjs +8 -0
- package/dist/esm-browser/warning.mjs.map +7 -0
- package/dist/esm-browser/writer.mjs +10 -0
- package/dist/esm-browser/writer.mjs.map +7 -0
- package/dist/filedownloader.d.ts +14 -6
- package/dist/filedownloader.js +32 -12
- package/dist/filewriter.d.ts +3 -2
- package/dist/filewriter.js +10 -4
- package/dist/identifiers.js +4 -2
- package/dist/index.d.ts +18 -17
- package/dist/index.js +34 -31
- package/dist/inmemorywriter.d.ts +3 -2
- package/dist/inmemorywriter.js +10 -4
- package/dist/loaders/compositefileloader.d.ts +2 -1
- package/dist/loaders/compositefileloader.js +5 -2
- package/dist/loaders/defaultfileloader.d.ts +3 -2
- package/dist/loaders/defaultfileloader.js +14 -8
- package/dist/loaders/githubfileloader.d.ts +3 -2
- package/dist/loaders/githubfileloader.js +10 -4
- package/dist/loaders/httpfileloader.d.ts +2 -1
- package/dist/loaders/httpfileloader.js +10 -3
- package/dist/logger.d.ts +2 -1
- package/dist/logger.js +5 -2
- package/dist/modelwriter.js +6 -4
- package/dist/null.d.ts +3 -2
- package/dist/null.js +5 -2
- package/dist/typedstack.d.ts +2 -1
- package/dist/typedstack.js +5 -2
- package/dist/writer.d.ts +2 -1
- package/dist/writer.js +5 -2
- package/package.json +16 -8
- package/dist/concerto-util.js +0 -2
- package/dist/concerto-util.js.LICENSE.txt +0 -19
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import {
|
|
2
|
+
require_browser
|
|
3
|
+
} from "./chunk-7LYWQ57N.mjs";
|
|
4
|
+
import {
|
|
5
|
+
__commonJS,
|
|
6
|
+
__toESM,
|
|
7
|
+
init_browser_process_shim
|
|
8
|
+
} from "./chunk-NSJTBLWA.mjs";
|
|
9
|
+
|
|
10
|
+
// ../../node_modules/@supercharge/promise-pool/dist/promise-pool-error.js
|
|
11
|
+
var require_promise_pool_error = __commonJS({
|
|
12
|
+
"../../node_modules/@supercharge/promise-pool/dist/promise-pool-error.js"(exports) {
|
|
13
|
+
"use strict";
|
|
14
|
+
init_browser_process_shim();
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.PromisePoolError = void 0;
|
|
17
|
+
var PromisePoolError = class extends Error {
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance for the given `message` and `item`.
|
|
20
|
+
*
|
|
21
|
+
* @param error The original error
|
|
22
|
+
* @param item The item causing the error
|
|
23
|
+
*/
|
|
24
|
+
constructor(error, item) {
|
|
25
|
+
super();
|
|
26
|
+
this.item = item;
|
|
27
|
+
this.name = this.constructor.name;
|
|
28
|
+
this.message = this.messageFrom(error);
|
|
29
|
+
Error.captureStackTrace(this, this.constructor);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Returns a new promise pool error instance wrapping the `error` and `item`.
|
|
33
|
+
*
|
|
34
|
+
* @param {*} error
|
|
35
|
+
* @param {*} item
|
|
36
|
+
*
|
|
37
|
+
* @returns {PromisePoolError}
|
|
38
|
+
*/
|
|
39
|
+
static createFrom(error, item) {
|
|
40
|
+
return new this(error, item);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Returns the error message from the given `error`.
|
|
44
|
+
*
|
|
45
|
+
* @param {*} error
|
|
46
|
+
*
|
|
47
|
+
* @returns {String}
|
|
48
|
+
*/
|
|
49
|
+
messageFrom(error) {
|
|
50
|
+
if (error instanceof Error) {
|
|
51
|
+
return error.message;
|
|
52
|
+
}
|
|
53
|
+
if (typeof error === "object") {
|
|
54
|
+
return error.message;
|
|
55
|
+
}
|
|
56
|
+
if (typeof error === "string" || typeof error === "number") {
|
|
57
|
+
return error.toString();
|
|
58
|
+
}
|
|
59
|
+
return "";
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
exports.PromisePoolError = PromisePoolError;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// ../../node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js
|
|
67
|
+
var require_promise_pool_executor = __commonJS({
|
|
68
|
+
"../../node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js"(exports) {
|
|
69
|
+
"use strict";
|
|
70
|
+
init_browser_process_shim();
|
|
71
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
72
|
+
exports.PromisePoolExecutor = void 0;
|
|
73
|
+
var promise_pool_error_1 = require_promise_pool_error();
|
|
74
|
+
var PromisePoolExecutor = class {
|
|
75
|
+
/**
|
|
76
|
+
* Creates a new promise pool executer instance with a default concurrency of 10.
|
|
77
|
+
*/
|
|
78
|
+
constructor() {
|
|
79
|
+
this.tasks = [];
|
|
80
|
+
this.items = [];
|
|
81
|
+
this.errors = [];
|
|
82
|
+
this.results = [];
|
|
83
|
+
this.concurrency = 10;
|
|
84
|
+
this.handler = () => {
|
|
85
|
+
};
|
|
86
|
+
this.errorHandler = void 0;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Set the number of tasks to process concurrently the promise pool.
|
|
90
|
+
*
|
|
91
|
+
* @param {Integer} concurrency
|
|
92
|
+
*
|
|
93
|
+
* @returns {PromisePoolExecutor}
|
|
94
|
+
*/
|
|
95
|
+
withConcurrency(concurrency) {
|
|
96
|
+
this.concurrency = concurrency;
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Set the items to be processed in the promise pool.
|
|
101
|
+
*
|
|
102
|
+
* @param {Array} items
|
|
103
|
+
*
|
|
104
|
+
* @returns {PromisePoolExecutor}
|
|
105
|
+
*/
|
|
106
|
+
for(items) {
|
|
107
|
+
this.items = items;
|
|
108
|
+
return this;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Set the handler that is applied to each item.
|
|
112
|
+
*
|
|
113
|
+
* @param {Function} action
|
|
114
|
+
*
|
|
115
|
+
* @returns {PromisePoolExecutor}
|
|
116
|
+
*/
|
|
117
|
+
withHandler(action) {
|
|
118
|
+
this.handler = action;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Set the error handler function to execute when an error occurs.
|
|
123
|
+
*
|
|
124
|
+
* @param {Function} handler
|
|
125
|
+
*
|
|
126
|
+
* @returns {PromisePoolExecutor}
|
|
127
|
+
*/
|
|
128
|
+
handleError(handler) {
|
|
129
|
+
this.errorHandler = handler;
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Determines whether the number of active tasks is greater or equal to the concurrency limit.
|
|
134
|
+
*
|
|
135
|
+
* @returns {Boolean}
|
|
136
|
+
*/
|
|
137
|
+
hasReachedConcurrencyLimit() {
|
|
138
|
+
return this.activeCount() >= this.concurrency;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Returns the number of active tasks.
|
|
142
|
+
*
|
|
143
|
+
* @returns {Number}
|
|
144
|
+
*/
|
|
145
|
+
activeCount() {
|
|
146
|
+
return this.tasks.length;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Start processing the promise pool.
|
|
150
|
+
*
|
|
151
|
+
* @returns {Array}
|
|
152
|
+
*/
|
|
153
|
+
async start() {
|
|
154
|
+
this.validateInputs();
|
|
155
|
+
return await this.process();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Ensure valid inputs and throw otherwise.
|
|
159
|
+
*
|
|
160
|
+
* @throws
|
|
161
|
+
*/
|
|
162
|
+
validateInputs() {
|
|
163
|
+
if (typeof this.handler !== "function") {
|
|
164
|
+
throw new Error("The first parameter for the .process(fn) method must be a function");
|
|
165
|
+
}
|
|
166
|
+
if (!(typeof this.concurrency === "number" && this.concurrency >= 1)) {
|
|
167
|
+
throw new TypeError(`"concurrency" must be a number, 1 or up. Received "${this.concurrency}" (${typeof this.concurrency})`);
|
|
168
|
+
}
|
|
169
|
+
if (!Array.isArray(this.items)) {
|
|
170
|
+
throw new TypeError(`"items" must be an array. Received ${typeof this.items}`);
|
|
171
|
+
}
|
|
172
|
+
if (this.errorHandler) {
|
|
173
|
+
if (typeof this.errorHandler !== "function") {
|
|
174
|
+
throw new Error(`The error handler must be a function. Received ${typeof this.errorHandler}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Starts processing the promise pool by iterating over the items
|
|
180
|
+
* and running each item through the async `callback` function.
|
|
181
|
+
*
|
|
182
|
+
* @param {Function} callback
|
|
183
|
+
*
|
|
184
|
+
* @returns {Promise}
|
|
185
|
+
*/
|
|
186
|
+
async process() {
|
|
187
|
+
for (const item of this.items) {
|
|
188
|
+
if (this.hasReachedConcurrencyLimit()) {
|
|
189
|
+
await this.processingSlot();
|
|
190
|
+
}
|
|
191
|
+
this.startProcessing(item);
|
|
192
|
+
}
|
|
193
|
+
return this.drained();
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Creates a deferred promise and pushes the related callback to the pending
|
|
197
|
+
* queue. Returns the promise which is used to wait for the callback.
|
|
198
|
+
*
|
|
199
|
+
* @returns {Promise}
|
|
200
|
+
*/
|
|
201
|
+
async processingSlot() {
|
|
202
|
+
return this.waitForTaskToFinish();
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Wait for one of the active tasks to finish processing.
|
|
206
|
+
*/
|
|
207
|
+
async waitForTaskToFinish() {
|
|
208
|
+
await Promise.race(this.tasks);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Create a processing function for the given `item`.
|
|
212
|
+
*
|
|
213
|
+
* @param {*} item
|
|
214
|
+
*/
|
|
215
|
+
startProcessing(item) {
|
|
216
|
+
const task = this.createTaskFor(item).then((result) => {
|
|
217
|
+
this.results.push(result);
|
|
218
|
+
this.tasks.splice(this.tasks.indexOf(task), 1);
|
|
219
|
+
}).catch((error) => {
|
|
220
|
+
this.tasks.splice(this.tasks.indexOf(task), 1);
|
|
221
|
+
if (this.errorHandler) {
|
|
222
|
+
return this.errorHandler(error, item);
|
|
223
|
+
}
|
|
224
|
+
this.errors.push(promise_pool_error_1.PromisePoolError.createFrom(error, item));
|
|
225
|
+
});
|
|
226
|
+
this.tasks.push(task);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Ensures a returned promise for the processing of the given `item`.
|
|
230
|
+
*
|
|
231
|
+
* @param item
|
|
232
|
+
*
|
|
233
|
+
* @returns {*}
|
|
234
|
+
*/
|
|
235
|
+
async createTaskFor(item) {
|
|
236
|
+
return this.handler(item);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Wait for all active tasks to finish. Once all the tasks finished
|
|
240
|
+
* processing, returns an object containing the results and errors.
|
|
241
|
+
*
|
|
242
|
+
* @returns {Object}
|
|
243
|
+
*/
|
|
244
|
+
async drained() {
|
|
245
|
+
await this.drainActiveTasks();
|
|
246
|
+
return {
|
|
247
|
+
results: this.results,
|
|
248
|
+
errors: this.errors
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Wait for all of the active tasks to finish processing.
|
|
253
|
+
*/
|
|
254
|
+
async drainActiveTasks() {
|
|
255
|
+
await Promise.all(this.tasks);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
exports.PromisePoolExecutor = PromisePoolExecutor;
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
// ../../node_modules/@supercharge/promise-pool/dist/promise-pool.js
|
|
263
|
+
var require_promise_pool = __commonJS({
|
|
264
|
+
"../../node_modules/@supercharge/promise-pool/dist/promise-pool.js"(exports) {
|
|
265
|
+
"use strict";
|
|
266
|
+
init_browser_process_shim();
|
|
267
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
268
|
+
exports.PromisePool = void 0;
|
|
269
|
+
var promise_pool_executor_1 = require_promise_pool_executor();
|
|
270
|
+
var PromisePool2 = class _PromisePool {
|
|
271
|
+
/**
|
|
272
|
+
* Instantiates a new promise pool with a default `concurrency: 10` and `items: []`.
|
|
273
|
+
*
|
|
274
|
+
* @param {Object} options
|
|
275
|
+
*/
|
|
276
|
+
constructor(items) {
|
|
277
|
+
this.concurrency = 10;
|
|
278
|
+
this.items = items !== null && items !== void 0 ? items : [];
|
|
279
|
+
this.errorHandler = void 0;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Set the number of tasks to process concurrently in the promise pool.
|
|
283
|
+
*
|
|
284
|
+
* @param {Integer} concurrency
|
|
285
|
+
*
|
|
286
|
+
* @returns {PromisePool}
|
|
287
|
+
*/
|
|
288
|
+
withConcurrency(concurrency) {
|
|
289
|
+
this.concurrency = concurrency;
|
|
290
|
+
return this;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Set the number of tasks to process concurrently in the promise pool.
|
|
294
|
+
*
|
|
295
|
+
* @param {Number} concurrency
|
|
296
|
+
*
|
|
297
|
+
* @returns {PromisePool}
|
|
298
|
+
*/
|
|
299
|
+
static withConcurrency(concurrency) {
|
|
300
|
+
return new this().withConcurrency(concurrency);
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Set the items to be processed in the promise pool.
|
|
304
|
+
*
|
|
305
|
+
* @param {Array} items
|
|
306
|
+
*
|
|
307
|
+
* @returns {PromisePool}
|
|
308
|
+
*/
|
|
309
|
+
for(items) {
|
|
310
|
+
return new _PromisePool(items).withConcurrency(this.concurrency);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Set the items to be processed in the promise pool.
|
|
314
|
+
*
|
|
315
|
+
* @param {Array} items
|
|
316
|
+
*
|
|
317
|
+
* @returns {PromisePool}
|
|
318
|
+
*/
|
|
319
|
+
static for(items) {
|
|
320
|
+
return new this().for(items);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Set the error handler function to execute when an error occurs.
|
|
324
|
+
*
|
|
325
|
+
* @param {Function} handler
|
|
326
|
+
*
|
|
327
|
+
* @returns {PromisePool}
|
|
328
|
+
*/
|
|
329
|
+
handleError(handler) {
|
|
330
|
+
this.errorHandler = handler;
|
|
331
|
+
return this;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Starts processing the promise pool by iterating over the items
|
|
335
|
+
* and running each item through the async `callback` function.
|
|
336
|
+
*
|
|
337
|
+
* @param {Function} The async processing function receiving each item from the `items` array.
|
|
338
|
+
*
|
|
339
|
+
* @returns Promise<{ results, errors }>
|
|
340
|
+
*/
|
|
341
|
+
async process(callback) {
|
|
342
|
+
return new promise_pool_executor_1.PromisePoolExecutor().withConcurrency(this.concurrency).withHandler(callback).handleError(this.errorHandler).for(this.items).start();
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
exports.PromisePool = PromisePool2;
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
// ../../node_modules/@supercharge/promise-pool/dist/index.js
|
|
350
|
+
var require_dist = __commonJS({
|
|
351
|
+
"../../node_modules/@supercharge/promise-pool/dist/index.js"(exports, module) {
|
|
352
|
+
"use strict";
|
|
353
|
+
init_browser_process_shim();
|
|
354
|
+
var promise_pool_1 = require_promise_pool();
|
|
355
|
+
module.exports = promise_pool_1.PromisePool;
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
// src/filedownloader.ts
|
|
360
|
+
init_browser_process_shim();
|
|
361
|
+
var import_debug = __toESM(require_browser());
|
|
362
|
+
var import_promise_pool = __toESM(require_dist());
|
|
363
|
+
var debug = (0, import_debug.default)("concerto:FileDownloader");
|
|
364
|
+
function flatten(arr) {
|
|
365
|
+
return [].concat(...arr);
|
|
366
|
+
}
|
|
367
|
+
var filterUndefined = (arr) => arr.filter((value) => Boolean(value));
|
|
368
|
+
var handleJobError = async (error, job) => {
|
|
369
|
+
const errLike = error;
|
|
370
|
+
const badHttpResponse = errLike.response && errLike.response.status && errLike.response.status !== 200;
|
|
371
|
+
const dnsFailure = errLike.code && errLike.code === "ENOTFOUND";
|
|
372
|
+
const jobUrl = job.url;
|
|
373
|
+
if (badHttpResponse || dnsFailure) {
|
|
374
|
+
const err = new Error(`Unable to download external model dependency '${jobUrl}'`);
|
|
375
|
+
err.code = "MISSING_DEPENDENCY";
|
|
376
|
+
throw err;
|
|
377
|
+
}
|
|
378
|
+
throw new Error("Failed to load model file. Job: " + jobUrl + " Details: " + error);
|
|
379
|
+
};
|
|
380
|
+
var FileDownloader = class {
|
|
381
|
+
/**
|
|
382
|
+
* Create a FileDownloader and bind to a FileLoader.
|
|
383
|
+
* @param fileLoader - the loader to use to download model files
|
|
384
|
+
* @param getExternalImports - a function taking a file and returning new files
|
|
385
|
+
* @param concurrency - the number of model files to download concurrently
|
|
386
|
+
*/
|
|
387
|
+
constructor(fileLoader, getExternalImports, concurrency = 10) {
|
|
388
|
+
this.fileLoader = fileLoader;
|
|
389
|
+
this.concurrency = concurrency;
|
|
390
|
+
this.getExternalImports = getExternalImports;
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Download all external dependencies for an array of model files
|
|
394
|
+
* @param files - the model files to start the walk from
|
|
395
|
+
* @param options - Options object passed to FileLoaders
|
|
396
|
+
* @return a promise that resolves to Files[] for the external model files
|
|
397
|
+
*/
|
|
398
|
+
downloadExternalDependencies(files, options = {}) {
|
|
399
|
+
const method = "downloadExternalDependencies";
|
|
400
|
+
debug(method);
|
|
401
|
+
const downloadedUris = /* @__PURE__ */ new Set();
|
|
402
|
+
const jobs = flatten(files.map((file) => {
|
|
403
|
+
const externalImports = this.getExternalImports(file);
|
|
404
|
+
return Object.keys(externalImports).map((importDeclaration) => ({
|
|
405
|
+
downloadedUris,
|
|
406
|
+
url: externalImports[importDeclaration],
|
|
407
|
+
options
|
|
408
|
+
}));
|
|
409
|
+
}));
|
|
410
|
+
return import_promise_pool.default.withConcurrency(this.concurrency).for(jobs).handleError(handleJobError).process((x) => this.runJob(x, this.fileLoader)).then(({ results }) => filterUndefined(flatten(results)));
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Execute a Job
|
|
414
|
+
* @param job - the job to execute
|
|
415
|
+
* @param fileLoader - the loader to use to download model files.
|
|
416
|
+
* @return a promise to the job results
|
|
417
|
+
*/
|
|
418
|
+
runJob(job, fileLoader) {
|
|
419
|
+
const downloadedUris = job.downloadedUris;
|
|
420
|
+
const options = job.options;
|
|
421
|
+
const url = job.url;
|
|
422
|
+
downloadedUris.add(url);
|
|
423
|
+
debug("runJob", "Loading", url);
|
|
424
|
+
return fileLoader.load(url, options).then(async (file) => {
|
|
425
|
+
debug("runJob", "Loaded", url);
|
|
426
|
+
const externalImports = this.getExternalImports(file);
|
|
427
|
+
const importedUris = Array.from(
|
|
428
|
+
new Set(
|
|
429
|
+
Object.keys(externalImports).map((importDeclaration) => externalImports[importDeclaration])
|
|
430
|
+
)
|
|
431
|
+
);
|
|
432
|
+
debug("runJob", "importedUris", importedUris);
|
|
433
|
+
const externalImportsFiles = await import_promise_pool.default.withConcurrency(this.concurrency).for(importedUris).handleError(handleJobError).process((uri) => {
|
|
434
|
+
if (!downloadedUris.has(uri)) {
|
|
435
|
+
return this.runJob({
|
|
436
|
+
options,
|
|
437
|
+
url: uri,
|
|
438
|
+
downloadedUris
|
|
439
|
+
}, fileLoader);
|
|
440
|
+
}
|
|
441
|
+
return void 0;
|
|
442
|
+
}).then(({ results }) => filterUndefined(flatten(results)));
|
|
443
|
+
return externalImportsFiles.concat([file]);
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
var filedownloader_default = FileDownloader;
|
|
448
|
+
|
|
449
|
+
export {
|
|
450
|
+
FileDownloader,
|
|
451
|
+
filedownloader_default
|
|
452
|
+
};
|
|
453
|
+
//# sourceMappingURL=chunk-YURYZDD2.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../node_modules/@supercharge/promise-pool/dist/promise-pool-error.js", "../../../../node_modules/@supercharge/promise-pool/dist/promise-pool-executor.js", "../../../../node_modules/@supercharge/promise-pool/dist/promise-pool.js", "../../../../node_modules/@supercharge/promise-pool/dist/index.js", "../../src/filedownloader.ts"],
|
|
4
|
+
"sourcesContent": ["'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromisePoolError = void 0;\nclass PromisePoolError extends Error {\n /**\n * Create a new instance for the given `message` and `item`.\n *\n * @param error The original error\n * @param item The item causing the error\n */\n constructor(error, item) {\n super();\n this.item = item;\n this.name = this.constructor.name;\n this.message = this.messageFrom(error);\n Error.captureStackTrace(this, this.constructor);\n }\n /**\n * Returns a new promise pool error instance wrapping the `error` and `item`.\n *\n * @param {*} error\n * @param {*} item\n *\n * @returns {PromisePoolError}\n */\n static createFrom(error, item) {\n return new this(error, item);\n }\n /**\n * Returns the error message from the given `error`.\n *\n * @param {*} error\n *\n * @returns {String}\n */\n messageFrom(error) {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === 'object') {\n return error.message;\n }\n if (typeof error === 'string' || typeof error === 'number') {\n return error.toString();\n }\n return '';\n }\n}\nexports.PromisePoolError = PromisePoolError;\n", "'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromisePoolExecutor = void 0;\nconst promise_pool_error_1 = require(\"./promise-pool-error\");\nclass PromisePoolExecutor {\n /**\n * Creates a new promise pool executer instance with a default concurrency of 10.\n */\n constructor() {\n this.tasks = [];\n this.items = [];\n this.errors = [];\n this.results = [];\n this.concurrency = 10;\n this.handler = () => { };\n this.errorHandler = undefined;\n }\n /**\n * Set the number of tasks to process concurrently the promise pool.\n *\n * @param {Integer} concurrency\n *\n * @returns {PromisePoolExecutor}\n */\n withConcurrency(concurrency) {\n this.concurrency = concurrency;\n return this;\n }\n /**\n * Set the items to be processed in the promise pool.\n *\n * @param {Array} items\n *\n * @returns {PromisePoolExecutor}\n */\n for(items) {\n this.items = items;\n return this;\n }\n /**\n * Set the handler that is applied to each item.\n *\n * @param {Function} action\n *\n * @returns {PromisePoolExecutor}\n */\n withHandler(action) {\n this.handler = action;\n return this;\n }\n /**\n * Set the error handler function to execute when an error occurs.\n *\n * @param {Function} handler\n *\n * @returns {PromisePoolExecutor}\n */\n handleError(handler) {\n this.errorHandler = handler;\n return this;\n }\n /**\n * Determines whether the number of active tasks is greater or equal to the concurrency limit.\n *\n * @returns {Boolean}\n */\n hasReachedConcurrencyLimit() {\n return this.activeCount() >= this.concurrency;\n }\n /**\n * Returns the number of active tasks.\n *\n * @returns {Number}\n */\n activeCount() {\n return this.tasks.length;\n }\n /**\n * Start processing the promise pool.\n *\n * @returns {Array}\n */\n async start() {\n this.validateInputs();\n return await this.process();\n }\n /**\n * Ensure valid inputs and throw otherwise.\n *\n * @throws\n */\n validateInputs() {\n if (typeof this.handler !== 'function') {\n throw new Error('The first parameter for the .process(fn) method must be a function');\n }\n if (!(typeof this.concurrency === 'number' && this.concurrency >= 1)) {\n throw new TypeError(`\"concurrency\" must be a number, 1 or up. Received \"${this.concurrency}\" (${typeof this.concurrency})`);\n }\n if (!Array.isArray(this.items)) {\n throw new TypeError(`\"items\" must be an array. Received ${typeof this.items}`);\n }\n if (this.errorHandler) {\n if (typeof this.errorHandler !== 'function') {\n throw new Error(`The error handler must be a function. Received ${typeof this.errorHandler}`);\n }\n }\n }\n /**\n * Starts processing the promise pool by iterating over the items\n * and running each item through the async `callback` function.\n *\n * @param {Function} callback\n *\n * @returns {Promise}\n */\n async process() {\n for (const item of this.items) {\n if (this.hasReachedConcurrencyLimit()) {\n await this.processingSlot();\n }\n this.startProcessing(item);\n }\n return this.drained();\n }\n /**\n * Creates a deferred promise and pushes the related callback to the pending\n * queue. Returns the promise which is used to wait for the callback.\n *\n * @returns {Promise}\n */\n async processingSlot() {\n return this.waitForTaskToFinish();\n }\n /**\n * Wait for one of the active tasks to finish processing.\n */\n async waitForTaskToFinish() {\n await Promise.race(this.tasks);\n }\n /**\n * Create a processing function for the given `item`.\n *\n * @param {*} item\n */\n startProcessing(item) {\n const task = this.createTaskFor(item)\n .then(result => {\n this.results.push(result);\n this.tasks.splice(this.tasks.indexOf(task), 1);\n })\n .catch(error => {\n this.tasks.splice(this.tasks.indexOf(task), 1);\n if (this.errorHandler) {\n return this.errorHandler(error, item);\n }\n this.errors.push(promise_pool_error_1.PromisePoolError.createFrom(error, item));\n });\n this.tasks.push(task);\n }\n /**\n * Ensures a returned promise for the processing of the given `item`.\n *\n * @param item\n *\n * @returns {*}\n */\n async createTaskFor(item) {\n return this.handler(item);\n }\n /**\n * Wait for all active tasks to finish. Once all the tasks finished\n * processing, returns an object containing the results and errors.\n *\n * @returns {Object}\n */\n async drained() {\n await this.drainActiveTasks();\n return {\n results: this.results,\n errors: this.errors\n };\n }\n /**\n * Wait for all of the active tasks to finish processing.\n */\n async drainActiveTasks() {\n await Promise.all(this.tasks);\n }\n}\nexports.PromisePoolExecutor = PromisePoolExecutor;\n", "'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromisePool = void 0;\nconst promise_pool_executor_1 = require(\"./promise-pool-executor\");\nclass PromisePool {\n /**\n * Instantiates a new promise pool with a default `concurrency: 10` and `items: []`.\n *\n * @param {Object} options\n */\n constructor(items) {\n this.concurrency = 10;\n this.items = items !== null && items !== void 0 ? items : [];\n this.errorHandler = undefined;\n }\n /**\n * Set the number of tasks to process concurrently in the promise pool.\n *\n * @param {Integer} concurrency\n *\n * @returns {PromisePool}\n */\n withConcurrency(concurrency) {\n this.concurrency = concurrency;\n return this;\n }\n /**\n * Set the number of tasks to process concurrently in the promise pool.\n *\n * @param {Number} concurrency\n *\n * @returns {PromisePool}\n */\n static withConcurrency(concurrency) {\n return new this().withConcurrency(concurrency);\n }\n /**\n * Set the items to be processed in the promise pool.\n *\n * @param {Array} items\n *\n * @returns {PromisePool}\n */\n for(items) {\n return new PromisePool(items).withConcurrency(this.concurrency);\n }\n /**\n * Set the items to be processed in the promise pool.\n *\n * @param {Array} items\n *\n * @returns {PromisePool}\n */\n static for(items) {\n return new this().for(items);\n }\n /**\n * Set the error handler function to execute when an error occurs.\n *\n * @param {Function} handler\n *\n * @returns {PromisePool}\n */\n handleError(handler) {\n this.errorHandler = handler;\n return this;\n }\n /**\n * Starts processing the promise pool by iterating over the items\n * and running each item through the async `callback` function.\n *\n * @param {Function} The async processing function receiving each item from the `items` array.\n *\n * @returns Promise<{ results, errors }>\n */\n async process(callback) {\n return new promise_pool_executor_1.PromisePoolExecutor()\n .withConcurrency(this.concurrency)\n .withHandler(callback)\n .handleError(this.errorHandler)\n .for(this.items)\n .start();\n }\n}\nexports.PromisePool = PromisePool;\n", "'use strict';\nconst promise_pool_1 = require(\"./promise-pool\");\nmodule.exports = promise_pool_1.PromisePool;\n", "/*\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport createDebug from 'debug';\nimport PromisePool from '@supercharge/promise-pool';\n\nimport type { FileLoader } from './loaders/fileloader';\n\nconst debug = createDebug('concerto:FileDownloader');\n\ntype ExternalImportMap = Record<string, string>;\ntype DownloadJob<TFile> = {\n downloadedUris: Set<string>;\n url: string;\n options: RequestInit;\n};\n\nfunction flatten<T>(arr: T[][]): T[];\nfunction flatten<T>(arr: Array<T[] | undefined>): Array<T | undefined>;\nfunction flatten<T>(arr: Array<T[] | undefined>): Array<T | undefined> {\n return ([] as Array<T | undefined>).concat(...arr);\n}\nconst filterUndefined = <T>(arr: Array<T | undefined | null>): T[] => arr.filter((value): value is T => Boolean(value));\n\n// Used as the PromisePool error handler for both the outer pool (whose items are\n// DownloadJob objects) and the inner recursive pool (whose items are plain URI\n// strings), hence the union.\nconst handleJobError = async (error: unknown, job: DownloadJob<unknown> | string): Promise<never> => {\n const errLike = error as { response?: { status?: number }; code?: string };\n const badHttpResponse = errLike.response && errLike.response.status && errLike.response.status !== 200;\n const dnsFailure = errLike.code && errLike.code === 'ENOTFOUND';\n // undefined for the inner pool's string jobs, as it has always been\n const jobUrl = (job as DownloadJob<unknown>).url;\n if(badHttpResponse || dnsFailure){\n const err = new Error(`Unable to download external model dependency '${jobUrl}'`);\n (err as { code?: string }).code = 'MISSING_DEPENDENCY';\n throw err;\n }\n throw new Error('Failed to load model file. Job: ' + jobUrl + ' Details: ' + error);\n};\n\n/**\n * Downloads the transitive closure of a set of model files.\n *\n * The files handed in to start the walk are not necessarily the same type as the files\n * the loader produces: a caller may seed the walk with model files it has already parsed\n * into its own representation, while everything downloaded from a URI is whatever the\n * bound FileLoader returns. TSeed is the former, TFile the latter, and both are only ever\n * inspected through getExternalImports. TSeed defaults to TFile for the common case where\n * a caller seeds the walk with files of the same type the loader produces.\n * @memberof module:concerto-core\n */\nclass FileDownloader<TFile = unknown, TSeed = TFile> {\n public fileLoader: FileLoader<TFile>;\n public getExternalImports: (file: TFile | TSeed) => ExternalImportMap;\n public concurrency: number;\n\n /**\n * Create a FileDownloader and bind to a FileLoader.\n * @param fileLoader - the loader to use to download model files\n * @param getExternalImports - a function taking a file and returning new files\n * @param concurrency - the number of model files to download concurrently\n */\n constructor(fileLoader: FileLoader<TFile>, getExternalImports: (file: TFile | TSeed) => ExternalImportMap, concurrency = 10) {\n this.fileLoader = fileLoader;\n this.concurrency = concurrency;\n this.getExternalImports = getExternalImports;\n }\n\n /**\n * Download all external dependencies for an array of model files\n * @param files - the model files to start the walk from\n * @param options - Options object passed to FileLoaders\n * @return a promise that resolves to Files[] for the external model files\n */\n downloadExternalDependencies(files: TSeed[], options: RequestInit = {} as RequestInit): Promise<TFile[]> {\n const method = 'downloadExternalDependencies';\n debug(method);\n\n const downloadedUris = new Set<string>();\n\n const jobs: Array<DownloadJob<TFile>> = flatten(files.map(file => {\n const externalImports = this.getExternalImports(file);\n return Object.keys(externalImports).map(importDeclaration => ({\n downloadedUris: downloadedUris,\n url: externalImports[importDeclaration],\n options: options\n }));\n }));\n\n return PromisePool\n .withConcurrency(this.concurrency)\n .for(jobs)\n .handleError(handleJobError)\n .process((x: DownloadJob<TFile>) => this.runJob(x, this.fileLoader))\n .then(({ results }) => filterUndefined(flatten(results)));\n }\n\n /**\n * Execute a Job\n * @param job - the job to execute\n * @param fileLoader - the loader to use to download model files.\n * @return a promise to the job results\n */\n runJob(job: DownloadJob<TFile>, fileLoader: FileLoader<TFile>): Promise<TFile[]> {\n const downloadedUris = job.downloadedUris;\n const options = job.options;\n const url = job.url;\n\n // cache the URI, so we don't download it again\n downloadedUris.add(url);\n\n debug('runJob', 'Loading', url);\n return fileLoader.load(url, options).\n then(async (file: TFile) => {\n debug('runJob', 'Loaded', url, );\n\n // get the external imports\n const externalImports = this.getExternalImports(file);\n const importedUris = Array.from(\n new Set(\n Object.keys(externalImports)\n .map((importDeclaration) => externalImports[importDeclaration])\n )\n );\n debug('runJob', 'importedUris', importedUris);\n\n const externalImportsFiles = await PromisePool\n .withConcurrency(this.concurrency)\n .for(importedUris)\n .handleError(handleJobError)\n .process((uri: string) => {\n if (!downloadedUris.has(uri)) {\n // recurse and add a new job for the referenced URI\n return this.runJob({\n options: options,\n url: uri,\n downloadedUris: downloadedUris\n }, fileLoader);\n }\n return undefined;\n })\n .then(({ results }) => filterUndefined(flatten(results)));\n\n return externalImportsFiles.concat([file]);\n });\n }\n}\n\nexport { FileDownloader };\nexport default FileDownloader;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["PromisePool", "createDebug", "PromisePool"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CONCERTO_DEPRECATION_001,
|
|
3
|
+
CONCERTO_DEPRECATION_002,
|
|
4
|
+
DEFAULT_BASE_EXCEPTION,
|
|
5
|
+
DEFAULT_VALIDATOR_EXCEPTION,
|
|
6
|
+
DEPRECATION_WARNING,
|
|
7
|
+
REGEX_VALIDATOR_EXCEPTION,
|
|
8
|
+
TYPE_NOT_FOUND_EXCEPTION
|
|
9
|
+
} from "./chunk-NAP47VIV.mjs";
|
|
10
|
+
import "./chunk-NSJTBLWA.mjs";
|
|
11
|
+
export {
|
|
12
|
+
CONCERTO_DEPRECATION_001,
|
|
13
|
+
CONCERTO_DEPRECATION_002,
|
|
14
|
+
DEFAULT_BASE_EXCEPTION,
|
|
15
|
+
DEFAULT_VALIDATOR_EXCEPTION,
|
|
16
|
+
DEPRECATION_WARNING,
|
|
17
|
+
REGEX_VALIDATOR_EXCEPTION,
|
|
18
|
+
TYPE_NOT_FOUND_EXCEPTION
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=errorcodes.mjs.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FileDownloader,
|
|
3
|
+
filedownloader_default
|
|
4
|
+
} from "./chunk-YURYZDD2.mjs";
|
|
5
|
+
import "./chunk-7LYWQ57N.mjs";
|
|
6
|
+
import "./chunk-NSJTBLWA.mjs";
|
|
7
|
+
export {
|
|
8
|
+
FileDownloader,
|
|
9
|
+
filedownloader_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=filedownloader.mjs.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FileWriter,
|
|
3
|
+
filewriter_default
|
|
4
|
+
} from "./chunk-3XGAUT4O.mjs";
|
|
5
|
+
import "./chunk-DOL2YKDZ.mjs";
|
|
6
|
+
import "./chunk-NQ5PDAAD.mjs";
|
|
7
|
+
import "./chunk-NSJTBLWA.mjs";
|
|
8
|
+
export {
|
|
9
|
+
FileWriter,
|
|
10
|
+
filewriter_default as default
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=filewriter.mjs.map
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import {
|
|
2
|
+
null_default
|
|
3
|
+
} from "./chunk-4X5DBZDM.mjs";
|
|
4
|
+
import {
|
|
5
|
+
typedstack_default
|
|
6
|
+
} from "./chunk-6SOOHVQB.mjs";
|
|
7
|
+
import {
|
|
8
|
+
warning_exports
|
|
9
|
+
} from "./chunk-S52XDDAF.mjs";
|
|
10
|
+
import {
|
|
11
|
+
label_exports
|
|
12
|
+
} from "./chunk-WCGRUR5U.mjs";
|
|
13
|
+
import {
|
|
14
|
+
defaultfileloader_default
|
|
15
|
+
} from "./chunk-N42BHUZ6.mjs";
|
|
16
|
+
import {
|
|
17
|
+
compositefileloader_default
|
|
18
|
+
} from "./chunk-BDMF4RRF.mjs";
|
|
19
|
+
import {
|
|
20
|
+
githubfileloader_default
|
|
21
|
+
} from "./chunk-SU6SG5PJ.mjs";
|
|
22
|
+
import {
|
|
23
|
+
httpfileloader_default
|
|
24
|
+
} from "./chunk-EGOFDABS.mjs";
|
|
25
|
+
import {
|
|
26
|
+
logger_default
|
|
27
|
+
} from "./chunk-LZTTRWN3.mjs";
|
|
28
|
+
import {
|
|
29
|
+
modelwriter_exports
|
|
30
|
+
} from "./chunk-BSBOEFWN.mjs";
|
|
31
|
+
import {
|
|
32
|
+
basefileexception_default
|
|
33
|
+
} from "./chunk-YJQCJTA7.mjs";
|
|
34
|
+
import {
|
|
35
|
+
baseexception_default
|
|
36
|
+
} from "./chunk-R6CSKES3.mjs";
|
|
37
|
+
import {
|
|
38
|
+
errorcodes_exports
|
|
39
|
+
} from "./chunk-NAP47VIV.mjs";
|
|
40
|
+
import {
|
|
41
|
+
filedownloader_default
|
|
42
|
+
} from "./chunk-YURYZDD2.mjs";
|
|
43
|
+
import "./chunk-7LYWQ57N.mjs";
|
|
44
|
+
import {
|
|
45
|
+
filewriter_default
|
|
46
|
+
} from "./chunk-3XGAUT4O.mjs";
|
|
47
|
+
import "./chunk-DOL2YKDZ.mjs";
|
|
48
|
+
import {
|
|
49
|
+
identifiers_exports
|
|
50
|
+
} from "./chunk-MCUSZIV7.mjs";
|
|
51
|
+
import {
|
|
52
|
+
inmemorywriter_default
|
|
53
|
+
} from "./chunk-7DYPHXUR.mjs";
|
|
54
|
+
import {
|
|
55
|
+
writer_default
|
|
56
|
+
} from "./chunk-NQ5PDAAD.mjs";
|
|
57
|
+
import {
|
|
58
|
+
init_browser_process_shim
|
|
59
|
+
} from "./chunk-NSJTBLWA.mjs";
|
|
60
|
+
|
|
61
|
+
// src/index.ts
|
|
62
|
+
init_browser_process_shim();
|
|
63
|
+
export {
|
|
64
|
+
baseexception_default as BaseException,
|
|
65
|
+
basefileexception_default as BaseFileException,
|
|
66
|
+
compositefileloader_default as CompositeFileLoader,
|
|
67
|
+
defaultfileloader_default as DefaultFileLoader,
|
|
68
|
+
errorcodes_exports as ErrorCodes,
|
|
69
|
+
filedownloader_default as FileDownloader,
|
|
70
|
+
filewriter_default as FileWriter,
|
|
71
|
+
githubfileloader_default as GitHubFileLoader,
|
|
72
|
+
httpfileloader_default as HTTPFileLoader,
|
|
73
|
+
identifiers_exports as Identifiers,
|
|
74
|
+
inmemorywriter_default as InMemoryWriter,
|
|
75
|
+
label_exports as Label,
|
|
76
|
+
logger_default as Logger,
|
|
77
|
+
modelwriter_exports as ModelWriter,
|
|
78
|
+
null_default as NullUtil,
|
|
79
|
+
typedstack_default as TypedStack,
|
|
80
|
+
warning_exports as Warning,
|
|
81
|
+
writer_default as Writer
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=index.mjs.map
|