@jsii/runtime 1.71.0 → 1.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsii/runtime",
3
- "version": "1.71.0",
3
+ "version": "1.73.0",
4
4
  "description": "jsii runtime kernel process",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -34,17 +34,17 @@
34
34
  "package": "package-js"
35
35
  },
36
36
  "dependencies": {
37
- "@jsii/kernel": "^1.71.0",
38
- "@jsii/check-node": "1.71.0",
39
- "@jsii/spec": "^1.71.0"
37
+ "@jsii/kernel": "^1.73.0",
38
+ "@jsii/check-node": "1.73.0",
39
+ "@jsii/spec": "^1.73.0"
40
40
  },
41
41
  "devDependencies": {
42
- "@scope/jsii-calc-base": "^1.71.0",
43
- "@scope/jsii-calc-lib": "^1.71.0",
44
- "jsii-build-tools": "^1.71.0",
42
+ "@scope/jsii-calc-base": "^1.73.0",
43
+ "@scope/jsii-calc-lib": "^1.73.0",
44
+ "jsii-build-tools": "^1.73.0",
45
45
  "jsii-calc": "^3.20.120",
46
46
  "source-map-loader": "^4.0.1",
47
- "webpack": "^5.74.0",
48
- "webpack-cli": "^4.10.0"
47
+ "webpack": "^5.75.0",
48
+ "webpack-cli": "^5.0.1"
49
49
  }
50
50
  }
@@ -3754,8 +3754,7 @@ var __webpack_modules__ = {
3754
3754
  }), new NodeRelease(18, {
3755
3755
  endOfLife: new Date("2025-04-30")
3756
3756
  }), new NodeRelease(19, {
3757
- endOfLife: new Date("2023-06-01"),
3758
- untested: true
3757
+ endOfLife: new Date("2023-06-01")
3759
3758
  }), new NodeRelease(20, {
3760
3759
  endOfLife: new Date("2026-04-30"),
3761
3760
  untested: true
@@ -3771,24 +3770,32 @@ var __webpack_modules__ = {
3771
3770
  const console_1 = __webpack_require__(6206);
3772
3771
  const process_1 = __webpack_require__(7282);
3773
3772
  const constants_1 = __webpack_require__(6829);
3774
- function checkNode() {
3773
+ function checkNode(envPrefix = "JSII") {
3775
3774
  const {nodeRelease, knownBroken} = constants_1.NodeRelease.forThisRuntime();
3775
+ const defaultCallToAction = "Should you encounter odd runtime issues, please try using one of the supported release before filing a bug report.";
3776
3776
  if (nodeRelease === null || nodeRelease === void 0 ? void 0 : nodeRelease.endOfLife) {
3777
3777
  const qualifier = nodeRelease.endOfLifeDate ? ` on ${nodeRelease.endOfLifeDate.toISOString().slice(0, 10)}` : "";
3778
3778
  veryVisibleMessage(chalk_1.bgRed.white.bold, `Node ${nodeRelease.majorVersion} has reached end-of-life${qualifier} and is not supported.`, `Please upgrade to a supported node version as soon as possible.`);
3779
3779
  } else if (knownBroken) {
3780
- veryVisibleMessage(chalk_1.bgRed.white.bold, `Node ${process_1.version} is unsupported and has known compatibility issues with this software.`);
3780
+ const silenceVariable = `${envPrefix}_SILENCE_WARNING_KNOWN_BROKEN_NODE_VERSION`;
3781
+ if (!process.env[silenceVariable]) veryVisibleMessage(chalk_1.bgRed.white.bold, `Node ${process_1.version} is unsupported and has known compatibility issues with this software.`, defaultCallToAction, silenceVariable);
3781
3782
  } else if (!nodeRelease || nodeRelease.untested) {
3782
- veryVisibleMessage(chalk_1.bgYellow.black, `This software has not been tested with node ${process_1.version}.`);
3783
+ const silenceVariable = `${envPrefix}_SILENCE_WARNING_UNTESTED_NODE_VERSION`;
3784
+ if (!process.env[silenceVariable]) {
3785
+ veryVisibleMessage(chalk_1.bgYellow.black, `This software has not been tested with node ${process_1.version}.`, defaultCallToAction, silenceVariable);
3786
+ }
3783
3787
  } else if (nodeRelease === null || nodeRelease === void 0 ? void 0 : nodeRelease.deprecated) {
3784
- const deadline = nodeRelease.endOfLifeDate.toISOString().slice(0, 10);
3785
- veryVisibleMessage(chalk_1.bgYellowBright.black, `Node ${nodeRelease.majorVersion} is approaching end-of-life and will no longer be supported in new releases after ${deadline}.`, `Please upgrade to a supported node version as soon as possible.`);
3788
+ const silenceVariable = `${envPrefix}_SILENCE_WARNING_DEPRECATED_NODE_VERSION`;
3789
+ if (!process.env[silenceVariable]) {
3790
+ const deadline = nodeRelease.endOfLifeDate.toISOString().slice(0, 10);
3791
+ veryVisibleMessage(chalk_1.bgYellowBright.black, `Node ${nodeRelease.majorVersion} is approaching end-of-life and will no longer be supported in new releases after ${deadline}.`, `Please upgrade to a supported node version as soon as possible.`, silenceVariable);
3792
+ }
3786
3793
  }
3787
- function veryVisibleMessage(chalk, message, callToAction = "You may to encounter runtime issues, and should switch to a supported release.") {
3794
+ function veryVisibleMessage(chalk, message, callToAction, silenceVariable) {
3788
3795
  const lines = [ message, callToAction, "", `This software is currently running on node ${process_1.version}.`, "As of the current release of this software, supported node releases are:", ...constants_1.NodeRelease.ALL_RELEASES.filter((release => release.supported)).sort(((l, r) => {
3789
3796
  var _a, _b, _c, _d;
3790
3797
  return ((_b = (_a = r.endOfLifeDate) === null || _a === void 0 ? void 0 : _a.getTime()) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = l.endOfLifeDate) === null || _c === void 0 ? void 0 : _c.getTime()) !== null && _d !== void 0 ? _d : 0);
3791
- })).map((release => `- ${release.toString()}${release.deprecated ? " [DEPRECATED]" : ""}`)) ];
3798
+ })).map((release => `- ${release.toString()}${release.deprecated ? " [DEPRECATED]" : ""}`)), ...silenceVariable ? [ "", `This warning can be silenced by setting the ${silenceVariable} environment variable.` ] : [] ];
3792
3799
  const len = Math.max(...lines.map((l => l.length)));
3793
3800
  const border = chalk("!".repeat(len + 8));
3794
3801
  const spacer = chalk(`!! ${" ".repeat(len)} !!`);
@@ -3449,7 +3449,7 @@ var __webpack_modules__ = {
3449
3449
  this.piped = false;
3450
3450
  }
3451
3451
  }
3452
- const MiniPass = __webpack_require__(2253);
3452
+ const MiniPass = __webpack_require__(3201);
3453
3453
  const zlib = __webpack_require__(3704);
3454
3454
  const ReadEntry = __webpack_require__(7847);
3455
3455
  const WriteEntry = __webpack_require__(8418);
@@ -4407,7 +4407,7 @@ var __webpack_modules__ = {
4407
4407
  },
