@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.
Files changed (97) hide show
  1. package/bin/cliOperations.js +3 -3
  2. package/bin/harper.js +1 -1
  3. package/bin/run.js +2 -2
  4. package/components/Application.ts +6 -3
  5. package/components/ApplicationScope.ts +1 -0
  6. package/components/componentLoader.ts +23 -12
  7. package/components/operations.js +13 -13
  8. package/components/operationsValidation.js +3 -3
  9. package/config/configUtils.js +20 -4
  10. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
  11. package/dist/bin/cliOperations.js +3 -3
  12. package/dist/bin/cliOperations.js.map +1 -1
  13. package/dist/bin/harper.d.ts +1 -1
  14. package/dist/bin/harper.js +1 -1
  15. package/dist/bin/run.js +2 -2
  16. package/dist/bin/run.js.map +1 -1
  17. package/dist/components/Application.js +7 -2
  18. package/dist/components/Application.js.map +1 -1
  19. package/dist/components/ApplicationScope.d.ts +1 -0
  20. package/dist/components/ApplicationScope.js +1 -0
  21. package/dist/components/ApplicationScope.js.map +1 -1
  22. package/dist/components/componentLoader.js +21 -10
  23. package/dist/components/componentLoader.js.map +1 -1
  24. package/dist/components/operations.js +13 -13
  25. package/dist/components/operations.js.map +1 -1
  26. package/dist/components/operationsValidation.js +3 -3
  27. package/dist/components/operationsValidation.js.map +1 -1
  28. package/dist/config/configUtils.d.ts +6 -0
  29. package/dist/config/configUtils.js +23 -3
  30. package/dist/config/configUtils.js.map +1 -1
  31. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
  32. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
  33. package/dist/resources/DatabaseTransaction.d.ts +2 -1
  34. package/dist/resources/DatabaseTransaction.js +71 -35
  35. package/dist/resources/DatabaseTransaction.js.map +1 -1
  36. package/dist/resources/Resource.d.ts +2 -0
  37. package/dist/resources/Resource.js +11 -4
  38. package/dist/resources/Resource.js.map +1 -1
  39. package/dist/resources/RocksTransactionLogStore.d.ts +1 -0
  40. package/dist/resources/RocksTransactionLogStore.js +8 -1
  41. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  42. package/dist/resources/Table.d.ts +6 -6
  43. package/dist/resources/Table.js +15 -10
  44. package/dist/resources/Table.js.map +1 -1
  45. package/dist/resources/analytics/write.js +6 -0
  46. package/dist/resources/analytics/write.js.map +1 -1
  47. package/dist/resources/databases.js +3 -2
  48. package/dist/resources/databases.js.map +1 -1
  49. package/dist/security/jsLoader.js +223 -116
  50. package/dist/security/jsLoader.js.map +1 -1
  51. package/dist/server/REST.js +30 -14
  52. package/dist/server/REST.js.map +1 -1
  53. package/dist/server/http.d.ts +1 -0
  54. package/dist/server/http.js +6 -1
  55. package/dist/server/http.js.map +1 -1
  56. package/dist/server/itc/serverHandlers.js +1 -1
  57. package/dist/server/itc/serverHandlers.js.map +1 -1
  58. package/dist/utility/hdbTerms.d.ts +1 -0
  59. package/dist/utility/hdbTerms.js +1 -0
  60. package/dist/utility/hdbTerms.js.map +1 -1
  61. package/dist/utility/logging/harper_logger.js +24 -1
  62. package/dist/utility/logging/harper_logger.js.map +1 -1
  63. package/dist/utility/logging/readLog.js +2 -2
  64. package/dist/utility/logging/readLog.js.map +1 -1
  65. package/dist/utility/npmUtilities.js +2 -2
  66. package/dist/utility/npmUtilities.js.map +1 -1
  67. package/dist/validation/configValidator.js +18 -8
  68. package/dist/validation/configValidator.js.map +1 -1
  69. package/dist/validation/readLogValidator.js +2 -2
  70. package/dist/validation/readLogValidator.js.map +1 -1
  71. package/package.json +5 -5
  72. package/resources/DatabaseTransaction.ts +67 -32
  73. package/resources/Resource.ts +17 -6
  74. package/resources/RocksTransactionLogStore.ts +8 -1
  75. package/resources/Table.ts +29 -10
  76. package/resources/analytics/write.ts +6 -0
  77. package/resources/databases.ts +3 -2
  78. package/security/jsLoader.ts +258 -129
  79. package/server/REST.ts +32 -13
  80. package/server/http.ts +6 -3
  81. package/server/itc/serverHandlers.js +1 -1
  82. package/static/defaultConfig.yaml +1 -1
  83. package/studio/web/assets/{index-BckVDix4.js → index-CXQsBaYq.js} +5 -5
  84. package/studio/web/assets/{index-BckVDix4.js.map → index-CXQsBaYq.js.map} +1 -1
  85. package/studio/web/assets/{index.lazy-iG1_8dzm.js → index.lazy-C3Ejfvna.js} +2 -2
  86. package/studio/web/assets/{index.lazy-iG1_8dzm.js.map → index.lazy-C3Ejfvna.js.map} +1 -1
  87. package/studio/web/assets/{profile-CzjslUXv.js → profile-BbbbWJCN.js} +2 -2
  88. package/studio/web/assets/{profile-CzjslUXv.js.map → profile-BbbbWJCN.js.map} +1 -1
  89. package/studio/web/assets/{status-BP4TQJDR.js → status-CFe85l8C.js} +2 -2
  90. package/studio/web/assets/{status-BP4TQJDR.js.map → status-CFe85l8C.js.map} +1 -1
  91. package/studio/web/index.html +1 -1
  92. package/utility/hdbTerms.ts +1 -0
  93. package/utility/logging/harper_logger.js +22 -1
  94. package/utility/logging/readLog.js +2 -2
  95. package/utility/npmUtilities.js +2 -2
  96. package/validation/configValidator.js +16 -8
  97. 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
