@harperfast/harper 5.0.0-beta.6 → 5.0.0-beta.8
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/bin/cliOperations.js +3 -3
- package/bin/harper.js +1 -1
- package/bin/run.js +2 -2
- package/components/Application.ts +6 -3
- package/components/ApplicationScope.ts +1 -0
- package/components/componentLoader.ts +23 -12
- package/components/operations.js +13 -13
- package/components/operationsValidation.js +3 -3
- package/config/configUtils.js +20 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
- package/dist/bin/cliOperations.js +3 -3
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/harper.d.ts +1 -1
- package/dist/bin/harper.js +1 -1
- package/dist/bin/run.js +2 -2
- package/dist/bin/run.js.map +1 -1
- package/dist/components/Application.js +7 -2
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +1 -0
- package/dist/components/ApplicationScope.js +1 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/componentLoader.js +21 -10
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/operations.js +13 -13
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.js +3 -3
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/config/configUtils.d.ts +6 -0
- package/dist/config/configUtils.js +23 -3
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +2 -1
- package/dist/resources/DatabaseTransaction.js +71 -35
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/Resource.d.ts +2 -0
- package/dist/resources/Resource.js +11 -4
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +1 -0
- package/dist/resources/RocksTransactionLogStore.js +8 -1
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -6
- package/dist/resources/Table.js +15 -10
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +6 -0
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/databases.js +3 -2
- package/dist/resources/databases.js.map +1 -1
- package/dist/security/jsLoader.js +223 -116
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/server/REST.js +30 -14
- package/dist/server/REST.js.map +1 -1
- package/dist/server/http.d.ts +1 -0
- package/dist/server/http.js +6 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +1 -1
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +1 -0
- package/dist/utility/hdbTerms.js +1 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/logging/harper_logger.js +24 -1
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/readLog.js +2 -2
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/npmUtilities.js +2 -2
- package/dist/utility/npmUtilities.js.map +1 -1
- package/dist/validation/configValidator.js +18 -8
- package/dist/validation/configValidator.js.map +1 -1
- package/dist/validation/readLogValidator.js +2 -2
- package/dist/validation/readLogValidator.js.map +1 -1
- package/package.json +5 -5
- package/resources/DatabaseTransaction.ts +67 -32
- package/resources/Resource.ts +17 -6
- package/resources/RocksTransactionLogStore.ts +8 -1
- package/resources/Table.ts +29 -10
- package/resources/analytics/write.ts +6 -0
- package/resources/databases.ts +3 -2
- package/security/jsLoader.ts +258 -129
- package/server/REST.ts +32 -13
- package/server/http.ts +6 -3
- package/server/itc/serverHandlers.js +1 -1
- package/static/defaultConfig.yaml +1 -1
- package/studio/web/assets/{index-BckVDix4.js → index-CXQsBaYq.js} +5 -5
- package/studio/web/assets/{index-BckVDix4.js.map → index-CXQsBaYq.js.map} +1 -1
- package/studio/web/assets/{index.lazy-iG1_8dzm.js → index.lazy-C3Ejfvna.js} +2 -2
- package/studio/web/assets/{index.lazy-iG1_8dzm.js.map → index.lazy-C3Ejfvna.js.map} +1 -1
- package/studio/web/assets/{profile-CzjslUXv.js → profile-BbbbWJCN.js} +2 -2
- package/studio/web/assets/{profile-CzjslUXv.js.map → profile-BbbbWJCN.js.map} +1 -1
- package/studio/web/assets/{status-BP4TQJDR.js → status-CFe85l8C.js} +2 -2
- package/studio/web/assets/{status-BP4TQJDR.js.map → status-CFe85l8C.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/utility/hdbTerms.ts +1 -0
- package/utility/logging/harper_logger.js +22 -1
- package/utility/logging/readLog.js +2 -2
- package/utility/npmUtilities.js +2 -2
- package/validation/configValidator.js +16 -8
- package/validation/readLogValidator.js +2 -2
|
@@ -101,6 +101,9 @@ async function scopedImport(filePath, scope) {
|
|
|
101
101
|
}
|
|
102
102
|
overridableProperty(Promise.prototype, 'then');
|
|
103
103
|
overridableProperty(Date, 'now');
|
|
104
|
+
for (let name of ['get', 'set', 'has', 'delete', 'clear', 'forEach', 'entries', 'keys', 'values']) {
|
|
105
|
+
overridableProperty(Map.prototype, name);
|
|
106
|
+
}
|
|
104
107
|
for (let Intrinsic of [
|
|
105
108
|
Object,
|
|
106
109
|
Array,
|
|
@@ -169,12 +172,13 @@ async function scopedImport(filePath, scope) {
|
|
|
169
172
|
}
|
|
170
173
|
let amaro;
|
|
171
174
|
/**
|
|
172
|
-
* Strip TypeScript types using the amaro library (what Node.js uses internally)
|
|
173
|
-
* Falls back to regex-based stripping if amaro is not available
|
|
175
|
+
* Strip TypeScript types synchronously using the amaro library (what Node.js uses internally)
|
|
174
176
|
*/
|
|
175
|
-
|
|
177
|
+
function stripTypeScriptTypes(source) {
|
|
176
178
|
// Use amaro - the library that Node.js uses internally for type stripping
|
|
177
|
-
|
|
179
|
+
if (!amaro) {
|
|
180
|
+
amaro = require('amaro');
|
|
181
|
+
}
|
|
178
182
|
return amaro.transformSync(source, { mode: 'strip-only' }).code;
|
|
179
183
|
}
|
|
180
184
|
/**
|
|
@@ -193,11 +197,21 @@ function parseJsonModule(source, url) {
|
|
|
193
197
|
* Load a module using Node's vm.Module API with (not really secure) sandboxing
|
|
194
198
|
*/
|
|
195
199
|
async function loadModuleWithVM(moduleUrl, scope) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
200
|
+
// we want to retain the same module caches across any loading with the application scope
|
|
201
|
+
let moduleCaches = scope.moduleCache;
|
|
202
|
+
if (!moduleCaches) {
|
|
203
|
+
// if they haven't been initialized, do so now
|
|
204
|
+
const contextObject = getGlobalObject(scope, true);
|
|
205
|
+
moduleCaches = scope.moduleCache = {
|
|
206
|
+
moduleCache: new Map(),
|
|
207
|
+
linkingPromises: new Map(),
|
|
208
|
+
cjsCache: new Map(),
|
|
209
|
+
// Create a secure context with limited globals
|
|
210
|
+
contextObject,
|
|
211
|
+
context: (0, node_vm_1.createContext)(contextObject),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
const { moduleCache, linkingPromises, cjsCache, contextObject, context } = moduleCaches;
|
|
201
215
|
/**
|
|
202
216
|
* Resolve module specifier to absolute URL
|
|
203
217
|
*/
|
|
@@ -210,6 +224,9 @@ async function loadModuleWithVM(moduleUrl, scope) {
|
|
|
210
224
|
// block harper/* for now (reserving for potential future use)
|
|
211
225
|
throw new Error(`Module ${specifier} is not allowed, may only access the 'harper' module`);
|
|
212
226
|
}
|
|
227
|
+
if (parts[0] === 'file:') {
|
|
228
|
+
return specifier;
|
|
229
|
+
}
|
|
213
230
|
const resolved = (0, node_module_1.createRequire)(referrer).resolve(specifier);
|
|
214
231
|
if ((0, node_path_1.isAbsolute)(resolved)) {
|
|
215
232
|
return (0, node_url_1.pathToFileURL)(resolved).toString();
|
|
@@ -220,7 +237,14 @@ async function loadModuleWithVM(moduleUrl, scope) {
|
|
|
220
237
|
* Load a CommonJS module in our private context
|
|
221
238
|
*/
|
|
222
239
|
function loadCJS(url, source) {
|
|
240
|
+
// Check cache first to handle circular dependencies
|
|
241
|
+
if (cjsCache.has(url)) {
|
|
242
|
+
return cjsCache.get(url);
|
|
243
|
+
}
|
|
244
|
+
// Create module object and cache it immediately (before execution)
|
|
245
|
+
// This allows circular dependencies to get a reference to the incomplete module
|
|
223
246
|
const cjsModule = { exports: {} };
|
|
247
|
+
cjsCache.set(url, cjsModule);
|
|
224
248
|
if (url.endsWith('.json')) {
|
|
225
249
|
cjsModule.exports = parseJsonModule(source, url);
|
|
226
250
|
return cjsModule;
|
|
@@ -246,7 +270,7 @@ async function loadModuleWithVM(moduleUrl, scope) {
|
|
|
246
270
|
filename: url,
|
|
247
271
|
async importModuleDynamically(specifier, script) {
|
|
248
272
|
const resolvedUrl = resolveModule(specifier, script.sourceURL);
|
|
249
|
-
const useContainment = specifier.startsWith('.') || scope.dependencyContainment;
|
|
273
|
+
const useContainment = specifier.startsWith('.') || scope.dependencyContainment !== false;
|
|
250
274
|
const dynamicModule = await loadModuleWithCache(resolvedUrl, useContainment);
|
|
251
275
|
return dynamicModule;
|
|
252
276
|
},
|
|
@@ -256,31 +280,82 @@ async function loadModuleWithVM(moduleUrl, scope) {
|
|
|
256
280
|
}
|
|
257
281
|
function loadCJSModule(url, source, usePrivateGlobal) {
|
|
258
282
|
const cjsModule = usePrivateGlobal ? loadCJS(url, source) : { exports: require(url) };
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
this.setExport(
|
|
283
|
+
let exports = cjsModule.exports;
|
|
284
|
+
if (exports.default === undefined) {
|
|
285
|
+
// provide the default export for compatibility
|
|
286
|
+
exports = { default: exports, ...exports };
|
|
287
|
+
}
|
|
288
|
+
const exportNames = Object.keys(exports);
|
|
289
|
+
const synModule = new node_vm_1.SyntheticModule(exportNames, function () {
|
|
290
|
+
for (const key of exportNames) {
|
|
291
|
+
this.setExport(key, exports[key]);
|
|
268
292
|
}
|
|
269
293
|
}, { identifier: url, context });
|
|
270
294
|
// Don't cache here - let getOrCreateModule handle caching
|
|
271
295
|
return synModule;
|
|
272
296
|
}
|
|
273
297
|
/**
|
|
274
|
-
*
|
|
298
|
+
* Check if a package (or any of its dependencies) depends on harper
|
|
299
|
+
* Expects a file URL like: file:///path/to/node_modules/package-name/dist/index.js
|
|
275
300
|
*/
|
|
276
|
-
|
|
301
|
+
function packageDependsOnHarper(fileUrl) {
|
|
302
|
+
try {
|
|
303
|
+
// Convert file:// URL to path
|
|
304
|
+
const filePath = (0, node_url_1.fileURLToPath)(fileUrl);
|
|
305
|
+
// Find the node_modules directory and package name
|
|
306
|
+
// Example: /path/to/node_modules/package-name/dist/index.js
|
|
307
|
+
// or: /path/to/node_modules/@scope/package-name/dist/index.js
|
|
308
|
+
const nodeModulesMarker = '/node_modules/';
|
|
309
|
+
const nodeModulesIndex = filePath.lastIndexOf(nodeModulesMarker);
|
|
310
|
+
if (nodeModulesIndex === -1)
|
|
311
|
+
return false;
|
|
312
|
+
// Get the part after /node_modules/
|
|
313
|
+
const afterNodeModules = filePath.substring(nodeModulesIndex + nodeModulesMarker.length);
|
|
314
|
+
const parts = afterNodeModules.split('/');
|
|
315
|
+
// Handle scoped packages (@scope/package-name) vs regular packages (package-name)
|
|
316
|
+
const beforeNodeModules = filePath.substring(0, nodeModulesIndex);
|
|
317
|
+
const packageRoot = parts[0].startsWith('@')
|
|
318
|
+
? (0, node_path_2.join)(beforeNodeModules, 'node_modules', parts[0], parts[1])
|
|
319
|
+
: (0, node_path_2.join)(beforeNodeModules, 'node_modules', parts[0]);
|
|
320
|
+
// Read package.json from the package root
|
|
321
|
+
const packageJsonPath = (0, node_path_2.join)(packageRoot, 'package.json');
|
|
322
|
+
const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, 'utf-8'));
|
|
323
|
+
const deps = {
|
|
324
|
+
...packageJson.dependencies,
|
|
325
|
+
...packageJson.devDependencies,
|
|
326
|
+
...packageJson.peerDependencies,
|
|
327
|
+
};
|
|
328
|
+
// Check if harper is a direct dependency
|
|
329
|
+
return Object.keys(deps).some((dep) => HARPER_MODULE_IDS.has(dep));
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Linker function for module resolution during instantiation.
|
|
337
|
+
* This is synchronous because Node's module.link() requires the linker
|
|
338
|
+
* to return modules synchronously.
|
|
339
|
+
*/
|
|
340
|
+
function linker(specifier, referencingModule) {
|
|
277
341
|
const resolvedUrl = resolveModule(specifier, referencingModule.identifier);
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
342
|
+
// Determine if we should use VM containment for this module
|
|
343
|
+
let useContainment = specifier.startsWith('.'); // Always contain relative imports
|
|
344
|
+
if (!useContainment && scope.dependencyContainment !== false) {
|
|
345
|
+
// For npm packages, check if they depend on harper
|
|
346
|
+
if (resolvedUrl.startsWith('file://') && resolvedUrl.includes('node_modules')) {
|
|
347
|
+
useContainment = packageDependsOnHarper(resolvedUrl);
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
// Non-file URLs (bare specifiers) - use default behavior
|
|
351
|
+
useContainment = scope.dependencyContainment === true;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
// Return the module
|
|
355
|
+
return getOrCreateModule(resolvedUrl, useContainment);
|
|
281
356
|
}
|
|
282
|
-
|
|
283
|
-
// Check
|
|
357
|
+
function getOrCreateModule(url, usePrivateGlobal) {
|
|
358
|
+
// Check if module is already created
|
|
284
359
|
if (moduleCache.has(url)) {
|
|
285
360
|
return moduleCache.get(url);
|
|
286
361
|
}
|
|
@@ -294,8 +369,15 @@ async function loadModuleWithVM(moduleUrl, scope) {
|
|
|
294
369
|
// Only link/evaluate once per module
|
|
295
370
|
if (!linkingPromises.has(url)) {
|
|
296
371
|
const linkingPromise = (async () => {
|
|
297
|
-
|
|
298
|
-
|
|
372
|
+
// Check module status - only link if it's 'unlinked'
|
|
373
|
+
// Status can be: 'unlinked', 'linking', 'linked', 'evaluating', 'evaluated'
|
|
374
|
+
if (module.status === 'unlinked') {
|
|
375
|
+
await module.link(linker);
|
|
376
|
+
}
|
|
377
|
+
// Only evaluate if not already evaluated
|
|
378
|
+
if (module.status === 'linked') {
|
|
379
|
+
await module.evaluate();
|
|
380
|
+
}
|
|
299
381
|
})();
|
|
300
382
|
linkingPromises.set(url, linkingPromise);
|
|
301
383
|
}
|
|
@@ -304,91 +386,85 @@ async function loadModuleWithVM(moduleUrl, scope) {
|
|
|
304
386
|
return module;
|
|
305
387
|
}
|
|
306
388
|
/**
|
|
307
|
-
* Create a
|
|
389
|
+
* Create a SyntheticModule from exported object
|
|
390
|
+
*/
|
|
391
|
+
function createSyntheticModule(url, exportedObject) {
|
|
392
|
+
const exportNames = Object.keys(exportedObject);
|
|
393
|
+
return new node_vm_1.SyntheticModule(exportNames, function () {
|
|
394
|
+
for (const key of exportNames) {
|
|
395
|
+
this.setExport(key, exportedObject[key]);
|
|
396
|
+
}
|
|
397
|
+
}, { identifier: url, context });
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Normalize imported module to ensure it has proper exports including default
|
|
308
401
|
*/
|
|
309
|
-
|
|
310
|
-
|
|
402
|
+
function normalizeImportedModule(importedModule) {
|
|
403
|
+
const cjsModule = importedModule['module.exports'];
|
|
404
|
+
if (cjsModule) {
|
|
405
|
+
// back-compat import
|
|
406
|
+
importedModule = importedModule.default ? { default: importedModule.default, ...cjsModule } : cjsModule;
|
|
407
|
+
}
|
|
408
|
+
// Ensure there's a default export for ESM imports that expect it
|
|
409
|
+
if (!importedModule.default) {
|
|
410
|
+
importedModule = { default: importedModule, ...importedModule };
|
|
411
|
+
}
|
|
412
|
+
return importedModule;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Create a SourceTextModule or SyntheticModule from source code
|
|
416
|
+
*/
|
|
417
|
+
function createModuleFromSource(url, source, usePrivateGlobal) {
|
|
418
|
+
// Handle JSON modules
|
|
419
|
+
if (url.endsWith('.json')) {
|
|
420
|
+
const jsonData = parseJsonModule(source, url);
|
|
421
|
+
return new node_vm_1.SyntheticModule(['default'], function () {
|
|
422
|
+
this.setExport('default', jsonData);
|
|
423
|
+
}, { identifier: url, context });
|
|
424
|
+
}
|
|
425
|
+
// Strip TypeScript types if this is a .ts file
|
|
426
|
+
if (url.endsWith('.ts') || url.endsWith('.tsx')) {
|
|
427
|
+
source = stripTypeScriptTypes(source);
|
|
428
|
+
}
|
|
429
|
+
// Try CJS first since it will fail fast with clear syntax errors on ESM syntax
|
|
430
|
+
try {
|
|
431
|
+
return loadCJSModule(url, source, usePrivateGlobal);
|
|
432
|
+
}
|
|
433
|
+
catch {
|
|
434
|
+
// If CJS loading fails (likely due to ESM syntax like import/export), try ESM
|
|
435
|
+
return new node_vm_1.SourceTextModule(source, {
|
|
436
|
+
identifier: url,
|
|
437
|
+
context,
|
|
438
|
+
initializeImportMeta(meta) {
|
|
439
|
+
meta.url = url;
|
|
440
|
+
},
|
|
441
|
+
importModuleDynamically(specifier) {
|
|
442
|
+
const resolvedUrl = resolveModule(specifier, url);
|
|
443
|
+
const useContainment = specifier.startsWith('.') || scope.dependencyContainment !== false;
|
|
444
|
+
return loadModuleWithCache(resolvedUrl, useContainment);
|
|
445
|
+
},
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Create a module from URL without linking or evaluating (async version for initial load)
|
|
451
|
+
*/
|
|
452
|
+
function createModule(url, usePrivateGlobal) {
|
|
311
453
|
// Handle special built-in modules
|
|
312
454
|
if (url === 'harper') {
|
|
313
|
-
|
|
314
|
-
module = new node_vm_1.SyntheticModule(Object.keys(harperExports), function () {
|
|
315
|
-
for (let key in harperExports) {
|
|
316
|
-
this.setExport(key, harperExports[key]);
|
|
317
|
-
}
|
|
318
|
-
}, { identifier: url, context });
|
|
455
|
+
return createSyntheticModule(url, getHarperExports(scope));
|
|
319
456
|
}
|
|
320
|
-
|
|
457
|
+
if (url.startsWith('file://') && usePrivateGlobal) {
|
|
321
458
|
checkAllowedModulePath(url, scope.verifyPath);
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
// JSON imports only support default exports per the ESM spec.
|
|
325
|
-
if (url.endsWith('.json')) {
|
|
326
|
-
const jsonData = parseJsonModule(source, url);
|
|
327
|
-
module = new node_vm_1.SyntheticModule(['default'], function () {
|
|
328
|
-
this.setExport('default', jsonData);
|
|
329
|
-
}, { identifier: url, context });
|
|
330
|
-
}
|
|
331
|
-
else {
|
|
332
|
-
// Strip TypeScript types if this is a .ts file
|
|
333
|
-
if (url.endsWith('.ts') || url.endsWith('.tsx')) {
|
|
334
|
-
source = await stripTypeScriptTypes(source);
|
|
335
|
-
}
|
|
336
|
-
// Try CJS first since it will fail fast with clear syntax errors on ESM syntax
|
|
337
|
-
try {
|
|
338
|
-
module = loadCJSModule(url, source, usePrivateGlobal);
|
|
339
|
-
}
|
|
340
|
-
catch {
|
|
341
|
-
// If CJS loading fails (likely due to ESM syntax like import/export), try ESM
|
|
342
|
-
try {
|
|
343
|
-
module = new node_vm_1.SourceTextModule(source, {
|
|
344
|
-
identifier: url,
|
|
345
|
-
context,
|
|
346
|
-
initializeImportMeta(meta) {
|
|
347
|
-
meta.url = url;
|
|
348
|
-
},
|
|
349
|
-
async importModuleDynamically(specifier) {
|
|
350
|
-
const resolvedUrl = resolveModule(specifier, url);
|
|
351
|
-
const dynamicModule = await loadModuleWithCache(resolvedUrl, true);
|
|
352
|
-
return dynamicModule;
|
|
353
|
-
},
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
catch (esmErr) {
|
|
357
|
-
// Both failed - throw the ESM error as it's likely more relevant
|
|
358
|
-
throw esmErr;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}
|
|
459
|
+
const source = (0, node_fs_1.readFileSync)(new URL(url), { encoding: 'utf-8' });
|
|
460
|
+
return createModuleFromSource(url, source, usePrivateGlobal);
|
|
362
461
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
try {
|
|
368
|
-
const cjsExports = replacedModule ?? require(url);
|
|
369
|
-
// It's a CJS module - expose all properties as named exports
|
|
370
|
-
const exportNames = Object.keys(cjsExports);
|
|
371
|
-
module = new node_vm_1.SyntheticModule(exportNames.length > 0 ? [...exportNames, 'default'] : ['default'], function () {
|
|
372
|
-
if (exportNames.length > 0) {
|
|
373
|
-
for (const key of exportNames) {
|
|
374
|
-
this.setExport(key, cjsExports[key]);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
this.setExport('default', cjsExports);
|
|
378
|
-
}, { identifier: url, context });
|
|
379
|
-
}
|
|
380
|
-
catch {
|
|
381
|
-
// Fall back to dynamic import for ESM packages
|
|
382
|
-
const importedModule = await import(__rewriteRelativeImportExtension(url));
|
|
383
|
-
const exportNames = Object.keys(importedModule);
|
|
384
|
-
module = new node_vm_1.SyntheticModule(exportNames, function () {
|
|
385
|
-
for (const key of exportNames) {
|
|
386
|
-
this.setExport(key, importedModule[key]);
|
|
387
|
-
}
|
|
388
|
-
}, { identifier: url, context });
|
|
389
|
-
}
|
|
462
|
+
// For Node.js built-in modules (node:) and npm packages without dependency containment
|
|
463
|
+
const replacedModule = checkAllowedModulePath(url, scope.verifyPath);
|
|
464
|
+
if (replacedModule) {
|
|
465
|
+
return createSyntheticModule(url, normalizeImportedModule(replacedModule));
|
|
390
466
|
}
|
|
391
|
-
return
|
|
467
|
+
return import(__rewriteRelativeImportExtension(url)).then((importedModule) => createSyntheticModule(url, normalizeImportedModule(importedModule)));
|
|
392
468
|
}
|
|
393
469
|
// Load the entry module
|
|
394
470
|
const entryModule = await loadModuleWithCache(moduleUrl, true);
|
|
@@ -430,8 +506,8 @@ async function getCompartment(scope, globals) {
|
|
|
430
506
|
};
|
|
431
507
|
}
|
|
432
508
|
else if (moduleSpecifier.startsWith('file:') && !moduleSpecifier.includes('node_modules')) {
|
|
433
|
-
|
|
434
|
-
// Handle JSON files in
|
|
509
|
+
let moduleText = await (0, promises_1.readFile)(new URL(moduleSpecifier), { encoding: 'utf-8' });
|
|
510
|
+
// Handle JSON files in compartment mode the same way as in VM mode
|
|
435
511
|
if (moduleSpecifier.endsWith('.json')) {
|
|
436
512
|
const jsonData = parseJsonModule(moduleText, moduleSpecifier);
|
|
437
513
|
return {
|
|
@@ -442,6 +518,10 @@ async function getCompartment(scope, globals) {
|
|
|
442
518
|
},
|
|
443
519
|
};
|
|
444
520
|
}
|
|
521
|
+
// Strip TypeScript types if this is a .ts file
|
|
522
|
+
if (moduleSpecifier.endsWith('.ts') || moduleSpecifier.endsWith('.tsx')) {
|
|
523
|
+
moduleText = stripTypeScriptTypes(moduleText);
|
|
524
|
+
}
|
|
445
525
|
return new StaticModuleRecord(moduleText, moduleSpecifier);
|
|
446
526
|
}
|
|
447
527
|
else {
|
|
@@ -475,6 +555,8 @@ function secureOnlyFetch(resource, options) {
|
|
|
475
555
|
throw new Error('Only https is allowed in fetch');
|
|
476
556
|
return fetch(resource, options);
|
|
477
557
|
}
|
|
558
|
+
// These globals need to match the literals produced in the VM context
|
|
559
|
+
const contextualizedJSGlobals = ['Object', 'Array', 'Function', 'globalThis'];
|
|
478
560
|
let defaultJSGlobalNames;
|
|
479
561
|
// get the global variable names that are intrinsically present in a VM context (so we don't override them)
|
|
480
562
|
function getDefaultJSGlobalNames() {
|
|
@@ -486,12 +568,13 @@ function getDefaultJSGlobalNames() {
|
|
|
486
568
|
/**
|
|
487
569
|
* Get the set of global variables that should be available to modules that run in scoped compartments/contexts.
|
|
488
570
|
*/
|
|
489
|
-
function getGlobalObject(scope) {
|
|
571
|
+
function getGlobalObject(scope, copyIntrinsics = false) {
|
|
490
572
|
const appGlobal = {};
|
|
491
573
|
// create the new global object, assigning all the global variables from this global
|
|
492
574
|
// except those that will be natural intrinsics of the new VM
|
|
575
|
+
const globalsToExclude = copyIntrinsics ? contextualizedJSGlobals : getDefaultJSGlobalNames();
|
|
493
576
|
for (let name of Object.getOwnPropertyNames(global)) {
|
|
494
|
-
if (
|
|
577
|
+
if (globalsToExclude.includes(name))
|
|
495
578
|
continue;
|
|
496
579
|
appGlobal[name] = global[name];
|
|
497
580
|
}
|
|
@@ -526,6 +609,25 @@ function getHarperExports(scope) {
|
|
|
526
609
|
authenticateUser: server.authenticateUser,
|
|
527
610
|
operation: server.operation,
|
|
528
611
|
contentTypes: contentTypes_ts_1.contentTypes,
|
|
612
|
+
Attribute: undefined,
|
|
613
|
+
Config: undefined,
|
|
614
|
+
ConfigValue: undefined,
|
|
615
|
+
Context: undefined,
|
|
616
|
+
FileAndURLPathConfig: undefined,
|
|
617
|
+
FilesOption: undefined,
|
|
618
|
+
FilesOptionObject: undefined,
|
|
619
|
+
IterableEventQueue: undefined,
|
|
620
|
+
Logger: undefined,
|
|
621
|
+
Query: undefined,
|
|
622
|
+
RecordObject: undefined,
|
|
623
|
+
RequestTargetOrId: undefined,
|
|
624
|
+
ResourceInterface: undefined,
|
|
625
|
+
Scope: undefined,
|
|
626
|
+
Session: undefined,
|
|
627
|
+
SourceContext: undefined,
|
|
628
|
+
SubscriptionRequest: undefined,
|
|
629
|
+
Table: undefined,
|
|
630
|
+
User: undefined,
|
|
529
631
|
};
|
|
530
632
|
}
|
|
531
633
|
const ALLOWED_NODE_BUILTIN_MODULES = env.get(hdbTerms_ts_1.CONFIG_PARAMS.APPLICATIONS_ALLOWEDBUILTINMODULES)
|
|
@@ -537,14 +639,19 @@ const ALLOWED_NODE_BUILTIN_MODULES = env.get(hdbTerms_ts_1.CONFIG_PARAMS.APPLICA
|
|
|
537
639
|
},
|
|
538
640
|
};
|
|
539
641
|
const ALLOWED_COMMANDS = new Set(env.get(hdbTerms_ts_1.CONFIG_PARAMS.APPLICATIONS_ALLOWEDSPAWNCOMMANDS) ?? []);
|
|
540
|
-
const
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
642
|
+
const child_processConstrained = {
|
|
643
|
+
exec: createSpawn(child_process.exec),
|
|
644
|
+
execFile: createSpawn(child_process.execFile),
|
|
645
|
+
fork: createSpawn(child_process.fork, true), // this is launching node, so deemed safe
|
|
646
|
+
spawn: createSpawn(child_process.spawn),
|
|
647
|
+
execSync: function () {
|
|
648
|
+
throw new Error('execSync is not allowed');
|
|
546
649
|
},
|
|
547
650
|
};
|
|
651
|
+
child_processConstrained.default = child_processConstrained;
|
|
652
|
+
const REPLACED_BUILTIN_MODULES = {
|
|
653
|
+
child_process: child_processConstrained,
|
|
654
|
+
};
|
|
548
655
|
/**
|
|
549
656
|
* Creates a ChildProcess-like object for an existing process
|
|
550
657
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsLoader.js","sourceRoot":"","sources":["../../security/jsLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsLoader.js","sourceRoot":"","sources":["../../security/jsLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,oCAoFC;AAuvBD,gEAEC;AAn3BD,0DAAoD;AACpD,gEAA0E;AAC1E,oEAA8D;AAC9D,4DAA8D;AAC9D,+CAA4C;AAC5C,yCAAgD;AAChD,uCAAwD;AACxD,qCAAyF;AAEzF,2FAAyD;AACzD,6CAA4C;AAC5C,+EAAiE;AACjE,kEAAoD;AACpD,wDAAuD;AACvD,6EAAuE;AAEvE,qCAA4G;AAC5G,yCAAiC;AACjC,6CAA2C;AAG3C,MAAM,qBAAqB,GAAa,GAAG,CAAC,GAAG,CAAC,2BAAa,CAAC,qBAAqB,CAAC,CAAC;AACrF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACjC,QAAQ;IACR,UAAU;IACV,aAAa;IACb,aAAa;IACb,oBAAoB;IACpB,wBAAwB;CACxB,CAAC,CAAC;AAEH,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,QAAsB,EAAE,KAAwB;IAClF,IAAI,CAAC,UAAU,IAAI,qBAAqB,IAAI,qBAAqB,KAAK,MAAM,EAAE,CAAC;QAC9E,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,qBAAqB,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B;YAC7C,QAAQ,CAAC;gBACR,YAAY,EAAE,QAAQ;gBACtB,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,QAAQ;gBACrB,aAAa,EAAE,MAAM;gBACrB,cAAc,EAAE,SAAS;aACzB,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,0BAA0B,EAAE,CAAC;YAC7B,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/D,IAAI,IAAI,KAAK,WAAW;oBAAE,SAAS;gBACnC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,mBAAmB,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/C,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACnG,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,IAAI,SAAS,IAAI;gBACrB,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,MAAM;gBACN,IAAI;gBACJ,GAAG;gBACH,GAAG;gBACH,OAAO;gBACP,OAAO;gBACP,IAAI;gBACJ,IAAI;gBACJ,OAAO;gBACP,OAAO;gBACP,iBAAiB;gBACjB,OAAO;gBACP,oBAAoB;aACpB,EAAE,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,QAAQ,YAAY,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5F,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,KAAK,EAAE,IAAI,CAAC;QACpC,IAAI,KAAK,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;YACzC,IAAI,eAAe,KAAK,aAAa,EAAE,CAAC;gBACvC,uBAAuB;gBACvB,iFAAiF;gBACjF,yDAAyD;gBACzD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,WAAW;oBAAE,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjE,OAAO,MAAM,CAAC,SAAS,CAAC;YACzB,CAAC;iBAAM,IAAI,0BAAgB,EAAE,CAAC;gBAC7B,0EAA0E;gBAC1E,OAAO,MAAM,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QACD,iFAAiF;QACjF,OAAO,MAAM,MAAM,kCAAC,SAAS,EAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,CAAC;YACJ,mEAAmE;YACnE,gEAAgE;YAChE,kEAAkE;YAClE,8CAA8C;YAC9C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACR,wCAAwC;QACzC,CAAC;QACD,MAAM,GAAG,CAAC;IACX,CAAC;AACF,CAAC;AAED,IAAI,KAAyC,CAAC;AAC9C;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAc;IAC3C,0EAA0E;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAc,EAAE,GAAW;IACnD,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;AACF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,KAAuB;IACzE,yFAAyF;IACzF,IAAI,YAAY,GAAG,KAAK,CAAC,WAMxB,CAAC;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,8CAA8C;QAC9C,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnD,YAAY,GAAG,KAAK,CAAC,WAAW,GAAG;YAClC,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,+CAA+C;YAC/C,aAAa;YACb,OAAO,EAAE,IAAA,uBAAa,EAAC,aAAa,CAAC;SACrC,CAAC;IACH,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAExF;;OAEG;IACH,SAAS,aAAa,CAAC,SAAiB,EAAE,QAAgB;QACzD,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,OAAO,QAAQ,CAAC,CAAC,sEAAsE;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC3B,8DAA8D;YAC9D,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,sDAAsD,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,IAAA,sBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,SAAS,OAAO,CAAC,GAAW,EAAE,MAAc;QAC3C,oDAAoD;QACpD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC3B,CAAC;QAED,mEAAmE;QACnE,gFAAgF;QAChF,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAClC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAE7B,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;YACnC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAA,sBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjE,OAAO,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACP,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACF,CAAC,CAAC;QACF,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAErC,MAAM,UAAU,GAAG;;MAEf,MAAM;;GAET,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,UAAU,EAAE,aAAa,EAAE;YACzD,QAAQ,EAAE,GAAG;YACb,KAAK,CAAC,uBAAuB,CAAC,SAAiB,EAAE,MAAM;gBACtD,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/D,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,KAAK,CAAC;gBAC1F,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAC7E,OAAO,aAAa,CAAC;YACtB,CAAC;SACD,CAAC,CAAC;QACH,SAAS,CACR,SAAS,EACT,SAAS,CAAC,OAAO,EACjB,UAAU,EACV,GAAG,EACH,IAAA,mBAAO,EAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAC7D,CAAC;QAEF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,SAAS,aAAa,CAAC,GAAW,EAAE,MAAc,EAAE,gBAAyB;QAC5E,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACtF,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAChC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,+CAA+C;YAC/C,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,SAAS,GAAG,IAAI,yBAAe,CACpC,WAAW,EACX;YACC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC;QACF,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;QACF,0DAA0D;QAC1D,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,SAAS,sBAAsB,CAAC,OAAe;QAC9C,IAAI,CAAC;YACJ,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,IAAA,wBAAa,EAAC,OAAO,CAAC,CAAC;YAExC,mDAAmD;YACnD,4DAA4D;YAC5D,8DAA8D;YAC9D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;YAC3C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACjE,IAAI,gBAAgB,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE1C,oCAAoC;YACpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACzF,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE1C,kFAAkF;YAClF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC3C,CAAC,CAAC,IAAA,gBAAI,EAAC,iBAAiB,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7D,CAAC,CAAC,IAAA,gBAAI,EAAC,iBAAiB,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAErD,0CAA0C;YAC1C,MAAM,eAAe,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YAEvE,MAAM,IAAI,GAAG;gBACZ,GAAG,WAAW,CAAC,YAAY;gBAC3B,GAAG,WAAW,CAAC,eAAe;gBAC9B,GAAG,WAAW,CAAC,gBAAgB;aAC/B,CAAC;YAEF,yCAAyC;YACzC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,SAAS,MAAM,CAAC,SAAiB,EAAE,iBAAqD;QACvF,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE3E,4DAA4D;QAC5D,IAAI,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC;QAElF,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,qBAAqB,KAAK,KAAK,EAAE,CAAC;YAC9D,mDAAmD;YACnD,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/E,cAAc,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACP,yDAAyD;gBACzD,cAAc,GAAG,KAAK,CAAC,qBAAqB,KAAK,IAAI,CAAC;YACvD,CAAC;QACF,CAAC;QAED,oBAAoB;QACpB,OAAO,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,iBAAiB,CACzB,GAAW,EACX,gBAAyB;QAEzB,qCAAqC;QACrC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC9B,CAAC;QAED,8DAA8D;QAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACnD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAE7B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,UAAU,mBAAmB,CACjC,GAAW,EACX,gBAAyB;QAEzB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAE9D,qCAAqC;QACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;gBAClC,qDAAqD;gBACrD,4EAA4E;gBAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAClC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;gBACD,yCAAyC;gBACzC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAChC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzB,CAAC;YACF,CAAC,CAAC,EAAE,CAAC;YACL,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC1C,CAAC;QAED,+BAA+B;QAC/B,MAAM,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/B,OAAO,MAAM,CAAC;IACf,CAAC;IACD;;OAEG;IACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,cAAmB;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,OAAO,IAAI,yBAAe,CACzB,WAAW,EACX;YACC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;QACF,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,uBAAuB,CAAC,cAAmB;QACnD,MAAM,SAAS,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACf,qBAAqB;YACrB,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzG,CAAC;QACD,iEAAiE;QACjE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC7B,cAAc,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,cAAc,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,SAAS,sBAAsB,CAC9B,GAAW,EACX,MAAc,EACd,gBAAyB;QAEzB,sBAAsB;QACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO,IAAI,yBAAe,CACzB,CAAC,SAAS,CAAC,EACX;gBACC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,+EAA+E;QAC/E,IAAI,CAAC;YACJ,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACR,8EAA8E;YAC9E,OAAO,IAAI,0BAAgB,CAAC,MAAM,EAAE;gBACnC,UAAU,EAAE,GAAG;gBACf,OAAO;gBACP,oBAAoB,CAAC,IAAI;oBACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;gBAChB,CAAC;gBACD,uBAAuB,CAAC,SAAiB;oBACxC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;oBAClD,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,KAAK,CAAC;oBAC1F,OAAO,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBACzD,CAAC;aACD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED;;OAEG;IACH,SAAS,YAAY,CACpB,GAAW,EACX,gBAAyB;QAEzB,kCAAkC;QAClC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACnD,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC9D,CAAC;QAED,uFAAuF;QACvF,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,MAAM,kCAAC,GAAG,EAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAClH,CAAC;IACD,wBAAwB;IACxB,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE/D,wCAAwC;IACxC,OAAO,WAAW,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,KAAuB,EAAE,OAAO;IAC7D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,WAAW,GAAuB,IAAK,WAAyC,CACrF,OAAO,EACP;IACC,2CAA2C;KAC3C,EACD;QACC,IAAI,EAAE,YAAY;QAClB,WAAW,CAAC,eAAe,EAAE,cAAc;YAC1C,IAAI,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5C,OAAO,QAAQ,CAAC,CAAC,sEAAsE;YACxF,CAAC;YACD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC3B,8DAA8D;gBAC9D,MAAM,IAAI,KAAK,CAAC,UAAU,eAAe,sDAAsD,CAAC,CAAC;YAClG,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACxE,IAAI,IAAA,sBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvD,OAAO,WAAW,CAAC;YACpB,CAAC;YACD,OAAO,eAAe,CAAC;QACxB,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE;YACrC,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAClC,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9C,OAAO;oBACN,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;oBACnC,OAAO,CAAC,OAAO;wBACd,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;oBACvC,CAAC;iBACD,CAAC;YACH,CAAC;iBAAM,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7F,IAAI,UAAU,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACjF,mEAAmE;gBACnE,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;oBAC9D,OAAO;wBACN,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE,CAAC,SAAS,CAAC;wBACpB,OAAO,CAAC,OAAO;4BACd,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;wBAC5B,CAAC;qBACD,CAAC;gBACH,CAAC;gBACD,+CAA+C;gBAC/C,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzE,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACP,sBAAsB,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC1D,MAAM,aAAa,GAAG,MAAM,MAAM,kCAAC,eAAe,EAAC,CAAC;gBACpD,OAAO;oBACN,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;oBACnC,OAAO,CAAC,OAAO;wBACd,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;4BAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;wBACnC,CAAC;oBACF,CAAC;iBACD,CAAC;YACH,CAAC;QACF,CAAC;KACD,CACD,CAAC;IACF,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAQ,EAAE,OAAO;IACzC,kHAAkH;IAClH,cAAc;IACd,MAAM,GAAG,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC;IACzD,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACxF,OAAO,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,sEAAsE;AACtE,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAE9E,IAAI,oBAA8B,CAAC;AACnC,2GAA2G;AAC3G,SAAS,uBAAuB;IAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3B,oBAAoB,GAAG,IAAA,sBAAY,EAClC,4DAA4D,EAC5D,IAAA,uBAAa,EAAC,EAAE,CAAC,CACjB,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAuB,EAAE,cAAc,GAAG,KAAK;IACvE,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,oFAAoF;IACpF,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;IAC9F,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,6CAA6C;IAC7C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,0BAAM;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC1B,KAAK,EAAE,qBAAqB,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK;QAChE,OAAO;QACP,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC;KAC/B,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AAClB,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAuB;IAChD,OAAO;QACN,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,0BAAM;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC1B,QAAQ,EAAR,sBAAQ;QACR,MAAM,EAAN,qBAAM;QACN,SAAS,EAAT,wBAAS;QACT,UAAU;QACV,aAAa,EAAb,gCAAa;QACb,UAAU;QACV,WAAW,EAAX,4BAAW;QACX,WAAW;QACX,OAAO;QACP,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAZ,8BAAY;QACZ,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,SAAS;QAClB,oBAAoB,EAAE,SAAS;QAC/B,WAAW,EAAE,SAAS;QACtB,iBAAiB,EAAE,SAAS;QAC5B,kBAAkB,EAAE,SAAS;QAC7B,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,SAAS;QACvB,iBAAiB,EAAE,SAAS;QAC5B,iBAAiB,EAAE,SAAS;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,SAAS;QACxB,mBAAmB,EAAE,SAAS;QAC9B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;KACf,CAAC;AACH,CAAC;AACD,MAAM,4BAA4B,GAAG,GAAG,CAAC,GAAG,CAAC,2BAAa,CAAC,kCAAkC,CAAC;IAC7F,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,2BAAa,CAAC,kCAAkC,CAAC,CAAC;IACpE,CAAC,CAAC;QACA,+DAA+D;QAC/D,GAAG;YACF,OAAO,IAAI,CAAC;QACb,CAAC;KACD,CAAC;AACJ,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,2BAAa,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC;AACjG,MAAM,wBAAwB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;IACrC,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC7C,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,yCAAyC;IACtF,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;IACvC,QAAQ,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;CACD,CAAC;AACF,wBAAwB,CAAC,OAAO,GAAG,wBAAwB,CAAC;AAC5D,MAAM,wBAAwB,GAAG;IAChC,aAAa,EAAE,wBAAwB;CACvC,CAAC;AACF;;GAEG;AACH,MAAM,sBAAuB,SAAQ,0BAAY;IAChD,GAAG,CAAS;IACJ,aAAa,CAAiB;IAEtC,YAAY,GAAW;QACtB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,yDAAyD;QACzD,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC;gBACJ,gEAAgE;gBAChE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACR,2BAA2B;gBAC3B,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,MAAgC;QACpC,IAAI,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,qDAAqD;IACrD,KAAK;QACJ,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACpC,IAAI,CAAC;QACJ,4CAA4C;QAC5C,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,WAAmB,EAAE,UAAU,GAAG,GAAG,EAAE,UAAU,GAAG,CAAC;IAChF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACJ,sDAAsD;YACtD,MAAM,EAAE,GAAG,IAAA,kBAAQ,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACvC,IAAA,mBAAS,EAAC,EAAE,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,CAAC,yEAAyE;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,6DAA6D;gBAC7D,IAAI,CAAC;oBACJ,MAAM,UAAU,GAAG,IAAA,sBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;oBAEpD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC1D,uDAAuD;wBACvD,OAAO,WAAW,CAAC;oBACpB,CAAC;oBAED,iFAAiF;oBACjF,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,WAAW,CAAC,CAAC;oBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;oBAE3C,wGAAwG;oBACxG,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;wBACnB,2CAA2C;oBAC5C,CAAC;yBAAM,CAAC;wBACP,qDAAqD;wBACrD,IAAI,CAAC;4BACJ,IAAA,oBAAU,EAAC,WAAW,CAAC,CAAC;wBACzB,CAAC;wBAAC,MAAM,CAAC;4BACR,4CAA4C;wBAC7C,CAAC;oBACF,CAAC;gBACF,CAAC;gBAAC,MAAM,CAAC;oBACR,uEAAuE;gBACxE,CAAC;gBAED,6BAA6B;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,UAAU,EAAE,CAAC;oBACxC,YAAY;gBACb,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,GAAG,CAAC;YACX,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,WAAW,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,aAA2D,EAAE,WAAqB;IACtG,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IACtC,OAAO,UAAU,OAAe,EAAE,IAAU,EAAE,OAAa,EAAE,QAAmC;QAC/F,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,iBAAiB,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,CAAC;QAClC,IAAI,CAAC,WAAW;YACf,MAAM,IAAI,KAAK,CACd,WAAW,aAAa,CAAC,IAAI,4GAA4G,CACzI,CAAC;QAEH,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAA,gBAAI,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtC,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,GAAG,WAAW,MAAM,CAAC,CAAC;QAEvD,+DAA+D;QAC/D,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACvB,8CAA8C;YAC9C,OAAO,IAAI,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,6DAA6D;QAC7D,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAErE,wCAAwC;QACxC,IAAI,CAAC;YACJ,IAAA,uBAAa,EAAC,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,gCAAgC;YAChC,IAAI,CAAC;gBACJ,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAA,oBAAU,EAAC,WAAW,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,GAAG,CAAC;QACX,CAAC;QAED,uCAAuC;QACvC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC;gBACJ,IAAA,oBAAU,EAAC,WAAW,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACR,8BAA8B;YAC/B,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACrB,CAAC,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAAC,SAAiB,EAAE,gBAAyB;IAC3E,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5D,OAAO;QACR,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,gBAAgB,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,4BAA4B,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC9F,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,gCAAgC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,UAAU;IAClB,OAAO,+BAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC;AACD,SAAS,OAAO;IACf,OAAO,+BAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;AACxC,CAAC;AACD,SAAS,WAAW;IACnB,OAAO,+BAAc,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;AAC5C,CAAC;AAED,SAAgB,0BAA0B;IACzC,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,cAAa,CAAC,CAAC,CAAC,gEAAgE;AAClH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC9D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;QACnC,GAAG;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QACD,GAAG,CAAC,KAAK;YACR,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE;gBACjC,KAAK;gBACL,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;aACd,CAAC,CAAC;QACJ,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/server/REST.js
CHANGED
|
@@ -39,6 +39,7 @@ const contentTypes_ts_1 = require("../server/serverHelpers/contentTypes.js");
|
|
|
39
39
|
const write_ts_1 = require("../resources/analytics/write.js");
|
|
40
40
|
const harperLogger = __importStar(require("../utility/logging/harper_logger.js"));
|
|
41
41
|
const hdbError_js_1 = require("../utility/errors/hdbError.js");
|
|
42
|
+
const Resource_ts_1 = require("../resources/Resource.js");
|
|
42
43
|
const IterableEventQueue_ts_1 = require("../resources/IterableEventQueue.js");
|
|
43
44
|
const transaction_ts_1 = require("../resources/transaction.js");
|
|
44
45
|
const Headers_ts_1 = require("../server/serverHelpers/Headers.js");
|
|
@@ -143,29 +144,35 @@ async function http(request, nextHandler) {
|
|
|
143
144
|
switch (method) {
|
|
144
145
|
case 'GET':
|
|
145
146
|
case 'HEAD':
|
|
146
|
-
return resource.get(target, request);
|
|
147
|
+
return resource.get ? resource.get(target, request) : (0, Resource_ts_1.missingMethod)(resource, 'get');
|
|
147
148
|
case 'POST':
|
|
148
|
-
return resource.post(target, request.data, request);
|
|
149
|
+
return resource.post ? resource.post(target, request.data, request) : (0, Resource_ts_1.missingMethod)(resource, 'post');
|
|
149
150
|
case 'PUT':
|
|
150
|
-
return resource.put(target, request.data, request);
|
|
151
|
+
return resource.put ? resource.put(target, request.data, request) : (0, Resource_ts_1.missingMethod)(resource, 'put');
|
|
151
152
|
case 'DELETE':
|
|
152
|
-
return resource.delete(target, request);
|
|
153
|
+
return resource.delete ? resource.delete(target, request) : (0, Resource_ts_1.missingMethod)(resource, 'delete');
|
|
153
154
|
case 'PATCH':
|
|
154
|
-
return resource.patch(target, request.data, request);
|
|
155
|
+
return resource.patch ? resource.patch(target, request.data, request) : (0, Resource_ts_1.missingMethod)(resource, 'patch');
|
|
155
156
|
case 'OPTIONS': // used primarily for CORS
|
|
156
|
-
headers.setIfNone('Allow',
|
|
157
|
+
headers.setIfNone('Allow', (0, Resource_ts_1.allowedMethods)(resource)
|
|
158
|
+
.map((method) => method.toUpperCase())
|
|
159
|
+
.join(', '));
|
|
157
160
|
return;
|
|
158
161
|
case 'CONNECT':
|
|
159
162
|
// websockets? and event-stream
|
|
160
|
-
return resource.connect(target, null, request);
|
|
163
|
+
return resource.connect ? resource.connect(target, null, request) : (0, Resource_ts_1.missingMethod)(resource, 'connect');
|
|
161
164
|
case 'TRACE':
|
|
162
165
|
return 'Harper is the terminating server';
|
|
163
166
|
case 'QUERY':
|
|
164
|
-
return resource.query(target, request.data, request);
|
|
167
|
+
return resource.query ? resource.query(target, request.data, request) : (0, Resource_ts_1.missingMethod)(resource, 'query');
|
|
165
168
|
case 'COPY': // methods suggested from webdav RFC 4918
|
|
166
|
-
return resource.copy
|
|
169
|
+
return resource.copy
|
|
170
|
+
? resource.copy(target, headersObject.destination, request)
|
|
171
|
+
: (0, Resource_ts_1.missingMethod)(resource, 'copy');
|
|
167
172
|
case 'MOVE':
|
|
168
|
-
return resource.move
|
|
173
|
+
return resource.move
|
|
174
|
+
? resource.move(target, headersObject.destination, request)
|
|
175
|
+
: (0, Resource_ts_1.missingMethod)(resource, 'move');
|
|
169
176
|
case 'BREW': // RFC 2324
|
|
170
177
|
throw new hdbError_js_1.ClientError("Harper is short and stout and can't brew coffee", 418);
|
|
171
178
|
default:
|
|
@@ -194,10 +201,19 @@ async function http(request, nextHandler) {
|
|
|
194
201
|
responseData.headers = responseHeaders;
|
|
195
202
|
// if no body, look for provided data to serialize
|
|
196
203
|
if (!responseData.body) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
204
|
+
let body;
|
|
205
|
+
if ('data' in responseData) {
|
|
206
|
+
// a standard Response object does not have a setter for body, so we force it
|
|
207
|
+
body = (0, contentTypes_ts_1.serialize)(responseData.data, request, responseData);
|
|
208
|
+
}
|
|
209
|
+
else if (responseData.body === undefined) {
|
|
210
|
+
// if there is really no body, serialize this object into the body. Note that `new Response()` creates a response
|
|
211
|
+
// with a null body, and will not fall into this branch
|
|
212
|
+
body = (0, contentTypes_ts_1.serialize)(responseData, request, responseData);
|
|
213
|
+
}
|
|
214
|
+
if (body) {
|
|
215
|
+
responseData = { status: responseData.status, headers: responseData.headers, body };
|
|
216
|
+
}
|
|
201
217
|
}
|
|
202
218
|
responseData.status ??= status ?? 200;
|
|
203
219
|
return responseData;
|