@jsii/runtime 1.85.0 → 1.86.1

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.
@@ -9328,7 +9328,7 @@ var __webpack_modules__ = {
9328
9328
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
9329
9329
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
9330
9330
  };
9331
- var _DiskCache_root;
9331
+ var _DiskCache_instances, _a, _DiskCache_CACHE, _DiskCache_root, _DiskCache_entries, _Entry_instances, _Entry_lockFile_get, _Entry_markerFile_get;
9332
9332
  Object.defineProperty(exports, "__esModule", {
9333
9333
  value: true
9334
9334
  });
@@ -9342,6 +9342,7 @@ var __webpack_modules__ = {
9342
9342
  const PRUNE_AFTER_MILLISECONDS = process.env.JSII_RUNTIME_PACKAGE_CACHE_TTL ? parseInt(process.env.JSII_RUNTIME_PACKAGE_CACHE_TTL, 10) * ONE_DAY_IN_MS : 30 * ONE_DAY_IN_MS;
9343
9343
  class DiskCache {
9344
9344
  constructor(root) {
9345
+ _DiskCache_instances.add(this);
9345
9346
  _DiskCache_root.set(this, void 0);
9346
9347
  __classPrivateFieldSet(this, _DiskCache_root, root, "f");
9347
9348
  process.once("beforeExit", (() => this.pruneExpiredEntries()));
@@ -9356,10 +9357,10 @@ var __webpack_modules__ = {
9356
9357
  (0, fs_1.writeFileSync)((0, path_1.join)(path, ".nosync"), "");
9357
9358
  }
9358
9359
  path = (0, fs_1.realpathSync)(path);
9359
- if (!this.CACHE.has(path)) {
9360
- this.CACHE.set(path, new DiskCache(path));
9360
+ if (!__classPrivateFieldGet(this, _a, "f", _DiskCache_CACHE).has(path)) {
9361
+ __classPrivateFieldGet(this, _a, "f", _DiskCache_CACHE).set(path, new DiskCache(path));
9361
9362
  }
9362
- return this.CACHE.get(path);
9363
+ return __classPrivateFieldGet(this, _a, "f", _DiskCache_CACHE).get(path);
9363
9364
  }
9364
9365
  entry(...key) {
9365
9366
  if (key.length === 0) {
@@ -9378,7 +9379,7 @@ var __webpack_modules__ = {
9378
9379
  }
9379
9380
  pruneExpiredEntries() {
9380
9381
  const cutOff = new Date(Date.now() - PRUNE_AFTER_MILLISECONDS);
9381
- for (const entry of this.entries()) {
9382
+ for (const entry of __classPrivateFieldGet(this, _DiskCache_instances, "m", _DiskCache_entries).call(this)) {
9382
9383
  if (entry.atime < cutOff) {
9383
9384
  entry.lock((lockedEntry => {
9384
9385
  if (entry.atime > cutOff) {
@@ -9403,28 +9404,31 @@ var __webpack_modules__ = {
9403
9404
  }
9404
9405
  }
9405
9406
  }
9406
- * entries() {
9407
- yield* inDirectory(__classPrivateFieldGet(this, _DiskCache_root, "f"));
9408
- function* inDirectory(dir) {
9409
- if ((0, fs_1.existsSync)((0, path_1.join)(dir, MARKER_FILE_NAME))) {
9410
- return yield new Entry(dir);
9411
- }
9412
- for (const file of directoriesUnder(dir)) {
9413
- yield* inDirectory(file);
9414
- }
9415
- }
9416
- }
9417
9407
  }
9418
9408
  exports.DiskCache = DiskCache;
9419
- _DiskCache_root = new WeakMap;
9420
- DiskCache.CACHE = new Map;
9409
+ _a = DiskCache, _DiskCache_root = new WeakMap, _DiskCache_instances = new WeakSet,
9410
+ _DiskCache_entries = function* _DiskCache_entries() {
9411
+ yield* inDirectory(__classPrivateFieldGet(this, _DiskCache_root, "f"));
9412
+ function* inDirectory(dir) {
9413
+ if ((0, fs_1.existsSync)((0, path_1.join)(dir, MARKER_FILE_NAME))) {
9414
+ return yield new Entry(dir);
9415
+ }
9416
+ for (const file of directoriesUnder(dir)) {
9417
+ yield* inDirectory(file);
9418
+ }
9419
+ }
9420
+ };
9421
+ _DiskCache_CACHE = {
9422
+ value: new Map
9423
+ };
9421
9424
  class Entry {
9422
9425
  constructor(path) {
9423
9426
  this.path = path;
9427
+ _Entry_instances.add(this);
9424
9428
  }
9425
9429
  get atime() {
9426
9430
  try {
9427
- const stat = (0, fs_1.statSync)(this.markerFile);
9431
+ const stat = (0, fs_1.statSync)(__classPrivateFieldGet(this, _Entry_instances, "a", _Entry_markerFile_get));
9428
9432
  return stat.atime;
9429
9433
  } catch (err) {
9430
9434
  if (err.code !== "ENOENT") {
@@ -9436,17 +9440,11 @@ var __webpack_modules__ = {
9436
9440
  get pathExists() {
9437
9441
  return (0, fs_1.existsSync)(this.path);
9438
9442
  }
9439
- get lockFile() {
9440
- return `${this.path}.lock`;
9441
- }
9442
- get markerFile() {
9443
- return (0, path_1.join)(this.path, MARKER_FILE_NAME);
9444
- }
9445
9443
  lock(cb) {
9446
9444
  (0, fs_1.mkdirSync)((0, path_1.dirname)(this.path), {
9447
9445
  recursive: true
9448
9446
  });
9449
- (0, lockfile_1.lockSync)(this.lockFile, {
9447
+ (0, lockfile_1.lockSync)(__classPrivateFieldGet(this, _Entry_instances, "a", _Entry_lockFile_get), {
9450
9448
  retries: 12,
9451
9449
  stale: 5e3
9452
9450
  });
@@ -9476,18 +9474,18 @@ var __webpack_modules__ = {
9476
9474
  throw new Error(`Cannot touch ${this.path} once the lock block was returned!`);
9477
9475
  }
9478
9476
  if (this.pathExists) {
9479
- if ((0, fs_1.existsSync)(this.markerFile)) {
9477
+ if ((0, fs_1.existsSync)(__classPrivateFieldGet(this, _Entry_instances, "a", _Entry_markerFile_get))) {
9480
9478
  const now = new Date;
9481
- (0, fs_1.utimesSync)(this.markerFile, now, now);
9479
+ (0, fs_1.utimesSync)(__classPrivateFieldGet(this, _Entry_instances, "a", _Entry_markerFile_get), now, now);
9482
9480
  } else {
9483
- (0, fs_1.writeFileSync)(this.markerFile, "");
9481
+ (0, fs_1.writeFileSync)(__classPrivateFieldGet(this, _Entry_instances, "a", _Entry_markerFile_get), "");
9484
9482
  }
9485
9483
  }
9486
9484
  }
9487
9485
  });
9488
9486
  } finally {
9489
9487
  disposed = true;
9490
- (0, lockfile_1.unlockSync)(this.lockFile);
9488
+ (0, lockfile_1.unlockSync)(__classPrivateFieldGet(this, _Entry_instances, "a", _Entry_lockFile_get));
9491
9489
  }
9492
9490
  }
9493
9491
  read(file) {
@@ -9502,6 +9500,11 @@ var __webpack_modules__ = {
9502
9500
  }
9503
9501
  }
9504
9502
  exports.Entry = Entry;
9503
+ _Entry_instances = new WeakSet, _Entry_lockFile_get = function _Entry_lockFile_get() {
9504
+ return `${this.path}.lock`;
9505
+ }, _Entry_markerFile_get = function _Entry_markerFile_get() {
9506
+ return (0, path_1.join)(this.path, MARKER_FILE_NAME);
9507
+ };
9505
9508
  function* directoriesUnder(root, recursive = false, ignoreErrors = true) {
9506
9509
  for (const file of (0, fs_1.readdirSync)(root)) {
9507
9510
  const path = (0, path_1.join)(root, file);
@@ -9576,14 +9579,26 @@ var __webpack_modules__ = {
9576
9579
  const api = __webpack_require__(2816);
9577
9580
  exports.api = api;
9578
9581
  },
9579
- 2742: (__unused_webpack_module, exports, __webpack_require__) => {
9582
+ 2742: function(__unused_webpack_module, exports, __webpack_require__) {
9580
9583
  "use strict";
9584
+ var __classPrivateFieldGet = this && this.__classPrivateFieldGet || function(receiver, state, kind, f) {
9585
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9586
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
9587
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
9588
+ };
9589
+ var __classPrivateFieldSet = this && this.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
9590
+ if (kind === "m") throw new TypeError("Private method is not writable");
9591
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9592
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
9593
+ return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
9594
+ value;
9595
+ };
9596
+ var _Kernel_instances, _Kernel_assemblies, _Kernel_objects, _Kernel_cbs, _Kernel_waiting, _Kernel_promises, _Kernel_serializerHost, _Kernel_nextid, _Kernel_syncInProgress, _Kernel_installDir, _Kernel_require, _Kernel_load, _Kernel_addAssembly, _Kernel_findCtor, _Kernel_getPackageDir, _Kernel_create, _Kernel_getSuperPropertyName, _Kernel_applyPropertyOverride, _Kernel_defineOverridenProperty, _Kernel_applyMethodOverride, _Kernel_defineOverridenMethod, _Kernel_findInvokeTarget, _Kernel_validateMethodArguments, _Kernel_assemblyFor, _Kernel_findSymbol, _Kernel_typeInfoForFqn, _Kernel_isVisibleType, _Kernel_typeInfoForMethod, _Kernel_tryTypeInfoForMethod, _Kernel_tryTypeInfoForProperty, _Kernel_typeInfoForProperty, _Kernel_toSandbox, _Kernel_fromSandbox, _Kernel_toSandboxValues, _Kernel_fromSandboxValues, _Kernel_boxUnboxParameters, _Kernel_debug, _Kernel_debugTime, _Kernel_ensureSync, _Kernel_findPropertyTarget, _Kernel_getBinScriptCommand, _Kernel_makecbid, _Kernel_makeprid;
9581
9597
  Object.defineProperty(exports, "__esModule", {
9582
9598
  value: true
9583
9599
  });
9584
9600
  exports.Kernel = exports.RuntimeError = exports.JsiiFault = void 0;
9585
9601
  const spec = __webpack_require__(1804);
9586
- const spec_1 = __webpack_require__(1804);
9587
9602
  const cp = __webpack_require__(2081);
9588
9603
  const fs = __webpack_require__(9728);
9589
9604
  const module_1 = __webpack_require__(8188);
@@ -9612,71 +9627,36 @@ var __webpack_modules__ = {
9612
9627
  class Kernel {
9613
9628
  constructor(callbackHandler) {
9614
9629
  this.callbackHandler = callbackHandler;
9630
+ _Kernel_instances.add(this);
9615
9631
  this.traceEnabled = false;
9616
9632
  this.debugTimingEnabled = false;
9617
- this.assemblies = new Map;
9618
- this.objects = new objects_1.ObjectTable(this._typeInfoForFqn.bind(this));
9619
- this.cbs = new Map;
9620
- this.waiting = new Map;
9621
- this.promises = new Map;
9622
- this.nextid = 2e4;
9633
+ this.validateAssemblies = false;
9634
+ _Kernel_assemblies.set(this, new Map);
9635
+ _Kernel_objects.set(this, new objects_1.ObjectTable(__classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForFqn).bind(this)));
9636
+ _Kernel_cbs.set(this, new Map);
9637
+ _Kernel_waiting.set(this, new Map);
9638
+ _Kernel_promises.set(this, new Map);
9639
+ _Kernel_serializerHost.set(this, void 0);
9640
+ _Kernel_nextid.set(this, 2e4);
9641
+ _Kernel_syncInProgress.set(this, void 0);
9642
+ _Kernel_installDir.set(this, void 0);
9643
+ _Kernel_require.set(this, void 0);
9644
+ __classPrivateFieldSet(this, _Kernel_serializerHost, {
9645
+ objects: __classPrivateFieldGet(this, _Kernel_objects, "f"),
9646
+ debug: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).bind(this),
9647
+ isVisibleType: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_isVisibleType).bind(this),
9648
+ findSymbol: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findSymbol).bind(this),
9649
+ lookupType: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForFqn).bind(this)
9650
+ }, "f");
9623
9651
  }
9624
9652
  load(req) {
9625
- return this._debugTime((() => this._load(req)), `load(${JSON.stringify(req, null, 2)})`);
9626
- }
9627
- _load(req) {
9628
- var _a, _b, _c;
9629
- this._debug("load", req);
9630
- if ("assembly" in req) {
9631
- throw new JsiiFault('`assembly` field is deprecated for "load", use `name`, `version` and `tarball` instead');
9632
- }
9633
- const pkgname = req.name;
9634
- const pkgver = req.version;
9635
- const packageDir = this._getPackageDir(pkgname);
9636
- if (fs.pathExistsSync(packageDir)) {
9637
- const epkg = fs.readJsonSync(path.join(packageDir, "package.json"));
9638
- if (epkg.version !== pkgver) {
9639
- throw new JsiiFault(`Multiple versions ${pkgver} and ${epkg.version} of the ` + `package '${pkgname}' cannot be loaded together since this is unsupported by ` + "some runtime environments");
9640
- }
9641
- this._debug("look up already-loaded assembly", pkgname);
9642
- const assm = this.assemblies.get(pkgname);
9643
- return {
9644
- assembly: assm.metadata.name,
9645
- types: Object.keys((_a = assm.metadata.types) !== null && _a !== void 0 ? _a : {}).length
9646
- };
9647
- }
9648
- const originalUmask = process.umask(18);
9649
- try {
9650
- const {cache} = this._debugTime((() => tar.extract(req.tarball, packageDir, {
9651
- strict: true,
9652
- strip: 1,
9653
- unlink: true
9654
- }, req.name, req.version)), `tar.extract(${req.tarball}) => ${packageDir}`);
9655
- if (cache != null) {
9656
- this._debug(`Package cache enabled, extraction resulted in a cache ${cache}`);
9657
- }
9658
- } finally {
9659
- process.umask(originalUmask);
9660
- }
9661
- let assmSpec;
9662
- try {
9663
- assmSpec = this._debugTime((() => (0, spec_1.loadAssemblyFromPath)(packageDir)), `loadAssemblyFromPath(${packageDir})`);
9664
- } catch (e) {
9665
- throw new JsiiFault(`Error for package tarball ${req.tarball}: ${e.message}`);
9666
- }
9667
- const closure = this._debugTime((() => this.require(packageDir)), `require(${packageDir})`);
9668
- const assm = new Assembly(assmSpec, closure);
9669
- this._debugTime((() => this._addAssembly(assm)), `registerAssembly({ name: ${assm.metadata.name}, types: ${Object.keys((_b = assm.metadata.types) !== null && _b !== void 0 ? _b : {}).length} })`);
9670
- return {
9671
- assembly: assmSpec.name,
9672
- types: Object.keys((_c = assmSpec.types) !== null && _c !== void 0 ? _c : {}).length
9673
- };
9653
+ return __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debugTime).call(this, (() => __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_load).call(this, req)), `load(${JSON.stringify(req, null, 2)})`);
9674
9654
  }
9675
9655
  getBinScriptCommand(req) {
9676
- return this._getBinScriptCommand(req);
9656
+ return __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_getBinScriptCommand).call(this, req);
9677
9657
  }
9678
9658
  invokeBinScript(req) {
9679
- const {command, args, env} = this._getBinScriptCommand(req);
9659
+ const {command, args, env} = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_getBinScriptCommand).call(this, req);
9680
9660
  const result = cp.spawnSync(command, args, {
9681
9661
  encoding: "utf-8",
9682
9662
  env,
@@ -9690,27 +9670,27 @@ var __webpack_modules__ = {
9690
9670
  };
9691
9671
  }
9692
9672
  create(req) {
9693
- return this._create(req);
9673
+ return __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_create).call(this, req);
9694
9674
  }
9695
9675
  del(req) {
9696
9676
  const {objref} = req;
9697
- this._debug("del", objref);
9698
- this.objects.deleteObject(objref);
9677
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "del", objref);
9678
+ __classPrivateFieldGet(this, _Kernel_objects, "f").deleteObject(objref);
9699
9679
  return {};
9700
9680
  }
9701
9681
  sget(req) {
9702
9682
  const {fqn, property} = req;
9703
9683
  const symbol = `${fqn}.${property}`;
9704
- this._debug("sget", symbol);
9705
- const ti = this._typeInfoForProperty(property, fqn);
9684
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "sget", symbol);
9685
+ const ti = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForProperty).call(this, property, fqn);
9706
9686
  if (!ti.static) {
9707
9687
  throw new JsiiFault(`property ${symbol} is not static`);
9708
9688
  }
9709
- const prototype = this._findSymbol(fqn);
9710
- const value = this._ensureSync(`property ${property}`, (() => prototype[property]));
9711
- this._debug("value:", value);
9712
- const ret = this._fromSandbox(value, ti, `of static property ${symbol}`);
9713
- this._debug("ret", ret);
9689
+ const prototype = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findSymbol).call(this, fqn);
9690
+ const value = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_ensureSync).call(this, `property ${property}`, (() => prototype[property]));
9691
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "value:", value);
9692
+ const ret = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandbox).call(this, value, ti, `of static property ${symbol}`);
9693
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "ret", ret);
9714
9694
  return {
9715
9695
  value: ret
9716
9696
  };
@@ -9718,57 +9698,57 @@ var __webpack_modules__ = {
9718
9698
  sset(req) {
9719
9699
  const {fqn, property, value} = req;
9720
9700
  const symbol = `${fqn}.${property}`;
9721
- this._debug("sset", symbol);
9722
- const ti = this._typeInfoForProperty(property, fqn);
9701
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "sset", symbol);
9702
+ const ti = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForProperty).call(this, property, fqn);
9723
9703
  if (!ti.static) {
9724
9704
  throw new JsiiFault(`property ${symbol} is not static`);
9725
9705
  }
9726
9706
  if (ti.immutable) {
9727
9707
  throw new JsiiFault(`static property ${symbol} is readonly`);
9728
9708
  }
9729
- const prototype = this._findSymbol(fqn);
9730
- this._ensureSync(`property ${property}`, (() => prototype[property] = this._toSandbox(value, ti, `assigned to static property ${symbol}`)));
9709
+ const prototype = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findSymbol).call(this, fqn);
9710
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_ensureSync).call(this, `property ${property}`, (() => prototype[property] = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandbox).call(this, value, ti, `assigned to static property ${symbol}`)));
9731
9711
  return {};
9732
9712
  }