4408
4408
  7847: (module, __unused_webpack_exports, __webpack_require__) => {
4409
4409
  "use strict";
4410
- const MiniPass = __webpack_require__(2253);
4410
+ const MiniPass = __webpack_require__(3201);
4411
4411
  const normPath = __webpack_require__(4240);
4412
4412
  const SLURP = Symbol("slurp");
4413
4413
  module.exports = class ReadEntry extends MiniPass {
@@ -5459,7 +5459,7 @@ var __webpack_modules__ = {
5459
5459
  },
5460
5460
  8418: (module, __unused_webpack_exports, __webpack_require__) => {
5461
5461
  "use strict";
5462
- const MiniPass = __webpack_require__(2253);
5462
+ const MiniPass = __webpack_require__(3201);
5463
5463
  const Pax = __webpack_require__(9154);
5464
5464
  const Header = __webpack_require__(5017);
5465
5465
  const fs = __webpack_require__(7147);
@@ -5914,6 +5914,451 @@ var __webpack_modules__ = {
5914
5914
  const getType = stat => stat.isFile() ? "File" : stat.isDirectory() ? "Directory" : stat.isSymbolicLink() ? "SymbolicLink" : "Unsupported";
5915
5915
  module.exports = WriteEntry;
5916
5916
  },
5917
+ 3201: (module, __unused_webpack_exports, __webpack_require__) => {
5918
+ "use strict";
5919
+ const proc = typeof process === "object" && process ? process : {
5920
+ stdout: null,
5921
+ stderr: null
5922
+ };
5923
+ const EE = __webpack_require__(2361);
5924
+ const Stream = __webpack_require__(2781);
5925
+ const SD = __webpack_require__(1576).StringDecoder;
5926
+ const EOF = Symbol("EOF");
5927
+ const MAYBE_EMIT_END = Symbol("maybeEmitEnd");
5928
+ const EMITTED_END = Symbol("emittedEnd");
5929
+ const EMITTING_END = Symbol("emittingEnd");
5930
+ const EMITTED_ERROR = Symbol("emittedError");
5931
+ const CLOSED = Symbol("closed");
5932
+ const READ = Symbol("read");
5933
+ const FLUSH = Symbol("flush");
5934
+ const FLUSHCHUNK = Symbol("flushChunk");
5935
+ const ENCODING = Symbol("encoding");
5936
+ const DECODER = Symbol("decoder");
5937
+ const FLOWING = Symbol("flowing");
5938
+ const PAUSED = Symbol("paused");
5939
+ const RESUME = Symbol("resume");
5940
+ const BUFFER = Symbol("buffer");
5941
+ const PIPES = Symbol("pipes");
5942
+ const BUFFERLENGTH = Symbol("bufferLength");
5943
+ const BUFFERPUSH = Symbol("bufferPush");
5944
+ const BUFFERSHIFT = Symbol("bufferShift");
5945
+ const OBJECTMODE = Symbol("objectMode");
5946
+ const DESTROYED = Symbol("destroyed");
5947
+ const EMITDATA = Symbol("emitData");
5948
+ const EMITEND = Symbol("emitEnd");
5949
+ const EMITEND2 = Symbol("emitEnd2");
5950
+ const ASYNC = Symbol("async");
5951
+ const defer = fn => Promise.resolve().then(fn);
5952
+ const doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== "1";
5953
+ const ASYNCITERATOR = doIter && Symbol.asyncIterator || Symbol("asyncIterator not implemented");
5954
+ const ITERATOR = doIter && Symbol.iterator || Symbol("iterator not implemented");
5955
+ const isEndish = ev => ev === "end" || ev === "finish" || ev === "prefinish";
5956
+ const isArrayBuffer = b => b instanceof ArrayBuffer || typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0;
5957
+ const isArrayBufferView = b => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
5958
+ class Pipe {
5959
+ constructor(src, dest, opts) {
5960
+ this.src = src;
5961
+ this.dest = dest;
5962
+ this.opts = opts;
5963
+ this.ondrain = () => src[RESUME]();
5964
+ dest.on("drain", this.ondrain);
5965
+ }
5966
+ unpipe() {
5967
+ this.dest.removeListener("drain", this.ondrain);
5968
+ }
5969
+ proxyErrors() {}
5970
+ end() {
5971
+ this.unpipe();
5972
+ if (this.opts.end) this.dest.end();
5973
+ }
5974
+ }
5975
+ class PipeProxyErrors extends Pipe {
5976
+ unpipe() {
5977
+ this.src.removeListener("error", this.proxyErrors);
5978
+ super.unpipe();
5979
+ }
5980
+ constructor(src, dest, opts) {
5981
+ super(src, dest, opts);
5982
+ this.proxyErrors = er => dest.emit("error", er);
5983
+ src.on("error", this.proxyErrors);
5984
+ }
5985
+ }
5986
+ module.exports = class Minipass extends Stream {
5987
+ constructor(options) {
5988
+ super();
5989
+ this[FLOWING] = false;
5990
+ this[PAUSED] = false;
5991
+ this[PIPES] = [];
5992
+ this[BUFFER] = [];
5993
+ this[OBJECTMODE] = options && options.objectMode || false;
5994
+ if (this[OBJECTMODE]) this[ENCODING] = null; else this[ENCODING] = options && options.encoding || null;
5995
+ if (this[ENCODING] === "buffer") this[ENCODING] = null;
5996
+ this[ASYNC] = options && !!options.async || false;
5997
+ this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null;
5998
+ this[EOF] = false;
5999
+ this[EMITTED_END] = false;
6000
+ this[EMITTING_END] = false;
6001
+ this[CLOSED] = false;
6002
+ this[EMITTED_ERROR] = null;
6003
+ this.writable = true;
6004
+ this.readable = true;
6005
+ this[BUFFERLENGTH] = 0;
6006
+ this[DESTROYED] = false;
6007
+ if (options && options.debugExposeBuffer === true) {
6008
+ Object.defineProperty(this, "buffer", {
6009
+ get: () => this[BUFFER]
6010
+ });
6011
+ }
6012
+ if (options && options.debugExposePipes === true) {
6013
+ Object.defineProperty(this, "pipes", {
6014
+ get: () => this[PIPES]
6015
+ });
6016
+ }
6017
+ }
6018
+ get bufferLength() {
6019
+ return this[BUFFERLENGTH];
6020
+ }
6021
+ get encoding() {
6022
+ return this[ENCODING];
6023
+ }
6024
+ set encoding(enc) {
6025
+ if (this[OBJECTMODE]) throw new Error("cannot set encoding in objectMode");
6026
+ if (this[ENCODING] && enc !== this[ENCODING] && (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH])) throw new Error("cannot change encoding");
6027
+ if (this[ENCODING] !== enc) {
6028
+ this[DECODER] = enc ? new SD(enc) : null;
6029
+ if (this[BUFFER].length) this[BUFFER] = this[BUFFER].map((chunk => this[DECODER].write(chunk)));
6030
+ }
6031
+ this[ENCODING] = enc;
6032
+ }
6033
+ setEncoding(enc) {
6034
+ this.encoding = enc;
6035
+ }
6036
+ get objectMode() {
6037
+ return this[OBJECTMODE];
6038
+ }
6039
+ set objectMode(om) {
6040
+ this[OBJECTMODE] = this[OBJECTMODE] || !!om;
6041
+ }
6042
+ get ["async"]() {
6043
+ return this[ASYNC];
6044
+ }
6045
+ set ["async"](a) {
6046
+ this[ASYNC] = this[ASYNC] || !!a;
6047
+ }
6048
+ write(chunk, encoding, cb) {
6049
+ if (this[EOF]) throw new Error("write after end");
6050
+ if (this[DESTROYED]) {
6051
+ this.emit("error", Object.assign(new Error("Cannot call write after a stream was destroyed"), {
6052
+ code: "ERR_STREAM_DESTROYED"
6053
+ }));
6054
+ return true;
6055
+ }
6056
+ if (typeof encoding === "function") cb = encoding, encoding = "utf8";
6057
+ if (!encoding) encoding = "utf8";
6058
+ const fn = this[ASYNC] ? defer : f => f();
6059
+ if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
6060
+ if (isArrayBufferView(chunk)) chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength); else if (isArrayBuffer(chunk)) chunk = Buffer.from(chunk); else if (typeof chunk !== "string") this.objectMode = true;
6061
+ }
6062
+ if (this[OBJECTMODE]) {
6063
+ if (this.flowing && this[BUFFERLENGTH] !== 0) this[FLUSH](true);
6064
+ if (this.flowing) this.emit("data", chunk); else this[BUFFERPUSH](chunk);
6065
+ if (this[BUFFERLENGTH] !== 0) this.emit("readable");
6066
+ if (cb) fn(cb);
6067
+ return this.flowing;
6068
+ }
6069
+ if (!chunk.length) {
6070
+ if (this[BUFFERLENGTH] !== 0) this.emit("readable");
6071
+ if (cb) fn(cb);
6072
+ return this.flowing;
6073
+ }
6074
+ if (typeof chunk === "string" && !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) {
6075
+ chunk = Buffer.from(chunk, encoding);
6076
+ }
6077
+ if (Buffer.isBuffer(chunk) && this[ENCODING]) chunk = this[DECODER].write(chunk);
6078
+ if (this.flowing && this[BUFFERLENGTH] !== 0) this[FLUSH](true);
6079
+ if (this.flowing) this.emit("data", chunk); else this[BUFFERPUSH](chunk);
6080
+ if (this[BUFFERLENGTH] !== 0) this.emit("readable");
6081
+ if (cb) fn(cb);
6082
+ return this.flowing;
6083
+ }
6084
+ read(n) {
6085
+ if (this[DESTROYED]) return null;
6086
+ if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) {
6087
+ this[MAYBE_EMIT_END]();
6088
+ return null;
6089
+ }
6090
+ if (this[OBJECTMODE]) n = null;
6091
+ if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
6092
+ if (this.encoding) this[BUFFER] = [ this[BUFFER].join("") ]; else this[BUFFER] = [ Buffer.concat(this[BUFFER], this[BUFFERLENGTH]) ];
6093
+ }
6094
+ const ret = this[READ](n || null, this[BUFFER][0]);
6095
+ this[MAYBE_EMIT_END]();
6096
+ return ret;
6097
+ }
6098
+ [READ](n, chunk) {
6099
+ if (n === chunk.length || n === null) this[BUFFERSHIFT](); else {
6100
+ this[BUFFER][0] = chunk.slice(n);
6101
+ chunk = chunk.slice(0, n);
6102
+ this[BUFFERLENGTH] -= n;
6103
+ }
6104
+ this.emit("data", chunk);
6105
+ if (!this[BUFFER].length && !this[EOF]) this.emit("drain");
6106
+ return chunk;
6107
+ }
6108
+ end(chunk, encoding, cb) {
6109
+ if (typeof chunk === "function") cb = chunk, chunk = null;
6110
+ if (typeof encoding === "function") cb = encoding, encoding = "utf8";
6111
+ if (chunk) this.write(chunk, encoding);
6112
+ if (cb) this.once("end", cb);
6113
+ this[EOF] = true;
6114
+ this.writable = false;
6115
+ if (this.flowing || !this[PAUSED]) this[MAYBE_EMIT_END]();
6116
+ return this;
6117
+ }
6118
+ [RESUME]() {
6119
+ if (this[DESTROYED]) return;
6120
+ this[PAUSED] = false;
6121
+ this[FLOWING] = true;
6122
+ this.emit("resume");
6123
+ if (this[BUFFER].length) this[FLUSH](); else if (this[EOF]) this[MAYBE_EMIT_END](); else this.emit("drain");
6124
+ }
6125
+ resume() {
6126
+ return this[RESUME]();
6127
+ }
6128
+ pause() {
6129
+ this[FLOWING] = false;
6130
+ this[PAUSED] = true;
6131
+ }
6132
+ get destroyed() {
6133
+ return this[DESTROYED];
6134
+ }
6135
+ get flowing() {
6136
+ return this[FLOWING];
6137
+ }
6138
+ get paused() {
6139
+ return this[PAUSED];
6140
+ }
6141
+ [BUFFERPUSH](chunk) {
6142
+ if (this[OBJECTMODE]) this[BUFFERLENGTH] += 1; else this[BUFFERLENGTH] += chunk.length;
6143
+ this[BUFFER].push(chunk);
6144
+ }
6145
+ [BUFFERSHIFT]() {
6146
+ if (this[BUFFER].length) {
6147
+ if (this[OBJECTMODE]) this[BUFFERLENGTH] -= 1; else this[BUFFERLENGTH] -= this[BUFFER][0].length;
6148
+ }
6149
+ return this[BUFFER].shift();
6150
+ }
6151
+ [FLUSH](noDrain) {
6152
+ do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]()));
6153
+ if (!noDrain && !this[BUFFER].length && !this[EOF]) this.emit("drain");
6154
+ }
6155
+ [FLUSHCHUNK](chunk) {
6156
+ return chunk ? (this.emit("data", chunk), this.flowing) : false;
6157
+ }
6158
+ pipe(dest, opts) {
6159
+ if (this[DESTROYED]) return;
6160
+ const ended = this[EMITTED_END];
6161
+ opts = opts || {};
6162
+ if (dest === proc.stdout || dest === proc.stderr) opts.end = false; else opts.end = opts.end !== false;
6163
+ opts.proxyErrors = !!opts.proxyErrors;
6164
+ if (ended) {
6165
+ if (opts.end) dest.end();
6166
+ } else {
6167
+ this[PIPES].push(!opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts));
6168
+ if (this[ASYNC]) defer((() => this[RESUME]())); else this[RESUME]();
6169
+ }
6170
+ return dest;
6171
+ }
6172
+ unpipe(dest) {
6173
+ const p = this[PIPES].find((p => p.dest === dest));
6174
+ if (p) {
6175
+ this[PIPES].splice(this[PIPES].indexOf(p), 1);
6176
+ p.unpipe();
6177
+ }
6178
+ }
6179
+ addListener(ev, fn) {
6180
+ return this.on(ev, fn);
6181
+ }
6182
+ on(ev, fn) {
6183
+ const ret = super.on(ev, fn);
6184
+ if (ev === "data" && !this[PIPES].length && !this.flowing) this[RESUME](); else if (ev === "readable" && this[BUFFERLENGTH] !== 0) super.emit("readable"); else if (isEndish(ev) && this[EMITTED_END]) {
6185
+ super.emit(ev);
6186
+ this.removeAllListeners(ev);
6187
+ } else if (ev === "error" && this[EMITTED_ERROR]) {
6188
+ if (this[ASYNC]) defer((() => fn.call(this, this[EMITTED_ERROR]))); else fn.call(this, this[EMITTED_ERROR]);
6189
+ }
6190
+ return ret;
6191
+ }
6192
+ get emittedEnd() {
6193
+ return this[EMITTED_END];
6194
+ }
6195
+ [MAYBE_EMIT_END]() {
6196
+ if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this[BUFFER].length === 0 && this[EOF]) {
6197
+ this[EMITTING_END] = true;
6198
+ this.emit("end");
6199
+ this.emit("prefinish");
6200
+ this.emit("finish");
6201
+ if (this[CLOSED]) this.emit("close");
6202
+ this[EMITTING_END] = false;
6203
+ }
6204
+ }
6205
+ emit(ev, data, ...extra) {
6206
+ if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) return; else if (ev === "data") {
6207
+ return !data ? false : this[ASYNC] ? defer((() => this[EMITDATA](data))) : this[EMITDATA](data);
6208
+ } else if (ev === "end") {
6209
+ return this[EMITEND]();
6210
+ } else if (ev === "close") {
6211
+ this[CLOSED] = true;
6212
+ if (!this[EMITTED_END] && !this[DESTROYED]) return;
6213
+ const ret = super.emit("close");
6214
+ this.removeAllListeners("close");
6215
+ return ret;
6216
+ } else if (ev === "error") {
6217
+ this[EMITTED_ERROR] = data;
6218
+ const ret = super.emit("error", data);
6219
+ this[MAYBE_EMIT_END]();
6220
+ return ret;
6221
+ } else if (ev === "resume") {
6222
+ const ret = super.emit("resume");
6223
+ this[MAYBE_EMIT_END]();
6224
+ return ret;
6225
+ } else if (ev === "finish" || ev === "prefinish") {
6226
+ const ret = super.emit(ev);
6227
+ this.removeAllListeners(ev);
6228
+ return ret;
6229
+ }
6230
+ const ret = super.emit(ev, data, ...extra);
6231
+ this[MAYBE_EMIT_END]();
6232
+ return ret;
6233
+ }
6234
+ [EMITDATA](data) {
6235
+ for (const p of this[PIPES]) {
6236
+ if (p.dest.write(data) === false) this.pause();
6237
+ }
6238
+ const ret = super.emit("data", data);
6239
+ this[MAYBE_EMIT_END]();
6240
+ return ret;
6241
+ }
6242
+ [EMITEND]() {
6243
+ if (this[EMITTED_END]) return;
6244
+ this[EMITTED_END] = true;
6245
+ this.readable = false;
6246
+ if (this[ASYNC]) defer((() => this[EMITEND2]())); else this[EMITEND2]();
6247
+ }
6248
+ [EMITEND2]() {
6249
+ if (this[DECODER]) {
6250
+ const data = this[DECODER].end();
6251
+ if (data) {
6252
+ for (const p of this[PIPES]) {
6253
+ p.dest.write(data);
6254
+ }
6255
+ super.emit("data", data);
6256
+ }
6257
+ }
6258
+ for (const p of this[PIPES]) {
6259
+ p.end();
6260
+ }
6261
+ const ret = super.emit("end");
6262
+ this.removeAllListeners("end");
6263
+ return ret;
6264
+ }
6265
+ collect() {
6266
+ const buf = [];
6267
+ if (!this[OBJECTMODE]) buf.dataLength = 0;
6268
+ const p = this.promise();
6269
+ this.on("data", (c => {
6270
+ buf.push(c);
6271
+ if (!this[OBJECTMODE]) buf.dataLength += c.length;
6272
+ }));
6273
+ return p.then((() => buf));
6274
+ }
6275
+ concat() {
6276
+ return this[OBJECTMODE] ? Promise.reject(new Error("cannot concat in objectMode")) : this.collect().then((buf => this[OBJECTMODE] ? Promise.reject(new Error("cannot concat in objectMode")) : this[ENCODING] ? buf.join("") : Buffer.concat(buf, buf.dataLength)));
6277
+ }
6278
+ promise() {
6279
+ return new Promise(((resolve, reject) => {
6280
+ this.on(DESTROYED, (() => reject(new Error("stream destroyed"))));
6281
+ this.on("error", (er => reject(er)));
6282
+ this.on("end", (() => resolve()));
6283
+ }));
6284
+ }
6285
+ [ASYNCITERATOR]() {
6286
+ const next = () => {
6287
+ const res = this.read();
6288
+ if (res !== null) return Promise.resolve({
6289
+ done: false,
6290
+ value: res
6291
+ });
6292
+ if (this[EOF]) return Promise.resolve({
6293
+ done: true
6294
+ });
6295
+ let resolve = null;
6296
+ let reject = null;
6297
+ const onerr = er => {
6298
+ this.removeListener("data", ondata);
6299
+ this.removeListener("end", onend);
6300
+ reject(er);
6301
+ };
6302
+ const ondata = value => {
6303
+ this.removeListener("error", onerr);
6304
+ this.removeListener("end", onend);
6305
+ this.pause();
6306
+ resolve({
6307
+ value,
6308
+ done: !!this[EOF]
6309
+ });
6310
+ };
6311
+ const onend = () => {
6312
+ this.removeListener("error", onerr);
6313
+ this.removeListener("data", ondata);
6314
+ resolve({
6315
+ done: true
6316
+ });
6317
+ };
6318
+ const ondestroy = () => onerr(new Error("stream destroyed"));
6319
+ return new Promise(((res, rej) => {
6320
+ reject = rej;
6321
+ resolve = res;
6322
+ this.once(DESTROYED, ondestroy);
6323
+ this.once("error", onerr);
6324
+ this.once("end", onend);
6325
+ this.once("data", ondata);
6326
+ }));
6327
+ };
6328
+ return {
6329
+ next
6330
+ };
6331
+ }
6332
+ [ITERATOR]() {
6333
+ const next = () => {
6334
+ const value = this.read();
6335
+ const done = value === null;
6336
+ return {
6337
+ value,
6338
+ done
6339
+ };
6340
+ };
6341
+ return {
6342
+ next
6343
+ };
6344
+ }
6345
+ destroy(er) {
6346
+ if (this[DESTROYED]) {
6347
+ if (er) this.emit("error", er); else this.emit(DESTROYED);
6348
+ return this;
6349
+ }
6350
+ this[DESTROYED] = true;
6351
+ this[BUFFER].length = 0;
6352
+ this[BUFFERLENGTH] = 0;
6353
+ if (typeof this.close === "function" && !this[CLOSED]) this.close();
6354
+ if (er) this.emit("error", er); else this.emit(DESTROYED);
6355
+ return this;
6356
+ }
6357
+ static isStream(s) {
6358
+ return !!s && (s instanceof Minipass || s instanceof Stream || s instanceof EE && (typeof s.pipe === "function" || typeof s.write === "function" && typeof s.end === "function"));
6359
+ }
6360
+ };
6361
+ },
5917
6362
  3459: (__unused_webpack_module, exports) => {
5918
6363
  "use strict";
5919
6364
  exports.fromCallback = function(fn) {
@@ -7730,35 +8175,22 @@ var __webpack_modules__ = {
7730
8175
  types: Object.keys((_c = assmSpec.types) !== null && _c !== void 0 ? _c : {}).length
7731
8176
  };
7732
8177
  }
8178
+ getBinScriptCommand(req) {
8179
+ return this._getBinScriptCommand(req);
8180
+ }
7733
8181
  invokeBinScript(req) {
7734
- var _a;
7735
- const packageDir = this._getPackageDir(req.assembly);
7736
- if (fs.pathExistsSync(packageDir)) {
7737
- const epkg = fs.readJsonSync(path.join(packageDir, "package.json"));
7738
- if (!epkg.bin) {
7739
- throw new JsiiFault("There is no bin scripts defined for this package.");
7740
- }
7741
- const scriptPath = epkg.bin[req.script];
7742
- if (!epkg.bin) {
7743
- throw new JsiiFault(`Script with name ${req.script} was not defined.`);
7744
- }
7745
- const result = cp.spawnSync(path.join(packageDir, scriptPath), (_a = req.args) !== null && _a !== void 0 ? _a : [], {
7746
- encoding: "utf-8",
7747
- env: {
7748
- ...process.env,
7749
- NODE_OPTIONS: process.execArgv.join(" "),
7750
- PATH: `${path.dirname(process.execPath)}:${process.env.PATH}`
7751
- },
7752
- shell: true
7753
- });
7754
- return {
7755
- stdout: result.stdout,
7756
- stderr: result.stderr,
7757
- status: result.status,
7758
- signal: result.signal
7759
- };
7760
- }
7761
- throw new JsiiFault(`Package with name ${req.assembly} was not loaded.`);
8182
+ const {command, args, env} = this._getBinScriptCommand(req);
8183
+ const result = cp.spawnSync(command, args, {
8184
+ encoding: "utf-8",
8185
+ env,
8186
+ shell: true
8187
+ });
8188
+ return {
8189
+ stdout: result.stdout,
8190
+ stderr: result.stderr,
8191
+ status: result.status,
8192
+ signal: result.signal
8193
+ };
7762
8194
  }
7763
8195
  create(req) {
7764
8196
  return this._create(req);
@@ -7904,8 +8336,14 @@ var __webpack_modules__ = {
7904
8336
  } catch (e) {
7905
8337
  this._debug("promise error:", e);
7906
8338
  if (e.name === "@jsii/kernel.Fault") {
8339
+ if (e instanceof JsiiFault) {
8340
+ throw e;
8341
+ }
7907
8342
  throw new JsiiFault(e.message);
7908
8343
  }
8344
+ if (e instanceof RuntimeError) {
8345
+ throw e;
8346
+ }
7909
8347
  throw new RuntimeError(e);
7910
8348
  }
7911
8349
  return {
@@ -8423,8 +8861,14 @@ var __webpack_modules__ = {
8423
8861
  return fn();
8424
8862
  } catch (e) {
8425
8863
  if (e.name === "@jsii/kernel.Fault") {
8864
+ if (e instanceof JsiiFault) {
8865
+ throw e;
8866
+ }
8426
8867
  throw new JsiiFault(e);
8427
8868
  }
8869
+ if (e instanceof RuntimeError) {
8870
+ throw e;
8871
+ }
8428
8872
  throw new RuntimeError(e);
8429
8873
  } finally {
8430
8874
  delete this.syncInProgress;
@@ -8437,6 +8881,27 @@ var __webpack_modules__ = {
8437
8881
  }
8438
8882
  return property;
8439
8883
  }
8884
+ _getBinScriptCommand(req) {
8885
+ var _a, _b;
8886
+ const packageDir = this._getPackageDir(req.assembly);
8887
+ if (fs.pathExistsSync(packageDir)) {
8888
+ const epkg = fs.readJsonSync(path.join(packageDir, "package.json"));
8889
+ const scriptPath = (_a = epkg.bin) === null || _a === void 0 ? void 0 : _a[req.script];
8890
+ if (!epkg.bin) {
8891
+ throw new JsiiFault(`Script with name ${req.script} was not defined.`);
8892
+ }
8893
+ return {
8894
+ command: path.join(packageDir, scriptPath),
8895
+ args: (_b = req.args) !== null && _b !== void 0 ? _b : [],
8896
+ env: {
8897
+ ...process.env,
8898
+ NODE_OPTIONS: process.execArgv.join(" "),
8899
+ PATH: `${path.dirname(process.execPath)}:${process.env.PATH}`
8900
+ }
8901
+ };
8902
+ }
8903
+ throw new JsiiFault(`Package with name ${req.assembly} was not loaded.`);
8904
+ }
8440
8905
  _makecbid() {
8441
8906
  return `jsii::callback::${this.nextid++}`;
8442
8907
  }
@@ -11506,7 +11971,7 @@ var __webpack_modules__ = {
11506
11971
  Object.defineProperty(exports, "__esModule", {
11507
11972
  value: true
11508
11973
  });
11509
- exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
11974
+ exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
11510
11975
  const core_1 = __webpack_require__(8858);
11511
11976
  const draft7_1 = __webpack_require__(5802);
11512
11977
  const discriminator_1 = __webpack_require__(1966);
@@ -11579,6 +12044,20 @@ var __webpack_modules__ = {
11579
12044
  return codegen_1.CodeGen;
11580
12045
  }
11581
12046
  });
12047
+ var validation_error_1 = __webpack_require__(5174);
12048
+ Object.defineProperty(exports, "ValidationError", {
12049
+ enumerable: true,
12050
+ get: function() {
12051
+ return validation_error_1.default;
12052
+ }
12053
+ });
12054
+ var ref_error_1 = __webpack_require__(8237);
12055
+ Object.defineProperty(exports, "MissingRefError", {
12056
+ enumerable: true,
12057
+ get: function() {
12058
+ return ref_error_1.default;
12059
+ }
12060
+ });
11582
12061
  },
11583
12062
  2948: (__unused_webpack_module, exports) => {
11584
12063
  "use strict";
@@ -16764,7 +17243,7 @@ var __webpack_modules__ = {
16764
17243
  },
16765
17244
  4147: module => {
16766
17245
  "use strict";
16767
- module.exports = JSON.parse('{"name":"@jsii/runtime","version":"1.71.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.6.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.71.0","@jsii/check-node":"1.71.0","@jsii/spec":"^1.71.0"},"devDependencies":{"@scope/jsii-calc-base":"^1.71.0","@scope/jsii-calc-lib":"^1.71.0","jsii-build-tools":"^1.71.0","jsii-calc":"^3.20.120","source-map-loader":"^4.0.1","webpack":"^5.74.0","webpack-cli":"^4.10.0"}}');
17246
+ module.exports = JSON.parse('{"name":"@jsii/runtime","version":"1.73.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.6.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.73.0","@jsii/check-node":"1.73.0","@jsii/spec":"^1.73.0"},"devDependencies":{"@scope/jsii-calc-base":"^1.73.0","@scope/jsii-calc-lib":"^1.73.0","jsii-build-tools":"^1.73.0","jsii-calc":"^3.20.120","source-map-loader":"^4.0.1","webpack":"^5.75.0","webpack-cli":"^5.0.1"}}');
16768
17247
  },
16769
17248
  5277: module => {
16770
17249
  "use strict";
@@ -16780,7 +17259,7 @@ var __webpack_modules__ = {
16780
17259
  },
16781
17260
  9402: module => {
16782
17261
  "use strict";
16783
- module.exports = JSON.parse('{"$ref":"#/definitions/Assembly","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Assembly":{"description":"A JSII assembly specification.","properties":{"author":{"$ref":"#/definitions/Person","description":"The main author of this package."},"bin":{"additionalProperties":{"type":"string"},"default":"none","description":"List of bin-scripts","type":"object"},"bundled":{"additionalProperties":{"type":"string"},"default":"none","description":"List if bundled dependencies (these are not expected to be jsii\\nassemblies).","type":"object"},"contributors":{"default":"none","description":"Additional contributors to this package.","items":{"$ref":"#/definitions/Person"},"type":"array"},"dependencies":{"additionalProperties":{"type":"string"},"default":"none","description":"Direct dependencies on other assemblies (with semver), the key is the JSII\\nassembly name, and the value is a SemVer expression.","type":"object"},"dependencyClosure":{"additionalProperties":{"$ref":"#/definitions/DependencyConfiguration"},"default":"none","description":"Target configuration for all the assemblies that are direct or transitive\\ndependencies of this assembly. This is needed to generate correct native\\ntype names for any transitively inherited member, in certain languages.","type":"object"},"description":{"description":"Description of the assembly, maps to \\"description\\" from package.json\\nThis is required since some package managers (like Maven) require it.","type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fingerprint":{"description":"A fingerprint that can be used to determine if the specification has\\nchanged.","minLength":1,"type":"string"},"homepage":{"description":"The url to the project homepage. Maps to \\"homepage\\" from package.json.","type":"string"},"jsiiVersion":{"description":"The version of the jsii compiler that was used to produce this Assembly.","minLength":1,"type":"string"},"keywords":{"description":"Keywords that help discover or identify this packages with respects to it\'s\\nintended usage, audience, etc... Where possible, this will be rendered in\\nthe corresponding metadata section of idiomatic package manifests, for\\nexample NuGet package tags.","items":{"type":"string"},"type":"array"},"license":{"description":"The SPDX name of the license this assembly is distributed on.","type":"string"},"metadata":{"additionalProperties":{},"default":"none","description":"Arbitrary key-value pairs of metadata, which the maintainer chose to\\ndocument with the assembly. These entries do not carry normative\\nsemantics and their interpretation is up to the assembly maintainer.","type":"object"},"name":{"description":"The name of the assembly","minLength":1,"type":"string"},"readme":{"$ref":"#/definitions/ReadMe","default":"none","description":"The readme document for this module (if any)."},"repository":{"description":"The module repository, maps to \\"repository\\" from package.json\\nThis is required since some package managers (like Maven) require it.","properties":{"directory":{"default":"the root of the repository","description":"If the package is not in the root directory (for example, when part\\nof a monorepo), you should specify the directory in which it lives.","type":"string"},"type":{"description":"The type of the repository (``git``, ``svn``, ...)","type":"string"},"url":{"description":"The URL of the repository.","type":"string"}},"required":["type","url"],"type":"object"},"schema":{"description":"The version of the spec schema","enum":["jsii/0.10.0"],"type":"string"},"submodules":{"additionalProperties":{"allOf":[{"$ref":"#/definitions/ReadMeContainer"},{"$ref":"#/definitions/SourceLocatable"},{"$ref":"#/definitions/Targetable"},{"$ref":"#/definitions/TypeScriptLocatable"}],"description":"A submodule\\n\\nThe difference between a top-level module (the assembly) and a submodule is\\nthat the submodule is annotated with its location in the repository."},"default":"none","description":"Submodules declared in this assembly.","type":"object"},"targets":{"$ref":"#/definitions/AssemblyTargets","default":"none","description":"A map of target name to configuration, which is used when generating\\npackages for various languages."},"types":{"additionalProperties":{"anyOf":[{"allOf":[{"$ref":"#/definitions/TypeBase"},{"$ref":"#/definitions/ClassType"}]},{"allOf":[{"$ref":"#/definitions/TypeBase"},{"$ref":"#/definitions/EnumType"}]},{"allOf":[{"$ref":"#/definitions/TypeBase"},{"$ref":"#/definitions/InterfaceType"}]}],"description":"Represents a type definition (not a type reference)."},"default":"none","description":"All types in the assembly, keyed by their fully-qualified-name","type":"object"},"version":{"description":"The version of the assembly","minLength":1,"type":"string"}},"required":["author","description","fingerprint","homepage","jsiiVersion","license","name","repository","schema","version"],"type":"object"},"AssemblyTargets":{"additionalProperties":{"additionalProperties":{},"type":"object"},"description":"Configurable targets for an asembly.","type":"object"},"Callable":{"description":"An Initializer or a Method.","properties":{"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"overrides":{"default":"this member is not overriding anything","description":"The FQN of the parent type (class or interface) that this entity\\noverrides or implements. If undefined, then this entity is the first in\\nit\'s hierarchy to declare this entity.","type":"string"},"parameters":{"default":"none","description":"The parameters of the Initializer or Method.","items":{"$ref":"#/definitions/Parameter"},"type":"array"},"protected":{"default":false,"description":"Indicates if this Initializer or Method is protected (otherwise it is\\npublic, since private members are not modeled).","type":"boolean"},"variadic":{"default":false,"description":"Indicates whether this Initializer or Method is variadic or not. When\\n``true``, the last element of ``#parameters`` will also be flagged\\n``#variadic``.","type":"boolean"}},"type":"object"},"ClassType":{"description":"Represents classes.","properties":{"abstract":{"default":false,"description":"Indicates if this class is an abstract class.","type":"boolean"},"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"base":{"default":"no base class","description":"The FQN of the base class of this class, if it has one.","type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"initializer":{"$ref":"#/definitions/Callable","default":"no initializer","description":"Initializer (constructor) method."},"interfaces":{"default":"none","description":"The FQNs of the interfaces this class implements, if any.","items":{"type":"string"},"type":"array","uniqueItems":true},"kind":{"description":"The kind of the type.","enum":["class"],"type":"string"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"methods":{"default":"none","description":"List of methods.","items":{"$ref":"#/definitions/Method"},"type":"array"},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"properties":{"default":"none","description":"List of properties.","items":{"$ref":"#/definitions/Property"},"type":"array"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","name"],"type":"object"},"CollectionKind":{"description":"Kinds of collections.","enum":["array","map"],"type":"string"},"CollectionTypeReference":{"description":"Reference to a collection type.","properties":{"collection":{"properties":{"elementtype":{"$ref":"#/definitions/TypeReference","description":"The type of an element (map keys are always strings)."},"kind":{"$ref":"#/definitions/CollectionKind","description":"The kind of collection."}},"required":["elementtype","kind"],"type":"object"}},"required":["collection"],"type":"object"},"DependencyConfiguration":{"properties":{"submodules":{"additionalProperties":{"$ref":"#/definitions/Targetable"},"type":"object"},"targets":{"$ref":"#/definitions/AssemblyTargets","default":"none","description":"A map of target name to configuration, which is used when generating\\npackages for various languages."}},"type":"object"},"Docs":{"description":"Key value pairs of documentation nodes.\\nBased on TSDoc.","properties":{"custom":{"additionalProperties":{"type":"string"},"default":"none","description":"Custom tags that are not any of the default ones","type":"object"},"default":{"default":"none","description":"Description of the default","type":"string"},"deprecated":{"default":"none","description":"If present, this block indicates that an API item is no longer supported\\nand may be removed in a future release. The `@deprecated` tag must be\\nfollowed by a sentence describing the recommended alternative.\\nDeprecation recursively applies to members of a container. For example,\\nif a class is deprecated, then so are all of its members.","type":"string"},"example":{"default":"none","description":"Example showing the usage of this API item\\n\\nStarts off in running text mode, may switch to code using fenced code\\nblocks.","type":"string"},"remarks":{"default":"none","description":"Detailed information about an API item.\\n\\nEither the explicitly tagged `@remarks` section, otherwise everything\\npast the first paragraph if there is no `@remarks` tag.","type":"string"},"returns":{"default":"none","description":"The `@returns` block for this doc comment, or undefined if there is not\\none.","type":"string"},"see":{"default":"none","description":"A `@see` link with more information","type":"string"},"stability":{"description":"Whether the API item is beta/experimental quality","enum":["deprecated","experimental","external","stable"],"type":"string"},"subclassable":{"default":false,"description":"Whether this class or interface was intended to be subclassed/implemented\\nby library users.\\n\\nClasses intended for subclassing, and interfaces intended to be\\nimplemented by consumers, are held to stricter standards of API\\ncompatibility.","type":"boolean"},"summary":{"default":"none","description":"Summary documentation for an API item.\\n\\nThe first part of the documentation before hitting a `@remarks` tags, or\\nthe first line of the doc comment block if there is no `@remarks` tag.","type":"string"}},"type":"object"},"EnumMember":{"description":"Represents a member of an enum.","properties":{"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"name":{"description":"The name/symbol of the member.","type":"string"}},"required":["name"],"type":"object"},"EnumType":{"description":"Represents an enum type.","properties":{"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"kind":{"description":"The kind of the type.","enum":["enum"],"type":"string"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"members":{"description":"Members of the enum.","items":{"$ref":"#/definitions/EnumMember"},"type":"array"},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","members","name"],"type":"object"},"InterfaceType":{"properties":{"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"datatype":{"default":false,"description":"True if this interface only contains properties. Different backends might\\nhave idiomatic ways to allow defining concrete instances such interfaces.\\nFor example, in Java, the generator will produce a PoJo and a builder\\nwhich will allow users to create a concrete object with data which\\nadheres to this interface.","type":"boolean"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"interfaces":{"default":"none","description":"The FQNs of the interfaces this interface extends, if any.","items":{"type":"string"},"type":"array","uniqueItems":true},"kind":{"description":"The kind of the type.","enum":["interface"],"type":"string"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"methods":{"default":"none","description":"List of methods.","items":{"$ref":"#/definitions/Method"},"type":"array"},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"properties":{"default":"none","description":"List of properties.","items":{"$ref":"#/definitions/Property"},"type":"array"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","name"],"type":"object"},"Method":{"description":"A method with a name (i.e: not an initializer).","properties":{"abstract":{"default":false,"description":"Is this method an abstract method (this means the class will also be an abstract class)","type":"boolean"},"async":{"default":false,"description":"Indicates if this is an asynchronous method (it will return a promise).","type":"boolean"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"name":{"description":"The name of the method. Undefined if this method is a initializer.","type":"string"},"overrides":{"default":"this member is not overriding anything","description":"The FQN of the parent type (class or interface) that this entity\\noverrides or implements. If undefined, then this entity is the first in\\nit\'s hierarchy to declare this entity.","type":"string"},"parameters":{"default":"none","description":"The parameters of the Initializer or Method.","items":{"$ref":"#/definitions/Parameter"},"type":"array"},"protected":{"default":false,"description":"Indicates if this Initializer or Method is protected (otherwise it is\\npublic, since private members are not modeled).","type":"boolean"},"returns":{"$ref":"#/definitions/OptionalValue","default":"void","description":"The return type of the method (`undefined` if `void`)"},"static":{"default":false,"description":"Indicates if this is a static method.","type":"boolean"},"variadic":{"default":false,"description":"Indicates whether this Initializer or Method is variadic or not. When\\n``true``, the last element of ``#parameters`` will also be flagged\\n``#variadic``.","type":"boolean"}},"required":["name"],"type":"object"},"NamedTypeReference":{"description":"Reference to a named type, defined by this assembly or one of its\\ndependencies.","properties":{"fqn":{"description":"The fully-qualified-name of the type (can be located in the\\n``spec.types[fqn]``` of the assembly that defines the type).","type":"string"}},"required":["fqn"],"type":"object"},"OptionalValue":{"description":"A value that can possibly be optional.","properties":{"optional":{"default":false,"description":"Determines whether the value is, indeed, optional.","type":"boolean"},"type":{"$ref":"#/definitions/TypeReference","description":"The declared type of the value, when it\'s present."}},"required":["type"],"type":"object"},"Parameter":{"description":"Represents a method parameter.","properties":{"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"name":{"description":"The name of the parameter.","minLength":1,"type":"string"},"optional":{"default":false,"description":"Determines whether the value is, indeed, optional.","type":"boolean"},"type":{"$ref":"#/definitions/TypeReference","description":"The declared type of the value, when it\'s present."},"variadic":{"default":false,"description":"Whether this is the last parameter of a variadic method. In such cases,\\nthe `#type` attribute is the type of each individual item of the variadic\\narguments list (as opposed to some array type, as for example TypeScript\\nwould model it).","type":"boolean"}},"required":["name","type"],"type":"object"},"Person":{"description":"Metadata about people or organizations associated with the project that\\nresulted in the Assembly. Some of this metadata is required in order to\\npublish to certain package repositories (for example, Maven Central), but is\\nnot normalized, and the meaning of fields (role, for example), is up to each\\nproject maintainer.","properties":{"email":{"default":"none","description":"The email of the person","type":"string"},"name":{"description":"The name of the person","type":"string"},"organization":{"default":false,"description":"If true, this person is, in fact, an organization","type":"boolean"},"roles":{"description":"A list of roles this person has in the project, for example `maintainer`,\\n`contributor`, `owner`, ...","items":{"type":"string"},"type":"array"},"url":{"default":"none","description":"The URL for the person","type":"string"}},"required":["name","roles"],"type":"object"},"PrimitiveType":{"description":"Kinds of primitive types.","enum":["any","boolean","date","json","number","string"],"type":"string"},"PrimitiveTypeReference":{"description":"Reference to a primitive type.","properties":{"primitive":{"$ref":"#/definitions/PrimitiveType","description":"If this is a reference to a primitive type, this will include the\\nprimitive type kind."}},"required":["primitive"],"type":"object"},"Property":{"description":"A class property.","properties":{"abstract":{"default":false,"description":"Indicates if this property is abstract","type":"boolean"},"const":{"default":false,"description":"A hint that indicates that this static, immutable property is initialized\\nduring startup. This allows emitting \\"const\\" idioms in different target\\nlanguages. Implies `static` and `immutable`.","type":"boolean"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"immutable":{"default":false,"description":"Indicates if this property only has a getter (immutable).","type":"boolean"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"name":{"description":"The name of the property.","minLength":1,"type":"string"},"optional":{"default":false,"description":"Determines whether the value is, indeed, optional.","type":"boolean"},"overrides":{"default":"this member is not overriding anything","description":"The FQN of the parent type (class or interface) that this entity\\noverrides or implements. If undefined, then this entity is the first in\\nit\'s hierarchy to declare this entity.","type":"string"},"protected":{"default":false,"description":"Indicates if this property is protected (otherwise it is public)","type":"boolean"},"static":{"default":false,"description":"Indicates if this is a static property.","type":"boolean"},"type":{"$ref":"#/definitions/TypeReference","description":"The declared type of the value, when it\'s present."}},"required":["name","type"],"type":"object"},"ReadMe":{"description":"README information","properties":{"markdown":{"type":"string"}},"required":["markdown"],"type":"object"},"ReadMeContainer":{"description":"Elements that can contain a `readme` property.","properties":{"readme":{"$ref":"#/definitions/ReadMe","default":"none","description":"The readme document for this module (if any)."}},"type":"object"},"SourceLocatable":{"description":"Indicates that an entity has a source location","properties":{"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."}},"type":"object"},"SourceLocation":{"description":"Where in the module source the definition for this API item was found","properties":{"filename":{"description":"Relative filename","type":"string"},"line":{"description":"1-based line number in the indicated file","type":"number"}},"required":["filename","line"],"type":"object"},"Targetable":{"description":"A targetable module-like thing\\n\\nHas targets and a readme. Used for Assemblies and Submodules.","properties":{"targets":{"$ref":"#/definitions/AssemblyTargets","default":"none","description":"A map of target name to configuration, which is used when generating\\npackages for various languages."}},"type":"object"},"TypeBase":{"description":"Common attributes of a type definition.","properties":{"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"kind":{"$ref":"#/definitions/TypeKind","description":"The kind of the type."},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","name"],"type":"object"},"TypeKind":{"description":"Kinds of types.","enum":["class","enum","interface"],"type":"string"},"TypeReference":{"anyOf":[{"$ref":"#/definitions/NamedTypeReference"},{"$ref":"#/definitions/PrimitiveTypeReference"},{"$ref":"#/definitions/CollectionTypeReference"},{"$ref":"#/definitions/UnionTypeReference"}],"description":"A reference to a type (primitive, collection or fqn)."},"TypeScriptLocatable":{"description":"Indicates that a jsii entity\'s origin can be traced to TypeScript code\\n\\nThis is interface is not the same as `SourceLocatable`. SourceLocatable\\nidentifies lines in source files in a source repository (in a `.ts` file,\\nwith respect to a git root).\\n\\nOn the other hand, `TypeScriptLocatable` identifies a symbol name inside a\\npotentially distributed TypeScript file (in either a `.d.ts` or `.ts`\\nfile, with respect to the package root).","properties":{"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"type":"object"},"UnionTypeReference":{"description":"Reference to a union type.","properties":{"union":{"description":"Indicates that this is a union type, which means it can be one of a set\\nof types.","properties":{"types":{"description":"All the possible types (including the primary type).","items":{"$ref":"#/definitions/TypeReference"},"minItems":2,"type":"array"}},"required":["types"],"type":"object"}},"required":["union"],"type":"object"}}}');
17262
+ module.exports = JSON.parse('{"$ref":"#/definitions/Assembly","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Assembly":{"description":"A JSII assembly specification.","properties":{"author":{"$ref":"#/definitions/Person","description":"The main author of this package."},"bin":{"additionalProperties":{"type":"string"},"default":"none","description":"List of bin-scripts","type":"object"},"bundled":{"additionalProperties":{"type":"string"},"default":"none","description":"List if bundled dependencies (these are not expected to be jsii\\nassemblies).","type":"object"},"contributors":{"default":"none","description":"Additional contributors to this package.","items":{"$ref":"#/definitions/Person"},"type":"array"},"dependencies":{"additionalProperties":{"type":"string"},"default":"none","description":"Direct dependencies on other assemblies (with semver), the key is the JSII\\nassembly name, and the value is a SemVer expression.","type":"object"},"dependencyClosure":{"additionalProperties":{"$ref":"#/definitions/DependencyConfiguration"},"default":"none","description":"Target configuration for all the assemblies that are direct or transitive\\ndependencies of this assembly. This is needed to generate correct native\\ntype names for any transitively inherited member, in certain languages.","type":"object"},"description":{"description":"Description of the assembly, maps to \\"description\\" from package.json\\nThis is required since some package managers (like Maven) require it.","type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fingerprint":{"description":"A fingerprint that can be used to determine if the specification has\\nchanged.","minLength":1,"type":"string"},"homepage":{"description":"The url to the project homepage. Maps to \\"homepage\\" from package.json.","type":"string"},"jsiiVersion":{"description":"The version of the jsii compiler that was used to produce this Assembly.","minLength":1,"type":"string"},"keywords":{"description":"Keywords that help discover or identify this packages with respects to it\'s\\nintended usage, audience, etc... Where possible, this will be rendered in\\nthe corresponding metadata section of idiomatic package manifests, for\\nexample NuGet package tags.","items":{"type":"string"},"type":"array"},"license":{"description":"The SPDX name of the license this assembly is distributed on.","type":"string"},"metadata":{"additionalProperties":{},"default":"none","description":"Arbitrary key-value pairs of metadata, which the maintainer chose to\\ndocument with the assembly. These entries do not carry normative\\nsemantics and their interpretation is up to the assembly maintainer.","type":"object"},"name":{"description":"The name of the assembly","minLength":1,"type":"string"},"readme":{"$ref":"#/definitions/ReadMe","default":"none","description":"The readme document for this module (if any)."},"repository":{"description":"The module repository, maps to \\"repository\\" from package.json\\nThis is required since some package managers (like Maven) require it.","properties":{"directory":{"default":"the root of the repository","description":"If the package is not in the root directory (for example, when part\\nof a monorepo), you should specify the directory in which it lives.","type":"string"},"type":{"description":"The type of the repository (``git``, ``svn``, ...)","type":"string"},"url":{"description":"The URL of the repository.","type":"string"}},"required":["type","url"],"type":"object"},"schema":{"description":"The version of the spec schema","enum":["jsii/0.10.0"],"type":"string"},"submodules":{"additionalProperties":{"$ref":"#/definitions/Submodule"},"default":"none","description":"Submodules declared in this assembly.","type":"object"},"targets":{"$ref":"#/definitions/AssemblyTargets","default":"none","description":"A map of target name to configuration, which is used when generating\\npackages for various languages."},"types":{"additionalProperties":{"$ref":"#/definitions/Type"},"default":"none","description":"All types in the assembly, keyed by their fully-qualified-name","type":"object"},"version":{"description":"The version of the assembly","minLength":1,"type":"string"}},"required":["author","description","fingerprint","homepage","jsiiVersion","license","name","repository","schema","version"],"type":"object"},"AssemblyTargets":{"additionalProperties":{"additionalProperties":{},"type":"object"},"description":"Configurable targets for an asembly.","type":"object"},"Callable":{"description":"An Initializer or a Method.","properties":{"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"overrides":{"default":"this member is not overriding anything","description":"The FQN of the parent type (class or interface) that this entity\\noverrides or implements. If undefined, then this entity is the first in\\nit\'s hierarchy to declare this entity.","type":"string"},"parameters":{"default":"none","description":"The parameters of the Initializer or Method.","items":{"$ref":"#/definitions/Parameter"},"type":"array"},"protected":{"default":false,"description":"Indicates if this Initializer or Method is protected (otherwise it is\\npublic, since private members are not modeled).","type":"boolean"},"variadic":{"default":false,"description":"Indicates whether this Initializer or Method is variadic or not. When\\n``true``, the last element of ``#parameters`` will also be flagged\\n``#variadic``.","type":"boolean"}},"type":"object"},"ClassType":{"description":"Represents classes.","properties":{"abstract":{"default":false,"description":"Indicates if this class is an abstract class.","type":"boolean"},"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"base":{"default":"no base class","description":"The FQN of the base class of this class, if it has one.","type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"initializer":{"$ref":"#/definitions/Callable","default":"no initializer","description":"Initializer (constructor) method."},"interfaces":{"default":"none","description":"The FQNs of the interfaces this class implements, if any.","items":{"type":"string"},"type":"array","uniqueItems":true},"kind":{"description":"The kind of the type.","enum":["class"],"type":"string"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"methods":{"default":"none","description":"List of methods.","items":{"$ref":"#/definitions/Method"},"type":"array"},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"properties":{"default":"none","description":"List of properties.","items":{"$ref":"#/definitions/Property"},"type":"array"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","name"],"type":"object"},"CollectionKind":{"description":"Kinds of collections.","enum":["array","map"],"type":"string"},"CollectionTypeReference":{"description":"Reference to a collection type.","properties":{"collection":{"properties":{"elementtype":{"$ref":"#/definitions/TypeReference","description":"The type of an element (map keys are always strings)."},"kind":{"$ref":"#/definitions/CollectionKind","description":"The kind of collection."}},"required":["elementtype","kind"],"type":"object"}},"required":["collection"],"type":"object"},"DependencyConfiguration":{"properties":{"submodules":{"additionalProperties":{"$ref":"#/definitions/Targetable"},"type":"object"},"targets":{"$ref":"#/definitions/AssemblyTargets","default":"none","description":"A map of target name to configuration, which is used when generating\\npackages for various languages."}},"type":"object"},"Docs":{"description":"Key value pairs of documentation nodes.\\nBased on TSDoc.","properties":{"custom":{"additionalProperties":{"type":"string"},"default":"none","description":"Custom tags that are not any of the default ones","type":"object"},"default":{"default":"none","description":"Description of the default","type":"string"},"deprecated":{"default":"none","description":"If present, this block indicates that an API item is no longer supported\\nand may be removed in a future release. The `@deprecated` tag must be\\nfollowed by a sentence describing the recommended alternative.\\nDeprecation recursively applies to members of a container. For example,\\nif a class is deprecated, then so are all of its members.","type":"string"},"example":{"default":"none","description":"Example showing the usage of this API item\\n\\nStarts off in running text mode, may switch to code using fenced code\\nblocks.","type":"string"},"remarks":{"default":"none","description":"Detailed information about an API item.\\n\\nEither the explicitly tagged `@remarks` section, otherwise everything\\npast the first paragraph if there is no `@remarks` tag.","type":"string"},"returns":{"default":"none","description":"The `@returns` block for this doc comment, or undefined if there is not\\none.","type":"string"},"see":{"default":"none","description":"A `@see` link with more information","type":"string"},"stability":{"description":"Whether the API item is beta/experimental quality","enum":["deprecated","experimental","external","stable"],"type":"string"},"subclassable":{"default":false,"description":"Whether this class or interface was intended to be subclassed/implemented\\nby library users.\\n\\nClasses intended for subclassing, and interfaces intended to be\\nimplemented by consumers, are held to stricter standards of API\\ncompatibility.","type":"boolean"},"summary":{"default":"none","description":"Summary documentation for an API item.\\n\\nThe first part of the documentation before hitting a `@remarks` tags, or\\nthe first line of the doc comment block if there is no `@remarks` tag.","type":"string"}},"type":"object"},"EnumMember":{"description":"Represents a member of an enum.","properties":{"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"name":{"description":"The name/symbol of the member.","type":"string"}},"required":["name"],"type":"object"},"EnumType":{"description":"Represents an enum type.","properties":{"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"kind":{"description":"The kind of the type.","enum":["enum"],"type":"string"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"members":{"description":"Members of the enum.","items":{"$ref":"#/definitions/EnumMember"},"type":"array"},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","members","name"],"type":"object"},"InterfaceType":{"properties":{"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"datatype":{"default":false,"description":"True if this interface only contains properties. Different backends might\\nhave idiomatic ways to allow defining concrete instances such interfaces.\\nFor example, in Java, the generator will produce a PoJo and a builder\\nwhich will allow users to create a concrete object with data which\\nadheres to this interface.","type":"boolean"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"interfaces":{"default":"none","description":"The FQNs of the interfaces this interface extends, if any.","items":{"type":"string"},"type":"array","uniqueItems":true},"kind":{"description":"The kind of the type.","enum":["interface"],"type":"string"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"methods":{"default":"none","description":"List of methods.","items":{"$ref":"#/definitions/Method"},"type":"array"},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"properties":{"default":"none","description":"List of properties.","items":{"$ref":"#/definitions/Property"},"type":"array"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","name"],"type":"object"},"Method":{"description":"A method with a name (i.e: not an initializer).","properties":{"abstract":{"default":false,"description":"Is this method an abstract method (this means the class will also be an abstract class)","type":"boolean"},"async":{"default":false,"description":"Indicates if this is an asynchronous method (it will return a promise).","type":"boolean"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"name":{"description":"The name of the method. Undefined if this method is a initializer.","type":"string"},"overrides":{"default":"this member is not overriding anything","description":"The FQN of the parent type (class or interface) that this entity\\noverrides or implements. If undefined, then this entity is the first in\\nit\'s hierarchy to declare this entity.","type":"string"},"parameters":{"default":"none","description":"The parameters of the Initializer or Method.","items":{"$ref":"#/definitions/Parameter"},"type":"array"},"protected":{"default":false,"description":"Indicates if this Initializer or Method is protected (otherwise it is\\npublic, since private members are not modeled).","type":"boolean"},"returns":{"$ref":"#/definitions/OptionalValue","default":"void","description":"The return type of the method (`undefined` if `void`)"},"static":{"default":false,"description":"Indicates if this is a static method.","type":"boolean"},"variadic":{"default":false,"description":"Indicates whether this Initializer or Method is variadic or not. When\\n``true``, the last element of ``#parameters`` will also be flagged\\n``#variadic``.","type":"boolean"}},"required":["name"],"type":"object"},"NamedTypeReference":{"description":"Reference to a named type, defined by this assembly or one of its\\ndependencies.","properties":{"fqn":{"description":"The fully-qualified-name of the type (can be located in the\\n``spec.types[fqn]``` of the assembly that defines the type).","type":"string"}},"required":["fqn"],"type":"object"},"OptionalValue":{"description":"A value that can possibly be optional.","properties":{"optional":{"default":false,"description":"Determines whether the value is, indeed, optional.","type":"boolean"},"type":{"$ref":"#/definitions/TypeReference","description":"The declared type of the value, when it\'s present."}},"required":["type"],"type":"object"},"Parameter":{"description":"Represents a method parameter.","properties":{"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"name":{"description":"The name of the parameter.","minLength":1,"type":"string"},"optional":{"default":false,"description":"Determines whether the value is, indeed, optional.","type":"boolean"},"type":{"$ref":"#/definitions/TypeReference","description":"The declared type of the value, when it\'s present."},"variadic":{"default":false,"description":"Whether this is the last parameter of a variadic method. In such cases,\\nthe `#type` attribute is the type of each individual item of the variadic\\narguments list (as opposed to some array type, as for example TypeScript\\nwould model it).","type":"boolean"}},"required":["name","type"],"type":"object"},"Person":{"description":"Metadata about people or organizations associated with the project that\\nresulted in the Assembly. Some of this metadata is required in order to\\npublish to certain package repositories (for example, Maven Central), but is\\nnot normalized, and the meaning of fields (role, for example), is up to each\\nproject maintainer.","properties":{"email":{"default":"none","description":"The email of the person","type":"string"},"name":{"description":"The name of the person","type":"string"},"organization":{"default":false,"description":"If true, this person is, in fact, an organization","type":"boolean"},"roles":{"description":"A list of roles this person has in the project, for example `maintainer`,\\n`contributor`, `owner`, ...","items":{"type":"string"},"type":"array"},"url":{"default":"none","description":"The URL for the person","type":"string"}},"required":["name","roles"],"type":"object"},"PrimitiveType":{"description":"Kinds of primitive types.","enum":["any","boolean","date","json","number","string"],"type":"string"},"PrimitiveTypeReference":{"description":"Reference to a primitive type.","properties":{"primitive":{"$ref":"#/definitions/PrimitiveType","description":"If this is a reference to a primitive type, this will include the\\nprimitive type kind."}},"required":["primitive"],"type":"object"},"Property":{"description":"A class property.","properties":{"abstract":{"default":false,"description":"Indicates if this property is abstract","type":"boolean"},"const":{"default":false,"description":"A hint that indicates that this static, immutable property is initialized\\nduring startup. This allows emitting \\"const\\" idioms in different target\\nlanguages. Implies `static` and `immutable`.","type":"boolean"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"immutable":{"default":false,"description":"Indicates if this property only has a getter (immutable).","type":"boolean"},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"name":{"description":"The name of the property.","minLength":1,"type":"string"},"optional":{"default":false,"description":"Determines whether the value is, indeed, optional.","type":"boolean"},"overrides":{"default":"this member is not overriding anything","description":"The FQN of the parent type (class or interface) that this entity\\noverrides or implements. If undefined, then this entity is the first in\\nit\'s hierarchy to declare this entity.","type":"string"},"protected":{"default":false,"description":"Indicates if this property is protected (otherwise it is public)","type":"boolean"},"static":{"default":false,"description":"Indicates if this is a static property.","type":"boolean"},"type":{"$ref":"#/definitions/TypeReference","description":"The declared type of the value, when it\'s present."}},"required":["name","type"],"type":"object"},"ReadMe":{"description":"README information","properties":{"markdown":{"type":"string"}},"required":["markdown"],"type":"object"},"ReadMeContainer":{"description":"Elements that can contain a `readme` property.","properties":{"readme":{"$ref":"#/definitions/ReadMe","default":"none","description":"The readme document for this module (if any)."}},"type":"object"},"SourceLocatable":{"description":"Indicates that an entity has a source location","properties":{"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."}},"type":"object"},"SourceLocation":{"description":"Where in the module source the definition for this API item was found","properties":{"filename":{"description":"Relative filename","type":"string"},"line":{"description":"1-based line number in the indicated file","type":"number"}},"required":["filename","line"],"type":"object"},"Submodule":{"allOf":[{"$ref":"#/definitions/ReadMeContainer"},{"$ref":"#/definitions/SourceLocatable"},{"$ref":"#/definitions/Targetable"},{"$ref":"#/definitions/TypeScriptLocatable"}],"description":"A submodule\\n\\nThe difference between a top-level module (the assembly) and a submodule is\\nthat the submodule is annotated with its location in the repository."},"Targetable":{"description":"A targetable module-like thing\\n\\nHas targets and a readme. Used for Assemblies and Submodules.","properties":{"targets":{"$ref":"#/definitions/AssemblyTargets","default":"none","description":"A map of target name to configuration, which is used when generating\\npackages for various languages."}},"type":"object"},"Type":{"anyOf":[{"allOf":[{"$ref":"#/definitions/TypeBase"},{"$ref":"#/definitions/ClassType"}]},{"allOf":[{"$ref":"#/definitions/TypeBase"},{"$ref":"#/definitions/EnumType"}]},{"allOf":[{"$ref":"#/definitions/TypeBase"},{"$ref":"#/definitions/InterfaceType"}]}],"description":"Represents a type definition (not a type reference)."},"TypeBase":{"description":"Common attributes of a type definition.","properties":{"assembly":{"description":"The name of the assembly the type belongs to.","minLength":1,"type":"string"},"docs":{"$ref":"#/definitions/Docs","default":"none","description":"Documentation for this entity."},"fqn":{"description":"The fully qualified name of the type (``<assembly>.<namespace>.<name>``)","minLength":3,"type":"string"},"kind":{"$ref":"#/definitions/TypeKind","description":"The kind of the type."},"locationInModule":{"$ref":"#/definitions/SourceLocation","default":"none","description":"Where in the module this definition was found\\n\\nWhy is this not `locationInAssembly`? Because the assembly is the JSII\\nfile combining compiled code and its manifest, whereas this is referring\\nto the location of the source in the module the assembly was built from."},"name":{"description":"The simple name of the type (MyClass).","minLength":1,"type":"string"},"namespace":{"default":"none","description":"The namespace of the type (`foo.bar.baz`).\\n\\nWhen undefined, the type is located at the root of the assembly (its\\n`fqn` would be like `<assembly>.<name>`).\\n\\nFor types inside other types or inside submodules, the `<namespace>` corresponds to\\nthe namespace-qualified name of the container (can contain multiple segments like:\\n`<ns1>.<ns2>.<ns3>`).\\n\\nIn all cases:\\n\\n <fqn> = <assembly>[.<namespace>].<name>","type":"string"},"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"required":["assembly","fqn","kind","name"],"type":"object"},"TypeKind":{"description":"Kinds of types.","enum":["class","enum","interface"],"type":"string"},"TypeReference":{"anyOf":[{"$ref":"#/definitions/NamedTypeReference"},{"$ref":"#/definitions/PrimitiveTypeReference"},{"$ref":"#/definitions/CollectionTypeReference"},{"$ref":"#/definitions/UnionTypeReference"}],"description":"A reference to a type (primitive, collection or fqn)."},"TypeScriptLocatable":{"description":"Indicates that a jsii entity\'s origin can be traced to TypeScript code\\n\\nThis is interface is not the same as `SourceLocatable`. SourceLocatable\\nidentifies lines in source files in a source repository (in a `.ts` file,\\nwith respect to a git root).\\n\\nOn the other hand, `TypeScriptLocatable` identifies a symbol name inside a\\npotentially distributed TypeScript file (in either a `.d.ts` or `.ts`\\nfile, with respect to the package root).","properties":{"symbolId":{"description":"Unique string representation of the corresponding Typescript symbol\\n\\nUsed to map from TypeScript code back into the assembly.","type":"string"}},"type":"object"},"UnionTypeReference":{"description":"Reference to a union type.","properties":{"union":{"description":"Indicates that this is a union type, which means it can be one of a set\\nof types.","properties":{"types":{"description":"All the possible types (including the primary type).","items":{"$ref":"#/definitions/TypeReference"},"minItems":2,"type":"array"}},"required":["types"],"type":"object"}},"required":["union"],"type":"object"}}}');
16784
17263
  }
16785
17264
  };
16786
17265