- async function stripTypeScriptTypes(source) {
177
+ function stripTypeScriptTypes(source) {
176
178
  // Use amaro - the library that Node.js uses internally for type stripping
177
- amaro = await import('amaro');
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
- const moduleCache = new Map();
197
- const linkingPromises = new Map();
198
- // Create a secure context with limited globals
199
- const contextObject = getGlobalObject(scope);
200
- const context = (0, node_vm_1.createContext)(contextObject);
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
- const exportNames = Object.keys(cjsModule.exports);
260
- const synModule = new node_vm_1.SyntheticModule(exportNames.length > 0 ? exportNames : ['default'], function () {
261
- if (exportNames.length > 0) {
262
- for (const key of exportNames) {
263
- this.setExport(key, cjsModule.exports[key]);
264
- }
265
- }
266
- else {
267
- this.setExport('default', cjsModule.exports);
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
- * Linker function for module resolution during instantiation
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
- async function linker(specifier, referencingModule) {
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
- const useContainment = specifier.startsWith('.') || scope.dependencyContainment;
279
- // Return the module immediately (even if not yet linked) to support circular dependencies
280
- return await getOrCreateModule(resolvedUrl, useContainment);
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
- async function getOrCreateModule(url, usePrivateGlobal) {
283
- // Check cache first - return cached module immediately (even if not linked yet)
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
- await module.link(linker);
298
- await module.evaluate();
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 module from URL without linking or evaluating
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
- async function createModule(url, usePrivateGlobal) {
310
- let module;
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
- let harperExports = getHarperExports(scope);
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
- else if (url.startsWith('file://') && usePrivateGlobal) {
457
+ if (url.startsWith('file://') && usePrivateGlobal) {
321
458
  checkAllowedModulePath(url, scope.verifyPath);
322
- let source = await (0, promises_1.readFile)(new URL(url), { encoding: 'utf-8' });
323
- // Handle JSON modules as a SyntheticModule with a default export.
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
- else {
364
- const replacedModule = checkAllowedModulePath(url, scope.verifyPath);
365
- // For Node.js built-in modules (node:) and npm packages
366
- // Always try require first to properly handle CJS modules with named exports
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 module;
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
- const moduleText = await (0, promises_1.readFile)(new URL(moduleSpecifier), { encoding: 'utf-8' });
434
- // Handle JSON files in comparttment mode the same way as in VM mode
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 (getDefaultJSGlobalNames().includes(name))
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 REPLACED_BUILTIN_MODULES = {
541
- child_process: {
542
- exec: createSpawn(child_process.exec),
543
- execFile: createSpawn(child_process.execFile),
544
- fork: createSpawn(child_process.fork, true), // this is launching node, so deemed safe
545
- spawn: createSpawn(child_process.spawn),
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,oCAiFC;AAynBD,gEAEC;AAlvBD,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,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;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAAC,MAAc;IACjD,0EAA0E;IAC1E,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,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,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuD,CAAC;IACnF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEzD,+CAA+C;IAC/C,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,aAAa,CAAC,CAAC;IAE7C;;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,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,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAClC,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,CAAC;gBAChF,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,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,yBAAe,CACpC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAClD;YACC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;QACF,0DAA0D;QAC1D,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,UAAU,MAAM,CAAC,SAAiB,EAAE,iBAAqD;QAC7F,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE3E,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC;QAChF,0FAA0F;QAC1F,OAAO,MAAM,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,UAAU,iBAAiB,CAC/B,GAAW,EACX,gBAAyB;QAEzB,gFAAgF;QAChF,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,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,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,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,gBAAyB;QACjE,IAAI,MAA0C,CAAC;QAE/C,kCAAkC;QAClC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,GAAG,IAAI,yBAAe,CAC3B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B;gBACC,KAAK,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC1D,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAEjE,kEAAkE;YAClE,8DAA8D;YAC9D,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC9C,MAAM,GAAG,IAAI,yBAAe,CAC3B,CAAC,SAAS,CAAC,EACX;oBACC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACrC,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,+CAA+C;gBAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjD,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBAED,+EAA+E;gBAC/E,IAAI,CAAC;oBACJ,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBACvD,CAAC;gBAAC,MAAM,CAAC;oBACR,8EAA8E;oBAC9E,IAAI,CAAC;wBACJ,MAAM,GAAG,IAAI,0BAAgB,CAAC,MAAM,EAAE;4BACrC,UAAU,EAAE,GAAG;4BACf,OAAO;4BACP,oBAAoB,CAAC,IAAI;gCACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;4BAChB,CAAC;4BACD,KAAK,CAAC,uBAAuB,CAAC,SAAiB;gCAC9C,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gCAClD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gCACnE,OAAO,aAAa,CAAC;4BACtB,CAAC;yBACD,CAAC,CAAC;oBACJ,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBACjB,iEAAiE;wBACjE,MAAM,MAAM,CAAC;oBACd,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACrE,wDAAwD;YACxD,6EAA6E;YAC7E,IAAI,CAAC;gBACJ,MAAM,UAAU,GAAG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClD,6DAA6D;gBAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5C,MAAM,GAAG,IAAI,yBAAe,CAC3B,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAClE;oBACC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;4BAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtC,CAAC;oBACF,CAAC;oBACD,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACvC,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,+CAA+C;gBAC/C,MAAM,cAAc,GAAG,MAAM,MAAM,kCAAC,GAAG,EAAC,CAAC;gBACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChD,MAAM,GAAG,IAAI,yBAAe,CAC3B,WAAW,EACX;oBACC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;wBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,CAAC;gBACF,CAAC,EACD,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAC5B,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED,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,MAAM,UAAU,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnF,oEAAoE;gBACpE,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,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,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;IAC/C,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,oFAAoF;IACpF,6DAA6D;IAC7D,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,IAAI,uBAAuB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACvD,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;KACZ,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,aAAa,EAAE;QACd,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;QACrC,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC7C,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,yCAAyC;QACtF,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;KACvC;CACD,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"}
1
+ {"version":3,"file":"jsLoader.js","sourceRoot":"","sources":["../../security/jsLoader.ts"],"names":[],"mappings":"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"}
@@ -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', 'GET, HEAD, POST, PUT, DELETE, PATCH, OPTIONS, TRACE, QUERY, COPY, MOVE');
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(target, headersObject.destination, request);
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(target, headersObject.destination, request);
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
- if ('data' in responseData)
198
- responseData.body = (0, contentTypes_ts_1.serialize)(responseData.data, request, responseData);
199
- else
200
- responseData.body = (0, contentTypes_ts_1.serialize)(responseData, request, responseData);
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;