9733
9713
  get(req) {
9734
9714
  const {objref, property} = req;
9735
- this._debug("get", objref, property);
9736
- const {instance, fqn, interfaces} = this.objects.findObject(objref);
9737
- const ti = this._typeInfoForProperty(property, fqn, interfaces);
9738
- const propertyToGet = this._findPropertyTarget(instance, property);
9739
- const value = this._ensureSync(`property '${objref[api_1.TOKEN_REF]}.${propertyToGet}'`, (() => instance[propertyToGet]));
9740
- this._debug("value:", value);
9741
- const ret = this._fromSandbox(value, ti, `of property ${fqn}.${property}`);
9742
- this._debug("ret:", ret);
9715
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "get", objref, property);
9716
+ const {instance, fqn, interfaces} = __classPrivateFieldGet(this, _Kernel_objects, "f").findObject(objref);
9717
+ const ti = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForProperty).call(this, property, fqn, interfaces);
9718
+ const propertyToGet = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findPropertyTarget).call(this, instance, property);
9719
+ const value = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_ensureSync).call(this, `property '${objref[api_1.TOKEN_REF]}.${propertyToGet}'`, (() => instance[propertyToGet]));
9720
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "value:", value);
9721
+ const ret = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandbox).call(this, value, ti, `of property ${fqn}.${property}`);
9722
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "ret:", ret);
9743
9723
  return {
9744
9724
  value: ret
9745
9725
  };
9746
9726
  }
9747
9727
  set(req) {
9748
9728
  const {objref, property, value} = req;
9749
- this._debug("set", objref, property, value);
9750
- const {instance, fqn, interfaces} = this.objects.findObject(objref);
9751
- const propInfo = this._typeInfoForProperty(req.property, fqn, interfaces);
9729
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "set", objref, property, value);
9730
+ const {instance, fqn, interfaces} = __classPrivateFieldGet(this, _Kernel_objects, "f").findObject(objref);
9731
+ const propInfo = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForProperty).call(this, req.property, fqn, interfaces);
9752
9732
  if (propInfo.immutable) {
9753
9733
  throw new JsiiFault(`Cannot set value of immutable property ${req.property} to ${req.value}`);
9754
9734
  }
9755
- const propertyToSet = this._findPropertyTarget(instance, property);
9756
- this._ensureSync(`property '${objref[api_1.TOKEN_REF]}.${propertyToSet}'`, (() => instance[propertyToSet] = this._toSandbox(value, propInfo, `assigned to property ${fqn}.${property}`)));
9735
+ const propertyToSet = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findPropertyTarget).call(this, instance, property);
9736
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_ensureSync).call(this, `property '${objref[api_1.TOKEN_REF]}.${propertyToSet}'`, (() => instance[propertyToSet] = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandbox).call(this, value, propInfo, `assigned to property ${fqn}.${property}`)));
9757
9737
  return {};
9758
9738
  }
9759
9739
  invoke(req) {
9760
9740
  var _a, _b;
9761
9741
  const {objref, method} = req;
9762
9742
  const args = (_a = req.args) !== null && _a !== void 0 ? _a : [];
9763
- this._debug("invoke", objref, method, args);
9764
- const {ti, obj, fn} = this._findInvokeTarget(objref, method, args);
9743
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "invoke", objref, method, args);
9744
+ const {ti, obj, fn} = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findInvokeTarget).call(this, objref, method, args);
9765
9745
  if (ti.async) {
9766
9746
  throw new JsiiFault(`${method} is an async method, use "begin" instead`);
9767
9747
  }
9768
- const fqn = (0, objects_1.jsiiTypeFqn)(obj);
9769
- const ret = this._ensureSync(`method '${objref[api_1.TOKEN_REF]}.${method}'`, (() => fn.apply(obj, this._toSandboxValues(args, `method ${fqn ? `${fqn}#` : ""}${method}`, ti.parameters))));
9770
- const result = this._fromSandbox(ret, (_b = ti.returns) !== null && _b !== void 0 ? _b : "void", `returned by method ${fqn ? `${fqn}#` : ""}${method}`);
9771
- this._debug("invoke result", result);
9748
+ const fqn = (0, objects_1.jsiiTypeFqn)(obj, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_isVisibleType).bind(this));
9749
+ const ret = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_ensureSync).call(this, `method '${objref[api_1.TOKEN_REF]}.${method}'`, (() => fn.apply(obj, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandboxValues).call(this, args, `method ${fqn ? `${fqn}#` : ""}${method}`, ti.parameters))));
9750
+ const result = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandbox).call(this, ret, (_b = ti.returns) !== null && _b !== void 0 ? _b : "void", `returned by method ${fqn ? `${fqn}#` : ""}${method}`);
9751
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "invoke result", result);
9772
9752
  return {
9773
9753
  result
9774
9754
  };
@@ -9777,39 +9757,39 @@ var __webpack_modules__ = {
9777
9757
  var _a, _b;
9778
9758
  const {fqn, method} = req;
9779
9759
  const args = (_a = req.args) !== null && _a !== void 0 ? _a : [];
9780
- this._debug("sinvoke", fqn, method, args);
9781
- const ti = this._typeInfoForMethod(method, fqn);
9760
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "sinvoke", fqn, method, args);
9761
+ const ti = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForMethod).call(this, method, fqn);
9782
9762
  if (!ti.static) {
9783
9763
  throw new JsiiFault(`${fqn}.${method} is not a static method`);
9784
9764
  }
9785
9765
  if (ti.async) {
9786
9766
  throw new JsiiFault(`${method} is an async method, use "begin" instead`);
9787
9767
  }
9788
- const prototype = this._findSymbol(fqn);
9768
+ const prototype = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findSymbol).call(this, fqn);
9789
9769
  const fn = prototype[method];
9790
- const ret = this._ensureSync(`method '${fqn}.${method}'`, (() => fn.apply(prototype, this._toSandboxValues(args, `static method ${fqn}.${method}`, ti.parameters))));
9791
- this._debug("method returned:", ret);
9770
+ const ret = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_ensureSync).call(this, `method '${fqn}.${method}'`, (() => fn.apply(prototype, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandboxValues).call(this, args, `static method ${fqn}.${method}`, ti.parameters))));
9771
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "method returned:", ret);
9792
9772
  return {
9793
- result: this._fromSandbox(ret, (_b = ti.returns) !== null && _b !== void 0 ? _b : "void", `returned by static method ${fqn}.${method}`)
9773
+ result: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandbox).call(this, ret, (_b = ti.returns) !== null && _b !== void 0 ? _b : "void", `returned by static method ${fqn}.${method}`)
9794
9774
  };
9795
9775
  }
9796
9776
  begin(req) {
9797
9777
  var _a;
9798
9778
  const {objref, method} = req;
9799
9779
  const args = (_a = req.args) !== null && _a !== void 0 ? _a : [];
9800
- this._debug("begin", objref, method, args);
9801
- if (this.syncInProgress) {
9802
- throw new JsiiFault(`Cannot invoke async method '${req.objref[api_1.TOKEN_REF]}.${req.method}' while sync ${this.syncInProgress} is being processed`);
9780
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "begin", objref, method, args);
9781
+ if (__classPrivateFieldGet(this, _Kernel_syncInProgress, "f")) {
9782
+ throw new JsiiFault(`Cannot invoke async method '${req.objref[api_1.TOKEN_REF]}.${req.method}' while sync ${__classPrivateFieldGet(this, _Kernel_syncInProgress, "f")} is being processed`);
9803
9783
  }
9804
- const {ti, obj, fn} = this._findInvokeTarget(objref, method, args);
9784
+ const {ti, obj, fn} = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findInvokeTarget).call(this, objref, method, args);
9805
9785
  if (!ti.async) {
9806
9786
  throw new JsiiFault(`Method ${method} is expected to be an async method`);
9807
9787
  }
9808
- const fqn = (0, objects_1.jsiiTypeFqn)(obj);
9809
- const promise = fn.apply(obj, this._toSandboxValues(args, `async method ${fqn ? `${fqn}#` : ""}${method}`, ti.parameters));
9788
+ const fqn = (0, objects_1.jsiiTypeFqn)(obj, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_isVisibleType).bind(this));
9789
+ const promise = fn.apply(obj, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandboxValues).call(this, args, `async method ${fqn ? `${fqn}#` : ""}${method}`, ti.parameters));
9810
9790
  promise.catch((_ => undefined));
9811
- const prid = this._makeprid();
9812
- this.promises.set(prid, {
9791
+ const prid = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_makeprid).call(this);
9792
+ __classPrivateFieldGet(this, _Kernel_promises, "f").set(prid, {
9813
9793
  promise,
9814
9794
  method: ti
9815
9795
  });
@@ -9820,8 +9800,8 @@ var __webpack_modules__ = {
9820
9800
  async end(req) {
9821
9801
  var _a;
9822
9802
  const {promiseid} = req;
9823
- this._debug("end", promiseid);
9824
- const storedPromise = this.promises.get(promiseid);
9803
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "end", promiseid);
9804
+ const storedPromise = __classPrivateFieldGet(this, _Kernel_promises, "f").get(promiseid);
9825
9805
  if (storedPromise == null) {
9826
9806
  throw new JsiiFault(`Cannot find promise with ID: ${promiseid}`);
9827
9807
  }
@@ -9829,9 +9809,9 @@ var __webpack_modules__ = {
9829
9809
  let result;
9830
9810
  try {
9831
9811
  result = await promise;
9832
- this._debug("promise result:", result);
9812
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "promise result:", result);
9833
9813
  } catch (e) {
9834
- this._debug("promise error:", e);
9814
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "promise error:", e);
9835
9815
  if (e.name === "@jsii/kernel.Fault") {
9836
9816
  if (e instanceof JsiiFault) {
9837
9817
  throw e;
@@ -9844,14 +9824,14 @@ var __webpack_modules__ = {
9844
9824
  throw new RuntimeError(e);
9845
9825
  }
9846
9826
  return {
9847
- result: this._fromSandbox(result, (_a = method.returns) !== null && _a !== void 0 ? _a : "void", `returned by async method ${method.name}`)
9827
+ result: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandbox).call(this, result, (_a = method.returns) !== null && _a !== void 0 ? _a : "void", `returned by async method ${method.name}`)
9848
9828
  };
9849
9829
  }
9850
9830
  callbacks(_req) {
9851
- this._debug("callbacks");
9852
- const ret = Array.from(this.cbs.entries()).map((([cbid, cb]) => {
9853
- this.waiting.set(cbid, cb);
9854
- this.cbs.delete(cbid);
9831
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "callbacks");
9832
+ const ret = Array.from(__classPrivateFieldGet(this, _Kernel_cbs, "f").entries()).map((([cbid, cb]) => {
9833
+ __classPrivateFieldGet(this, _Kernel_waiting, "f").set(cbid, cb);
9834
+ __classPrivateFieldGet(this, _Kernel_cbs, "f").delete(cbid);
9855
9835
  const callback = {
9856
9836
  cbid,
9857
9837
  cookie: cb.override.cookie,
@@ -9870,28 +9850,28 @@ var __webpack_modules__ = {
9870
9850
  complete(req) {
9871
9851
  var _a;
9872
9852
  const {cbid, err, result, name} = req;
9873
- this._debug("complete", cbid, err, result);
9874
- const cb = this.waiting.get(cbid);
9853
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "complete", cbid, err, result);
9854
+ const cb = __classPrivateFieldGet(this, _Kernel_waiting, "f").get(cbid);
9875
9855
  if (!cb) {
9876
9856
  throw new JsiiFault(`Callback ${cbid} not found`);
9877
9857
  }
9878
9858
  if (err) {
9879
- this._debug("completed with error:", err);
9859
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "completed with error:", err);
9880
9860
  cb.fail(name === "@jsii/kernel.Fault" ? new JsiiFault(err) : new RuntimeError(err));
9881
9861
  } else {
9882
- const sandoxResult = this._toSandbox(result, (_a = cb.expectedReturnType) !== null && _a !== void 0 ? _a : "void", `returned by callback ${cb.toString()}`);
9883
- this._debug("completed with result:", sandoxResult);
9862
+ const sandoxResult = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandbox).call(this, result, (_a = cb.expectedReturnType) !== null && _a !== void 0 ? _a : "void", `returned by callback ${cb.toString()}`);
9863
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "completed with result:", sandoxResult);
9884
9864
  cb.succeed(sandoxResult);
9885
9865
  }
9886
- this.waiting.delete(cbid);
9866
+ __classPrivateFieldGet(this, _Kernel_waiting, "f").delete(cbid);
9887
9867
  return {
9888
9868
  cbid
9889
9869
  };
9890
9870
  }
9891
9871
  naming(req) {
9892
9872
  const assemblyName = req.assembly;
9893
- this._debug("naming", assemblyName);
9894
- const assembly = this._assemblyFor(assemblyName);
9873
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "naming", assemblyName);
9874
+ const assembly = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_assemblyFor).call(this, assemblyName);
9895
9875
  const targets = assembly.metadata.targets;
9896
9876
  if (!targets) {
9897
9877
  throw new JsiiFault(`Unexpected - "targets" for ${assemblyName} is missing!`);
@@ -9902,511 +9882,545 @@ var __webpack_modules__ = {
9902
9882
  }
9903
9883
  stats(_req) {
9904
9884
  return {
9905
- objectCount: this.objects.count
9885
+ objectCount: __classPrivateFieldGet(this, _Kernel_objects, "f").count
9906
9886
  };
9907
9887
  }
9908
- _addAssembly(assm) {
9909
- var _a;
9910
- this.assemblies.set(assm.metadata.name, assm);
9911
- for (const fqn of Object.keys((_a = assm.metadata.types) !== null && _a !== void 0 ? _a : {})) {
9912
- const typedef = assm.metadata.types[fqn];
9913
- switch (typedef.kind) {
9914
- case spec.TypeKind.Interface:
9915
- continue;
9916
-
9917
- case spec.TypeKind.Class:
9918
- case spec.TypeKind.Enum:
9919
- const constructor = this._findSymbol(fqn);
9920
- (0, objects_1.tagJsiiConstructor)(constructor, fqn);
9921
- }
9922
- }
9888
+ }
9889
+ exports.Kernel = Kernel;
9890
+ _Kernel_assemblies = new WeakMap, _Kernel_objects = new WeakMap, _Kernel_cbs = new WeakMap,
9891
+ _Kernel_waiting = new WeakMap, _Kernel_promises = new WeakMap, _Kernel_serializerHost = new WeakMap,
9892
+ _Kernel_nextid = new WeakMap, _Kernel_syncInProgress = new WeakMap, _Kernel_installDir = new WeakMap,
9893
+ _Kernel_require = new WeakMap, _Kernel_instances = new WeakSet, _Kernel_load = function _Kernel_load(req) {
9894
+ var _a, _b, _c;
9895
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "load", req);
9896
+ if ("assembly" in req) {
9897
+ throw new JsiiFault('`assembly` field is deprecated for "load", use `name`, `version` and `tarball` instead');
9898
+ }
9899
+ const pkgname = req.name;
9900
+ const pkgver = req.version;
9901
+ const packageDir = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_getPackageDir).call(this, pkgname);
9902
+ if (fs.pathExistsSync(packageDir)) {
9903
+ const epkg = fs.readJsonSync(path.join(packageDir, "package.json"));
9904
+ if (epkg.version !== pkgver) {
9905
+ throw new JsiiFault(`Multiple versions ${pkgver} and ${epkg.version} of the ` + `package '${pkgname}' cannot be loaded together since this is unsupported by ` + "some runtime environments");
9906
+ }
9907
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "look up already-loaded assembly", pkgname);
9908
+ const assm = __classPrivateFieldGet(this, _Kernel_assemblies, "f").get(pkgname);
9909
+ return {
9910
+ assembly: assm.metadata.name,
9911
+ types: Object.keys((_a = assm.metadata.types) !== null && _a !== void 0 ? _a : {}).length
9912
+ };
9923
9913
  }
9924
- _findCtor(fqn, args) {
9925
- if (fqn === wire.EMPTY_OBJECT_FQN) {
9926
- return {
9927
- ctor: Object
9928
- };
9914
+ const originalUmask = process.umask(18);
9915
+ try {
9916
+ const {cache} = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debugTime).call(this, (() => tar.extract(req.tarball, packageDir, {
9917
+ strict: true,
9918
+ strip: 1,
9919
+ unlink: true
9920
+ }, req.name, req.version)), `tar.extract(${req.tarball}) => ${packageDir}`);
9921
+ if (cache != null) {
9922
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, `Package cache enabled, extraction resulted in a cache ${cache}`);
9929
9923
  }
9930
- const typeinfo = this._typeInfoForFqn(fqn);
9931
- switch (typeinfo.kind) {
9932
- case spec.TypeKind.Class:
9933
- const classType = typeinfo;
9934
- this._validateMethodArguments(classType.initializer, args);
9935
- return {
9936
- ctor: this._findSymbol(fqn),
9937
- parameters: classType.initializer && classType.initializer.parameters
9938
- };
9939
-
9924
+ } finally {
9925
+ process.umask(originalUmask);
9926
+ }
9927
+ let assmSpec;
9928
+ try {
9929
+ assmSpec = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debugTime).call(this, (() => spec.loadAssemblyFromPath(packageDir, this.validateAssemblies)), `loadAssemblyFromPath(${packageDir})`);
9930
+ } catch (e) {
9931
+ throw new JsiiFault(`Error for package tarball ${req.tarball}: ${e.message}`);
9932
+ }
9933
+ const entryPoint = __classPrivateFieldGet(this, _Kernel_require, "f").resolve(assmSpec.name, {
9934
+ paths: [ __classPrivateFieldGet(this, _Kernel_installDir, "f") ]
9935
+ });
9936
+ const closure = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debugTime).call(this, (() => __classPrivateFieldGet(this, _Kernel_require, "f")(entryPoint)), `require(${entryPoint})`);
9937
+ const assm = new Assembly(assmSpec, closure);
9938
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debugTime).call(this, (() => __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_addAssembly).call(this, assm)), `registerAssembly({ name: ${assm.metadata.name}, types: ${Object.keys((_b = assm.metadata.types) !== null && _b !== void 0 ? _b : {}).length} })`);
9939
+ return {
9940
+ assembly: assmSpec.name,
9941
+ types: Object.keys((_c = assmSpec.types) !== null && _c !== void 0 ? _c : {}).length
9942
+ };
9943
+ }, _Kernel_addAssembly = function _Kernel_addAssembly(assm) {
9944
+ var _a;
9945
+ __classPrivateFieldGet(this, _Kernel_assemblies, "f").set(assm.metadata.name, assm);
9946
+ const jsiiVersion = assm.metadata.jsiiVersion.split(" ", 1)[0];
9947
+ const [jsiiMajor, jsiiMinor, _jsiiPatch, ..._rest] = jsiiVersion.split(".").map((str => parseInt(str, 10)));
9948
+ if (jsiiVersion === "0.0.0" || jsiiMajor > 1 || jsiiMajor === 1 && jsiiMinor >= 19) {
9949
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "Using compiler-woven runtime type information!");
9950
+ return;
9951
+ }
9952
+ for (const fqn of Object.keys((_a = assm.metadata.types) !== null && _a !== void 0 ? _a : {})) {
9953
+ const typedef = assm.metadata.types[fqn];
9954
+ switch (typedef.kind) {
9940
9955
  case spec.TypeKind.Interface:
9941
- throw new JsiiFault(`Cannot create an object with an FQN of an interface: ${fqn}`);
9956
+ continue;
9942
9957
 
9943
- default:
9944
- throw new JsiiFault(`Unexpected FQN kind: ${fqn}`);
9958
+ case spec.TypeKind.Class:
9959
+ case spec.TypeKind.Enum:
9960
+ const constructor = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findSymbol).call(this, fqn);
9961
+ (0, objects_1.tagJsiiConstructor)(constructor, fqn);
9945
9962
  }
9946
9963
  }
9947
- _getPackageDir(pkgname) {
9948
- if (!this.installDir) {
9949
- this.installDir = fs.mkdtempSync(path.join(os.tmpdir(), "jsii-kernel-"));
9950
- this.require = (0, module_1.createRequire)(this.installDir);
9951
- fs.mkdirpSync(path.join(this.installDir, "node_modules"));
9952
- this._debug("creating jsii-kernel modules workdir:", this.installDir);
9953
- onExit.removeSync(this.installDir);
9954
- }
9955
- return path.join(this.installDir, "node_modules", pkgname);
9964
+ }, _Kernel_findCtor = function _Kernel_findCtor(fqn, args) {
9965
+ if (fqn === wire.EMPTY_OBJECT_FQN) {
9966
+ return {
9967
+ ctor: Object
9968
+ };
9956
9969
  }
9957
- _create(req) {
9958
- var _a, _b;
9959
- this._debug("create", req);
9960
- const {fqn, interfaces, overrides} = req;
9961
- const requestArgs = (_a = req.args) !== null && _a !== void 0 ? _a : [];
9962
- const ctorResult = this._findCtor(fqn, requestArgs);
9963
- const ctor = ctorResult.ctor;
9964
- const obj = new ctor(...this._toSandboxValues(requestArgs, `new ${fqn}`, ctorResult.parameters));
9965
- const objref = this.objects.registerObject(obj, fqn, (_b = req.interfaces) !== null && _b !== void 0 ? _b : []);
9966
- if (overrides) {
9967
- this._debug("overrides", overrides);
9968
- const overrideTypeErrorMessage = 'Override can either be "method" or "property"';
9969
- const methods = new Set;
9970
- const properties = new Set;
9971
- for (const override of overrides) {
9970
+ const typeinfo = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForFqn).call(this, fqn);
9971
+ switch (typeinfo.kind) {
9972
+ case spec.TypeKind.Class:
9973
+ const classType = typeinfo;
9974
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_validateMethodArguments).call(this, classType.initializer, args);
9975
+ return {
9976
+ ctor: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findSymbol).call(this, fqn),
9977
+ parameters: classType.initializer && classType.initializer.parameters
9978
+ };
9979
+
9980
+ case spec.TypeKind.Interface:
9981
+ throw new JsiiFault(`Cannot create an object with an FQN of an interface: ${fqn}`);
9982
+
9983
+ default:
9984
+ throw new JsiiFault(`Unexpected FQN kind: ${fqn}`);
9985
+ }
9986
+ }, _Kernel_getPackageDir = function _Kernel_getPackageDir(pkgname) {
9987
+ if (!__classPrivateFieldGet(this, _Kernel_installDir, "f")) {
9988
+ __classPrivateFieldSet(this, _Kernel_installDir, fs.mkdtempSync(path.join(os.tmpdir(), "jsii-kernel-")), "f");
9989
+ __classPrivateFieldSet(this, _Kernel_require, (0, module_1.createRequire)(__classPrivateFieldGet(this, _Kernel_installDir, "f")), "f");
9990
+ fs.mkdirpSync(path.join(__classPrivateFieldGet(this, _Kernel_installDir, "f"), "node_modules"));
9991
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "creating jsii-kernel modules workdir:", __classPrivateFieldGet(this, _Kernel_installDir, "f"));
9992
+ onExit.removeSync(__classPrivateFieldGet(this, _Kernel_installDir, "f"));
9993
+ }
9994
+ return path.join(__classPrivateFieldGet(this, _Kernel_installDir, "f"), "node_modules", pkgname);
9995
+ }, _Kernel_create = function _Kernel_create(req) {
9996
+ var _a, _b;
9997
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "create", req);
9998
+ const {fqn, interfaces, overrides} = req;
9999
+ const requestArgs = (_a = req.args) !== null && _a !== void 0 ? _a : [];
10000
+ const ctorResult = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_findCtor).call(this, fqn, requestArgs);
10001
+ const ctor = ctorResult.ctor;
10002
+ const obj = new ctor(...__classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandboxValues).call(this, requestArgs, `new ${fqn}`, ctorResult.parameters));
10003
+ const objref = __classPrivateFieldGet(this, _Kernel_objects, "f").registerObject(obj, fqn, (_b = req.interfaces) !== null && _b !== void 0 ? _b : []);
10004
+ if (overrides) {
10005
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "overrides", overrides);
10006
+ const overrideTypeErrorMessage = 'Override can either be "method" or "property"';
10007
+ const methods = new Set;
10008
+ const properties = new Set;
10009
+ for (const override of overrides) {
10010
+ if (api.isMethodOverride(override)) {
10011
+ if (api.isPropertyOverride(override)) {
10012
+ throw new JsiiFault(overrideTypeErrorMessage);
10013
+ }
10014
+ if (methods.has(override.method)) {
10015
+ throw new JsiiFault(`Duplicate override for method '${override.method}'`);
10016
+ }
10017
+ methods.add(override.method);
10018
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_applyMethodOverride).call(this, obj, objref, fqn, interfaces, override);
10019
+ } else if (api.isPropertyOverride(override)) {
9972
10020
  if (api.isMethodOverride(override)) {
9973
- if (api.isPropertyOverride(override)) {
9974
- throw new JsiiFault(overrideTypeErrorMessage);
9975
- }
9976
- if (methods.has(override.method)) {
9977
- throw new JsiiFault(`Duplicate override for method '${override.method}'`);
9978
- }
9979
- methods.add(override.method);
9980
- this._applyMethodOverride(obj, objref, fqn, interfaces, override);
9981
- } else if (api.isPropertyOverride(override)) {
9982
- if (api.isMethodOverride(override)) {
9983
- throw new JsiiFault(overrideTypeErrorMessage);
9984
- }
9985
- if (properties.has(override.property)) {
9986
- throw new JsiiFault(`Duplicate override for property '${override.property}'`);
9987
- }
9988
- properties.add(override.property);
9989
- this._applyPropertyOverride(obj, objref, fqn, interfaces, override);
9990
- } else {
9991
10021
  throw new JsiiFault(overrideTypeErrorMessage);
9992
10022
  }
10023
+ if (properties.has(override.property)) {
10024
+ throw new JsiiFault(`Duplicate override for property '${override.property}'`);
10025
+ }
10026
+ properties.add(override.property);
10027
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_applyPropertyOverride).call(this, obj, objref, fqn, interfaces, override);
10028
+ } else {
10029
+ throw new JsiiFault(overrideTypeErrorMessage);
9993
10030
  }
9994
10031
  }
9995
- return objref;
9996
10032
  }
9997
- _getSuperPropertyName(name) {
9998
- return `$jsii$super$${name}$`;
10033
+ return objref;
10034
+ }, _Kernel_getSuperPropertyName = function _Kernel_getSuperPropertyName(name) {
10035
+ return `$jsii$super$${name}$`;
10036
+ }, _Kernel_applyPropertyOverride = function _Kernel_applyPropertyOverride(obj, objref, typeFqn, interfaces, override) {
10037
+ if (__classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForMethod).call(this, override.property, typeFqn, interfaces)) {
10038
+ throw new JsiiFault(`Trying to override method '${override.property}' as a property`);
10039
+ }
10040
+ let propInfo = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForProperty).call(this, override.property, typeFqn, interfaces);
10041
+ if (!propInfo && override.property in obj) {
10042
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, `Skipping override of private property ${override.property}`);
10043
+ return;
10044
+ }
10045
+ if (!propInfo) {
10046
+ propInfo = {
10047
+ name: override.property,
10048
+ type: spec.CANONICAL_ANY
10049
+ };
9999
10050
  }
10000
- _applyPropertyOverride(obj, objref, typeFqn, interfaces, override) {
10001
- if (this._tryTypeInfoForMethod(override.property, typeFqn, interfaces)) {
10002
- throw new JsiiFault(`Trying to override method '${override.property}' as a property`);
10051
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_defineOverridenProperty).call(this, obj, objref, override, propInfo);
10052
+ }, _Kernel_defineOverridenProperty = function _Kernel_defineOverridenProperty(obj, objref, override, propInfo) {
10053
+ var _a;
10054
+ const propertyName = override.property;
10055
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "apply override", propertyName);
10056
+ const prev = (_a = getPropertyDescriptor(obj, propertyName)) !== null && _a !== void 0 ? _a : {
10057
+ value: obj[propertyName],
10058
+ writable: true,
10059
+ enumerable: true,
10060
+ configurable: true
10061
+ };
10062
+ const prevEnumerable = prev.enumerable;
10063
+ prev.enumerable = false;
10064
+ Object.defineProperty(obj, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_getSuperPropertyName).call(this, propertyName), prev);
10065
+ Object.defineProperty(obj, propertyName, {
10066
+ enumerable: prevEnumerable,
10067
+ configurable: prev.configurable,
10068
+ get: () => {
10069
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "virtual get", objref, propertyName, {
10070
+ cookie: override.cookie
10071
+ });
10072
+ const result = this.callbackHandler({
10073
+ cookie: override.cookie,
10074
+ cbid: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_makecbid).call(this),
10075
+ get: {
10076
+ objref,
10077
+ property: propertyName
10078
+ }
10079
+ });
10080
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "callback returned", result);
10081
+ return __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandbox).call(this, result, propInfo, `returned by callback property ${propertyName}`);
10082
+ },
10083
+ set: value => {
10084
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "virtual set", objref, propertyName, {
10085
+ cookie: override.cookie
10086
+ });
10087
+ this.callbackHandler({
10088
+ cookie: override.cookie,
10089
+ cbid: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_makecbid).call(this),
10090
+ set: {
10091
+ objref,
10092
+ property: propertyName,
10093
+ value: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandbox).call(this, value, propInfo, `assigned to callback property ${propertyName}`)
10094
+ }
10095
+ });
10003
10096
  }
10004
- let propInfo = this._tryTypeInfoForProperty(override.property, typeFqn, interfaces);
10005
- if (!propInfo && override.property in obj) {
10006
- this._debug(`Skipping override of private property ${override.property}`);
10007
- return;
10097
+ });
10098
+ function getPropertyDescriptor(obj, propertyName) {
10099
+ const direct = Object.getOwnPropertyDescriptor(obj, propertyName);
10100
+ if (direct != null) {
10101
+ return direct;
10008
10102
  }
10009
- if (!propInfo) {
10010
- propInfo = {
10011
- name: override.property,
10012
- type: spec.CANONICAL_ANY
10013
- };
10103
+ const proto = Object.getPrototypeOf(obj);
10104
+ if (proto == null && proto !== Object.prototype) {
10105
+ return undefined;
10014
10106
  }
10015
- this._defineOverridenProperty(obj, objref, override, propInfo);
10107
+ return getPropertyDescriptor(proto, propertyName);
10016
10108
  }
10017
- _defineOverridenProperty(obj, objref, override, propInfo) {
10018
- var _a;
10019
- const propertyName = override.property;
10020
- this._debug("apply override", propertyName);
10021
- const prev = (_a = getPropertyDescriptor(obj, propertyName)) !== null && _a !== void 0 ? _a : {
10022
- value: obj[propertyName],
10023
- writable: true,
10024
- enumerable: true,
10025
- configurable: true
10109
+ }, _Kernel_applyMethodOverride = function _Kernel_applyMethodOverride(obj, objref, typeFqn, interfaces, override) {
10110
+ if (__classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForProperty).call(this, override.method, typeFqn, interfaces)) {
10111
+ throw new JsiiFault(`Trying to override property '${override.method}' as a method`);
10112
+ }
10113
+ let methodInfo = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForMethod).call(this, override.method, typeFqn, interfaces);
10114
+ if (!methodInfo && obj[override.method]) {
10115
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, `Skipping override of private method ${override.method}`);
10116
+ return;
10117
+ }
10118
+ if (!methodInfo) {
10119
+ methodInfo = {
10120
+ name: override.method,
10121
+ returns: {
10122
+ type: spec.CANONICAL_ANY
10123
+ },
10124
+ parameters: [ {
10125
+ name: "args",
10126
+ type: spec.CANONICAL_ANY,
10127
+ variadic: true
10128
+ } ],
10129
+ variadic: true
10026
10130
  };
10027
- const prevEnumerable = prev.enumerable;
10028
- prev.enumerable = false;
10029
- Object.defineProperty(obj, this._getSuperPropertyName(propertyName), prev);
10030
- Object.defineProperty(obj, propertyName, {
10031
- enumerable: prevEnumerable,
10032
- configurable: prev.configurable,
10033
- get: () => {
10034
- this._debug("virtual get", objref, propertyName, {
10035
- cookie: override.cookie
10036
- });
10037
- const result = this.callbackHandler({
10038
- cookie: override.cookie,
10039
- cbid: this._makecbid(),
10040
- get: {
10131
+ }
10132
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_defineOverridenMethod).call(this, obj, objref, override, methodInfo);
10133
+ }, _Kernel_defineOverridenMethod = function _Kernel_defineOverridenMethod(obj, objref, override, methodInfo) {
10134
+ const methodName = override.method;
10135
+ const fqn = (0, objects_1.jsiiTypeFqn)(obj, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_isVisibleType).bind(this));
10136
+ const methodContext = `${methodInfo.async ? "async " : ""}method${fqn ? `${fqn}#` : methodName}`;
10137
+ if (methodInfo.async) {
10138
+ Object.defineProperty(obj, methodName, {
10139
+ enumerable: false,
10140
+ configurable: false,
10141
+ writable: false,
10142
+ value: (...methodArgs) => {
10143
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "invoke async method override", override);
10144
+ const args = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandboxValues).call(this, methodArgs, methodContext, methodInfo.parameters);
10145
+ return new Promise(((succeed, fail) => {
10146
+ var _a;
10147
+ const cbid = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_makecbid).call(this);
10148
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "adding callback to queue", cbid);
10149
+ __classPrivateFieldGet(this, _Kernel_cbs, "f").set(cbid, {
10041
10150
  objref,
10042
- property: propertyName
10043
- }
10044
- });
10045
- this._debug("callback returned", result);
10046
- return this._toSandbox(result, propInfo, `returned by callback property ${propertyName}`);
10047
- },
10048
- set: value => {
10049
- this._debug("virtual set", objref, propertyName, {
10050
- cookie: override.cookie
10051
- });
10052
- this.callbackHandler({
10151
+ override,
10152
+ args,
10153
+ expectedReturnType: (_a = methodInfo.returns) !== null && _a !== void 0 ? _a : "void",
10154
+ succeed,
10155
+ fail
10156
+ });
10157
+ }));
10158
+ }
10159
+ });
10160
+ } else {
10161
+ Object.defineProperty(obj, methodName, {
10162
+ enumerable: false,
10163
+ configurable: false,
10164
+ writable: false,
10165
+ value: (...methodArgs) => {
10166
+ var _a;
10167
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "invoke sync method override", override, "args", methodArgs);
10168
+ const result = this.callbackHandler({
10053
10169
  cookie: override.cookie,
10054
- cbid: this._makecbid(),
10055
- set: {
10170
+ cbid: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_makecbid).call(this),
10171
+ invoke: {
10056
10172
  objref,
10057
- property: propertyName,
10058
- value: this._fromSandbox(value, propInfo, `assigned to callback property ${propertyName}`)
10173
+ method: methodName,
10174
+ args: __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandboxValues).call(this, methodArgs, methodContext, methodInfo.parameters)
10059
10175
  }
10060
10176
  });
10177
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_debug).call(this, "Result", result);
10178
+ return __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandbox).call(this, result, (_a = methodInfo.returns) !== null && _a !== void 0 ? _a : "void", `returned by callback method ${methodName}`);
10061
10179
  }
10062
10180
  });
10063
- function getPropertyDescriptor(obj, propertyName) {
10064
- const direct = Object.getOwnPropertyDescriptor(obj, propertyName);
10065
- if (direct != null) {
10066
- return direct;
10067
- }
10068
- const proto = Object.getPrototypeOf(obj);
10069
- if (proto == null && proto !== Object.prototype) {
10070
- return undefined;
10071
- }
10072
- return getPropertyDescriptor(proto, propertyName);
10073
- }
10074
- }
10075
- _applyMethodOverride(obj, objref, typeFqn, interfaces, override) {
10076
- if (this._tryTypeInfoForProperty(override.method, typeFqn, interfaces)) {
10077
- throw new JsiiFault(`Trying to override property '${override.method}' as a method`);
10078
- }
10079
- let methodInfo = this._tryTypeInfoForMethod(override.method, typeFqn, interfaces);
10080
- if (!methodInfo && obj[override.method]) {
10081
- this._debug(`Skipping override of private method ${override.method}`);
10082
- return;
10083
- }
10084
- if (!methodInfo) {
10085
- methodInfo = {
10086
- name: override.method,
10087
- returns: {
10088
- type: spec.CANONICAL_ANY
10089
- },
10090
- parameters: [ {
10091
- name: "args",
10092
- type: spec.CANONICAL_ANY,
10093
- variadic: true
10094
- } ],
10095
- variadic: true
10096
- };
10097
- }
10098
- this._defineOverridenMethod(obj, objref, override, methodInfo);
10099
10181
  }
10100
- _defineOverridenMethod(obj, objref, override, methodInfo) {
10101
- const methodName = override.method;
10102
- const fqn = (0, objects_1.jsiiTypeFqn)(obj);
10103
- const methodContext = `${methodInfo.async ? "async " : ""}method${fqn ? `${fqn}#` : methodName}`;
10104
- if (methodInfo.async) {
10105
- Object.defineProperty(obj, methodName, {
10106
- enumerable: false,
10107
- configurable: false,
10108
- writable: false,
10109
- value: (...methodArgs) => {
10110
- this._debug("invoke async method override", override);
10111
- const args = this._toSandboxValues(methodArgs, methodContext, methodInfo.parameters);
10112
- return new Promise(((succeed, fail) => {
10113
- var _a;
10114
- const cbid = this._makecbid();
10115
- this._debug("adding callback to queue", cbid);
10116
- this.cbs.set(cbid, {
10117
- objref,
10118
- override,
10119
- args,
10120
- expectedReturnType: (_a = methodInfo.returns) !== null && _a !== void 0 ? _a : "void",
10121
- succeed,
10122
- fail
10123
- });
10124
- }));
10125
- }
10126
- });
10127
- } else {
10128
- Object.defineProperty(obj, methodName, {
10129
- enumerable: false,
10130
- configurable: false,
10131
- writable: false,
10132
- value: (...methodArgs) => {
10133
- var _a;
10134
- this._debug("invoke sync method override", override, "args", methodArgs);
10135
- const result = this.callbackHandler({
10136
- cookie: override.cookie,
10137
- cbid: this._makecbid(),
10138
- invoke: {
10139
- objref,
10140
- method: methodName,
10141
- args: this._fromSandboxValues(methodArgs, methodContext, methodInfo.parameters)
10142
- }
10143
- });
10144
- this._debug("Result", result);
10145
- return this._toSandbox(result, (_a = methodInfo.returns) !== null && _a !== void 0 ? _a : "void", `returned by callback method ${methodName}`);
10146
- }
10147
- });
10148
- }
10149
- }
10150
- _findInvokeTarget(objref, methodName, args) {
10151
- const {instance, fqn, interfaces} = this.objects.findObject(objref);
10152
- const ti = this._typeInfoForMethod(methodName, fqn, interfaces);
10153
- this._validateMethodArguments(ti, args);
10154
- let fn = instance.constructor.prototype[methodName];
10182
+ }, _Kernel_findInvokeTarget = function _Kernel_findInvokeTarget(objref, methodName, args) {
10183
+ const {instance, fqn, interfaces} = __classPrivateFieldGet(this, _Kernel_objects, "f").findObject(objref);
10184
+ const ti = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForMethod).call(this, methodName, fqn, interfaces);
10185
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_validateMethodArguments).call(this, ti, args);
10186
+ let fn = instance.constructor.prototype[methodName];
10187
+ if (!fn) {
10188
+ fn = instance[methodName];
10155
10189
  if (!fn) {
10156
- fn = instance[methodName];
10157
- if (!fn) {
10158
- throw new JsiiFault(`Cannot find ${methodName} on object`);
10159
- }
10190
+ throw new JsiiFault(`Cannot find ${methodName} on object`);
10160
10191
  }
10161
- return {
10162
- ti,
10163
- obj: instance,
10164
- fn
10165
- };
10166
10192
  }
10167
- _validateMethodArguments(method, args) {
10168
- var _a;
10169
- const params = (_a = method === null || method === void 0 ? void 0 : method.parameters) !== null && _a !== void 0 ? _a : [];
10170
- if (args.length > params.length && !(method && method.variadic)) {
10171
- throw new JsiiFault(`Too many arguments (method accepts ${params.length} parameters, got ${args.length} arguments)`);
10172
- }
10173
- for (let i = 0; i < params.length; ++i) {
10174
- const param = params[i];
10175
- const arg = args[i];
10176
- if (param.variadic) {
10177
- if (params.length <= i) {
10178
- return;
10179
- }
10180
- for (let j = i; j < params.length; j++) {
10181
- if (!param.optional && params[j] === undefined) {
10182
- throw new JsiiFault(`Unexpected 'undefined' value at index ${j - i} of variadic argument '${param.name}' of type '${spec.describeTypeReference(param.type)}'`);
10183
- }
10193
+ return {
10194
+ ti,
10195
+ obj: instance,
10196
+ fn
10197
+ };
10198
+ }, _Kernel_validateMethodArguments = function _Kernel_validateMethodArguments(method, args) {
10199
+ var _a;
10200
+ const params = (_a = method === null || method === void 0 ? void 0 : method.parameters) !== null && _a !== void 0 ? _a : [];
10201
+ if (args.length > params.length && !(method && method.variadic)) {
10202
+ throw new JsiiFault(`Too many arguments (method accepts ${params.length} parameters, got ${args.length} arguments)`);
10203
+ }
10204
+ for (let i = 0; i < params.length; ++i) {
10205
+ const param = params[i];
10206
+ const arg = args[i];
10207
+ if (param.variadic) {
10208
+ if (params.length <= i) {
10209
+ return;
10210
+ }
10211
+ for (let j = i; j < params.length; j++) {
10212
+ if (!param.optional && params[j] === undefined) {
10213
+ throw new JsiiFault(`Unexpected 'undefined' value at index ${j - i} of variadic argument '${param.name}' of type '${spec.describeTypeReference(param.type)}'`);
10184
10214
  }
10185
- } else if (!param.optional && arg === undefined) {
10186
- throw new JsiiFault(`Not enough arguments. Missing argument for the required parameter '${param.name}' of type '${spec.describeTypeReference(param.type)}'`);
10187
10215
  }
10216
+ } else if (!param.optional && arg === undefined) {
10217
+ throw new JsiiFault(`Not enough arguments. Missing argument for the required parameter '${param.name}' of type '${spec.describeTypeReference(param.type)}'`);
10188
10218
  }
10189
10219
  }
10190
- _assemblyFor(assemblyName) {
10191
- const assembly = this.assemblies.get(assemblyName);
10192
- if (!assembly) {
10193
- throw new JsiiFault(`Could not find assembly: ${assemblyName}`);
10194
- }
10195
- return assembly;
10220
+ }, _Kernel_assemblyFor = function _Kernel_assemblyFor(assemblyName) {
10221
+ const assembly = __classPrivateFieldGet(this, _Kernel_assemblies, "f").get(assemblyName);
10222
+ if (!assembly) {
10223
+ throw new JsiiFault(`Could not find assembly: ${assemblyName}`);
10196
10224
  }
10197
- _findSymbol(fqn) {
10198
- const [assemblyName, ...parts] = fqn.split(".");
10199
- const assembly = this._assemblyFor(assemblyName);
10200
- let curr = assembly.closure;
10201
- while (parts.length > 0) {
10202
- const name = parts.shift();
10203
- if (!name) {
10204
- break;
10205
- }
10206
- curr = curr[name];
10207
- }
10208
- if (!curr) {
10209
- throw new JsiiFault(`Could not find symbol ${fqn}`);
10225
+ return assembly;
10226
+ }, _Kernel_findSymbol = function _Kernel_findSymbol(fqn) {
10227
+ const [assemblyName, ...parts] = fqn.split(".");
10228
+ const assembly = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_assemblyFor).call(this, assemblyName);
10229
+ let curr = assembly.closure;
10230
+ while (parts.length > 0) {
10231
+ const name = parts.shift();
10232
+ if (!name) {
10233
+ break;
10210
10234
  }
10211
- return curr;
10235
+ curr = curr[name];
10212
10236
  }
10213
- _typeInfoForFqn(fqn) {
10214
- var _a;
10215
- const components = fqn.split(".");
10216
- const moduleName = components[0];
10217
- const assembly = this.assemblies.get(moduleName);
10218
- if (!assembly) {
10219
- throw new JsiiFault(`Module '${moduleName}' not found`);
10220
- }
10221
- const types = (_a = assembly.metadata.types) !== null && _a !== void 0 ? _a : {};
10222
- const fqnInfo = types[fqn];
10223
- if (!fqnInfo) {
10224
- throw new JsiiFault(`Type '${fqn}' not found`);
10225
- }
10226
- return fqnInfo;
10237
+ if (!curr) {
10238
+ throw new JsiiFault(`Could not find symbol ${fqn}`);
10227
10239
  }
10228
- _typeInfoForMethod(methodName, fqn, interfaces) {
10229
- const ti = this._tryTypeInfoForMethod(methodName, fqn, interfaces);
10230
- if (!ti) {
10231
- const addendum = interfaces && interfaces.length > 0 ? ` or interface(s) ${interfaces.join(", ")}` : "";
10232
- throw new JsiiFault(`Class ${fqn}${addendum} doesn't have a method '${methodName}'`);
10240
+ return curr;
10241
+ }, _Kernel_typeInfoForFqn = function _Kernel_typeInfoForFqn(fqn) {
10242
+ var _a;
10243
+ const components = fqn.split(".");
10244
+ const moduleName = components[0];
10245
+ const assembly = __classPrivateFieldGet(this, _Kernel_assemblies, "f").get(moduleName);
10246
+ if (!assembly) {
10247
+ throw new JsiiFault(`Module '${moduleName}' not found`);
10248
+ }
10249
+ const types = (_a = assembly.metadata.types) !== null && _a !== void 0 ? _a : {};
10250
+ const fqnInfo = types[fqn];
10251
+ if (!fqnInfo) {
10252
+ throw new JsiiFault(`Type '${fqn}' not found`);
10253
+ }
10254
+ return fqnInfo;
10255
+ }, _Kernel_isVisibleType = function _Kernel_isVisibleType(fqn) {
10256
+ try {
10257
+ __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForFqn).call(this, fqn);
10258
+ return true;
10259
+ } catch (e) {
10260
+ if (e instanceof JsiiFault) {
10261
+ return false;
10233
10262
  }
10234
- return ti;
10263
+ throw e;
10235
10264
  }
10236
- _tryTypeInfoForMethod(methodName, classFqn, interfaces = []) {
10237
- var _a, _b;
10238
- for (const fqn of [ classFqn, ...interfaces ]) {
10239
- if (fqn === wire.EMPTY_OBJECT_FQN) {
10240
- continue;
10241
- }
10242
- const typeinfo = this._typeInfoForFqn(fqn);
10243
- const methods = (_a = typeinfo.methods) !== null && _a !== void 0 ? _a : [];
10244
- for (const m of methods) {
10245
- if (m.name === methodName) {
10246
- return m;
10247
- }
10248
- }
10249
- const bases = [ typeinfo.base, ...(_b = typeinfo.interfaces) !== null && _b !== void 0 ? _b : [] ];
10250
- for (const base of bases) {
10251
- if (!base) {
10252
- continue;
10253
- }
10254
- const found = this._tryTypeInfoForMethod(methodName, base);
10255
- if (found) {
10256
- return found;
10257
- }
10265
+ }, _Kernel_typeInfoForMethod = function _Kernel_typeInfoForMethod(methodName, fqn, interfaces) {
10266
+ const ti = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForMethod).call(this, methodName, fqn, interfaces);
10267
+ if (!ti) {
10268
+ const addendum = interfaces && interfaces.length > 0 ? ` or interface(s) ${interfaces.join(", ")}` : "";
10269
+ throw new JsiiFault(`Class ${fqn}${addendum} doesn't have a method '${methodName}'`);
10270
+ }
10271
+ return ti;
10272
+ }, _Kernel_tryTypeInfoForMethod = function _Kernel_tryTypeInfoForMethod(methodName, classFqn, interfaces = []) {
10273
+ var _a, _b;
10274
+ for (const fqn of [ classFqn, ...interfaces ]) {
10275
+ if (fqn === wire.EMPTY_OBJECT_FQN) {
10276
+ continue;
10277
+ }
10278
+ const typeinfo = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForFqn).call(this, fqn);
10279
+ const methods = (_a = typeinfo.methods) !== null && _a !== void 0 ? _a : [];
10280
+ for (const m of methods) {
10281
+ if (m.name === methodName) {
10282
+ return m;
10258
10283
  }
10259
10284
  }
10260
- return undefined;
10261
- }
10262
- _tryTypeInfoForProperty(property, classFqn, interfaces = []) {
10263
- var _a;
10264
- for (const fqn of [ classFqn, ...interfaces ]) {
10265
- if (fqn === wire.EMPTY_OBJECT_FQN) {
10285
+ const bases = [ typeinfo.base, ...(_b = typeinfo.interfaces) !== null && _b !== void 0 ? _b : [] ];
10286
+ for (const base of bases) {
10287
+ if (!base) {
10266
10288
  continue;
10267
10289
  }
10268
- const typeInfo = this._typeInfoForFqn(fqn);
10269
- let properties;
10270
- let bases;
10271
- if (spec.isClassType(typeInfo)) {
10272
- const classTypeInfo = typeInfo;
10273
- properties = classTypeInfo.properties;
10274
- bases = classTypeInfo.base ? [ classTypeInfo.base ] : [];
10275
- } else if (spec.isInterfaceType(typeInfo)) {
10276
- const interfaceTypeInfo = typeInfo;
10277
- properties = interfaceTypeInfo.properties;
10278
- bases = (_a = interfaceTypeInfo.interfaces) !== null && _a !== void 0 ? _a : [];
10279
- } else {
10280
- throw new JsiiFault(`Type of kind ${typeInfo.kind} does not have properties`);
10281
- }
10282
- for (const p of properties !== null && properties !== void 0 ? properties : []) {
10283
- if (p.name === property) {
10284
- return p;
10285
- }
10286
- }
10287
- for (const baseFqn of bases) {
10288
- const ret = this._tryTypeInfoForProperty(property, baseFqn);
10289
- if (ret) {
10290
- return ret;
10291
- }
10290
+ const found = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForMethod).call(this, methodName, base);
10291
+ if (found) {
10292
+ return found;
10292
10293
  }
10293
10294
  }
10294
- return undefined;
10295
10295
  }
10296
- _typeInfoForProperty(property, fqn, interfaces) {
10297
- const typeInfo = this._tryTypeInfoForProperty(property, fqn, interfaces);
10298
- if (!typeInfo) {
10299
- const addendum = interfaces && interfaces.length > 0 ? ` or interface(s) ${interfaces.join(", ")}` : "";
10300
- throw new JsiiFault(`Type ${fqn}${addendum} doesn't have a property '${property}'`);
10296
+ return undefined;
10297
+ }, _Kernel_tryTypeInfoForProperty = function _Kernel_tryTypeInfoForProperty(property, classFqn, interfaces = []) {
10298
+ var _a;
10299
+ for (const fqn of [ classFqn, ...interfaces ]) {
10300
+ if (fqn === wire.EMPTY_OBJECT_FQN) {
10301
+ continue;
10301
10302
  }
10302
- return typeInfo;
10303
- }
10304
- _toSandbox(v, expectedType, context) {
10305
- return wire.process({
10306
- objects: this.objects,
10307
- debug: this._debug.bind(this),
10308
- findSymbol: this._findSymbol.bind(this),
10309
- lookupType: this._typeInfoForFqn.bind(this)
10310
- }, "deserialize", v, expectedType, context);
10311
- }
10312
- _fromSandbox(v, targetType, context) {
10313
- return wire.process({
10314
- objects: this.objects,
10315
- debug: this._debug.bind(this),
10316
- findSymbol: this._findSymbol.bind(this),
10317
- lookupType: this._typeInfoForFqn.bind(this)
10318
- }, "serialize", v, targetType, context);
10319
- }
10320
- _toSandboxValues(xs, methodContext, parameters) {
10321
- return this._boxUnboxParameters(xs, methodContext, parameters, this._toSandbox.bind(this));
10322
- }
10323
- _fromSandboxValues(xs, methodContext, parameters) {
10324
- return this._boxUnboxParameters(xs, methodContext, parameters, this._fromSandbox.bind(this));
10325
- }
10326
- _boxUnboxParameters(xs, methodContext, parameters = [], boxUnbox) {
10327
- const parametersCopy = [ ...parameters ];
10328
- const variadic = parametersCopy.length > 0 && !!parametersCopy[parametersCopy.length - 1].variadic;
10329
- while (variadic && parametersCopy.length < xs.length) {
10330
- parametersCopy.push(parametersCopy[parametersCopy.length - 1]);
10303
+ const typeInfo = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_typeInfoForFqn).call(this, fqn);
10304
+ let properties;
10305
+ let bases;
10306
+ if (spec.isClassType(typeInfo)) {
10307
+ const classTypeInfo = typeInfo;
10308
+ properties = classTypeInfo.properties;
10309
+ bases = classTypeInfo.base ? [ classTypeInfo.base ] : [];
10310
+ } else if (spec.isInterfaceType(typeInfo)) {
10311
+ const interfaceTypeInfo = typeInfo;
10312
+ properties = interfaceTypeInfo.properties;
10313
+ bases = (_a = interfaceTypeInfo.interfaces) !== null && _a !== void 0 ? _a : [];
10314
+ } else {
10315
+ throw new JsiiFault(`Type of kind ${typeInfo.kind} does not have properties`);
10331
10316
  }
10332
- if (xs.length > parametersCopy.length) {
10333
- throw new JsiiFault(`Argument list (${JSON.stringify(xs)}) not same size as expected argument list (length ${parametersCopy.length})`);
10317
+ for (const p of properties !== null && properties !== void 0 ? properties : []) {
10318
+ if (p.name === property) {
10319
+ return p;
10320
+ }
10334
10321
  }
10335
- return xs.map(((x, i) => boxUnbox(x, parametersCopy[i], `passed to parameter ${parametersCopy[i].name} of ${methodContext}`)));
10336
- }
10337
- _debug(...args) {
10338
- if (this.traceEnabled) {
10339
- console.error("[@jsii/kernel]", ...args);
10322
+ for (const baseFqn of bases) {
10323
+ const ret = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForProperty).call(this, property, baseFqn);
10324
+ if (ret) {
10325
+ return ret;
10326
+ }
10340
10327
  }
10341
10328
  }
10342
- _debugTime(cb, label) {
10343
- const fullLabel = `[@jsii/kernel:timing] ${label}`;
10329
+ return undefined;
10330
+ }, _Kernel_typeInfoForProperty = function _Kernel_typeInfoForProperty(property, fqn, interfaces) {
10331
+ const typeInfo = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_tryTypeInfoForProperty).call(this, property, fqn, interfaces);
10332
+ if (!typeInfo) {
10333
+ const addendum = interfaces && interfaces.length > 0 ? ` or interface(s) ${interfaces.join(", ")}` : "";
10334
+ throw new JsiiFault(`Type ${fqn}${addendum} doesn't have a property '${property}'`);
10335
+ }
10336
+ return typeInfo;
10337
+ }, _Kernel_toSandbox = function _Kernel_toSandbox(v, expectedType, context) {
10338
+ return wire.process(__classPrivateFieldGet(this, _Kernel_serializerHost, "f"), "deserialize", v, expectedType, context);
10339
+ }, _Kernel_fromSandbox = function _Kernel_fromSandbox(v, targetType, context) {
10340
+ return wire.process(__classPrivateFieldGet(this, _Kernel_serializerHost, "f"), "serialize", v, targetType, context);
10341
+ }, _Kernel_toSandboxValues = function _Kernel_toSandboxValues(xs, methodContext, parameters) {
10342
+ return __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_boxUnboxParameters).call(this, xs, methodContext, parameters, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_toSandbox).bind(this));
10343
+ }, _Kernel_fromSandboxValues = function _Kernel_fromSandboxValues(xs, methodContext, parameters) {
10344
+ return __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_boxUnboxParameters).call(this, xs, methodContext, parameters, __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_fromSandbox).bind(this));
10345
+ }, _Kernel_boxUnboxParameters = function _Kernel_boxUnboxParameters(xs, methodContext, parameters = [], boxUnbox) {
10346
+ const parametersCopy = [ ...parameters ];
10347
+ const variadic = parametersCopy.length > 0 && !!parametersCopy[parametersCopy.length - 1].variadic;
10348
+ while (variadic && parametersCopy.length < xs.length) {
10349
+ parametersCopy.push(parametersCopy[parametersCopy.length - 1]);
10350
+ }
10351
+ if (xs.length > parametersCopy.length) {
10352
+ throw new JsiiFault(`Argument list (${JSON.stringify(xs)}) not same size as expected argument list (length ${parametersCopy.length})`);
10353
+ }
10354
+ return xs.map(((x, i) => boxUnbox(x, parametersCopy[i], `passed to parameter ${parametersCopy[i].name} of ${methodContext}`)));
10355
+ }, _Kernel_debug = function _Kernel_debug(...args) {
10356
+ if (this.traceEnabled) {
10357
+ console.error("[@jsii/kernel]", ...args);
10358
+ }
10359
+ }, _Kernel_debugTime = function _Kernel_debugTime(cb, label) {
10360
+ const fullLabel = `[@jsii/kernel:timing] ${label}`;
10361
+ if (this.debugTimingEnabled) {
10362
+ console.time(fullLabel);
10363
+ }
10364
+ try {
10365
+ return cb();
10366
+ } finally {
10344
10367
  if (this.debugTimingEnabled) {
10345
- console.time(fullLabel);
10346
- }
10347
- try {
10348
- return cb();
10349
- } finally {
10350
- if (this.debugTimingEnabled) {
10351
- console.timeEnd(fullLabel);
10352
- }
10368
+ console.timeEnd(fullLabel);
10353
10369
  }
10354
10370
  }
10355
- _ensureSync(desc, fn) {
10356
- this.syncInProgress = desc;
10357
- try {
10358
- return fn();
10359
- } catch (e) {
10360
- if (e.name === "@jsii/kernel.Fault") {
10361
- if (e instanceof JsiiFault) {
10362
- throw e;
10363
- }
10364
- throw new JsiiFault(e);
10365
- }
10366
- if (e instanceof RuntimeError) {
10371
+ }, _Kernel_ensureSync = function _Kernel_ensureSync(desc, fn) {
10372
+ __classPrivateFieldSet(this, _Kernel_syncInProgress, desc, "f");
10373
+ try {
10374
+ return fn();
10375
+ } catch (e) {
10376
+ if (e.name === "@jsii/kernel.Fault") {
10377
+ if (e instanceof JsiiFault) {
10367
10378
  throw e;
10368
10379
  }
10369
- throw new RuntimeError(e);
10370
- } finally {
10371
- delete this.syncInProgress;
10380
+ throw new JsiiFault(e);
10372
10381
  }
10373
- }
10374
- _findPropertyTarget(obj, property) {
10375
- const superProp = this._getSuperPropertyName(property);
10376
- if (superProp in obj) {
10377
- return superProp;
10382
+ if (e instanceof RuntimeError) {
10383
+ throw e;
10378
10384
  }
10379
- return property;
10380
- }
10381
- _getBinScriptCommand(req) {
10382
- var _a, _b;
10383
- const packageDir = this._getPackageDir(req.assembly);
10384
- if (fs.pathExistsSync(packageDir)) {
10385
- const epkg = fs.readJsonSync(path.join(packageDir, "package.json"));
10386
- const scriptPath = (_a = epkg.bin) === null || _a === void 0 ? void 0 : _a[req.script];
10387
- if (!epkg.bin) {
10388
- throw new JsiiFault(`Script with name ${req.script} was not defined.`);
10389
- }
10390
- return {
10391
- command: path.join(packageDir, scriptPath),
10392
- args: (_b = req.args) !== null && _b !== void 0 ? _b : [],
10393
- env: {
10394
- ...process.env,
10395
- NODE_OPTIONS: process.execArgv.join(" "),
10396
- PATH: `${path.dirname(process.execPath)}:${process.env.PATH}`
10397
- }
10398
- };
10385
+ throw new RuntimeError(e);
10386
+ } finally {
10387
+ __classPrivateFieldSet(this, _Kernel_syncInProgress, undefined, "f");
10388
+ }
10389
+ }, _Kernel_findPropertyTarget = function _Kernel_findPropertyTarget(obj, property) {
10390
+ const superProp = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_getSuperPropertyName).call(this, property);
10391
+ if (superProp in obj) {
10392
+ return superProp;
10393
+ }
10394
+ return property;
10395
+ }, _Kernel_getBinScriptCommand = function _Kernel_getBinScriptCommand(req) {
10396
+ var _a, _b;
10397
+ const packageDir = __classPrivateFieldGet(this, _Kernel_instances, "m", _Kernel_getPackageDir).call(this, req.assembly);
10398
+ if (fs.pathExistsSync(packageDir)) {
10399
+ const epkg = fs.readJsonSync(path.join(packageDir, "package.json"));
10400
+ const scriptPath = (_a = epkg.bin) === null || _a === void 0 ? void 0 : _a[req.script];
10401
+ if (!epkg.bin) {
10402
+ throw new JsiiFault(`Script with name ${req.script} was not defined.`);
10399
10403
  }
10400
- throw new JsiiFault(`Package with name ${req.assembly} was not loaded.`);
10401
- }
10402
- _makecbid() {
10403
- return `jsii::callback::${this.nextid++}`;
10404
- }
10405
- _makeprid() {
10406
- return `jsii::promise::${this.nextid++}`;
10404
+ return {
10405
+ command: path.join(packageDir, scriptPath),
10406
+ args: (_b = req.args) !== null && _b !== void 0 ? _b : [],
10407
+ env: {
10408
+ ...process.env,
10409
+ NODE_OPTIONS: process.execArgv.join(" "),
10410
+ PATH: `${path.dirname(process.execPath)}:${process.env.PATH}`
10411
+ }
10412
+ };
10407
10413
  }
10408
- }
10409
- exports.Kernel = Kernel;
10414
+ throw new JsiiFault(`Package with name ${req.assembly} was not loaded.`);
10415
+ }, _Kernel_makecbid = function _Kernel_makecbid() {
10416
+ var _a, _b;
10417
+ return `jsii::callback::${__classPrivateFieldSet(this, _Kernel_nextid, (_b = __classPrivateFieldGet(this, _Kernel_nextid, "f"),
10418
+ _a = _b++, _b), "f"), _a}`;
10419
+ }, _Kernel_makeprid = function _Kernel_makeprid() {
10420
+ var _a, _b;
10421
+ return `jsii::promise::${__classPrivateFieldSet(this, _Kernel_nextid, (_b = __classPrivateFieldGet(this, _Kernel_nextid, "f"),
10422
+ _a = _b++, _b), "f"), _a}`;
10423
+ };
10410
10424
  class Assembly {
10411
10425
  constructor(metadata, closure) {
10412
10426
  this.metadata = metadata;
@@ -10422,7 +10436,15 @@ var __webpack_modules__ = {
10422
10436
  exports.link = void 0;
10423
10437
  const fs_1 = __webpack_require__(7147);
10424
10438
  const path_1 = __webpack_require__(4822);
10439
+ const PRESERVE_SYMLINKS = process.execArgv.includes("--preserve-symlinks");
10425
10440
  function link(existing, destination) {
10441
+ if (PRESERVE_SYMLINKS) {
10442
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(destination), {
10443
+ recursive: true
10444
+ });
10445
+ (0, fs_1.symlinkSync)(existing, destination);
10446
+ return;
10447
+ }
10426
10448
  const stat = (0, fs_1.statSync)(existing);
10427
10449
  if (!stat.isDirectory()) {
10428
10450
  try {
@@ -10441,8 +10463,21 @@ var __webpack_modules__ = {
10441
10463
  }
10442
10464
  exports.link = link;
10443
10465
  },
10444
- 2309: (__unused_webpack_module, exports, __webpack_require__) => {
10466
+ 2309: function(__unused_webpack_module, exports, __webpack_require__) {
10445
10467
  "use strict";
10468
+ var __classPrivateFieldSet = this && this.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
10469
+ if (kind === "m") throw new TypeError("Private method is not writable");
10470
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10471
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10472
+ return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
10473
+ value;
10474
+ };
10475
+ var __classPrivateFieldGet = this && this.__classPrivateFieldGet || function(receiver, state, kind, f) {
10476
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10477
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10478
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
10479
+ };
10480
+ var _ObjectTable_instances, _ObjectTable_resolveType, _ObjectTable_objects, _ObjectTable_nextid, _ObjectTable_makeId, _ObjectTable_removeRedundant, _InterfaceCollection_resolveType, _InterfaceCollection_interfaces;
10446
10481
  Object.defineProperty(exports, "__esModule", {
10447
10482
  value: true
10448
10483
  });
@@ -10454,9 +10489,25 @@ var __webpack_modules__ = {
10454
10489
  const serialization_1 = __webpack_require__(8614);
10455
10490
  const OBJID_SYMBOL = Symbol.for("$__jsii__objid__$");
10456
10491
  const IFACES_SYMBOL = Symbol.for("$__jsii__interfaces__$");
10457
- const JSII_TYPE_FQN_SYMBOL = Symbol("$__jsii__fqn__$");
10458
- function jsiiTypeFqn(obj) {
10459
- return obj.constructor[JSII_TYPE_FQN_SYMBOL];
10492
+ const JSII_RTTI_SYMBOL = Symbol.for("jsii.rtti");
10493
+ const RESOLVED_TYPE_FQN = new WeakMap;
10494
+ function jsiiTypeFqn(obj, isVisibleType) {
10495
+ var _a;
10496
+ const ctor = obj.constructor;
10497
+ if (RESOLVED_TYPE_FQN.has(ctor)) {
10498
+ return RESOLVED_TYPE_FQN.get(ctor);
10499
+ }
10500
+ let curr = ctor;
10501
+ while ((_a = curr[JSII_RTTI_SYMBOL]) === null || _a === void 0 ? void 0 : _a.fqn) {
10502
+ if (isVisibleType(curr[JSII_RTTI_SYMBOL].fqn)) {
10503
+ const fqn = curr[JSII_RTTI_SYMBOL].fqn;
10504
+ tagJsiiConstructor(curr, fqn);
10505
+ tagJsiiConstructor(ctor, fqn);
10506
+ return fqn;
10507
+ }
10508
+ curr = Object.getPrototypeOf(curr);
10509
+ }
10510
+ return undefined;
10460
10511
  }
10461
10512
  exports.jsiiTypeFqn = jsiiTypeFqn;
10462
10513
  function objectReference(obj) {
@@ -10488,22 +10539,20 @@ var __webpack_modules__ = {
10488
10539
  });
10489
10540
  }
10490
10541
  function tagJsiiConstructor(constructor, fqn) {
10491
- if (Object.prototype.hasOwnProperty.call(constructor, JSII_TYPE_FQN_SYMBOL)) {
10492
- return assert(constructor[JSII_TYPE_FQN_SYMBOL] === fqn, `Unable to register ${constructor.name} as ${fqn}: it is already registerd with FQN ${constructor[JSII_TYPE_FQN_SYMBOL]}`);
10542
+ const existing = RESOLVED_TYPE_FQN.get(constructor);
10543
+ if (existing != null) {
10544
+ return assert.strictEqual(existing, fqn, `Unable to register ${constructor.name} as ${fqn}: it is already registerd with FQN ${existing}`);
10493
10545
  }
10494
- Object.defineProperty(constructor, JSII_TYPE_FQN_SYMBOL, {
10495
- configurable: false,
10496
- enumerable: false,
10497
- writable: false,
10498
- value: fqn
10499
- });
10546
+ RESOLVED_TYPE_FQN.set(constructor, fqn);
10500
10547
  }
10501
10548
  exports.tagJsiiConstructor = tagJsiiConstructor;
10502
10549
  class ObjectTable {
10503
10550
  constructor(resolveType) {
10504
- this.resolveType = resolveType;
10505
- this.objects = new Map;
10506
- this.nextid = 1e4;
10551
+ _ObjectTable_instances.add(this);
10552
+ _ObjectTable_resolveType.set(this, void 0);
10553
+ _ObjectTable_objects.set(this, new Map);
10554
+ _ObjectTable_nextid.set(this, 1e4);
10555
+ __classPrivateFieldSet(this, _ObjectTable_resolveType, resolveType, "f");
10507
10556
  }
10508
10557
  registerObject(obj, fqn, interfaces) {
10509
10558
  var _a;
@@ -10520,13 +10569,13 @@ var __webpack_modules__ = {
10520
10569
  if (!Object.prototype.hasOwnProperty.call(obj, IFACES_SYMBOL)) {
10521
10570
  console.error(`[jsii/kernel] WARNING: referenced object ${existingRef[api.TOKEN_REF]} does not have the ${String(IFACES_SYMBOL)} property!`);
10522
10571
  }
10523
- this.objects.get(existingRef[api.TOKEN_REF]).interfaces = obj[IFACES_SYMBOL] = existingRef[api.TOKEN_INTERFACES] = interfaces = this.removeRedundant(Array.from(allIfaces), fqn);
10572
+ __classPrivateFieldGet(this, _ObjectTable_objects, "f").get(existingRef[api.TOKEN_REF]).interfaces = obj[IFACES_SYMBOL] = existingRef[api.TOKEN_INTERFACES] = interfaces = __classPrivateFieldGet(this, _ObjectTable_instances, "m", _ObjectTable_removeRedundant).call(this, Array.from(allIfaces), fqn);
10524
10573
  }
10525
10574
  return existingRef;
10526
10575
  }
10527
- interfaces = this.removeRedundant(interfaces, fqn);
10528
- const objid = this.makeId(fqn);
10529
- this.objects.set(objid, {
10576
+ interfaces = __classPrivateFieldGet(this, _ObjectTable_instances, "m", _ObjectTable_removeRedundant).call(this, interfaces, fqn);
10577
+ const objid = __classPrivateFieldGet(this, _ObjectTable_instances, "m", _ObjectTable_makeId).call(this, fqn);
10578
+ __classPrivateFieldGet(this, _ObjectTable_objects, "f").set(objid, {
10530
10579
  instance: obj,
10531
10580
  fqn,
10532
10581
  interfaces
@@ -10543,7 +10592,7 @@ var __webpack_modules__ = {
10543
10592
  throw new kernel_1.JsiiFault(`Malformed object reference: ${JSON.stringify(objref)}`);
10544
10593
  }
10545
10594
  const objid = objref[api.TOKEN_REF];
10546
- const obj = this.objects.get(objid);
10595
+ const obj = __classPrivateFieldGet(this, _ObjectTable_objects, "f").get(objid);
10547
10596
  if (!obj) {
10548
10597
  throw new kernel_1.JsiiFault(`Object ${objid} not found`);
10549
10598
  }
@@ -10557,40 +10606,43 @@ var __webpack_modules__ = {
10557
10606
  return obj;
10558
10607
  }
10559
10608
  deleteObject({[api.TOKEN_REF]: objid}) {
10560
- if (!this.objects.delete(objid)) {
10609
+ if (!__classPrivateFieldGet(this, _ObjectTable_objects, "f").delete(objid)) {
10561
10610
  throw new kernel_1.JsiiFault(`Object ${objid} not found`);
10562
10611
  }
10563
10612
  }
10564
10613
  get count() {
10565
- return this.objects.size;
10566
- }
10567
- makeId(fqn) {
10568
- return `${fqn}@${this.nextid++}`;
10569
- }
10570
- removeRedundant(interfaces, fqn) {
10571
- if (!interfaces || interfaces.length === 0) {
10572
- return undefined;
10573
- }
10574
- const result = new Set(interfaces);
10575
- const builtIn = new InterfaceCollection(this.resolveType);
10576
- if (fqn !== serialization_1.EMPTY_OBJECT_FQN) {
10577
- builtIn.addFromClass(fqn);
10578
- }
10579
- interfaces.forEach(builtIn.addFromInterface.bind(builtIn));
10580
- for (const iface of builtIn) {
10581
- result.delete(iface);
10582
- }
10583
- return result.size > 0 ? Array.from(result).sort() : undefined;
10614
+ return __classPrivateFieldGet(this, _ObjectTable_objects, "f").size;
10584
10615
  }
10585
10616
  }
10586
10617
  exports.ObjectTable = ObjectTable;
10618
+ _ObjectTable_resolveType = new WeakMap, _ObjectTable_objects = new WeakMap, _ObjectTable_nextid = new WeakMap,
10619
+ _ObjectTable_instances = new WeakSet, _ObjectTable_makeId = function _ObjectTable_makeId(fqn) {
10620
+ var _a, _b;
10621
+ return `${fqn}@${__classPrivateFieldSet(this, _ObjectTable_nextid, (_b = __classPrivateFieldGet(this, _ObjectTable_nextid, "f"),
10622
+ _a = _b++, _b), "f"), _a}`;
10623
+ }, _ObjectTable_removeRedundant = function _ObjectTable_removeRedundant(interfaces, fqn) {
10624
+ if (!interfaces || interfaces.length === 0) {
10625
+ return undefined;
10626
+ }
10627
+ const result = new Set(interfaces);
10628
+ const builtIn = new InterfaceCollection(__classPrivateFieldGet(this, _ObjectTable_resolveType, "f"));
10629
+ if (fqn !== serialization_1.EMPTY_OBJECT_FQN) {
10630
+ builtIn.addFromClass(fqn);
10631
+ }
10632
+ interfaces.forEach(builtIn.addFromInterface.bind(builtIn));
10633
+ for (const iface of builtIn) {
10634
+ result.delete(iface);
10635
+ }
10636
+ return result.size > 0 ? Array.from(result).sort() : undefined;
10637
+ };
10587
10638
  class InterfaceCollection {
10588
10639
  constructor(resolveType) {
10589
- this.resolveType = resolveType;
10590
- this.interfaces = new Set;
10640
+ _InterfaceCollection_resolveType.set(this, void 0);
10641
+ _InterfaceCollection_interfaces.set(this, new Set);
10642
+ __classPrivateFieldSet(this, _InterfaceCollection_resolveType, resolveType, "f");
10591
10643
  }
10592
10644
  addFromClass(fqn) {
10593
- const ti = this.resolveType(fqn);
10645
+ const ti = __classPrivateFieldGet(this, _InterfaceCollection_resolveType, "f").call(this, fqn);
10594
10646
  if (!spec.isClassType(ti)) {
10595
10647
  throw new kernel_1.JsiiFault(`Expected a class, but received ${spec.describeTypeReference(ti)}`);
10596
10648
  }
@@ -10599,16 +10651,16 @@ var __webpack_modules__ = {
10599
10651
  }
10600
10652
  if (ti.interfaces) {
10601
10653
  for (const iface of ti.interfaces) {
10602
- if (this.interfaces.has(iface)) {
10654
+ if (__classPrivateFieldGet(this, _InterfaceCollection_interfaces, "f").has(iface)) {
10603
10655
  continue;
10604
10656
  }
10605
- this.interfaces.add(iface);
10657
+ __classPrivateFieldGet(this, _InterfaceCollection_interfaces, "f").add(iface);
10606
10658
  this.addFromInterface(iface);
10607
10659
  }
10608
10660
  }
10609
10661
  }
10610
10662
  addFromInterface(fqn) {
10611
- const ti = this.resolveType(fqn);
10663
+ const ti = __classPrivateFieldGet(this, _InterfaceCollection_resolveType, "f").call(this, fqn);
10612
10664
  if (!spec.isInterfaceType(ti)) {
10613
10665
  throw new kernel_1.JsiiFault(`Expected an interface, but received ${spec.describeTypeReference(ti)}`);
10614
10666
  }
@@ -10616,15 +10668,16 @@ var __webpack_modules__ = {
10616
10668
  return;
10617
10669
  }
10618
10670
  for (const iface of ti.interfaces) {
10619
- if (this.interfaces.has(iface)) {
10671
+ if (__classPrivateFieldGet(this, _InterfaceCollection_interfaces, "f").has(iface)) {
10620
10672
  continue;
10621
10673
  }
10622
- this.interfaces.add(iface);
10674
+ __classPrivateFieldGet(this, _InterfaceCollection_interfaces, "f").add(iface);
10623
10675
  this.addFromInterface(iface);
10624
10676
  }
10625
10677
  }
10626
- [Symbol.iterator]() {
10627
- return this.interfaces[Symbol.iterator]();
10678
+ [(_InterfaceCollection_resolveType = new WeakMap, _InterfaceCollection_interfaces = new WeakMap,
10679
+ Symbol.iterator)]() {
10680
+ return __classPrivateFieldGet(this, _InterfaceCollection_interfaces, "f")[Symbol.iterator]();
10628
10681
  }
10629
10682
  }
10630
10683
  },
@@ -10689,65 +10742,65 @@ var __webpack_modules__ = {
10689
10742
  }
10690
10743
  },
10691
10744
  ["Date"]: {
10692
- serialize(value, optionalValue) {
10693
- if (nullAndOk(value, optionalValue)) {
10745
+ serialize(value, optionalValue, host) {
10746
+ if (nullAndOk(value, optionalValue, host)) {
10694
10747
  return undefined;
10695
10748
  }
10696
10749
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10697
10750
  if (!isDate(value)) {
10698
- throw new SerializationError(`Value is not an instance of Date`, value);
10751
+ throw new SerializationError(`Value is not an instance of Date`, value, host);
10699
10752
  }
10700
10753
  return serializeDate(value);
10701
10754
  },
10702
- deserialize(value, optionalValue) {
10703
- if (nullAndOk(value, optionalValue)) {
10755
+ deserialize(value, optionalValue, host) {
10756
+ if (nullAndOk(value, optionalValue, host)) {
10704
10757
  return undefined;
10705
10758
  }
10706
10759
  if (!(0, api_1.isWireDate)(value)) {
10707
- throw new SerializationError(`Value does not have the "${api_1.TOKEN_DATE}" key`, value);
10760
+ throw new SerializationError(`Value does not have the "${api_1.TOKEN_DATE}" key`, value, host);
10708
10761
  }
10709
10762
  return deserializeDate(value);
10710
10763
  }
10711
10764
  },
10712
10765
  ["Scalar"]: {
10713
- serialize(value, optionalValue) {
10714
- if (nullAndOk(value, optionalValue)) {
10766
+ serialize(value, optionalValue, host) {
10767
+ if (nullAndOk(value, optionalValue, host)) {
10715
10768
  return undefined;
10716
10769
  }
10717
10770
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10718
10771
  const primitiveType = optionalValue.type;
10719
10772
  if (!isScalar(value)) {
10720
- throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value);
10773
+ throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value, host);
10721
10774
  }
10722
10775
  if (typeof value !== primitiveType.primitive) {
10723
- throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value);
10776
+ throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value, host);
10724
10777
  }
10725
10778
  return value;
10726
10779
  },
10727
- deserialize(value, optionalValue) {
10728
- if (nullAndOk(value, optionalValue)) {
10780
+ deserialize(value, optionalValue, host) {
10781
+ if (nullAndOk(value, optionalValue, host)) {
10729
10782
  return undefined;
10730
10783
  }
10731
10784
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10732
10785
  const primitiveType = optionalValue.type;
10733
10786
  if (!isScalar(value)) {
10734
- throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value);
10787
+ throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value, host);
10735
10788
  }
10736
10789
  if (typeof value !== primitiveType.primitive) {
10737
- throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value);
10790
+ throw new SerializationError(`Value is not a ${spec.describeTypeReference(optionalValue.type)}`, value, host);
10738
10791
  }
10739
10792
  return value;
10740
10793
  }
10741
10794
  },
10742
10795
  ["Json"]: {
10743
- serialize(value, optionalValue) {
10744
- if (nullAndOk(value, optionalValue)) {
10796
+ serialize(value, optionalValue, host) {
10797
+ if (nullAndOk(value, optionalValue, host)) {
10745
10798
  return undefined;
10746
10799
  }
10747
10800
  return value;
10748
10801
  },
10749
10802
  deserialize(value, optionalValue, host) {
10750
- if (nullAndOk(value, optionalValue)) {
10803
+ if (nullAndOk(value, optionalValue, host)) {
10751
10804
  return undefined;
10752
10805
  }
10753
10806
  if ((0, api_1.isWireMap)(value)) {
@@ -10770,7 +10823,7 @@ var __webpack_modules__ = {
10770
10823
  if (Array.isArray(value)) {
10771
10824
  return value.map(mapJsonValue);
10772
10825
  }
10773
- return mapValues(value, mapJsonValue);
10826
+ return mapValues(value, mapJsonValue, host);
10774
10827
  function mapJsonValue(toMap, key) {
10775
10828
  if (toMap == null) {
10776
10829
  return toMap;
@@ -10785,42 +10838,42 @@ var __webpack_modules__ = {
10785
10838
  },
10786
10839
  ["Enum"]: {
10787
10840
  serialize(value, optionalValue, host) {
10788
- if (nullAndOk(value, optionalValue)) {
10841
+ if (nullAndOk(value, optionalValue, host)) {
10789
10842
  return undefined;
10790
10843
  }
10791
10844
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10792
10845
  if (typeof value !== "string" && typeof value !== "number") {
10793
- throw new SerializationError(`Value is not a string or number`, value);
10846
+ throw new SerializationError(`Value is not a string or number`, value, host);
10794
10847
  }
10795
10848
  host.debug("Serializing enum");
10796
10849
  const enumType = optionalValue.type;
10797
10850
  const enumMap = host.findSymbol(enumType.fqn);
10798
10851
  const enumEntry = Object.entries(enumMap).find((([, v]) => v === value));
10799
10852
  if (!enumEntry) {
10800
- throw new SerializationError(`Value is not present in enum ${spec.describeTypeReference(enumType)}`, value);
10853
+ throw new SerializationError(`Value is not present in enum ${spec.describeTypeReference(enumType)}`, value, host);
10801
10854
  }
10802
10855
  return {
10803
10856
  [api_1.TOKEN_ENUM]: `${enumType.fqn}/${enumEntry[0]}`
10804
10857
  };
10805
10858
  },
10806
10859
  deserialize(value, optionalValue, host) {
10807
- if (nullAndOk(value, optionalValue)) {
10860
+ if (nullAndOk(value, optionalValue, host)) {
10808
10861
  return undefined;
10809
10862
  }
10810
10863
  if (!(0, api_1.isWireEnum)(value)) {
10811
- throw new SerializationError(`Value does not have the "${api_1.TOKEN_ENUM}" key`, value);
10864
+ throw new SerializationError(`Value does not have the "${api_1.TOKEN_ENUM}" key`, value, host);
10812
10865
  }
10813
- return deserializeEnum(value, host.findSymbol);
10866
+ return deserializeEnum(value, host);
10814
10867
  }
10815
10868
  },
10816
10869
  ["Array"]: {
10817
10870
  serialize(value, optionalValue, host) {
10818
- if (nullAndOk(value, optionalValue)) {
10871
+ if (nullAndOk(value, optionalValue, host)) {
10819
10872
  return undefined;
10820
10873
  }
10821
10874
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10822
10875
  if (!Array.isArray(value)) {
10823
- throw new SerializationError(`Value is not an array`, value);
10876
+ throw new SerializationError(`Value is not an array`, value, host);
10824
10877
  }
10825
10878
  const arrayType = optionalValue.type;
10826
10879
  return value.map(((x, idx) => process(host, "serialize", x, {
@@ -10828,12 +10881,12 @@ var __webpack_modules__ = {
10828
10881
  }, `index ${(0, util_1.inspect)(idx)}`)));
10829
10882
  },
10830
10883
  deserialize(value, optionalValue, host) {
10831
- if (nullAndOk(value, optionalValue)) {
10884
+ if (nullAndOk(value, optionalValue, host)) {
10832
10885
  return undefined;
10833
10886
  }
10834
10887
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10835
10888
  if (!Array.isArray(value)) {
10836
- throw new SerializationError(`Value is not an array`, value);
10889
+ throw new SerializationError(`Value is not an array`, value, host);
10837
10890
  }
10838
10891
  const arrayType = optionalValue.type;
10839
10892
  return value.map(((x, idx) => process(host, "deserialize", x, {
@@ -10843,7 +10896,7 @@ var __webpack_modules__ = {
10843
10896
  },
10844
10897
  ["Map"]: {
10845
10898
  serialize(value, optionalValue, host) {
10846
- if (nullAndOk(value, optionalValue)) {
10899
+ if (nullAndOk(value, optionalValue, host)) {
10847
10900
  return undefined;
10848
10901
  }
10849
10902
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
@@ -10851,11 +10904,11 @@ var __webpack_modules__ = {
10851
10904
  return {
10852
10905
  [api_1.TOKEN_MAP]: mapValues(value, ((v, key) => process(host, "serialize", v, {
10853
10906
  type: mapType.collection.elementtype
10854
- }, `key ${(0, util_1.inspect)(key)}`)))
10907
+ }, `key ${(0, util_1.inspect)(key)}`)), host)
10855
10908
  };
10856
10909
  },
10857
10910
  deserialize(value, optionalValue, host, {allowNullishMapValue = false} = {}) {
10858
- if (nullAndOk(value, optionalValue)) {
10911
+ if (nullAndOk(value, optionalValue, host)) {
10859
10912
  return undefined;
10860
10913
  }
10861
10914
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
@@ -10864,12 +10917,12 @@ var __webpack_modules__ = {
10864
10917
  return mapValues(value, ((v, key) => process(host, "deserialize", v, {
10865
10918
  optional: allowNullishMapValue,
10866
10919
  type: mapType.collection.elementtype
10867
- }, `key ${(0, util_1.inspect)(key)}`)));
10920
+ }, `key ${(0, util_1.inspect)(key)}`)), host);
10868
10921
  }
10869
10922
  const result = mapValues(value[api_1.TOKEN_MAP], ((v, key) => process(host, "deserialize", v, {
10870
10923
  optional: allowNullishMapValue,
10871
10924
  type: mapType.collection.elementtype
10872
- }, `key ${(0, util_1.inspect)(key)}`)));
10925
+ }, `key ${(0, util_1.inspect)(key)}`)), host);
10873
10926
  Object.defineProperty(result, exports.SYMBOL_WIRE_TYPE, {
10874
10927
  configurable: false,
10875
10928
  enumerable: false,
@@ -10881,15 +10934,15 @@ var __webpack_modules__ = {
10881
10934
  },
10882
10935
  ["Struct"]: {
10883
10936
  serialize(value, optionalValue, host) {
10884
- if (nullAndOk(value, optionalValue)) {
10937
+ if (nullAndOk(value, optionalValue, host)) {
10885
10938
  return undefined;
10886
10939
  }
10887
10940
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10888
10941
  if (typeof value !== "object" || value == null || value instanceof Date) {
10889
- throw new SerializationError(`Value is not an object`, value);
10942
+ throw new SerializationError(`Value is not an object`, value, host);
10890
10943
  }
10891
10944
  if (Array.isArray(value)) {
10892
- throw new SerializationError(`Value is an array`, value);
10945
+ throw new SerializationError(`Value is an array`, value, host);
10893
10946
  }
10894
10947
  host.debug("Returning value type by reference");
10895
10948
  return host.objects.registerObject(value, exports.EMPTY_OBJECT_FQN, [ optionalValue.type.fqn ]);
@@ -10898,66 +10951,66 @@ var __webpack_modules__ = {
10898
10951
  if (typeof value === "object" && Object.keys(value !== null && value !== void 0 ? value : {}).length === 0) {
10899
10952
  value = undefined;
10900
10953
  }
10901
- if (nullAndOk(value, optionalValue)) {
10954
+ if (nullAndOk(value, optionalValue, host)) {
10902
10955
  return undefined;
10903
10956
  }
10904
10957
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10905
10958
  if (typeof value !== "object" || value == null) {
10906
- throw new SerializationError(`Value is not an object`, value);
10959
+ throw new SerializationError(`Value is not an object`, value, host);
10907
10960
  }
10908
10961
  const namedType = host.lookupType(optionalValue.type.fqn);
10909
10962
  const props = propertiesOf(namedType, host.lookupType);
10910
10963
  if (Array.isArray(value)) {
10911
- throw new SerializationError("Value is an array (varargs may have been incorrectly supplied)", value);
10964
+ throw new SerializationError("Value is an array (varargs may have been incorrectly supplied)", value, host);
10912
10965
  }
10913
10966
  if ((0, api_1.isObjRef)(value)) {
10914
10967
  host.debug("Expected value type but got reference type, accepting for now (awslabs/jsii#400)");
10915
- return validateRequiredProps(host.objects.findObject(value).instance, namedType.fqn, props);
10968
+ return validateRequiredProps(host.objects.findObject(value).instance, namedType.fqn, props, host);
10916
10969
  }
10917
10970
  if (_1.api.isWireStruct(value)) {
10918
10971
  const {fqn, data} = value[_1.api.TOKEN_STRUCT];
10919
10972
  if (!isAssignable(fqn, namedType, host.lookupType)) {
10920
- throw new SerializationError(`Wired struct has type '${fqn}', which does not match expected type`, value);
10973
+ throw new SerializationError(`Wired struct has type '${fqn}', which does not match expected type`, value, host);
10921
10974
  }
10922
10975
  value = data;
10923
10976
  }
10924
10977
  if (_1.api.isWireMap(value)) {
10925
10978
  value = value[_1.api.TOKEN_MAP];
10926
10979
  }
10927
- value = validateRequiredProps(value, namedType.fqn, props);
10980
+ value = validateRequiredProps(value, namedType.fqn, props, host);
10928
10981
  return mapValues(value, ((v, key) => {
10929
10982
  if (!props[key]) {
10930
10983
  return undefined;
10931
10984
  }
10932
10985
  return process(host, "deserialize", v, props[key], `key ${(0, util_1.inspect)(key)}`);
10933
- }));
10986
+ }), host);
10934
10987
  }
10935
10988
  },
10936
10989
  ["RefType"]: {
10937
10990
  serialize(value, optionalValue, host) {
10938
10991
  var _a;
10939
- if (nullAndOk(value, optionalValue)) {
10992
+ if (nullAndOk(value, optionalValue, host)) {
10940
10993
  return undefined;
10941
10994
  }
10942
10995
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10943
10996
  if (typeof value !== "object" || value == null || Array.isArray(value)) {
10944
- throw new SerializationError(`Value is not an object`, value);
10997
+ throw new SerializationError(`Value is not an object`, value, host);
10945
10998
  }
10946
10999
  if (value instanceof Date) {
10947
- throw new SerializationError(`Value is a Date`, value);
11000
+ throw new SerializationError(`Value is a Date`, value, host);
10948
11001
  }
10949
11002
  const expectedType = host.lookupType(optionalValue.type.fqn);
10950
11003
  const interfaces = spec.isInterfaceType(expectedType) ? [ expectedType.fqn ] : undefined;
10951
- const jsiiType = (_a = (0, objects_1.jsiiTypeFqn)(value)) !== null && _a !== void 0 ? _a : spec.isClassType(expectedType) ? expectedType.fqn : exports.EMPTY_OBJECT_FQN;
11004
+ const jsiiType = (_a = (0, objects_1.jsiiTypeFqn)(value, host.isVisibleType)) !== null && _a !== void 0 ? _a : spec.isClassType(expectedType) ? expectedType.fqn : exports.EMPTY_OBJECT_FQN;
10952
11005
  return host.objects.registerObject(value, jsiiType, interfaces);
10953
11006
  },
10954
11007
  deserialize(value, optionalValue, host) {
10955
- if (nullAndOk(value, optionalValue)) {
11008
+ if (nullAndOk(value, optionalValue, host)) {
10956
11009
  return undefined;
10957
11010
  }
10958
11011
  assert(optionalValue !== VOID, "Encountered unexpected void type!");
10959
11012
  if (!(0, api_1.isObjRef)(value)) {
10960
- throw new SerializationError(`Value does not have the "${api_1.TOKEN_REF}" key`, value);
11013
+ throw new SerializationError(`Value does not have the "${api_1.TOKEN_REF}" key`, value, host);
10961
11014
  }
10962
11015
  const {instance, fqn} = host.objects.findObject(value);
10963
11016
  const namedTypeRef = optionalValue.type;
@@ -10965,7 +11018,7 @@ var __webpack_modules__ = {
10965
11018
  const namedType = host.lookupType(namedTypeRef.fqn);
10966
11019
  const declaredType = optionalValue.type;
10967
11020
  if (spec.isClassType(namedType) && !isAssignable(fqn, declaredType, host.lookupType)) {
10968
- throw new SerializationError(`Object of type '${fqn}' is not convertible to ${spec.describeTypeReference(declaredType)}`, value);
11021
+ throw new SerializationError(`Object of type '${fqn}' is not convertible to ${spec.describeTypeReference(declaredType)}`, value, host);
10969
11022
  }
10970
11023
  }
10971
11024
  return instance;
@@ -10989,10 +11042,10 @@ var __webpack_modules__ = {
10989
11042
  }, `index ${(0, util_1.inspect)(idx)}`)));
10990
11043
  }
10991
11044
  if (typeof value === "function") {
10992
- throw new SerializationError("Functions cannot be passed across language boundaries", value);
11045
+ throw new SerializationError("Functions cannot be passed across language boundaries", value, host);
10993
11046
  }
10994
11047
  if (typeof value !== "object" || value == null) {
10995
- throw new SerializationError(`A jsii kernel assumption was violated: value is not an object`, value);
11048
+ throw new SerializationError(`A jsii kernel assumption was violated: value is not an object`, value, host);
10996
11049
  }
10997
11050
  if (exports.SYMBOL_WIRE_TYPE in value && value[exports.SYMBOL_WIRE_TYPE] === api_1.TOKEN_MAP) {
10998
11051
  return exports.SERIALIZERS["Map"].serialize(value, {
@@ -11005,19 +11058,19 @@ var __webpack_modules__ = {
11005
11058
  }, host);
11006
11059
  }
11007
11060
  if (value instanceof Set || value instanceof Map) {
11008
- throw new SerializationError("Set and Map instances cannot be sent across the language boundary", value);
11061
+ throw new SerializationError("Set and Map instances cannot be sent across the language boundary", value, host);
11009
11062
  }
11010
11063
  const prevRef = (0, objects_1.objectReference)(value);
11011
11064
  if (prevRef) {
11012
11065
  return prevRef;
11013
11066
  }
11014
- const jsiiType = (_a = (0, objects_1.jsiiTypeFqn)(value)) !== null && _a !== void 0 ? _a : isByReferenceOnly(value) ? exports.EMPTY_OBJECT_FQN : undefined;
11067
+ const jsiiType = (_a = (0, objects_1.jsiiTypeFqn)(value, host.isVisibleType)) !== null && _a !== void 0 ? _a : isByReferenceOnly(value) ? exports.EMPTY_OBJECT_FQN : undefined;
11015
11068
  if (jsiiType) {
11016
11069
  return host.objects.registerObject(value, jsiiType);
11017
11070
  }
11018
11071
  return mapValues(value, ((v, key) => process(host, "serialize", v, {
11019
11072
  type: spec.CANONICAL_ANY
11020
- }, `key ${(0, util_1.inspect)(key)}`)));
11073
+ }, `key ${(0, util_1.inspect)(key)}`)), host);
11021
11074
  },
11022
11075
  deserialize(value, _type, host) {
11023
11076
  if (value == null) {
@@ -11039,7 +11092,7 @@ var __webpack_modules__ = {
11039
11092
  }
11040
11093
  if ((0, api_1.isWireEnum)(value)) {
11041
11094
  host.debug("ANY is an Enum");
11042
- return deserializeEnum(value, host.findSymbol);
11095
+ return deserializeEnum(value, host);
11043
11096
  }
11044
11097
  if ((0, api_1.isWireMap)(value)) {
11045
11098
  host.debug("ANY is a Map");
@@ -11069,7 +11122,7 @@ var __webpack_modules__ = {
11069
11122
  host.debug("ANY is a Map");
11070
11123
  return mapValues(value, ((v, key) => process(host, "deserialize", v, {
11071
11124
  type: spec.CANONICAL_ANY
11072
- }, `key ${(0, util_1.inspect)(key)}`)));
11125
+ }, `key ${(0, util_1.inspect)(key)}`)), host);
11073
11126
  }
11074
11127
  }
11075
11128
  };
@@ -11081,17 +11134,17 @@ var __webpack_modules__ = {
11081
11134
  function deserializeDate(value) {
11082
11135
  return new Date(value[api_1.TOKEN_DATE]);
11083
11136
  }
11084
- function deserializeEnum(value, lookup) {
11137
+ function deserializeEnum(value, host) {
11085
11138
  const enumLocator = value[api_1.TOKEN_ENUM];
11086
11139
  const sep = enumLocator.lastIndexOf("/");
11087
11140
  if (sep === -1) {
11088
- throw new SerializationError(`Invalid enum token value ${(0, util_1.inspect)(enumLocator)}`, value);
11141
+ throw new SerializationError(`Invalid enum token value ${(0, util_1.inspect)(enumLocator)}`, value, host);
11089
11142
  }
11090
11143
  const typeName = enumLocator.slice(0, sep);
11091
11144
  const valueName = enumLocator.slice(sep + 1);
11092
- const enumValue = lookup(typeName)[valueName];
11145
+ const enumValue = host.findSymbol(typeName)[valueName];
11093
11146
  if (enumValue === undefined) {
11094
- throw new SerializationError(`No such enum member: ${(0, util_1.inspect)(valueName)}`, value);
11147
+ throw new SerializationError(`No such enum member: ${(0, util_1.inspect)(valueName)}`, value, host);
11095
11148
  }
11096
11149
  return enumValue;
11097
11150
  }
@@ -11169,12 +11222,12 @@ var __webpack_modules__ = {
11169
11222
  } ];
11170
11223
  }
11171
11224
  exports.serializationType = serializationType;
11172
- function nullAndOk(x, type) {
11225
+ function nullAndOk(x, type, host) {
11173
11226
  if (x != null) {
11174
11227
  return false;
11175
11228
  }
11176
11229
  if (type !== "void" && !type.optional) {
11177
- throw new SerializationError(`A value is required (type is non-optional)`, x);
11230
+ throw new SerializationError(`A value is required (type is non-optional)`, x, host);
11178
11231
  }
11179
11232
  return true;
11180
11233
  }
@@ -11191,12 +11244,12 @@ var __webpack_modules__ = {
11191
11244
  }
11192
11245
  return ret;
11193
11246
  }
11194
- function mapValues(value, fn) {
11247
+ function mapValues(value, fn, host) {
11195
11248
  if (typeof value !== "object" || value == null) {
11196
- throw new SerializationError(`Value is not an object`, value);
11249
+ throw new SerializationError(`Value is not an object`, value, host);
11197
11250
  }
11198
11251
  if (Array.isArray(value)) {
11199
- throw new SerializationError(`Value is an array`, value);
11252
+ throw new SerializationError(`Value is an array`, value, host);
11200
11253
  }
11201
11254
  const out = {};
11202
11255
  for (const [k, v] of Object.entries(value)) {
@@ -11251,11 +11304,11 @@ var __webpack_modules__ = {
11251
11304
  }
11252
11305
  return false;
11253
11306
  }
11254
- function validateRequiredProps(actualProps, typeName, specProps) {
11307
+ function validateRequiredProps(actualProps, typeName, specProps, host) {
11255
11308
  const missingRequiredProps = Object.keys(specProps).filter((name => !specProps[name].optional)).filter((name => !(name in actualProps)));
11256
11309
  if (missingRequiredProps.length > 0) {
11257
11310
  throw new SerializationError(`Missing required properties for ${typeName}: ${missingRequiredProps.map((p => (0,
11258
- util_1.inspect)(p))).join(", ")}`, actualProps);
11311
+ util_1.inspect)(p))).join(", ")}`, actualProps, host);
11259
11312
  }
11260
11313
  return actualProps;
11261
11314
  }
@@ -11292,7 +11345,7 @@ var __webpack_modules__ = {
11292
11345
  }
11293
11346
  const typeDescr = type === VOID ? type : spec.describeTypeReference(type.type);
11294
11347
  const optionalTypeDescr = type !== VOID && type.optional ? `${typeDescr} | undefined` : typeDescr;
11295
- throw new SerializationError(`${titleize(context)}: Unable to ${serde} value as ${optionalTypeDescr}`, value, errors, {
11348
+ throw new SerializationError(`${titleize(context)}: Unable to ${serde} value as ${optionalTypeDescr}`, value, host, errors, {
11296
11349
  renderValue: true
11297
11350
  });
11298
11351
  function titleize(text) {
@@ -11306,8 +11359,8 @@ var __webpack_modules__ = {
11306
11359
  }
11307
11360
  exports.process = process;
11308
11361
  class SerializationError extends Error {
11309
- constructor(message, value, causes = [], {renderValue = false} = {}) {
11310
- super([ message, ...renderValue ? [ `${causes.length > 0 ? "├" : "╰"}── 🛑 Failing value is ${describeTypeOf(value)}`, ...value == null ? [] : (0,
11362
+ constructor(message, value, {isVisibleType}, causes = [], {renderValue = false} = {}) {
11363
+ super([ message, ...renderValue ? [ `${causes.length > 0 ? "├" : "╰"}── 🛑 Failing value is ${describeTypeOf(value, isVisibleType)}`, ...value == null ? [] : (0,
11311
11364
  util_1.inspect)(value, false, 0).split("\n").map((l => `${causes.length > 0 ? "│" : " "} ${l}`)) ] : [], ...causes.length > 0 ? [ "╰── 🔍 Failure reason(s):", ...causes.map(((cause, idx) => {
11312
11365
  var _a;
11313
11366
  return ` ${idx < causes.length - 1 ? "├" : "╰"}─${causes.length > 1 ? ` [${(_a = cause.context) !== null && _a !== void 0 ? _a : (0,
@@ -11319,7 +11372,7 @@ var __webpack_modules__ = {
11319
11372
  }
11320
11373
  }
11321
11374
  exports.SerializationError = SerializationError;
11322
- function describeTypeOf(value) {
11375
+ function describeTypeOf(value, isVisibleType) {
11323
11376
  const type = typeof value;
11324
11377
  switch (type) {
11325
11378
  case "object":
@@ -11329,7 +11382,7 @@ var __webpack_modules__ = {
11329
11382
  if (Array.isArray(value)) {
11330
11383
  return "an array";
11331
11384
  }
11332
- const fqn = (0, objects_1.jsiiTypeFqn)(value);
11385
+ const fqn = (0, objects_1.jsiiTypeFqn)(value, isVisibleType);
11333
11386
  if (fqn != null && fqn !== exports.EMPTY_OBJECT_FQN) {
11334
11387
  return `an instance of ${fqn}`;
11335
11388
  }
@@ -11381,7 +11434,7 @@ var __webpack_modules__ = {
11381
11434
  },
11382
11435
  4383: (__unused_webpack_module, exports, __webpack_require__) => {
11383
11436
  "use strict";
11384
- var _a;
11437
+ var _a, _b;
11385
11438
  Object.defineProperty(exports, "__esModule", {
11386
11439
  value: true
11387
11440
  });
@@ -11391,11 +11444,8 @@ var __webpack_modules__ = {
11391
11444
  const disk_cache_1 = __webpack_require__(7202);
11392
11445
  const link_1 = __webpack_require__(328);
11393
11446
  const default_cache_root_1 = __webpack_require__(4964);
11394
- let packageCacheEnabled = ((_a = process.env.JSII_RUNTIME_PACKAGE_CACHE) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === "enabled";
11447
+ let packageCacheEnabled = ((_b = (_a = process.env.JSII_RUNTIME_PACKAGE_CACHE) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) !== null && _b !== void 0 ? _b : "enabled") === "enabled";
11395
11448
  function extract(file, outDir, options, ...comments) {
11396
- (0, fs_1.mkdirSync)(outDir, {
11397
- recursive: true
11398
- });
11399
11449
  try {
11400
11450
  return (packageCacheEnabled ? extractViaCache : extractToOutDir)(file, outDir, options, ...comments);
11401
11451
  } catch (err) {
@@ -11446,6 +11496,9 @@ var __webpack_modules__ = {
11446
11496
  };
11447
11497
  }
11448
11498
  function extractToOutDir(file, cwd, options = {}) {
11499
+ (0, fs_1.mkdirSync)(cwd, {
11500
+ recursive: true
11501
+ });
11449
11502
  untarInto({
11450
11503
  ...options,
11451
11504
  cwd,
@@ -11486,13 +11539,14 @@ var __webpack_modules__ = {
11486
11539
  const events_1 = __webpack_require__(2361);
11487
11540
  class KernelHost {
11488
11541
  constructor(inout, opts = {}) {
11489
- var _a, _b;
11542
+ var _a, _b, _c;
11490
11543
  this.inout = inout;
11491
11544
  this.opts = opts;
11492
11545
  this.kernel = new kernel_1.Kernel(this.callbackHandler.bind(this));
11493
11546
  this.eventEmitter = new events_1.EventEmitter;
11494
11547
  this.kernel.traceEnabled = (_a = opts.debug) !== null && _a !== void 0 ? _a : false;
11495
11548
  this.kernel.debugTimingEnabled = (_b = opts.debugTiming) !== null && _b !== void 0 ? _b : false;
11549
+ this.kernel.validateAssemblies = (_c = opts.validateAssemblies) !== null && _c !== void 0 ? _c : false;
11496
11550
  }
11497
11551
  run() {
11498
11552
  var _a;
@@ -17312,7 +17366,7 @@ var __webpack_modules__ = {
17312
17366
  },
17313
17367
  4147: module => {
17314
17368
  "use strict";
17315
- module.exports = JSON.parse('{"name":"@jsii/runtime","version":"1.85.0","description":"jsii runtime kernel process","license":"Apache-2.0","author":{"name":"Amazon Web Services","url":"https://aws.amazon.com"},"homepage":"https://github.com/aws/jsii","bugs":{"url":"https://github.com/aws/jsii/issues"},"repository":{"type":"git","url":"https://github.com/aws/jsii.git","directory":"packages/@jsii/runtime"},"engines":{"node":">= 14.17.0"},"main":"lib/index.js","types":"lib/index.d.ts","bin":{"jsii-runtime":"bin/jsii-runtime"},"scripts":{"build":"tsc --build && chmod +x bin/jsii-runtime && npx webpack-cli && npm run lint","watch":"tsc --build -w","lint":"eslint . --ext .js,.ts --ignore-path=.gitignore --ignore-pattern=webpack.config.js","lint:fix":"yarn lint --fix","test":"jest","test:update":"jest -u","package":"package-js"},"dependencies":{"@jsii/kernel":"^1.85.0","@jsii/check-node":"1.85.0","@jsii/spec":"^1.85.0"},"devDependencies":{"@scope/jsii-calc-base":"^1.85.0","@scope/jsii-calc-lib":"^1.85.0","jsii-build-tools":"^1.85.0","jsii-calc":"^3.20.120","source-map-loader":"^4.0.1","webpack":"^5.87.0","webpack-cli":"^5.1.4"}}');
17369
+ module.exports = JSON.parse('{"name":"@jsii/runtime","version":"1.86.1","description":"jsii runtime kernel process","license":"Apache-2.0","author":{"name":"Amazon Web Services","url":"https://aws.amazon.com"},"homepage":"https://github.com/aws/jsii","bugs":{"url":"https://github.com/aws/jsii/issues"},"repository":{"type":"git","url":"https://github.com/aws/jsii.git","directory":"packages/@jsii/runtime"},"engines":{"node":">= 14.17.0"},"main":"lib/index.js","types":"lib/index.d.ts","bin":{"jsii-runtime":"bin/jsii-runtime"},"scripts":{"build":"tsc --build && chmod +x bin/jsii-runtime && npx webpack-cli && npm run lint","watch":"tsc --build -w","lint":"eslint . --ext .js,.ts --ignore-path=.gitignore --ignore-pattern=webpack.config.js","lint:fix":"yarn lint --fix","test":"jest","test:update":"jest -u","package":"package-js"},"dependencies":{"@jsii/kernel":"^1.86.1","@jsii/check-node":"1.86.1","@jsii/spec":"^1.86.1"},"devDependencies":{"@scope/jsii-calc-base":"^1.86.1","@scope/jsii-calc-lib":"^1.86.1","jsii-build-tools":"^1.86.1","jsii-calc":"^3.20.120","source-map-loader":"^4.0.1","webpack":"^5.88.2","webpack-cli":"^5.1.4"}}');
17316
17370
  },
17317
17371
  5277: module => {
17318
17372
  "use strict";
@@ -17365,6 +17419,7 @@ var __webpack_exports__ = {};
17365
17419
  const noStack = !!process.env.JSII_NOSTACK;
17366
17420
  const debug = !!process.env.JSII_DEBUG;
17367
17421
  const debugTiming = !!process.env.JSII_DEBUG_TIMING;
17422
+ const validateAssemblies = !!process.env.JSII_VALIDATE_ASSEMBLIES;
17368
17423
  const stdio = new sync_stdio_1.SyncStdio({
17369
17424
  errorFD: (_a = process.stderr.fd) !== null && _a !== void 0 ? _a : 2,
17370
17425
  readFD: 3,
@@ -17374,7 +17429,8 @@ var __webpack_exports__ = {};
17374
17429
  const host = new host_1.KernelHost(inout, {
17375
17430
  debug,
17376
17431
  noStack,
17377
- debugTiming
17432
+ debugTiming,
17433
+ validateAssemblies
17378
17434
  });
17379
17435
  host.once("exit", process.exit.bind(process));
17380
17436
  inout.write({