@nsshunt/stsfhirclient 1.1.16 → 1.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/stsfhirclient.cjs +14993 -0
- package/dist/stsfhirclient.cjs.map +1 -0
- package/dist/stsfhirclient.mjs +38 -22
- package/dist/stsfhirclient.mjs.map +1 -1
- package/package.json +10 -9
- package/dist/stsfhirclient.umd.js +0 -14978
- package/dist/stsfhirclient.umd.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stsfhirclient.cjs","sources":["../node_modules/detect-node/index.esm.js","../node_modules/color-name/index.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/route.js","../node_modules/color-convert/index.js","../node_modules/ansi-styles/index.js","../node_modules/supports-color/browser.js","../node_modules/chalk/source/util.js","../node_modules/chalk/source/templates.js","../node_modules/chalk/source/index.js","../node_modules/http-status-codes/build/es/status-codes.js","../node_modules/engine.io-parser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../node_modules/engine.io-parser/build/esm/index.js","../node_modules/engine.io-client/build/esm/globals.js","../node_modules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/build/esm/transports/polling-xhr.js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transports/webtransport.js","../node_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/socket.js","../node_modules/engine.io-client/build/esm/index.js","../node_modules/socket.io-client/build/esm/url.js","../node_modules/socket.io-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/build/esm/binary.js","../node_modules/socket.io-parser/build/esm/index.js","../node_modules/socket.io-client/build/esm/on.js","../node_modules/socket.io-client/build/esm/socket.js","../node_modules/socket.io-client/build/esm/contrib/backo2.js","../node_modules/socket.io-client/build/esm/manager.js","../node_modules/socket.io-client/build/esm/index.js","../node_modules/@nsshunt/stssocketioutils/dist/index-snr1zbog.mjs","../node_modules/@nsshunt/stssocketioutils/dist/index.mjs","../node_modules/uuid/dist/stringify.js","../node_modules/uuid/dist/rng.js","../node_modules/uuid/dist/native.js","../node_modules/uuid/dist/v4.js","../src/fhirSocketClient.ts","../src/retryAxiosClient.ts","../src/FhirClient.ts","../src/fhir-searchTypes/fhirSearchTypes.ts","../node_modules/ajv/dist/compile/codegen/code.js","../node_modules/ajv/dist/compile/codegen/scope.js","../node_modules/ajv/dist/compile/codegen/index.js","../node_modules/ajv/dist/compile/util.js","../node_modules/ajv/dist/compile/names.js","../node_modules/ajv/dist/compile/errors.js","../node_modules/ajv/dist/compile/validate/boolSchema.js","../node_modules/ajv/dist/compile/rules.js","../node_modules/ajv/dist/compile/validate/applicability.js","../node_modules/ajv/dist/compile/validate/dataType.js","../node_modules/ajv/dist/compile/validate/defaults.js","../node_modules/ajv/dist/vocabularies/code.js","../node_modules/ajv/dist/compile/validate/keyword.js","../node_modules/ajv/dist/compile/validate/subschema.js","../node_modules/fast-deep-equal/index.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/dist/compile/resolve.js","../node_modules/ajv/dist/compile/validate/index.js","../node_modules/ajv/dist/runtime/validation_error.js","../node_modules/ajv/dist/compile/ref_error.js","../node_modules/ajv/dist/compile/index.js","../node_modules/fast-uri/lib/utils.js","../node_modules/fast-uri/lib/schemes.js","../node_modules/fast-uri/index.js","../node_modules/ajv/dist/runtime/uri.js","../node_modules/ajv/dist/core.js","../node_modules/ajv/dist/vocabularies/core/id.js","../node_modules/ajv/dist/vocabularies/core/ref.js","../node_modules/ajv/dist/vocabularies/core/index.js","../node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../node_modules/ajv/dist/runtime/ucs2length.js","../node_modules/ajv/dist/vocabularies/validation/limitLength.js","../node_modules/ajv/dist/vocabularies/validation/pattern.js","../node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../node_modules/ajv/dist/vocabularies/validation/required.js","../node_modules/ajv/dist/vocabularies/validation/limitItems.js","../node_modules/ajv/dist/runtime/equal.js","../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../node_modules/ajv/dist/vocabularies/validation/const.js","../node_modules/ajv/dist/vocabularies/validation/enum.js","../node_modules/ajv/dist/vocabularies/validation/index.js","../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../node_modules/ajv/dist/vocabularies/applicator/items.js","../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../node_modules/ajv/dist/vocabularies/applicator/items2020.js","../node_modules/ajv/dist/vocabularies/applicator/contains.js","../node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../node_modules/ajv/dist/vocabularies/applicator/properties.js","../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../node_modules/ajv/dist/vocabularies/applicator/not.js","../node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../node_modules/ajv/dist/vocabularies/applicator/allOf.js","../node_modules/ajv/dist/vocabularies/applicator/if.js","../node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../node_modules/ajv/dist/vocabularies/applicator/index.js","../node_modules/ajv/dist/vocabularies/format/format.js","../node_modules/ajv/dist/vocabularies/format/index.js","../node_modules/ajv/dist/vocabularies/metadata.js","../node_modules/ajv/dist/vocabularies/draft7.js","../node_modules/ajv/dist/vocabularies/discriminator/types.js","../node_modules/ajv/dist/vocabularies/discriminator/index.js","../node_modules/ajv/dist/ajv.js","../src/stsfhirvalidator.ts","../src/fhir-utils/uri.ts"],"sourcesContent":["// Only Node.JS has a process variable that is of [[Class]] process\nexport default Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","'use strict';\nmodule.exports = {\n\tstdout: false,\n\tstderr: false\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","// Generated file. Do not edit\nexport var StatusCodes;\n(function (StatusCodes) {\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.1\n *\n * This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.\n */\n StatusCodes[StatusCodes[\"CONTINUE\"] = 100] = \"CONTINUE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.2\n *\n * This code is sent in response to an Upgrade request header by the client, and indicates the protocol the server is switching too.\n */\n StatusCodes[StatusCodes[\"SWITCHING_PROTOCOLS\"] = 101] = \"SWITCHING_PROTOCOLS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.1\n *\n * This code indicates that the server has received and is processing the request, but no response is available yet.\n */\n StatusCodes[StatusCodes[\"PROCESSING\"] = 102] = \"PROCESSING\";\n /**\n * Official Documentation @ https://www.rfc-editor.org/rfc/rfc8297#page-3\n *\n * This code indicates to the client that the server is likely to send a final response with the header fields included in the informational response.\n */\n StatusCodes[StatusCodes[\"EARLY_HINTS\"] = 103] = \"EARLY_HINTS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.1\n *\n * The request has succeeded. The meaning of a success varies depending on the HTTP method:\n * GET: The resource has been fetched and is transmitted in the message body.\n * HEAD: The entity headers are in the message body.\n * POST: The resource describing the result of the action is transmitted in the message body.\n * TRACE: The message body contains the request message as received by the server\n */\n StatusCodes[StatusCodes[\"OK\"] = 200] = \"OK\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.2\n *\n * The request has succeeded and a new resource has been created as a result of it. This is typically the response sent after a PUT request.\n */\n StatusCodes[StatusCodes[\"CREATED\"] = 201] = \"CREATED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.3\n *\n * The request has been received but not yet acted upon. It is non-committal, meaning that there is no way in HTTP to later send an asynchronous response indicating the outcome of processing the request. It is intended for cases where another process or server handles the request, or for batch processing.\n */\n StatusCodes[StatusCodes[\"ACCEPTED\"] = 202] = \"ACCEPTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.4\n *\n * This response code means returned meta-information set is not exact set as available from the origin server, but collected from a local or a third party copy. Except this condition, 200 OK response should be preferred instead of this response.\n */\n StatusCodes[StatusCodes[\"NON_AUTHORITATIVE_INFORMATION\"] = 203] = \"NON_AUTHORITATIVE_INFORMATION\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.5\n *\n * There is no content to send for this request, but the headers may be useful. The user-agent may update its cached headers for this resource with the new ones.\n */\n StatusCodes[StatusCodes[\"NO_CONTENT\"] = 204] = \"NO_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.6\n *\n * This response code is sent after accomplishing request to tell user agent reset document view which sent this request.\n */\n StatusCodes[StatusCodes[\"RESET_CONTENT\"] = 205] = \"RESET_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.1\n *\n * This response code is used because of range header sent by the client to separate download into multiple streams.\n */\n StatusCodes[StatusCodes[\"PARTIAL_CONTENT\"] = 206] = \"PARTIAL_CONTENT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.2\n *\n * A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate.\n */\n StatusCodes[StatusCodes[\"MULTI_STATUS\"] = 207] = \"MULTI_STATUS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.1\n *\n * The request has more than one possible responses. User-agent or user should choose one of them. There is no standardized way to choose one of the responses.\n */\n StatusCodes[StatusCodes[\"MULTIPLE_CHOICES\"] = 300] = \"MULTIPLE_CHOICES\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.2\n *\n * This response code means that URI of requested resource has been changed. Probably, new URI would be given in the response.\n */\n StatusCodes[StatusCodes[\"MOVED_PERMANENTLY\"] = 301] = \"MOVED_PERMANENTLY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.3\n *\n * This response code means that URI of requested resource has been changed temporarily. New changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.\n */\n StatusCodes[StatusCodes[\"MOVED_TEMPORARILY\"] = 302] = \"MOVED_TEMPORARILY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.4\n *\n * Server sent this response to directing client to get requested resource to another URI with an GET request.\n */\n StatusCodes[StatusCodes[\"SEE_OTHER\"] = 303] = \"SEE_OTHER\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.1\n *\n * This is used for caching purposes. It is telling to client that response has not been modified. So, client can continue to use same cached version of response.\n */\n StatusCodes[StatusCodes[\"NOT_MODIFIED\"] = 304] = \"NOT_MODIFIED\";\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.6\n *\n * Was defined in a previous version of the HTTP specification to indicate that a requested response must be accessed by a proxy. It has been deprecated due to security concerns regarding in-band configuration of a proxy.\n */\n StatusCodes[StatusCodes[\"USE_PROXY\"] = 305] = \"USE_PROXY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.7\n *\n * Server sent this response to directing client to get requested resource to another URI with same method that used prior request. This has the same semantic than the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n StatusCodes[StatusCodes[\"TEMPORARY_REDIRECT\"] = 307] = \"TEMPORARY_REDIRECT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7538#section-3\n *\n * This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n StatusCodes[StatusCodes[\"PERMANENT_REDIRECT\"] = 308] = \"PERMANENT_REDIRECT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.1\n *\n * This response means that server could not understand the request due to invalid syntax.\n */\n StatusCodes[StatusCodes[\"BAD_REQUEST\"] = 400] = \"BAD_REQUEST\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.1\n *\n * Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.\n */\n StatusCodes[StatusCodes[\"UNAUTHORIZED\"] = 401] = \"UNAUTHORIZED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.2\n *\n * This response code is reserved for future use. Initial aim for creating this code was using it for digital payment systems however this is not used currently.\n */\n StatusCodes[StatusCodes[\"PAYMENT_REQUIRED\"] = 402] = \"PAYMENT_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.3\n *\n * The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client's identity is known to the server.\n */\n StatusCodes[StatusCodes[\"FORBIDDEN\"] = 403] = \"FORBIDDEN\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.4\n *\n * The server can not find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurence on the web.\n */\n StatusCodes[StatusCodes[\"NOT_FOUND\"] = 404] = \"NOT_FOUND\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.5\n *\n * The request method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.\n */\n StatusCodes[StatusCodes[\"METHOD_NOT_ALLOWED\"] = 405] = \"METHOD_NOT_ALLOWED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.6\n *\n * This response is sent when the web server, after performing server-driven content negotiation, doesn't find any content following the criteria given by the user agent.\n */\n StatusCodes[StatusCodes[\"NOT_ACCEPTABLE\"] = 406] = \"NOT_ACCEPTABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.2\n *\n * This is similar to 401 but authentication is needed to be done by a proxy.\n */\n StatusCodes[StatusCodes[\"PROXY_AUTHENTICATION_REQUIRED\"] = 407] = \"PROXY_AUTHENTICATION_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.7\n *\n * This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message.\n */\n StatusCodes[StatusCodes[\"REQUEST_TIMEOUT\"] = 408] = \"REQUEST_TIMEOUT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.8\n *\n * This response is sent when a request conflicts with the current state of the server.\n */\n StatusCodes[StatusCodes[\"CONFLICT\"] = 409] = \"CONFLICT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.9\n *\n * This response would be sent when the requested content has been permenantly deleted from server, with no forwarding address. Clients are expected to remove their caches and links to the resource. The HTTP specification intends this status code to be used for \"limited-time, promotional services\". APIs should not feel compelled to indicate resources that have been deleted with this status code.\n */\n StatusCodes[StatusCodes[\"GONE\"] = 410] = \"GONE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.10\n *\n * The server rejected the request because the Content-Length header field is not defined and the server requires it.\n */\n StatusCodes[StatusCodes[\"LENGTH_REQUIRED\"] = 411] = \"LENGTH_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.2\n *\n * The client has indicated preconditions in its headers which the server does not meet.\n */\n StatusCodes[StatusCodes[\"PRECONDITION_FAILED\"] = 412] = \"PRECONDITION_FAILED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.11\n *\n * Request entity is larger than limits defined by server; the server might close the connection or return an Retry-After header field.\n */\n StatusCodes[StatusCodes[\"REQUEST_TOO_LONG\"] = 413] = \"REQUEST_TOO_LONG\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.12\n *\n * The URI requested by the client is longer than the server is willing to interpret.\n */\n StatusCodes[StatusCodes[\"REQUEST_URI_TOO_LONG\"] = 414] = \"REQUEST_URI_TOO_LONG\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.13\n *\n * The media format of the requested data is not supported by the server, so the server is rejecting the request.\n */\n StatusCodes[StatusCodes[\"UNSUPPORTED_MEDIA_TYPE\"] = 415] = \"UNSUPPORTED_MEDIA_TYPE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.4\n *\n * The range specified by the Range header field in the request can't be fulfilled; it's possible that the range is outside the size of the target URI's data.\n */\n StatusCodes[StatusCodes[\"REQUESTED_RANGE_NOT_SATISFIABLE\"] = 416] = \"REQUESTED_RANGE_NOT_SATISFIABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.14\n *\n * This response code means the expectation indicated by the Expect request header field can't be met by the server.\n */\n StatusCodes[StatusCodes[\"EXPECTATION_FAILED\"] = 417] = \"EXPECTATION_FAILED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2324#section-2.3.2\n *\n * Any attempt to brew coffee with a teapot should result in the error code \"418 I'm a teapot\". The resulting entity body MAY be short and stout.\n */\n StatusCodes[StatusCodes[\"IM_A_TEAPOT\"] = 418] = \"IM_A_TEAPOT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The 507 (Insufficient Storage) status code means the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. This condition is considered to be temporary. If the request which received this status code was the result of a user action, the request MUST NOT be repeated until it is requested by a separate user action.\n */\n StatusCodes[StatusCodes[\"INSUFFICIENT_SPACE_ON_RESOURCE\"] = 419] = \"INSUFFICIENT_SPACE_ON_RESOURCE\";\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt\n *\n * A deprecated response used by the Spring Framework when a method has failed.\n */\n StatusCodes[StatusCodes[\"METHOD_FAILURE\"] = 420] = \"METHOD_FAILURE\";\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.2\n *\n * Defined in the specification of HTTP/2 to indicate that a server is not able to produce a response for the combination of scheme and authority that are included in the request URI.\n */\n StatusCodes[StatusCodes[\"MISDIRECTED_REQUEST\"] = 421] = \"MISDIRECTED_REQUEST\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.3\n *\n * The request was well-formed but was unable to be followed due to semantic errors.\n */\n StatusCodes[StatusCodes[\"UNPROCESSABLE_ENTITY\"] = 422] = \"UNPROCESSABLE_ENTITY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.4\n *\n * The resource that is being accessed is locked.\n */\n StatusCodes[StatusCodes[\"LOCKED\"] = 423] = \"LOCKED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.5\n *\n * The request failed due to failure of a previous request.\n */\n StatusCodes[StatusCodes[\"FAILED_DEPENDENCY\"] = 424] = \"FAILED_DEPENDENCY\";\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.15\n *\n * The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.\n */\n StatusCodes[StatusCodes[\"UPGRADE_REQUIRED\"] = 426] = \"UPGRADE_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-3\n *\n * The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.\n */\n StatusCodes[StatusCodes[\"PRECONDITION_REQUIRED\"] = 428] = \"PRECONDITION_REQUIRED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-4\n *\n * The user has sent too many requests in a given amount of time (\"rate limiting\").\n */\n StatusCodes[StatusCodes[\"TOO_MANY_REQUESTS\"] = 429] = \"TOO_MANY_REQUESTS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-5\n *\n * The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.\n */\n StatusCodes[StatusCodes[\"REQUEST_HEADER_FIELDS_TOO_LARGE\"] = 431] = \"REQUEST_HEADER_FIELDS_TOO_LARGE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7725\n *\n * The user-agent requested a resource that cannot legally be provided, such as a web page censored by a government.\n */\n StatusCodes[StatusCodes[\"UNAVAILABLE_FOR_LEGAL_REASONS\"] = 451] = \"UNAVAILABLE_FOR_LEGAL_REASONS\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.1\n *\n * The server encountered an unexpected condition that prevented it from fulfilling the request.\n */\n StatusCodes[StatusCodes[\"INTERNAL_SERVER_ERROR\"] = 500] = \"INTERNAL_SERVER_ERROR\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.2\n *\n * The request method is not supported by the server and cannot be handled. The only methods that servers are required to support (and therefore that must not return this code) are GET and HEAD.\n */\n StatusCodes[StatusCodes[\"NOT_IMPLEMENTED\"] = 501] = \"NOT_IMPLEMENTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.3\n *\n * This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.\n */\n StatusCodes[StatusCodes[\"BAD_GATEWAY\"] = 502] = \"BAD_GATEWAY\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.4\n *\n * The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This responses should be used for temporary conditions and the Retry-After: HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.\n */\n StatusCodes[StatusCodes[\"SERVICE_UNAVAILABLE\"] = 503] = \"SERVICE_UNAVAILABLE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.5\n *\n * This error response is given when the server is acting as a gateway and cannot get a response in time.\n */\n StatusCodes[StatusCodes[\"GATEWAY_TIMEOUT\"] = 504] = \"GATEWAY_TIMEOUT\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.6\n *\n * The HTTP version used in the request is not supported by the server.\n */\n StatusCodes[StatusCodes[\"HTTP_VERSION_NOT_SUPPORTED\"] = 505] = \"HTTP_VERSION_NOT_SUPPORTED\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.\n */\n StatusCodes[StatusCodes[\"INSUFFICIENT_STORAGE\"] = 507] = \"INSUFFICIENT_STORAGE\";\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-6\n *\n * The 511 status code indicates that the client needs to authenticate to gain network access.\n */\n StatusCodes[StatusCodes[\"NETWORK_AUTHENTICATION_REQUIRED\"] = 511] = \"NETWORK_AUTHENTICATION_REQUIRED\";\n})(StatusCodes || (StatusCodes = {}));\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach((key) => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data.arrayBuffer().then(toArray).then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, (encoded) => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE, } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType),\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType),\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1),\n }\n : {\n type: PACKET_TYPES_REVERSE[type],\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET, } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, (encodedPacket) => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, (encodedPacket) => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n },\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* State.READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* State.READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* State.READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* State.READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* State.READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (state === 2 /* State.READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* State.READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n },\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload, };\n","export const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\nexport const defaultBinaryType = \"arraybuffer\";\nexport function createCookieJar() { }\n","import { globalThisShim as globalThis } from \"./globals.node.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n/**\n * Generates a random 8-characters string.\n */\nexport function randomString() {\n return (Date.now().toString(36).substring(3) +\n Math.random().toString(36).substring(2, 5));\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port !== 443)) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { randomString } from \"../util.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n constructor() {\n super(...arguments);\n this._polling = false;\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this._poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this._polling || !this.writable) {\n let total = 0;\n if (this._polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n _poll() {\n this._polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this._polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this._poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","import { Polling } from \"./polling.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globals.node.js\";\nimport { hasCORS } from \"../contrib/has-cors.js\";\nfunction empty() { }\nexport class BaseXHR extends Polling {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(createRequest, uri, opts) {\n super();\n this.createRequest = createRequest;\n installTimerFunctions(this, opts);\n this._opts = opts;\n this._method = opts.method || \"GET\";\n this._uri = uri;\n this._data = undefined !== opts.data ? opts.data : null;\n this._create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n _create() {\n var _a;\n const opts = pick(this._opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this._opts.xd;\n const xhr = (this._xhr = this.createRequest(opts));\n try {\n xhr.open(this._method, this._uri, true);\n try {\n if (this._opts.extraHeaders) {\n // @ts-ignore\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this._opts.extraHeaders) {\n if (this._opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this._opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this._method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this._opts.withCredentials;\n }\n if (this._opts.requestTimeout) {\n xhr.timeout = this._opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(\n // @ts-ignore\n xhr.getResponseHeader(\"set-cookie\"));\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this._onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this._onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this._data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this._onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this._index = Request.requestsCount++;\n Request.requests[this._index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n _onError(err) {\n this.emitReserved(\"error\", err, this._xhr);\n this._cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n _cleanup(fromError) {\n if (\"undefined\" === typeof this._xhr || null === this._xhr) {\n return;\n }\n this._xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this._xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this._index];\n }\n this._xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n _onLoad() {\n const data = this._xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this._cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this._cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\nconst hasXHR2 = (function () {\n const xhr = newRequest({\n xdomain: false,\n });\n return xhr && xhr.responseType !== null;\n})();\n/**\n * HTTP long-polling based on the built-in `XMLHttpRequest` object.\n *\n * Usage: browser\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\n */\nexport class XHR extends BaseXHR {\n constructor(opts) {\n super(opts);\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd }, this.opts);\n return new Request(newRequest, this.uri(), opts);\n }\n}\nfunction newRequest(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { pick, randomString } from \"../util.js\";\nimport { encodePacket } from \"engine.io-parser\";\nimport { globalThisShim as globalThis, nextTick } from \"../globals.node.js\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class BaseWS extends Transport {\n get name() {\n return \"websocket\";\n }\n doOpen() {\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws = this.createSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n this.doWrite(packet, data);\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.onerror = () => { };\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\nconst WebSocketCtor = globalThis.WebSocket || globalThis.MozWebSocket;\n/**\n * WebSocket transport based on the built-in `WebSocket` object.\n *\n * Usage: browser, Node.js (since v21), Deno, Bun\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * @see https://caniuse.com/mdn-api_websocket\n * @see https://nodejs.org/api/globals.html#websocket\n */\nexport class WS extends BaseWS {\n createSocket(uri, protocols, opts) {\n return !isReactNative\n ? protocols\n ? new WebSocketCtor(uri, protocols)\n : new WebSocketCtor(uri)\n : new WebSocketCtor(uri, protocols, opts);\n }\n doWrite(_packet, data) {\n this.ws.send(data);\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"../globals.node.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\n/**\n * WebTransport transport based on the built-in `WebTransport` object.\n *\n * Usage: browser, Node.js (with the `@fails-components/webtransport` package)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebTransport\n * @see https://caniuse.com/webtransport\n */\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n try {\n // @ts-ignore\n this._transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this._transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this._transport.ready.then(() => {\n this._transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this._writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this._writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this._writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","import { XHR } from \"./polling-xhr.node.js\";\nimport { WS } from \"./websocket.node.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: XHR,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n if (str.length > 8000) {\n throw \"URI too long\";\n }\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports as DEFAULT_TRANSPORTS } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { createCookieJar, defaultBinaryType, nextTick, } from \"./globals.node.js\";\nconst withEventListeners = typeof addEventListener === \"function\" &&\n typeof removeEventListener === \"function\";\nconst OFFLINE_EVENT_LISTENERS = [];\nif (withEventListeners) {\n // within a ServiceWorker, any event handler for the 'offline' event must be added on the initial evaluation of the\n // script, so we create one single event listener here which will forward the event to the socket instances\n addEventListener(\"offline\", () => {\n OFFLINE_EVENT_LISTENERS.forEach((listener) => listener());\n }, false);\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes without upgrade mechanism, which means that it will keep the first low-level transport that\n * successfully establishes the connection.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithoutUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithUpgrade\n * @see Socket\n */\nexport class SocketWithoutUpgrade extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n this._pingInterval = -1;\n this._pingTimeout = -1;\n this._maxPayload = -1;\n /**\n * The expiration timestamp of the {@link _pingTimeoutTimer} object is tracked, in case the timer is throttled and the\n * callback is not fired on time. This can happen for example when a laptop is suspended or when a phone is locked.\n */\n this._pingTimeoutTime = Infinity;\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n const parsedUri = parse(uri);\n opts.hostname = parsedUri.host;\n opts.secure =\n parsedUri.protocol === \"https\" || parsedUri.protocol === \"wss\";\n opts.port = parsedUri.port;\n if (parsedUri.query)\n opts.query = parsedUri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = [];\n this._transportsByName = {};\n opts.transports.forEach((t) => {\n const transportName = t.prototype.name;\n this.transports.push(transportName);\n this._transportsByName[transportName] = t;\n });\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n if (withEventListeners) {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this._beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this._offlineEventListener = () => {\n this._onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener);\n }\n }\n if (this.opts.withCredentials) {\n this._cookieJar = createCookieJar();\n }\n this._open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new this._transportsByName[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n _open() {\n if (this.transports.length === 0) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n const transportName = this.opts.rememberUpgrade &&\n SocketWithoutUpgrade.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1\n ? \"websocket\"\n : this.transports[0];\n this.readyState = \"opening\";\n const transport = this.createTransport(transportName);\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this._onDrain.bind(this))\n .on(\"packet\", this._onPacket.bind(this))\n .on(\"error\", this._onError.bind(this))\n .on(\"close\", (reason) => this._onClose(\"transport close\", reason));\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n _onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this._sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n this._resetPingTimeout();\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this._onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this._pingInterval = data.pingInterval;\n this._pingTimeout = data.pingTimeout;\n this._maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this._resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n _resetPingTimeout() {\n this.clearTimeoutFn(this._pingTimeoutTimer);\n const delay = this._pingInterval + this._pingTimeout;\n this._pingTimeoutTime = Date.now() + delay;\n this._pingTimeoutTimer = this.setTimeoutFn(() => {\n this._onClose(\"ping timeout\");\n }, delay);\n if (this.opts.autoUnref) {\n this._pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n _onDrain() {\n this.writeBuffer.splice(0, this._prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this._prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this._getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this._prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n _getWritablePackets() {\n const shouldCheckPayloadSize = this._maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this._maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Checks whether the heartbeat timer has expired but the socket has not yet been notified.\n *\n * Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the\n * `write()` method then the message would not be buffered by the Socket.IO client.\n *\n * @return {boolean}\n * @private\n */\n /* private */ _hasPingExpired() {\n if (!this._pingTimeoutTime)\n return true;\n const hasExpired = Date.now() > this._pingTimeoutTime;\n if (hasExpired) {\n this._pingTimeoutTime = 0;\n nextTick(() => {\n this._onClose(\"ping timeout\");\n }, this.setTimeoutFn);\n }\n return hasExpired;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a message. Alias of {@link Socket#write}.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n send(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n _sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this._onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n _onError(err) {\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n if (this.opts.tryAllTransports &&\n this.transports.length > 1 &&\n this.readyState === \"opening\") {\n this.transports.shift();\n return this._open();\n }\n this.emitReserved(\"error\", err);\n this._onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n _onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this._pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (withEventListeners) {\n if (this._beforeunloadEventListener) {\n removeEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this._offlineEventListener) {\n const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener);\n if (i !== -1) {\n OFFLINE_EVENT_LISTENERS.splice(i, 1);\n }\n }\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n }\n }\n}\nSocketWithoutUpgrade.protocol = protocol;\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see Socket\n */\nexport class SocketWithUpgrade extends SocketWithoutUpgrade {\n constructor() {\n super(...arguments);\n this._upgrades = [];\n }\n onOpen() {\n super.onOpen();\n if (\"open\" === this.readyState && this.opts.upgrade) {\n for (let i = 0; i < this._upgrades.length; i++) {\n this._probe(this._upgrades[i]);\n }\n }\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n _probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this._upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n onHandshake(data) {\n this._upgrades = this._filterUpgrades(data.upgrades);\n super.onHandshake(data);\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n _filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n for (let i = 0; i < upgrades.length; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * @example\n * import { Socket } from \"engine.io-client\";\n *\n * const socket = new Socket();\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see SocketWithUpgrade\n */\nexport class Socket extends SocketWithUpgrade {\n constructor(uri, opts = {}) {\n const o = typeof uri === \"object\" ? uri : opts;\n if (!o.transports ||\n (o.transports && typeof o.transports[0] === \"string\")) {\n o.transports = (o.transports || [\"polling\", \"websocket\", \"webtransport\"])\n .map((transportName) => DEFAULT_TRANSPORTS[transportName])\n .filter((t) => !!t);\n }\n super(uri, o);\n }\n}\n","import { Socket } from \"./socket.js\";\nexport { Socket };\nexport { SocketWithoutUpgrade, SocketWithUpgrade, } from \"./socket.js\";\nexport const protocol = Socket.protocol;\nexport { Transport, TransportError } from \"./transport.js\";\nexport { transports } from \"./transports/index.js\";\nexport { installTimerFunctions } from \"./util.js\";\nexport { parse } from \"./contrib/parseuri.js\";\nexport { nextTick } from \"./globals.node.js\";\nexport { Fetch } from \"./transports/polling-fetch.js\";\nexport { XHR as NodeXHR } from \"./transports/polling-xhr.node.js\";\nexport { XHR } from \"./transports/polling-xhr.js\";\nexport { WS as NodeWebSocket } from \"./transports/websocket.node.js\";\nexport { WS as WebSocket } from \"./transports/websocket.js\";\nexport { WT as WebTransport } from \"./transports/webtransport.js\";\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\",\n \"connect_error\",\n \"disconnect\",\n \"disconnecting\",\n \"newListener\",\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n /**\n * A map containing acknowledgement handlers.\n *\n * The `withError` attribute is used to differentiate handlers that accept an error as first argument:\n *\n * - `socket.emit(\"test\", (err, value) => { ... })` with `ackTimeout` option\n * - `socket.timeout(5000).emit(\"test\", (err, value) => { ... })`\n * - `const value = await socket.emitWithAck(\"test\")`\n *\n * From those that don't:\n *\n * - `socket.emit(\"test\", (value) => { ... });`\n *\n * In the first case, the handlers will be called with an error when:\n *\n * - the timeout is reached\n * - the socket gets disconnected\n *\n * In the second case, the handlers will be simply discarded upon disconnection, since the client will never receive\n * an acknowledgement from the server.\n *\n * @private\n */\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n var _a, _b, _c;\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = (_b = (_a = this.io.engine) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.writable;\n const isConnected = this.connected && !((_c = this.io.engine) === null || _c === void 0 ? void 0 : _c._hasPingExpired());\n const discardPacket = this.flags.volatile && !isTransportWritable;\n if (discardPacket) {\n }\n else if (isConnected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n const fn = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, args);\n };\n fn.withError = true;\n this.acks[id] = fn;\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n return new Promise((resolve, reject) => {\n const fn = (arg1, arg2) => {\n return arg1 ? reject(arg1) : resolve(arg2);\n };\n fn.withError = true;\n args.push(fn);\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n this._clearAcks();\n }\n /**\n * Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from\n * the server.\n *\n * @private\n */\n _clearAcks() {\n Object.keys(this.acks).forEach((id) => {\n const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id);\n if (!isBuffered) {\n // note: handlers that do not accept an error as first argument are ignored here\n const ack = this.acks[id];\n delete this.acks[id];\n if (ack.withError) {\n ack.call(this, new Error(\"socket has been disconnected\"));\n }\n }\n });\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowledgement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (typeof ack !== \"function\") {\n return;\n }\n delete this.acks[packet.id];\n // @ts-ignore FIXME ack is incorrectly inferred as 'never'\n if (ack.withError) {\n packet.data.unshift(null);\n }\n // @ts-ignore\n ack.apply(this, packet.data);\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this._drainQueue(true);\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n if (!v) {\n this.skipReconnect = true;\n }\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), \n // @ts-ignore\n on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called when:\n *\n * - the low-level engine is closed\n * - the parser encountered a badly formatted packet\n * - all sockets are disconnected\n *\n * @private\n */\n onclose(reason, description) {\n var _a;\n this.cleanup();\n (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\nexport { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from \"engine.io-client\";\n","var tinyEmitter = { exports: {} };\nvar hasRequiredTinyEmitter;\nfunction requireTinyEmitter() {\n if (hasRequiredTinyEmitter) return tinyEmitter.exports;\n hasRequiredTinyEmitter = 1;\n function E() {\n }\n E.prototype = {\n on: function(name, callback, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx\n });\n return this;\n },\n once: function(name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n emit: function(name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n },\n off: function(name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n liveEvents.length ? e[name] = liveEvents : delete e[name];\n return this;\n }\n };\n tinyEmitter.exports = E;\n tinyEmitter.exports.TinyEmitter = E;\n return tinyEmitter.exports;\n}\nvar tinyEmitterExports = requireTinyEmitter();\nexport {\n tinyEmitterExports as t\n};\n//# sourceMappingURL=index-snr1zbog.mjs.map\n","import { io } from \"socket.io-client\";\nimport { t as tinyEmitterExports } from \"./index-snr1zbog.mjs\";\nvar STSNamespace = /* @__PURE__ */ ((STSNamespace2) => {\n STSNamespace2[\"STSMonitor\"] = \"stsinstrumentmanager/stsmonitor\";\n STSNamespace2[\"STSControl\"] = \"stsinstrumentmanager/stscontrol\";\n STSNamespace2[\"STSTestingNamespace\"] = \"ststestingnamespace/ststesting\";\n return STSNamespace2;\n})(STSNamespace || {});\nvar STSRoom = /* @__PURE__ */ ((STSRoom2) => {\n STSRoom2[\"STSInstrumentDataRoom\"] = \"stsinstrumentdataroom\";\n STSRoom2[\"STSInstrumentDataSubscriptionRoom\"] = \"stsinstrumentdatasubscriptionroom\";\n STSRoom2[\"STSRunnerRoom\"] = \"stsrunnerroom\";\n STSRoom2[\"STSNodeRunnerRoom\"] = \"stsnoderunnerroom\";\n return STSRoom2;\n})(STSRoom || {});\nvar STSEvent = /* @__PURE__ */ ((STSEvent2) => {\n STSEvent2[\"STSInstrumentData\"] = \"stsinstrumentdata\";\n STSEvent2[\"STSSubInstrumentData\"] = \"stssubinstrumentdata\";\n STSEvent2[\"STSResetInstrumentData\"] = \"stsresetinstrumentdata\";\n STSEvent2[\"STSStartLoggingInstrumentData\"] = \"stsStartLoggingInstrumentData\";\n STSEvent2[\"STSStopLoggingInstrumentData\"] = \"stsStopLoggingInstrumentData\";\n STSEvent2[\"STSStart\"] = \"stsstart\";\n STSEvent2[\"STSStop\"] = \"stsstop\";\n STSEvent2[\"STSPause\"] = \"stspause\";\n STSEvent2[\"STSResume\"] = \"stsresume\";\n STSEvent2[\"STSTerminate\"] = \"ststerminate\";\n STSEvent2[\"STSUpdateStaticConfig\"] = \"stsupdatestaticconfig\";\n STSEvent2[\"STSUpdateDynamicConfig\"] = \"stsupdatedynamicconfig\";\n STSEvent2[\"STSSendToRoom\"] = \"sendToRoom\";\n STSEvent2[\"connect\"] = \"connect\";\n return STSEvent2;\n})(STSEvent || {});\nconst isNode = Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\";\nclass SocketIoClient extends tinyEmitterExports.TinyEmitter {\n #agentManager;\n #logger;\n #name;\n #address;\n #socketIoCustomPath;\n #authToken;\n #socket;\n #reconnectTimeout = 2e3;\n // default\n constructor(name) {\n super();\n this.#name = name;\n }\n get logPrefix() {\n return `SocketIoClient[${this.#name}]:`;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LogDebugMessage(message) {\n if (this.#logger) this.#logger.debug(`${this.logPrefix}${message}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LogErrorMessage(message) {\n if (this.#logger) this.#logger.error(`${this.logPrefix}${message}`);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LogWarningMessage(message) {\n if (this.#logger) this.#logger.warn(`${this.logPrefix}${message}`);\n }\n get name() {\n return this.#name;\n }\n get reconnectTimeout() {\n return this.#reconnectTimeout;\n }\n get agentManager() {\n return this.#agentManager;\n }\n get logger() {\n return this.#logger;\n }\n get address() {\n return this.#address;\n }\n get authToken() {\n return this.#authToken;\n }\n get socketIoCustomPath() {\n return this.#socketIoCustomPath;\n }\n get socket() {\n return this.#socket;\n }\n WithAddress(address) {\n this.#address = address;\n return this;\n }\n WithAuthToken(authToken) {\n this.#authToken = authToken;\n return this;\n }\n WithSocketIoCustomPath(socketIoCustomPath) {\n this.#socketIoCustomPath = socketIoCustomPath;\n return this;\n }\n WithLogger(logger) {\n this.#logger = logger;\n return this;\n }\n WithAgentManager(agentManager) {\n this.#agentManager = agentManager;\n return this;\n }\n WithReconnectTimeout(reconnectTimeout) {\n this.#reconnectTimeout = reconnectTimeout;\n return this;\n }\n SetupSocket() {\n if (!this.#address) {\n throw new Error(`SocketIoClientHelper:SetupSocket(): Error: [address not provided]`);\n }\n this.#EstablishSocketConnect();\n return this;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ConnectCallBack(socket) {\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n SocketEventsCallBack(socket) {\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ErrorCallBack(error) {\n }\n /*\n emit<Ev extends EventNames<ClientToServerEvents>>(ev: Ev, ...args: EventParams<ClientToServerEvents, Ev>): Socket<ServerToClientEvents, ClientToServerEvents> {\n if (this.#socket) {\n return this.#socket!.emit(ev, ...args);\n } else {\n throw new Error('SocketIoClient:emit(): Error: [socket instance not defined.]');\n }\n }\n */\n #EstablishSocketConnect() {\n if (this.#socket !== void 0) {\n if (this.#socket.connected === true) {\n this.#socket.disconnect();\n }\n this.#socket = void 0;\n if (isNode) {\n setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout).unref();\n } else {\n setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout);\n }\n return;\n }\n let socketOptions;\n if (isNode) {\n socketOptions = {\n transports: [\"websocket\"]\n };\n if (this.#agentManager) {\n if (!this.#address) {\n throw new Error(`SocketIoClient:SetupSocket(): Error: [address not provided when using agentManager]`);\n }\n socketOptions.agent = this.#agentManager.GetAgent(this.#address);\n }\n } else {\n socketOptions = {\n transports: [\"websocket\"]\n };\n }\n if (this.#authToken) {\n socketOptions.auth = (cb) => {\n cb({\n token: this.#authToken\n });\n };\n }\n if (this.#socketIoCustomPath && this.#socketIoCustomPath.localeCompare(\"\") !== 0) {\n socketOptions.path = this.#socketIoCustomPath;\n }\n this.#socket = io(this.#address, socketOptions);\n this.#socket.io.on(\"error\", (err) => {\n this.LogErrorMessage(`socketDetail.socket.io.on('error'): [${err}] Address: [${this.#address}]`);\n });\n this.#socket.io.on(\"reconnect_error\", (err) => {\n this.LogErrorMessage(`socketDetail.socket.io.on('reconnect_error'): [${err}] Address: [${this.#address}]`);\n });\n this.#socket.on(\"connect_error\", (err) => {\n this.LogErrorMessage(`socketDetail.socket.on('connect_error'): [${err}] Address: [${this.#address}]`);\n });\n this.#socket.io.on(\"reconnect\", (attempt) => {\n this.LogErrorMessage(`socketDetail.socket.io.on('reconnect'): Number: [${attempt}] Address: [${this.#address}]`);\n });\n this.#socket.on(\"connect\", () => {\n if (this.#socket) {\n this.LogDebugMessage(`Socket: [${this.#socket.id}]: connected, Address: [${this.#address}]`);\n setTimeout(() => {\n this.ConnectCallBack(this.#socket);\n }, 0);\n this.SocketEventsCallBack(this.#socket);\n } else {\n const errorMessage = \"Could not get socket object from socket.io, Address: [${socketDetail.address}]\";\n this.LogErrorMessage(errorMessage);\n this.ErrorCallBack(new Error(errorMessage));\n }\n });\n this.#socket.on(\"disconnect\", (reason) => {\n this.LogDebugMessage(\"socket disconnect: \" + reason);\n switch (reason) {\n case \"io server disconnect\":\n {\n this.LogDebugMessage(\"The server disconnected using disconnectSockets, i.e. normal safe shutdown from explicit disconnection by the server.\");\n this.LogDebugMessage(\"The connection will be re-established when the server becomes available.\");\n this.#socket = void 0;\n if (isNode) {\n if (this.#agentManager) {\n this.#agentManager.ResetAgent();\n }\n setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout).unref();\n } else {\n setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout);\n }\n }\n break;\n case \"io client disconnect\":\n this.LogDebugMessage(\"The client disconnected using disconnectSockets, i.e. normal safe disconnection from explicit disconnection by the client.\");\n this.LogDebugMessage(\"The connection will not be re-established automatically.\");\n break;\n case \"transport close\":\n case \"ping timeout\":\n case \"transport error\":\n {\n this.LogDebugMessage(`Server unexpectedly disconnected. Reason: [${reason}]`);\n this.LogDebugMessage(\"The connection will be re-established when the server becomes available.\");\n if (this.#socket) {\n this.#socket.disconnect();\n }\n this.#socket = void 0;\n if (isNode) {\n if (this.#agentManager) {\n this.#agentManager?.ResetAgent();\n }\n setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout).unref();\n } else {\n setTimeout(() => this.#EstablishSocketConnect(), this.#reconnectTimeout);\n }\n }\n break;\n }\n });\n }\n}\nexport {\n STSEvent,\n STSNamespace,\n STSRoom,\n SocketIoClient\n};\n//# sourceMappingURL=index.mjs.map\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction _v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n return _v4(options, buf, offset);\n}\nexport default v4;\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\n/* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF\nimport { defaultLogger, ISTSLogger, JSONObject, Sleep } from '@nsshunt/stsutils'\n\nimport { IDomainResource } from './STSFhirTypes'\n\nimport chalk from 'chalk';\n\nimport { SocketIoClient } from '@nsshunt/stssocketioutils'\n\nimport { ServerToClientEvents, ClientToServerEvents, ISocketCBRetVal } from './wsFhirEvents'\n\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { Socket } from 'socket.io-client'\n\nimport { AgentManager } from '@nsshunt/stsutils'\n\nexport interface IFhirSocketClientOptions {\n socketClientName: string\n fhirServerEndpoint: string\n socketIoCustomPath: string // /stsfhirsocket/socket.io/\n timeout: number\n joinRooms: string[]\n logger?: ISTSLogger\n agentManager?: AgentManager\n}\n\nexport class FhirSocketClient extends SocketIoClient<ServerToClientEvents, ClientToServerEvents> {\n #id: string = uuidv4();\n #options: IFhirSocketClientOptions;\n\n constructor(clientName: string, options: IFhirSocketClientOptions) {\n super(clientName);\n this.#options = options;\n this.#SetupWSSClient();\n }\n\n protected ConnectCallBack(socket: Socket<ServerToClientEvents, ClientToServerEvents>): void {\n this.LogDebugMessage(chalk.green(`FhirSocketClient:#OnSocketConnected(): ID: [${this.#id}] clientName: [${this.name}]: --> connected`));\n if (this.#options.joinRooms.length > 0 && socket) {\n socket.emit('__STSjoinRoom', this.#options.joinRooms);\n }\n }\n\n protected ErrorCallBack(error: Error): void {\n this.LogErrorMessage(`FhirSocketClient:#SetupWSSClient(): Error clientName: [${this.name}]: SetupClientSideSocket call back: Error: [${error}]`) \n }\n\n protected SocketEventsCallBack(socket: Socket<ServerToClientEvents, ClientToServerEvents>): void {\n /*\n socket.on('AddRunner', async (options: any, cb: (data: IRunnerRetVal) => void) => {\n this.#debug(chalk.yellow(`${this.#id} ${this.#clientName}: --> AddRunner: [${JSON.stringify(options)}]`));\n const runnerEx = await this.#wm.GetNextAvailableWorker()?.AddRunner(options);\n StartRunnerAndRespond(IEventRequestCommand.AddRunner, runnerEx, cb);\n });\n \n socket.on('AddRunnerToWorker', async (workerId: string, options: any, cb: (data: IRunnerRetVal) => void) => {\n this.#debug(chalk.yellow(`${this.#id} ${this.#clientName}: --> AddRunnerToWorker: workerId: [${workerId}] options: [${JSON.stringify(options)}]`));\n const workerEx = this.#wm.WorkersEx[workerId];\n const runnerEx = await workerEx?.AddRunner(options);\n StartRunnerAndRespond(IEventRequestCommand.AddRunnerToWorker, runnerEx, cb);\n });\n */\n }\n\n #SetupWSSClient = async () => {\n console.log(chalk.yellow(`FhirSocketClient:#SetupWSSClient(): ID: [${this.#id}] clientName: [${this.name}] Starting ...`));\n const cstr = `${this.#options.fhirServerEndpoint}/nsstsfhir/`;\n console.log(chalk.yellow(`FhirSocketClient:#SetupWSSClient(): Socket connection string: [${cstr}]`));\n\n this\n .WithAddress(cstr)\n .WithSocketIoCustomPath(this.#options.socketIoCustomPath)\n\n if (this.#options.agentManager) {\n this.WithAgentManager(this.#options.agentManager);\n }\n\n if (this.#options.logger) {\n this.WithLogger(this.#options.logger)\n }\n\n this.SetupSocket();\n\n console.log(chalk.yellow(`FhirSocketClient:#SetupWSSClient(): ID: [${this.#id}] clientName: [${this.name}] Started`));\n }\n\n #WaitForSocketConnected = async () => {\n if (this.socket && this.socket.connected === true) {\n return;\n }\n console.log(chalk.yellow(`FhirSocketClient:#WaitForSocketConnected(): ID: [${this.#id}] clientName: [${this.name}] Waiting for connection ...`));\n let connected = false;\n let attempts = 0;\n while (!connected) {\n attempts++;\n if (attempts % 10 === 0) {\n console.log(chalk.yellow(`FhirSocketClient:#WaitForSocketConnected(): ID: [${this.#id}] clientName: [${this.name}] waiting for connection attempts: [${attempts}].`));\n }\n if (this.socket && this.socket.connected === true) {\n connected = true;\n console.log(chalk.yellow(`FhirSocketClient:#WaitForSocketConnected(): ID: [${this.#id}] clientName: [${this.name}] Connection completed after: [${attempts}] attempts.`));\n break;\n }\n await Sleep(100);\n }\n }\n\n CreateResource = async (resource: string, domainResource: IDomainResource): Promise<ISocketCBRetVal> => {\n await this.#WaitForSocketConnected();\n const promCreate = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: { },\n body: domainResource\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('createFhirResource', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:CreateResource(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:CreateResource(): Error: [socket undefined]`);\n }\n });\n }\n return promCreate();\n }\n\n CreateResources = async (resource: string, domainResources: IDomainResource[]): Promise<IDomainResource> => {\n await this.#WaitForSocketConnected();\n const promCreate = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: { },\n body: domainResources\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('createFhirResources', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:CreateResources(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:CreateResources(): Error: [socket undefined]`);\n }\n });\n }\n return (await promCreate()).value;\n }\n\n GetResource = async (resource: string, resourceId: string): Promise<ISocketCBRetVal> => {\n await this.#WaitForSocketConnected();\n const promGet = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: {\n fhirResource: resourceId\n },\n body: { }\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('getFhirResource', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:GetResource(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:GetResource(): Error: [socket undefined]`);\n }\n });\n }\n return promGet();\n }\n\n GetResources = async (resource: string, searchParams: JSONObject | null): Promise<IDomainResource[]> => {\n await this.#WaitForSocketConnected();\n const promGet = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: (searchParams ? searchParams : { }),\n body: { }\n }\n return new Promise((resolve, reject) => {\n //const start = performance.now();\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('getFhirResources', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n //const duration = (performance.now() - start) / 1000.0;\n //console.log(`FhirSocketClient:GetResources(): Duration for query (error): [${duration}]`);\n this.LogErrorMessage(`FhirSocketClient:GetResources(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n //const duration = (performance.now() - start) / 1000.0;\n //console.log(`FhirSocketClient:GetResources(): Duration for query: [${duration}]`);\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:GetResources(): Error: [socket undefined]`);\n }\n });\n }\n return (await promGet()).value;\n }\n\n UpdateResource = async (resource: string, domainResource: IDomainResource): Promise<IDomainResource> => {\n await this.#WaitForSocketConnected();\n const promCreate = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: {\n fhirResource: domainResource.id\n },\n body: domainResource\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('updateFhirResource', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:UpdateResource(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:UpdateResource(): Error: [socket undefined]`);\n }\n });\n }\n return (await promCreate()).value;\n }\n\n UpdateResources = async (resource: string, domainResources: IDomainResource[]): Promise<IDomainResource[]> => {\n await this.#WaitForSocketConnected();\n const promCreate = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: { },\n body: domainResources\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('updateFhirResources', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:UpdateResources(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:UpdateResources(): Error: [socket undefined]`);\n }\n });\n }\n return (await promCreate()).value;\n }\n\n PatchResource = async (resource: string, domainResource: Partial<IDomainResource>): Promise<IDomainResource> => {\n await this.#WaitForSocketConnected();\n const promCreate = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: {\n fhirResource: domainResource.id\n },\n body: domainResource\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('patchFhirResource', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:PatchResource(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:PatchResource(): Error: [socket undefined]`);\n }\n });\n }\n return (await promCreate()).value;\n }\n\n PatchResources = async (resource: string, domainResources: Partial<IDomainResource>[]): Promise<IDomainResource[]> => {\n await this.#WaitForSocketConnected();\n const promCreate = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: { },\n body: domainResources\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('patchFhirResources', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:PatchResources(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:PatchResources(): Error: [socket undefined]`);\n }\n });\n }\n return (await promCreate()).value;\n }\n\n DeleteResource = async (resource: string, resourceId: string): Promise<IDomainResource> => {\n await this.#WaitForSocketConnected();\n const promCreate = (): Promise<ISocketCBRetVal> => {\n const request = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: { \n fhirResource: resourceId\n },\n body: { }\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('deleteFhirResource', resource, request, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:DeleteResource(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:DeleteResource(): Error: [socket undefined]`);\n }\n });\n }\n return (await promCreate()).value;\n }\n\n DeleteResources = async (resource: string, domainResource: IDomainResource[]): Promise<IDomainResource[]> => {\n await this.#WaitForSocketConnected();\n const prom = (): Promise<ISocketCBRetVal> => {\n const delRequest = {\n headers: {\n 'x-sts_user_id': 'someuser'\n },\n params: { },\n query: { },\n body: domainResource\n }\n return new Promise((resolve, reject) => {\n if (this.socket) {\n this.socket.timeout(this.#options.timeout).emit('deleteFhirResources', resource, delRequest, (err: Error, res: ISocketCBRetVal) => {\n if (err) {\n this.LogErrorMessage(`FhirSocketClient:DeleteResources(): ID: [${this.#id}] clientName: [${this.name}] Error: [${err}]`);\n reject(err);\n } else {\n resolve(res);\n }\n });\n } else {\n reject(`FhirSocketClient:DeleteResources(): Error: [socket undefined]`);\n }\n });\n };\n return (await prom()).value;\n }\n}","/* Example Usage:\n\nimport { createRetryAxiosClient } from './retryAxiosClient';\n\nconst api = createRetryAxiosClient({\n maxRetries: 4,\n retryDelayMs: 300,\n retryJitterMs: 150,\n maxRetryDurationMs: 5000,\n onRetryAttempt: (attempt, error, delayMs) => {\n console.warn(\n `Retry #${attempt} after ${delayMs}ms due to ${error.code || error.response?.status}`\n );\n },\n});\n\nasync function fetchData() {\n try {\n const res = await api.get('https://httpstat.us/503?sleep=1000');\n console.log(res.data);\n } catch (err) {\n console.error('Failed after retries:', (err as any).message);\n }\n}\n\nfetchData();\n*/\n\n\nimport axios, {\n AxiosInstance,\n AxiosRequestConfig,\n AxiosError,\n InternalAxiosRequestConfig,\n AxiosResponse,\n} from 'axios';\n\nimport { STSAxiosConfig } from '@nsshunt/stsutils'\n\nexport interface ISTSRetryConfig {\n maxRetries?: number;\n retryDelayMs?: number;\n retryJitterMs?: number;\n retryMethods?: string[];\n retryStatusCodes?: number[];\n retryErrorCodes?: string[];\n maxRetryDurationMs?: number;\n onRetryAttempt?: (attempt: number, error: AxiosError, delayMs: number) => void;\n stsAxiosConfig?: STSAxiosConfig;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction getJitteredDelay(base: number, jitter: number): number {\n const random = Math.floor(Math.random() * jitter);\n return base + random;\n}\n\nexport function createRetryAxiosClient(retryConfig?: ISTSRetryConfig): AxiosInstance {\n const {\n maxRetries = 3,\n retryDelayMs = 300,\n retryJitterMs = 100,\n retryMethods = ['get', 'head', 'put', 'delete', 'options'], // post, patch\n retryStatusCodes = [408, 429, 500, 502, 503, 504],\n retryErrorCodes = [\n 'ECONNRESET', 'ETIMEDOUT', 'EAI_AGAIN', 'ECONNREFUSED', 'ENOTFOUND', 'EHOSTUNREACH', 'EPIPE',\n ],\n maxRetryDurationMs = 10000,\n onRetryAttempt,\n stsAxiosConfig\n } = retryConfig || {};\n\n const instance = axios.create();\n\n instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const now = Date.now();\n \n \n (config as any).metadata = {\n startTime: now,\n __retryCount: 0,\n };\n\n if (stsAxiosConfig) {\n Object.assign(config, stsAxiosConfig.config);\n }\n\n return config;\n });\n\n instance.interceptors.response.use(\n (response: AxiosResponse) => response,\n async (error: AxiosError) => {\n const config = error.config as AxiosRequestConfig & {\n metadata?: {\n __retryCount: number;\n startTime: number;\n };\n };\n\n if (!config || !config.method || !config.metadata) {\n return Promise.reject(error);\n }\n\n const now = Date.now();\n const elapsed = now - config.metadata.startTime;\n\n const method = config.method.toLowerCase();\n const status = error.response?.status;\n const code = error.code;\n\n const isRetryable = retryMethods.includes(method) && (\n retryErrorCodes.includes(code || '') ||\n retryStatusCodes.includes(status || 0)\n );\n\n if (config.metadata.__retryCount < maxRetries &&\n isRetryable &&\n elapsed < maxRetryDurationMs) {\n config.metadata.__retryCount += 1;\n const delayBase = retryDelayMs * Math.pow(2, config.metadata.__retryCount - 1);\n const jitteredDelay = getJitteredDelay(delayBase, retryJitterMs);\n\n if (onRetryAttempt) {\n onRetryAttempt(config.metadata.__retryCount, error, jitteredDelay);\n }\n\n await sleep(jitteredDelay);\n return instance(config);\n }\n\n return Promise.reject(error);\n }\n );\n\n return instance;\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF\nimport isNode from 'detect-node'\n\nimport axios, { AxiosError, AxiosResponse } from 'axios';\n\nimport { ISTSLogger, AgentManager, STSAxiosConfig, JSONObject } from '@nsshunt/stsutils'\n\nimport chalk from 'chalk'\n\nimport { IDomainResource } from './STSFhirTypes'\nimport { StatusCodes } from 'http-status-codes';\n\nimport { FhirSocketClient, IFhirSocketClientOptions } from './fhirSocketClient'\n\nimport { createRetryAxiosClient } from './retryAxiosClient'\n\nexport interface IFhirClientTelemetryEvents {\n AuthenticationErrorInc: () => void;\n RetryInc: () => void;\n}\n\nexport interface IFhirClientOptions {\n logger: ISTSLogger\n fhirEndpoint: string\n testingMode: boolean\n GetAccessToken: () => Promise<string | null>\n ResetAccessToken: () => void\n clientTelemetryEvents?: IFhirClientTelemetryEvents\n agentManager?: AgentManager\n stsfhirapiroot?: string\n useSocketClient: boolean\n socketClientOptions?: IFhirSocketClientOptions\n}\n\nexport class FhirClient {\n #options: IFhirClientOptions;\n #DUMMY_USER = 'USR_user01@stsmda.com.au'; //@@ needs to come from headers ??\n #stsfhirapiroot = '/stsfhirv2/r5'; // Default value\n #fhirSocketClient: FhirSocketClient | undefined = undefined;\n\n constructor(options: IFhirClientOptions) {\n this.#options = options;\n\n // Override defaults\n if (this.#options.stsfhirapiroot !== undefined) {\n this.#stsfhirapiroot = this.#options.stsfhirapiroot;\n }\n\n if (this.#options.useSocketClient === true && this.#options.socketClientOptions) {\n this.#fhirSocketClient = new FhirSocketClient('STSFhirClient', this.#options.socketClientOptions);\n }\n }\n\n get options(): IFhirClientOptions {\n return this.#options;\n }\n\n #LogDebugMessage = (message: any) => {\n this.#options.logger.debug(message);\n }\n \n #HandleError = (error: any): number => {\n this.#LogDebugMessage(chalk.red(`HandleError(): Error: [${error}]`));\n let responseCode = 500;\n if (axios.isAxiosError(error)) {\n const axiosError: AxiosError = error;\n if (axiosError.response) {\n responseCode = axiosError.response.status;\n this.#LogDebugMessage(chalk.red(`AXIOS Error Response.Status = [${axiosError.response.status}]`));\n\n //@@ have some kind of flag about how much error should show\n /*\n if (axiosError.response.headers) {\n this.#LogErrorMessage(chalk.red(` headers: [${JSON.stringify(axiosError.response.headers)}]`));\n }\n if (axiosError.response.data) {\n this.#LogErrorMessage(chalk.red(` data: [${JSON.stringify(axiosError.response.data)}]`));\n }\n try {\n if (axiosError.response.config) {\n this.#LogErrorMessage(chalk.red(` config: [${JSON.stringify(axiosError.response.config)}]`));\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (innererror: any) {\n this.#LogErrorMessage(chalk.red(` could not get response config, error: [${innererror}]`));\n }\n */\n } else {\n this.#LogDebugMessage(chalk.red(`AXIOS Error = [${axiosError}]`));\n }\n }\n return responseCode;\n }\n\n #BuildQueryString = (baseUrl: string, queryParams: JSONObject) => {\n const url = new URL(baseUrl);\n const searchParams = new URLSearchParams(queryParams);\n url.search = searchParams.toString();\n return url.toString();\n };\n\n #InvokeResourceAPI = async (url: string, httpVerb: string, domainResource: Partial<IDomainResource> | Partial<IDomainResource>[] | null, \n filters: string[] | null): Promise<AxiosResponse | null> => {\n const accessToken = await this.#options.GetAccessToken();\n const requestConfig = new STSAxiosConfig(url, httpVerb)\n .withDefaultHeaders()\n .withAuthHeaders(accessToken as string, this.#DUMMY_USER)\n .withData(filters ? filters : domainResource ? domainResource : undefined)\n if (isNode && this.#options.agentManager) {\n requestConfig.withAgentManager(this.#options.agentManager)\n }\n const api = createRetryAxiosClient({\n maxRetries: 4,\n retryDelayMs: 300,\n retryJitterMs: 150,\n maxRetryDurationMs: 5000,\n onRetryAttempt: (attempt, error, delayMs) => {\n console.warn(`Retry #${attempt} after ${delayMs}ms due to ${error.code || error.response?.status}`);\n }\n // Below works also ...\n //stsAxiosConfig: requestConfig\n });\n\n // This works with the stsAxiosConfig used directly within the config\n //return await api(url);\n return await api(url, requestConfig.config);\n }\n\n GetResource = async (resource: string, id: string, filters: string[] | null): Promise<IDomainResource | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n const retVal = await this.#fhirSocketClient.GetResource(resource, id);\n if (retVal.status === StatusCodes.OK) {\n return retVal.value;\n } else {\n const errorResponse: any = new Error(`GetResource(): Invalid response status code: [${retVal.status}] expected: [${StatusCodes.OK}]`);\n errorResponse.response = {\n status: retVal.status\n }\n throw errorResponse;\n }\n } catch (error) {\n const errorResponse: any = new Error(`GetResource(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${id}`;\n const response = await this.#InvokeResourceAPI(url, 'get', null, filters);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n }\n\n GetResources = async (resource: string, filters: string[] | null, searchParams: JSONObject | null): Promise<IDomainResource[] | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n return this.#fhirSocketClient.GetResources(resource, searchParams);\n } catch (error) {\n const errorResponse: any = new Error(`GetResources(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n let url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n if (searchParams) {\n url = this.#BuildQueryString(url, searchParams);\n }\n const response = await this.#InvokeResourceAPI(url, 'get', null, filters);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n }\n\n CreateResource = async (resource: string, domainResource: IDomainResource): Promise<IDomainResource | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n const retVal = await this.#fhirSocketClient.CreateResource(resource, domainResource);\n if (retVal.status === StatusCodes.CREATED) {\n return retVal.value;\n } else {\n const errorResponse: any = new Error(`CreateResource(): Invalid response status code: [${retVal.status}] expected: [${StatusCodes.CREATED}]`);\n errorResponse.response = {\n status: retVal.status\n };\n throw errorResponse;\n }\n } catch (error) {\n const errorResponse: any = new Error(`CreateResource(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'post', domainResource, null);\n if (response) {\n if (response.status === StatusCodes.CREATED) {\n return response.data as IDomainResource;\n } else {\n throw new Error(`CreateResource(): Invalid response status code: [${response.status}] expected: [${StatusCodes.CREATED}]`);\n }\n } else {\n return null;\n }\n }\n }\n\n UpdateResource = async (resource: string, domainResource: IDomainResource): Promise<IDomainResource | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n return this.#fhirSocketClient.UpdateResource(resource, domainResource);\n } catch (error) {\n const errorResponse: any = new Error(`UpdateResource(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${domainResource.id}`;\n const response = await this.#InvokeResourceAPI(url, 'put', domainResource, null);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n }\n\n UpdateResources = async (resource: string, domainResources: IDomainResource[]): Promise<IDomainResource[] | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n return this.#fhirSocketClient.UpdateResources(resource, domainResources);\n } catch (error) {\n const errorResponse: any = new Error(`UpdateResources(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'put', domainResources, null);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n }\n\n PatchResource = async (resource: string, domainResource: IDomainResource): Promise<IDomainResource | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n return this.#fhirSocketClient.PatchResource(resource, domainResource);\n } catch (error) {\n const errorResponse: any = new Error(`PatchResource(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${domainResource.id}`;\n const response = await this.#InvokeResourceAPI(url, 'patch', domainResource, null);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n }\n\n PatchResources = async (resource: string, domainResources: Partial<IDomainResource>[]): Promise<IDomainResource[] | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n return this.#fhirSocketClient.PatchResources(resource, domainResources);\n } catch (error) {\n const errorResponse: any = new Error(`PatchResources(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'patch', domainResources, null);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n }\n\n DeleteResource = async (resource: string, id: string): Promise<IDomainResource | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n return this.#fhirSocketClient.DeleteResource(resource, id);\n } catch (error) {\n const errorResponse: any = new Error(`DeleteResource(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}/${id}`;\n const response = await this.#InvokeResourceAPI(url, 'delete', null, null);\n if (response) {\n return response.data as IDomainResource;\n } else {\n return null;\n }\n }\n }\n\n DeleteResources = async (resource: string, domainResources: Partial<IDomainResource>[]): Promise<IDomainResource[] | null> => {\n if (this.#options.useSocketClient === true && this.#fhirSocketClient) {\n try {\n return this.#fhirSocketClient.DeleteResources(resource, domainResources as IDomainResource[]);\n } catch (error) {\n const errorResponse: any = new Error(`DeleteResources(): Error: [${error}]`);\n errorResponse.response = {\n status: StatusCodes.INTERNAL_SERVER_ERROR\n }\n throw errorResponse;\n }\n } else {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/${resource}`;\n const response = await this.#InvokeResourceAPI(url, 'delete', domainResources, null);\n if (response) {\n return response.data as IDomainResource[];\n } else {\n return null;\n }\n }\n }\n\n GetLatency = async () => {\n const url = `${this.#options.fhirEndpoint}${this.#stsfhirapiroot}/latency`; // /stsfhir/r5/\n try {\n const requestConfig = new STSAxiosConfig(url, 'get')\n .withDefaultHeaders();\n if (isNode && this.#options.agentManager) {\n requestConfig.withAgentManager(this.#options.agentManager)\n }\n\n const api = createRetryAxiosClient({\n maxRetries: 4,\n retryDelayMs: 300,\n retryJitterMs: 150,\n maxRetryDurationMs: 5000,\n onRetryAttempt: (attempt, error, delayMs) => {\n console.warn(`Retry #${attempt} after ${delayMs}ms due to ${error.code || error.response?.status}`);\n }\n });\n\n return await api(url, requestConfig.config);\n } catch (error: any) {\n this.#HandleError(error);\n }\n };\n\n Terminate = () => {\n if (this.#fhirSocketClient && this.#fhirSocketClient.socket) {\n this.#fhirSocketClient.socket.disconnect();\n }\n }\n}","export enum fhirRT {\n \"Resource\" = \"Resource\",\n \"Account\" = \"Account\",\n \"ActivityDefinition\" = \"ActivityDefinition\",\n \"ActorDefinition\" = \"ActorDefinition\",\n \"AdministrableProductDefinition\" = \"AdministrableProductDefinition\",\n \"AdverseEvent\" = \"AdverseEvent\",\n \"AllergyIntolerance\" = \"AllergyIntolerance\",\n \"Appointment\" = \"Appointment\",\n \"AppointmentResponse\" = \"AppointmentResponse\",\n \"ArtifactAssessment\" = \"ArtifactAssessment\",\n \"AuditEvent\" = \"AuditEvent\",\n \"Basic\" = \"Basic\",\n \"Binary\" = \"Binary\",\n \"BiologicallyDerivedProduct\" = \"BiologicallyDerivedProduct\",\n \"BiologicallyDerivedProductDispense\" = \"BiologicallyDerivedProductDispense\",\n \"BodyStructure\" = \"BodyStructure\",\n \"Bundle\" = \"Bundle\",\n \"CanonicalResource\" = \"CanonicalResource\",\n \"CapabilityStatement\" = \"CapabilityStatement\",\n \"CarePlan\" = \"CarePlan\",\n \"CareTeam\" = \"CareTeam\",\n \"ChargeItem\" = \"ChargeItem\",\n \"ChargeItemDefinition\" = \"ChargeItemDefinition\",\n \"Citation\" = \"Citation\",\n \"Claim\" = \"Claim\",\n \"ClaimResponse\" = \"ClaimResponse\",\n \"ClinicalImpression\" = \"ClinicalImpression\",\n \"ClinicalUseDefinition\" = \"ClinicalUseDefinition\",\n \"CodeSystem\" = \"CodeSystem\",\n \"Communication\" = \"Communication\",\n \"CommunicationRequest\" = \"CommunicationRequest\",\n \"CompartmentDefinition\" = \"CompartmentDefinition\",\n \"Composition\" = \"Composition\",\n \"ConceptMap\" = \"ConceptMap\",\n \"Condition\" = \"Condition\",\n \"ConditionDefinition\" = \"ConditionDefinition\",\n \"Consent\" = \"Consent\",\n \"Contract\" = \"Contract\",\n \"Coverage\" = \"Coverage\",\n \"CoverageEligibilityRequest\" = \"CoverageEligibilityRequest\",\n \"CoverageEligibilityResponse\" = \"CoverageEligibilityResponse\",\n \"DetectedIssue\" = \"DetectedIssue\",\n \"Device\" = \"Device\",\n \"DeviceAssociation\" = \"DeviceAssociation\",\n \"DeviceDefinition\" = \"DeviceDefinition\",\n \"DeviceDispense\" = \"DeviceDispense\",\n \"DeviceMetric\" = \"DeviceMetric\",\n \"DeviceRequest\" = \"DeviceRequest\",\n \"DeviceUsage\" = \"DeviceUsage\",\n \"DiagnosticReport\" = \"DiagnosticReport\",\n \"DocumentReference\" = \"DocumentReference\",\n \"DomainResource\" = \"DomainResource\",\n \"Encounter\" = \"Encounter\",\n \"EncounterHistory\" = \"EncounterHistory\",\n \"Endpoint\" = \"Endpoint\",\n \"EnrollmentRequest\" = \"EnrollmentRequest\",\n \"EnrollmentResponse\" = \"EnrollmentResponse\",\n \"EpisodeOfCare\" = \"EpisodeOfCare\",\n \"EventDefinition\" = \"EventDefinition\",\n \"Evidence\" = \"Evidence\",\n \"EvidenceReport\" = \"EvidenceReport\",\n \"EvidenceVariable\" = \"EvidenceVariable\",\n \"ExampleScenario\" = \"ExampleScenario\",\n \"ExplanationOfBenefit\" = \"ExplanationOfBenefit\",\n \"FamilyMemberHistory\" = \"FamilyMemberHistory\",\n \"Flag\" = \"Flag\",\n \"FormularyItem\" = \"FormularyItem\",\n \"GenomicStudy\" = \"GenomicStudy\",\n \"Goal\" = \"Goal\",\n \"GraphDefinition\" = \"GraphDefinition\",\n \"Group\" = \"Group\",\n \"GuidanceResponse\" = \"GuidanceResponse\",\n \"HealthcareService\" = \"HealthcareService\",\n \"ImagingSelection\" = \"ImagingSelection\",\n \"ImagingStudy\" = \"ImagingStudy\",\n \"Immunization\" = \"Immunization\",\n \"ImmunizationEvaluation\" = \"ImmunizationEvaluation\",\n \"ImmunizationRecommendation\" = \"ImmunizationRecommendation\",\n \"ImplementationGuide\" = \"ImplementationGuide\",\n \"Ingredient\" = \"Ingredient\",\n \"InsurancePlan\" = \"InsurancePlan\",\n \"InventoryItem\" = \"InventoryItem\",\n \"InventoryReport\" = \"InventoryReport\",\n \"Invoice\" = \"Invoice\",\n \"Library\" = \"Library\",\n \"Linkage\" = \"Linkage\",\n \"List\" = \"List\",\n \"Location\" = \"Location\",\n \"ManufacturedItemDefinition\" = \"ManufacturedItemDefinition\",\n \"Measure\" = \"Measure\",\n \"MeasureReport\" = \"MeasureReport\",\n \"Medication\" = \"Medication\",\n \"MedicationAdministration\" = \"MedicationAdministration\",\n \"MedicationDispense\" = \"MedicationDispense\",\n \"MedicationKnowledge\" = \"MedicationKnowledge\",\n \"MedicationRequest\" = \"MedicationRequest\",\n \"MedicationStatement\" = \"MedicationStatement\",\n \"MedicinalProductDefinition\" = \"MedicinalProductDefinition\",\n \"MessageDefinition\" = \"MessageDefinition\",\n \"MessageHeader\" = \"MessageHeader\",\n \"MetadataResource\" = \"MetadataResource\",\n \"MolecularSequence\" = \"MolecularSequence\",\n \"NamingSystem\" = \"NamingSystem\",\n \"NutritionIntake\" = \"NutritionIntake\",\n \"NutritionOrder\" = \"NutritionOrder\",\n \"NutritionProduct\" = \"NutritionProduct\",\n \"Observation\" = \"Observation\",\n \"ObservationDefinition\" = \"ObservationDefinition\",\n \"OperationDefinition\" = \"OperationDefinition\",\n \"OperationOutcome\" = \"OperationOutcome\",\n \"Organization\" = \"Organization\",\n \"OrganizationAffiliation\" = \"OrganizationAffiliation\",\n \"PackagedProductDefinition\" = \"PackagedProductDefinition\",\n \"Parameters\" = \"Parameters\",\n \"Patient\" = \"Patient\",\n \"PaymentNotice\" = \"PaymentNotice\",\n \"PaymentReconciliation\" = \"PaymentReconciliation\",\n \"Permission\" = \"Permission\",\n \"Person\" = \"Person\",\n \"PlanDefinition\" = \"PlanDefinition\",\n \"Practitioner\" = \"Practitioner\",\n \"PractitionerRole\" = \"PractitionerRole\",\n \"Procedure\" = \"Procedure\",\n \"Provenance\" = \"Provenance\",\n \"Questionnaire\" = \"Questionnaire\",\n \"QuestionnaireResponse\" = \"QuestionnaireResponse\",\n \"RegulatedAuthorization\" = \"RegulatedAuthorization\",\n \"RelatedPerson\" = \"RelatedPerson\",\n \"RequestOrchestration\" = \"RequestOrchestration\",\n \"Requirements\" = \"Requirements\",\n \"ResearchStudy\" = \"ResearchStudy\",\n \"ResearchSubject\" = \"ResearchSubject\",\n \"RiskAssessment\" = \"RiskAssessment\",\n \"Schedule\" = \"Schedule\",\n \"SearchParameter\" = \"SearchParameter\",\n \"ServiceRequest\" = \"ServiceRequest\",\n \"Slot\" = \"Slot\",\n \"Specimen\" = \"Specimen\",\n \"SpecimenDefinition\" = \"SpecimenDefinition\",\n \"StructureDefinition\" = \"StructureDefinition\",\n \"StructureMap\" = \"StructureMap\",\n \"Subscription\" = \"Subscription\",\n \"SubscriptionStatus\" = \"SubscriptionStatus\",\n \"SubscriptionTopic\" = \"SubscriptionTopic\",\n \"Substance\" = \"Substance\",\n \"SubstanceDefinition\" = \"SubstanceDefinition\",\n \"SubstanceNucleicAcid\" = \"SubstanceNucleicAcid\",\n \"SubstancePolymer\" = \"SubstancePolymer\",\n \"SubstanceProtein\" = \"SubstanceProtein\",\n \"SubstanceReferenceInformation\" = \"SubstanceReferenceInformation\",\n \"SubstanceSourceMaterial\" = \"SubstanceSourceMaterial\",\n \"SupplyDelivery\" = \"SupplyDelivery\",\n \"SupplyRequest\" = \"SupplyRequest\",\n \"Task\" = \"Task\",\n \"TerminologyCapabilities\" = \"TerminologyCapabilities\",\n \"TestPlan\" = \"TestPlan\",\n \"TestReport\" = \"TestReport\",\n \"TestScript\" = \"TestScript\",\n \"Transport\" = \"Transport\",\n \"ValueSet\" = \"ValueSet\",\n \"VerificationResult\" = \"VerificationResult\",\n \"VisionPrescription\" = \"VisionPrescription\",\n}\n\nexport enum fhirSP {\n \"Account_guarantor_reference\" = \"Account_guarantor_reference\",\n \"Account_identifier_token\" = \"Account_identifier_token\",\n \"Account_name_string\" = \"Account_name_string\",\n \"Account_owner_reference\" = \"Account_owner_reference\",\n \"Account_patient_reference\" = \"Account_patient_reference\",\n \"Account_period_date\" = \"Account_period_date\",\n \"Account_relatedaccount_reference\" = \"Account_relatedaccount_reference\",\n \"Account_status_token\" = \"Account_status_token\",\n \"Account_subject_reference\" = \"Account_subject_reference\",\n \"Account_type_token\" = \"Account_type_token\",\n \"ActivityDefinition_composed-of_reference\" = \"ActivityDefinition_composed-of_reference\",\n \"ActivityDefinition_context_token\" = \"ActivityDefinition_context_token\",\n \"ActivityDefinition_context-quantity_quantity\" = \"ActivityDefinition_context-quantity_quantity\",\n \"ActivityDefinition_context-type_token\" = \"ActivityDefinition_context-type_token\",\n \"ActivityDefinition_date_date\" = \"ActivityDefinition_date_date\",\n \"ActivityDefinition_depends-on_reference\" = \"ActivityDefinition_depends-on_reference\",\n \"ActivityDefinition_derived-from_reference\" = \"ActivityDefinition_derived-from_reference\",\n \"ActivityDefinition_description_string\" = \"ActivityDefinition_description_string\",\n \"ActivityDefinition_effective_date\" = \"ActivityDefinition_effective_date\",\n \"ActivityDefinition_identifier_token\" = \"ActivityDefinition_identifier_token\",\n \"ActivityDefinition_jurisdiction_token\" = \"ActivityDefinition_jurisdiction_token\",\n \"ActivityDefinition_kind_token\" = \"ActivityDefinition_kind_token\",\n \"ActivityDefinition_name_string\" = \"ActivityDefinition_name_string\",\n \"ActivityDefinition_predecessor_reference\" = \"ActivityDefinition_predecessor_reference\",\n \"ActivityDefinition_publisher_string\" = \"ActivityDefinition_publisher_string\",\n \"ActivityDefinition_status_token\" = \"ActivityDefinition_status_token\",\n \"ActivityDefinition_successor_reference\" = \"ActivityDefinition_successor_reference\",\n \"ActivityDefinition_title_string\" = \"ActivityDefinition_title_string\",\n \"ActivityDefinition_topic_token\" = \"ActivityDefinition_topic_token\",\n \"ActivityDefinition_url_uri\" = \"ActivityDefinition_url_uri\",\n \"ActivityDefinition_version_token\" = \"ActivityDefinition_version_token\",\n \"ActivityDefinition_context-type-quantity_composite\" = \"ActivityDefinition_context-type-quantity_composite\",\n \"ActivityDefinition_context-type-value_composite\" = \"ActivityDefinition_context-type-value_composite\",\n \"ActorDefinition_context_token\" = \"ActorDefinition_context_token\",\n \"ActorDefinition_context-quantity_quantity\" = \"ActorDefinition_context-quantity_quantity\",\n \"ActorDefinition_context-type_token\" = \"ActorDefinition_context-type_token\",\n \"ActorDefinition_date_date\" = \"ActorDefinition_date_date\",\n \"ActorDefinition_description_string\" = \"ActorDefinition_description_string\",\n \"ActorDefinition_identifier_token\" = \"ActorDefinition_identifier_token\",\n \"ActorDefinition_jurisdiction_token\" = \"ActorDefinition_jurisdiction_token\",\n \"ActorDefinition_publisher_string\" = \"ActorDefinition_publisher_string\",\n \"ActorDefinition_status_token\" = \"ActorDefinition_status_token\",\n \"ActorDefinition_title_string\" = \"ActorDefinition_title_string\",\n \"ActorDefinition_url_uri\" = \"ActorDefinition_url_uri\",\n \"ActorDefinition_version_token\" = \"ActorDefinition_version_token\",\n \"ActorDefinition_context-type-quantity_composite\" = \"ActorDefinition_context-type-quantity_composite\",\n \"ActorDefinition_context-type-value_composite\" = \"ActorDefinition_context-type-value_composite\",\n \"ActorDefinition_type_token\" = \"ActorDefinition_type_token\",\n \"AdministrableProductDefinition_device_reference\" = \"AdministrableProductDefinition_device_reference\",\n \"AdministrableProductDefinition_dose-form_token\" = \"AdministrableProductDefinition_dose-form_token\",\n \"AdministrableProductDefinition_form-of_reference\" = \"AdministrableProductDefinition_form-of_reference\",\n \"AdministrableProductDefinition_identifier_token\" = \"AdministrableProductDefinition_identifier_token\",\n \"AdministrableProductDefinition_ingredient_token\" = \"AdministrableProductDefinition_ingredient_token\",\n \"AdministrableProductDefinition_manufactured-item_reference\" = \"AdministrableProductDefinition_manufactured-item_reference\",\n \"AdministrableProductDefinition_route_token\" = \"AdministrableProductDefinition_route_token\",\n \"AdministrableProductDefinition_status_token\" = \"AdministrableProductDefinition_status_token\",\n \"AdministrableProductDefinition_target-species_token\" = \"AdministrableProductDefinition_target-species_token\",\n \"AdverseEvent_identifier_token\" = \"AdverseEvent_identifier_token\",\n \"AdverseEvent_patient_reference\" = \"AdverseEvent_patient_reference\",\n \"AdverseEvent_actuality_token\" = \"AdverseEvent_actuality_token\",\n \"AdverseEvent_category_token\" = \"AdverseEvent_category_token\",\n \"AdverseEvent_code_token\" = \"AdverseEvent_code_token\",\n \"AdverseEvent_date_date\" = \"AdverseEvent_date_date\",\n \"AdverseEvent_location_reference\" = \"AdverseEvent_location_reference\",\n \"AdverseEvent_recorder_reference\" = \"AdverseEvent_recorder_reference\",\n \"AdverseEvent_resultingeffect_reference\" = \"AdverseEvent_resultingeffect_reference\",\n \"AdverseEvent_seriousness_token\" = \"AdverseEvent_seriousness_token\",\n \"AdverseEvent_status_token\" = \"AdverseEvent_status_token\",\n \"AdverseEvent_study_reference\" = \"AdverseEvent_study_reference\",\n \"AdverseEvent_subject_reference\" = \"AdverseEvent_subject_reference\",\n \"AdverseEvent_substance_reference\" = \"AdverseEvent_substance_reference\",\n \"AllergyIntolerance_identifier_token\" = \"AllergyIntolerance_identifier_token\",\n \"AllergyIntolerance_patient_reference\" = \"AllergyIntolerance_patient_reference\",\n \"AllergyIntolerance_type_token\" = \"AllergyIntolerance_type_token\",\n \"AllergyIntolerance_code_token\" = \"AllergyIntolerance_code_token\",\n \"AllergyIntolerance_date_date\" = \"AllergyIntolerance_date_date\",\n \"AllergyIntolerance_category_token\" = \"AllergyIntolerance_category_token\",\n \"AllergyIntolerance_clinical-status_token\" = \"AllergyIntolerance_clinical-status_token\",\n \"AllergyIntolerance_criticality_token\" = \"AllergyIntolerance_criticality_token\",\n \"AllergyIntolerance_last-date_date\" = \"AllergyIntolerance_last-date_date\",\n \"AllergyIntolerance_manifestation-code_token\" = \"AllergyIntolerance_manifestation-code_token\",\n \"AllergyIntolerance_manifestation-reference_reference\" = \"AllergyIntolerance_manifestation-reference_reference\",\n \"AllergyIntolerance_participant_reference\" = \"AllergyIntolerance_participant_reference\",\n \"AllergyIntolerance_route_token\" = \"AllergyIntolerance_route_token\",\n \"AllergyIntolerance_severity_token\" = \"AllergyIntolerance_severity_token\",\n \"AllergyIntolerance_verification-status_token\" = \"AllergyIntolerance_verification-status_token\",\n \"Appointment_identifier_token\" = \"Appointment_identifier_token\",\n \"Appointment_patient_reference\" = \"Appointment_patient_reference\",\n \"Appointment_date_date\" = \"Appointment_date_date\",\n \"Appointment_actor_reference\" = \"Appointment_actor_reference\",\n \"Appointment_appointment-type_token\" = \"Appointment_appointment-type_token\",\n \"Appointment_based-on_reference\" = \"Appointment_based-on_reference\",\n \"Appointment_group_reference\" = \"Appointment_group_reference\",\n \"Appointment_location_reference\" = \"Appointment_location_reference\",\n \"Appointment_part-status_token\" = \"Appointment_part-status_token\",\n \"Appointment_practitioner_reference\" = \"Appointment_practitioner_reference\",\n \"Appointment_reason-code_token\" = \"Appointment_reason-code_token\",\n \"Appointment_reason-reference_reference\" = \"Appointment_reason-reference_reference\",\n \"Appointment_requested-period_date\" = \"Appointment_requested-period_date\",\n \"Appointment_service-category_token\" = \"Appointment_service-category_token\",\n \"Appointment_service-type_token\" = \"Appointment_service-type_token\",\n \"Appointment_service-type-reference_reference\" = \"Appointment_service-type-reference_reference\",\n \"Appointment_slot_reference\" = \"Appointment_slot_reference\",\n \"Appointment_specialty_token\" = \"Appointment_specialty_token\",\n \"Appointment_status_token\" = \"Appointment_status_token\",\n \"Appointment_subject_reference\" = \"Appointment_subject_reference\",\n \"Appointment_supporting-info_reference\" = \"Appointment_supporting-info_reference\",\n \"AppointmentResponse_identifier_token\" = \"AppointmentResponse_identifier_token\",\n \"AppointmentResponse_patient_reference\" = \"AppointmentResponse_patient_reference\",\n \"AppointmentResponse_actor_reference\" = \"AppointmentResponse_actor_reference\",\n \"AppointmentResponse_appointment_reference\" = \"AppointmentResponse_appointment_reference\",\n \"AppointmentResponse_group_reference\" = \"AppointmentResponse_group_reference\",\n \"AppointmentResponse_location_reference\" = \"AppointmentResponse_location_reference\",\n \"AppointmentResponse_part-status_token\" = \"AppointmentResponse_part-status_token\",\n \"AppointmentResponse_practitioner_reference\" = \"AppointmentResponse_practitioner_reference\",\n \"ArtifactAssessment_date_date\" = \"ArtifactAssessment_date_date\",\n \"ArtifactAssessment_identifier_token\" = \"ArtifactAssessment_identifier_token\",\n \"AuditEvent_patient_reference\" = \"AuditEvent_patient_reference\",\n \"AuditEvent_code_token\" = \"AuditEvent_code_token\",\n \"AuditEvent_date_date\" = \"AuditEvent_date_date\",\n \"AuditEvent_action_token\" = \"AuditEvent_action_token\",\n \"AuditEvent_agent_reference\" = \"AuditEvent_agent_reference\",\n \"AuditEvent_agent-role_token\" = \"AuditEvent_agent-role_token\",\n \"AuditEvent_based-on_reference\" = \"AuditEvent_based-on_reference\",\n \"AuditEvent_category_token\" = \"AuditEvent_category_token\",\n \"AuditEvent_encounter_reference\" = \"AuditEvent_encounter_reference\",\n \"AuditEvent_entity_reference\" = \"AuditEvent_entity_reference\",\n \"AuditEvent_entity-role_token\" = \"AuditEvent_entity-role_token\",\n \"AuditEvent_outcome_token\" = \"AuditEvent_outcome_token\",\n \"AuditEvent_policy_uri\" = \"AuditEvent_policy_uri\",\n \"AuditEvent_purpose_token\" = \"AuditEvent_purpose_token\",\n \"AuditEvent_source_reference\" = \"AuditEvent_source_reference\",\n \"Basic_identifier_token\" = \"Basic_identifier_token\",\n \"Basic_patient_reference\" = \"Basic_patient_reference\",\n \"Basic_code_token\" = \"Basic_code_token\",\n \"Basic_author_reference\" = \"Basic_author_reference\",\n \"Basic_created_date\" = \"Basic_created_date\",\n \"Basic_subject_reference\" = \"Basic_subject_reference\",\n \"BiologicallyDerivedProduct_biological-source-event_token\" = \"BiologicallyDerivedProduct_biological-source-event_token\",\n \"BiologicallyDerivedProduct_code_token\" = \"BiologicallyDerivedProduct_code_token\",\n \"BiologicallyDerivedProduct_collector_reference\" = \"BiologicallyDerivedProduct_collector_reference\",\n \"BiologicallyDerivedProduct_identifier_token\" = \"BiologicallyDerivedProduct_identifier_token\",\n \"BiologicallyDerivedProduct_product-category_token\" = \"BiologicallyDerivedProduct_product-category_token\",\n \"BiologicallyDerivedProduct_product-status_token\" = \"BiologicallyDerivedProduct_product-status_token\",\n \"BiologicallyDerivedProduct_request_reference\" = \"BiologicallyDerivedProduct_request_reference\",\n \"BiologicallyDerivedProduct_serial-number_token\" = \"BiologicallyDerivedProduct_serial-number_token\",\n \"BiologicallyDerivedProductDispense_identifier_token\" = \"BiologicallyDerivedProductDispense_identifier_token\",\n \"BiologicallyDerivedProductDispense_patient_reference\" = \"BiologicallyDerivedProductDispense_patient_reference\",\n \"BiologicallyDerivedProductDispense_performer_reference\" = \"BiologicallyDerivedProductDispense_performer_reference\",\n \"BiologicallyDerivedProductDispense_product_reference\" = \"BiologicallyDerivedProductDispense_product_reference\",\n \"BiologicallyDerivedProductDispense_status_token\" = \"BiologicallyDerivedProductDispense_status_token\",\n \"BodyStructure_identifier_token\" = \"BodyStructure_identifier_token\",\n \"BodyStructure_patient_reference\" = \"BodyStructure_patient_reference\",\n \"BodyStructure_excluded_structure_token\" = \"BodyStructure_excluded_structure_token\",\n \"BodyStructure_included_structure_token\" = \"BodyStructure_included_structure_token\",\n \"BodyStructure_morphology_token\" = \"BodyStructure_morphology_token\",\n \"Bundle_composition_reference\" = \"Bundle_composition_reference\",\n \"Bundle_identifier_token\" = \"Bundle_identifier_token\",\n \"Bundle_message_reference\" = \"Bundle_message_reference\",\n \"Bundle_timestamp_date\" = \"Bundle_timestamp_date\",\n \"Bundle_type_token\" = \"Bundle_type_token\",\n \"CapabilityStatement_context_token\" = \"CapabilityStatement_context_token\",\n \"CapabilityStatement_context-quantity_quantity\" = \"CapabilityStatement_context-quantity_quantity\",\n \"CapabilityStatement_context-type_token\" = \"CapabilityStatement_context-type_token\",\n \"CapabilityStatement_date_date\" = \"CapabilityStatement_date_date\",\n \"CapabilityStatement_description_string\" = \"CapabilityStatement_description_string\",\n \"CapabilityStatement_identifier_token\" = \"CapabilityStatement_identifier_token\",\n \"CapabilityStatement_jurisdiction_token\" = \"CapabilityStatement_jurisdiction_token\",\n \"CapabilityStatement_name_string\" = \"CapabilityStatement_name_string\",\n \"CapabilityStatement_publisher_string\" = \"CapabilityStatement_publisher_string\",\n \"CapabilityStatement_status_token\" = \"CapabilityStatement_status_token\",\n \"CapabilityStatement_title_string\" = \"CapabilityStatement_title_string\",\n \"CapabilityStatement_url_uri\" = \"CapabilityStatement_url_uri\",\n \"CapabilityStatement_version_token\" = \"CapabilityStatement_version_token\",\n \"CapabilityStatement_context-type-quantity_composite\" = \"CapabilityStatement_context-type-quantity_composite\",\n \"CapabilityStatement_context-type-value_composite\" = \"CapabilityStatement_context-type-value_composite\",\n \"CapabilityStatement_fhirversion_token\" = \"CapabilityStatement_fhirversion_token\",\n \"CapabilityStatement_format_token\" = \"CapabilityStatement_format_token\",\n \"CapabilityStatement_guide_reference\" = \"CapabilityStatement_guide_reference\",\n \"CapabilityStatement_mode_token\" = \"CapabilityStatement_mode_token\",\n \"CapabilityStatement_resource_token\" = \"CapabilityStatement_resource_token\",\n \"CapabilityStatement_resource-profile_reference\" = \"CapabilityStatement_resource-profile_reference\",\n \"CapabilityStatement_security-service_token\" = \"CapabilityStatement_security-service_token\",\n \"CapabilityStatement_software_string\" = \"CapabilityStatement_software_string\",\n \"CapabilityStatement_supported-profile_reference\" = \"CapabilityStatement_supported-profile_reference\",\n \"CarePlan_identifier_token\" = \"CarePlan_identifier_token\",\n \"CarePlan_patient_reference\" = \"CarePlan_patient_reference\",\n \"CarePlan_date_date\" = \"CarePlan_date_date\",\n \"CarePlan_encounter_reference\" = \"CarePlan_encounter_reference\",\n \"CarePlan_activity-reference_reference\" = \"CarePlan_activity-reference_reference\",\n \"CarePlan_based-on_reference\" = \"CarePlan_based-on_reference\",\n \"CarePlan_care-team_reference\" = \"CarePlan_care-team_reference\",\n \"CarePlan_category_token\" = \"CarePlan_category_token\",\n \"CarePlan_condition_reference\" = \"CarePlan_condition_reference\",\n \"CarePlan_custodian_reference\" = \"CarePlan_custodian_reference\",\n \"CarePlan_goal_reference\" = \"CarePlan_goal_reference\",\n \"CarePlan_instantiates-canonical_reference\" = \"CarePlan_instantiates-canonical_reference\",\n \"CarePlan_instantiates-uri_uri\" = \"CarePlan_instantiates-uri_uri\",\n \"CarePlan_intent_token\" = \"CarePlan_intent_token\",\n \"CarePlan_part-of_reference\" = \"CarePlan_part-of_reference\",\n \"CarePlan_replaces_reference\" = \"CarePlan_replaces_reference\",\n \"CarePlan_status_token\" = \"CarePlan_status_token\",\n \"CarePlan_subject_reference\" = \"CarePlan_subject_reference\",\n \"CareTeam_identifier_token\" = \"CareTeam_identifier_token\",\n \"CareTeam_patient_reference\" = \"CareTeam_patient_reference\",\n \"CareTeam_date_date\" = \"CareTeam_date_date\",\n \"CareTeam_category_token\" = \"CareTeam_category_token\",\n \"CareTeam_name_string\" = \"CareTeam_name_string\",\n \"CareTeam_participant_reference\" = \"CareTeam_participant_reference\",\n \"CareTeam_status_token\" = \"CareTeam_status_token\",\n \"CareTeam_subject_reference\" = \"CareTeam_subject_reference\",\n \"ChargeItem_identifier_token\" = \"ChargeItem_identifier_token\",\n \"ChargeItem_patient_reference\" = \"ChargeItem_patient_reference\",\n \"ChargeItem_code_token\" = \"ChargeItem_code_token\",\n \"ChargeItem_encounter_reference\" = \"ChargeItem_encounter_reference\",\n \"ChargeItem_account_reference\" = \"ChargeItem_account_reference\",\n \"ChargeItem_entered-date_date\" = \"ChargeItem_entered-date_date\",\n \"ChargeItem_enterer_reference\" = \"ChargeItem_enterer_reference\",\n \"ChargeItem_factor-override_number\" = \"ChargeItem_factor-override_number\",\n \"ChargeItem_occurrence_date\" = \"ChargeItem_occurrence_date\",\n \"ChargeItem_performer-actor_reference\" = \"ChargeItem_performer-actor_reference\",\n \"ChargeItem_performer-function_token\" = \"ChargeItem_performer-function_token\",\n \"ChargeItem_performing-organization_reference\" = \"ChargeItem_performing-organization_reference\",\n \"ChargeItem_price-override_quantity\" = \"ChargeItem_price-override_quantity\",\n \"ChargeItem_quantity_quantity\" = \"ChargeItem_quantity_quantity\",\n \"ChargeItem_requesting-organization_reference\" = \"ChargeItem_requesting-organization_reference\",\n \"ChargeItem_service_reference\" = \"ChargeItem_service_reference\",\n \"ChargeItem_status_token\" = \"ChargeItem_status_token\",\n \"ChargeItem_subject_reference\" = \"ChargeItem_subject_reference\",\n \"ChargeItemDefinition_context_token\" = \"ChargeItemDefinition_context_token\",\n \"ChargeItemDefinition_context-quantity_quantity\" = \"ChargeItemDefinition_context-quantity_quantity\",\n \"ChargeItemDefinition_context-type_token\" = \"ChargeItemDefinition_context-type_token\",\n \"ChargeItemDefinition_date_date\" = \"ChargeItemDefinition_date_date\",\n \"ChargeItemDefinition_description_string\" = \"ChargeItemDefinition_description_string\",\n \"ChargeItemDefinition_effective_date\" = \"ChargeItemDefinition_effective_date\",\n \"ChargeItemDefinition_identifier_token\" = \"ChargeItemDefinition_identifier_token\",\n \"ChargeItemDefinition_jurisdiction_token\" = \"ChargeItemDefinition_jurisdiction_token\",\n \"ChargeItemDefinition_publisher_string\" = \"ChargeItemDefinition_publisher_string\",\n \"ChargeItemDefinition_status_token\" = \"ChargeItemDefinition_status_token\",\n \"ChargeItemDefinition_title_string\" = \"ChargeItemDefinition_title_string\",\n \"ChargeItemDefinition_url_uri\" = \"ChargeItemDefinition_url_uri\",\n \"ChargeItemDefinition_version_token\" = \"ChargeItemDefinition_version_token\",\n \"ChargeItemDefinition_context-type-quantity_composite\" = \"ChargeItemDefinition_context-type-quantity_composite\",\n \"ChargeItemDefinition_context-type-value_composite\" = \"ChargeItemDefinition_context-type-value_composite\",\n \"Citation_context_token\" = \"Citation_context_token\",\n \"Citation_context-quantity_quantity\" = \"Citation_context-quantity_quantity\",\n \"Citation_context-type_token\" = \"Citation_context-type_token\",\n \"Citation_date_date\" = \"Citation_date_date\",\n \"Citation_description_string\" = \"Citation_description_string\",\n \"Citation_effective_date\" = \"Citation_effective_date\",\n \"Citation_identifier_token\" = \"Citation_identifier_token\",\n \"Citation_jurisdiction_token\" = \"Citation_jurisdiction_token\",\n \"Citation_name_string\" = \"Citation_name_string\",\n \"Citation_publisher_string\" = \"Citation_publisher_string\",\n \"Citation_status_token\" = \"Citation_status_token\",\n \"Citation_title_string\" = \"Citation_title_string\",\n \"Citation_url_uri\" = \"Citation_url_uri\",\n \"Citation_version_token\" = \"Citation_version_token\",\n \"Citation_context-type-quantity_composite\" = \"Citation_context-type-quantity_composite\",\n \"Citation_context-type-value_composite\" = \"Citation_context-type-value_composite\",\n \"Citation_classification-type_token\" = \"Citation_classification-type_token\",\n \"Citation_classifier_token\" = \"Citation_classifier_token\",\n \"Citation_classification_composite\" = \"Citation_classification_composite\",\n \"Claim_identifier_token\" = \"Claim_identifier_token\",\n \"Claim_patient_reference\" = \"Claim_patient_reference\",\n \"Claim_encounter_reference\" = \"Claim_encounter_reference\",\n \"Claim_care-team_reference\" = \"Claim_care-team_reference\",\n \"Claim_created_date\" = \"Claim_created_date\",\n \"Claim_detail-udi_reference\" = \"Claim_detail-udi_reference\",\n \"Claim_enterer_reference\" = \"Claim_enterer_reference\",\n \"Claim_facility_reference\" = \"Claim_facility_reference\",\n \"Claim_insurer_reference\" = \"Claim_insurer_reference\",\n \"Claim_item-udi_reference\" = \"Claim_item-udi_reference\",\n \"Claim_payee_reference\" = \"Claim_payee_reference\",\n \"Claim_priority_token\" = \"Claim_priority_token\",\n \"Claim_procedure-udi_reference\" = \"Claim_procedure-udi_reference\",\n \"Claim_provider_reference\" = \"Claim_provider_reference\",\n \"Claim_status_token\" = \"Claim_status_token\",\n \"Claim_subdetail-udi_reference\" = \"Claim_subdetail-udi_reference\",\n \"Claim_use_token\" = \"Claim_use_token\",\n \"ClaimResponse_identifier_token\" = \"ClaimResponse_identifier_token\",\n \"ClaimResponse_patient_reference\" = \"ClaimResponse_patient_reference\",\n \"ClaimResponse_created_date\" = \"ClaimResponse_created_date\",\n \"ClaimResponse_disposition_string\" = \"ClaimResponse_disposition_string\",\n \"ClaimResponse_insurer_reference\" = \"ClaimResponse_insurer_reference\",\n \"ClaimResponse_outcome_token\" = \"ClaimResponse_outcome_token\",\n \"ClaimResponse_payment-date_date\" = \"ClaimResponse_payment-date_date\",\n \"ClaimResponse_request_reference\" = \"ClaimResponse_request_reference\",\n \"ClaimResponse_requestor_reference\" = \"ClaimResponse_requestor_reference\",\n \"ClaimResponse_status_token\" = \"ClaimResponse_status_token\",\n \"ClaimResponse_use_token\" = \"ClaimResponse_use_token\",\n \"ClinicalImpression_identifier_token\" = \"ClinicalImpression_identifier_token\",\n \"ClinicalImpression_patient_reference\" = \"ClinicalImpression_patient_reference\",\n \"ClinicalImpression_date_date\" = \"ClinicalImpression_date_date\",\n \"ClinicalImpression_encounter_reference\" = \"ClinicalImpression_encounter_reference\",\n \"ClinicalImpression_finding-code_token\" = \"ClinicalImpression_finding-code_token\",\n \"ClinicalImpression_finding-ref_reference\" = \"ClinicalImpression_finding-ref_reference\",\n \"ClinicalImpression_performer_reference\" = \"ClinicalImpression_performer_reference\",\n \"ClinicalImpression_previous_reference\" = \"ClinicalImpression_previous_reference\",\n \"ClinicalImpression_problem_reference\" = \"ClinicalImpression_problem_reference\",\n \"ClinicalImpression_status_token\" = \"ClinicalImpression_status_token\",\n \"ClinicalImpression_subject_reference\" = \"ClinicalImpression_subject_reference\",\n \"ClinicalImpression_supporting-info_reference\" = \"ClinicalImpression_supporting-info_reference\",\n \"ClinicalUseDefinition_contraindication_token\" = \"ClinicalUseDefinition_contraindication_token\",\n \"ClinicalUseDefinition_contraindication-reference_reference\" = \"ClinicalUseDefinition_contraindication-reference_reference\",\n \"ClinicalUseDefinition_effect_token\" = \"ClinicalUseDefinition_effect_token\",\n \"ClinicalUseDefinition_effect-reference_reference\" = \"ClinicalUseDefinition_effect-reference_reference\",\n \"ClinicalUseDefinition_identifier_token\" = \"ClinicalUseDefinition_identifier_token\",\n \"ClinicalUseDefinition_indication_token\" = \"ClinicalUseDefinition_indication_token\",\n \"ClinicalUseDefinition_indication-reference_reference\" = \"ClinicalUseDefinition_indication-reference_reference\",\n \"ClinicalUseDefinition_interaction_token\" = \"ClinicalUseDefinition_interaction_token\",\n \"ClinicalUseDefinition_product_reference\" = \"ClinicalUseDefinition_product_reference\",\n \"ClinicalUseDefinition_status_token\" = \"ClinicalUseDefinition_status_token\",\n \"ClinicalUseDefinition_subject_reference\" = \"ClinicalUseDefinition_subject_reference\",\n \"ClinicalUseDefinition_type_token\" = \"ClinicalUseDefinition_type_token\",\n \"CodeSystem_context_token\" = \"CodeSystem_context_token\",\n \"CodeSystem_context-quantity_quantity\" = \"CodeSystem_context-quantity_quantity\",\n \"CodeSystem_context-type_token\" = \"CodeSystem_context-type_token\",\n \"CodeSystem_date_date\" = \"CodeSystem_date_date\",\n \"CodeSystem_derived-from_reference\" = \"CodeSystem_derived-from_reference\",\n \"CodeSystem_description_string\" = \"CodeSystem_description_string\",\n \"CodeSystem_effective_date\" = \"CodeSystem_effective_date\",\n \"CodeSystem_identifier_token\" = \"CodeSystem_identifier_token\",\n \"CodeSystem_jurisdiction_token\" = \"CodeSystem_jurisdiction_token\",\n \"CodeSystem_name_string\" = \"CodeSystem_name_string\",\n \"CodeSystem_predecessor_reference\" = \"CodeSystem_predecessor_reference\",\n \"CodeSystem_publisher_string\" = \"CodeSystem_publisher_string\",\n \"CodeSystem_status_token\" = \"CodeSystem_status_token\",\n \"CodeSystem_title_string\" = \"CodeSystem_title_string\",\n \"CodeSystem_topic_token\" = \"CodeSystem_topic_token\",\n \"CodeSystem_url_uri\" = \"CodeSystem_url_uri\",\n \"CodeSystem_version_token\" = \"CodeSystem_version_token\",\n \"CodeSystem_context-type-quantity_composite\" = \"CodeSystem_context-type-quantity_composite\",\n \"CodeSystem_context-type-value_composite\" = \"CodeSystem_context-type-value_composite\",\n \"CodeSystem_code_token\" = \"CodeSystem_code_token\",\n \"CodeSystem_content-mode_token\" = \"CodeSystem_content-mode_token\",\n \"CodeSystem_language_token\" = \"CodeSystem_language_token\",\n \"CodeSystem_supplements_reference\" = \"CodeSystem_supplements_reference\",\n \"CodeSystem_system_uri\" = \"CodeSystem_system_uri\",\n \"Communication_identifier_token\" = \"Communication_identifier_token\",\n \"Communication_patient_reference\" = \"Communication_patient_reference\",\n \"Communication_encounter_reference\" = \"Communication_encounter_reference\",\n \"Communication_based-on_reference\" = \"Communication_based-on_reference\",\n \"Communication_category_token\" = \"Communication_category_token\",\n \"Communication_instantiates-canonical_reference\" = \"Communication_instantiates-canonical_reference\",\n \"Communication_instantiates-uri_uri\" = \"Communication_instantiates-uri_uri\",\n \"Communication_medium_token\" = \"Communication_medium_token\",\n \"Communication_part-of_reference\" = \"Communication_part-of_reference\",\n \"Communication_received_date\" = \"Communication_received_date\",\n \"Communication_recipient_reference\" = \"Communication_recipient_reference\",\n \"Communication_sender_reference\" = \"Communication_sender_reference\",\n \"Communication_sent_date\" = \"Communication_sent_date\",\n \"Communication_status_token\" = \"Communication_status_token\",\n \"Communication_subject_reference\" = \"Communication_subject_reference\",\n \"Communication_topic_token\" = \"Communication_topic_token\",\n \"CommunicationRequest_identifier_token\" = \"CommunicationRequest_identifier_token\",\n \"CommunicationRequest_patient_reference\" = \"CommunicationRequest_patient_reference\",\n \"CommunicationRequest_encounter_reference\" = \"CommunicationRequest_encounter_reference\",\n \"CommunicationRequest_authored_date\" = \"CommunicationRequest_authored_date\",\n \"CommunicationRequest_based-on_reference\" = \"CommunicationRequest_based-on_reference\",\n \"CommunicationRequest_category_token\" = \"CommunicationRequest_category_token\",\n \"CommunicationRequest_group-identifier_token\" = \"CommunicationRequest_group-identifier_token\",\n \"CommunicationRequest_information-provider_reference\" = \"CommunicationRequest_information-provider_reference\",\n \"CommunicationRequest_medium_token\" = \"CommunicationRequest_medium_token\",\n \"CommunicationRequest_occurrence_date\" = \"CommunicationRequest_occurrence_date\",\n \"CommunicationRequest_priority_token\" = \"CommunicationRequest_priority_token\",\n \"CommunicationRequest_recipient_reference\" = \"CommunicationRequest_recipient_reference\",\n \"CommunicationRequest_replaces_reference\" = \"CommunicationRequest_replaces_reference\",\n \"CommunicationRequest_requester_reference\" = \"CommunicationRequest_requester_reference\",\n \"CommunicationRequest_status_token\" = \"CommunicationRequest_status_token\",\n \"CommunicationRequest_subject_reference\" = \"CommunicationRequest_subject_reference\",\n \"CompartmentDefinition_context_token\" = \"CompartmentDefinition_context_token\",\n \"CompartmentDefinition_context-quantity_quantity\" = \"CompartmentDefinition_context-quantity_quantity\",\n \"CompartmentDefinition_context-type_token\" = \"CompartmentDefinition_context-type_token\",\n \"CompartmentDefinition_date_date\" = \"CompartmentDefinition_date_date\",\n \"CompartmentDefinition_description_string\" = \"CompartmentDefinition_description_string\",\n \"CompartmentDefinition_name_string\" = \"CompartmentDefinition_name_string\",\n \"CompartmentDefinition_publisher_string\" = \"CompartmentDefinition_publisher_string\",\n \"CompartmentDefinition_status_token\" = \"CompartmentDefinition_status_token\",\n \"CompartmentDefinition_url_uri\" = \"CompartmentDefinition_url_uri\",\n \"CompartmentDefinition_version_token\" = \"CompartmentDefinition_version_token\",\n \"CompartmentDefinition_context-type-quantity_composite\" = \"CompartmentDefinition_context-type-quantity_composite\",\n \"CompartmentDefinition_context-type-value_composite\" = \"CompartmentDefinition_context-type-value_composite\",\n \"CompartmentDefinition_code_token\" = \"CompartmentDefinition_code_token\",\n \"CompartmentDefinition_resource_token\" = \"CompartmentDefinition_resource_token\",\n \"Composition_identifier_token\" = \"Composition_identifier_token\",\n \"Composition_patient_reference\" = \"Composition_patient_reference\",\n \"Composition_type_token\" = \"Composition_type_token\",\n \"Composition_date_date\" = \"Composition_date_date\",\n \"Composition_encounter_reference\" = \"Composition_encounter_reference\",\n \"Composition_attester_reference\" = \"Composition_attester_reference\",\n \"Composition_author_reference\" = \"Composition_author_reference\",\n \"Composition_category_token\" = \"Composition_category_token\",\n \"Composition_entry_reference\" = \"Composition_entry_reference\",\n \"Composition_event-code_token\" = \"Composition_event-code_token\",\n \"Composition_event-reference_reference\" = \"Composition_event-reference_reference\",\n \"Composition_period_date\" = \"Composition_period_date\",\n \"Composition_related_reference\" = \"Composition_related_reference\",\n \"Composition_section_token\" = \"Composition_section_token\",\n \"Composition_section-text_special\" = \"Composition_section-text_special\",\n \"Composition_status_token\" = \"Composition_status_token\",\n \"Composition_subject_reference\" = \"Composition_subject_reference\",\n \"Composition_title_string\" = \"Composition_title_string\",\n \"Composition_url_uri\" = \"Composition_url_uri\",\n \"Composition_version_token\" = \"Composition_version_token\",\n \"Composition_section-code-text_composite\" = \"Composition_section-code-text_composite\",\n \"ConceptMap_context_token\" = \"ConceptMap_context_token\",\n \"ConceptMap_context-quantity_quantity\" = \"ConceptMap_context-quantity_quantity\",\n \"ConceptMap_context-type_token\" = \"ConceptMap_context-type_token\",\n \"ConceptMap_date_date\" = \"ConceptMap_date_date\",\n \"ConceptMap_derived-from_reference\" = \"ConceptMap_derived-from_reference\",\n \"ConceptMap_description_string\" = \"ConceptMap_description_string\",\n \"ConceptMap_effective_date\" = \"ConceptMap_effective_date\",\n \"ConceptMap_identifier_token\" = \"ConceptMap_identifier_token\",\n \"ConceptMap_jurisdiction_token\" = \"ConceptMap_jurisdiction_token\",\n \"ConceptMap_name_string\" = \"ConceptMap_name_string\",\n \"ConceptMap_predecessor_reference\" = \"ConceptMap_predecessor_reference\",\n \"ConceptMap_publisher_string\" = \"ConceptMap_publisher_string\",\n \"ConceptMap_status_token\" = \"ConceptMap_status_token\",\n \"ConceptMap_title_string\" = \"ConceptMap_title_string\",\n \"ConceptMap_topic_token\" = \"ConceptMap_topic_token\",\n \"ConceptMap_url_uri\" = \"ConceptMap_url_uri\",\n \"ConceptMap_version_token\" = \"ConceptMap_version_token\",\n \"ConceptMap_context-type-quantity_composite\" = \"ConceptMap_context-type-quantity_composite\",\n \"ConceptMap_context-type-value_composite\" = \"ConceptMap_context-type-value_composite\",\n \"ConceptMap_mapping-property_uri\" = \"ConceptMap_mapping-property_uri\",\n \"ConceptMap_other-map_reference\" = \"ConceptMap_other-map_reference\",\n \"ConceptMap_source-code_token\" = \"ConceptMap_source-code_token\",\n \"ConceptMap_source-group-system_reference\" = \"ConceptMap_source-group-system_reference\",\n \"ConceptMap_source-scope_reference\" = \"ConceptMap_source-scope_reference\",\n \"ConceptMap_source-scope-uri_uri\" = \"ConceptMap_source-scope-uri_uri\",\n \"ConceptMap_target-code_token\" = \"ConceptMap_target-code_token\",\n \"ConceptMap_target-group-system_reference\" = \"ConceptMap_target-group-system_reference\",\n \"ConceptMap_target-scope_reference\" = \"ConceptMap_target-scope_reference\",\n \"ConceptMap_target-scope-uri_uri\" = \"ConceptMap_target-scope-uri_uri\",\n \"Condition_identifier_token\" = \"Condition_identifier_token\",\n \"Condition_patient_reference\" = \"Condition_patient_reference\",\n \"Condition_code_token\" = \"Condition_code_token\",\n \"Condition_encounter_reference\" = \"Condition_encounter_reference\",\n \"Condition_abatement-age_quantity\" = \"Condition_abatement-age_quantity\",\n \"Condition_abatement-date_date\" = \"Condition_abatement-date_date\",\n \"Condition_abatement-string_string\" = \"Condition_abatement-string_string\",\n \"Condition_body-site_token\" = \"Condition_body-site_token\",\n \"Condition_category_token\" = \"Condition_category_token\",\n \"Condition_clinical-status_token\" = \"Condition_clinical-status_token\",\n \"Condition_evidence_token\" = \"Condition_evidence_token\",\n \"Condition_evidence-detail_reference\" = \"Condition_evidence-detail_reference\",\n \"Condition_onset-age_quantity\" = \"Condition_onset-age_quantity\",\n \"Condition_onset-date_date\" = \"Condition_onset-date_date\",\n \"Condition_onset-info_string\" = \"Condition_onset-info_string\",\n \"Condition_participant-actor_reference\" = \"Condition_participant-actor_reference\",\n \"Condition_participant-function_token\" = \"Condition_participant-function_token\",\n \"Condition_recorded-date_date\" = \"Condition_recorded-date_date\",\n \"Condition_severity_token\" = \"Condition_severity_token\",\n \"Condition_stage_token\" = \"Condition_stage_token\",\n \"Condition_subject_reference\" = \"Condition_subject_reference\",\n \"Condition_verification-status_token\" = \"Condition_verification-status_token\",\n \"ConditionDefinition_context_token\" = \"ConditionDefinition_context_token\",\n \"ConditionDefinition_context-quantity_quantity\" = \"ConditionDefinition_context-quantity_quantity\",\n \"ConditionDefinition_context-type_token\" = \"ConditionDefinition_context-type_token\",\n \"ConditionDefinition_date_date\" = \"ConditionDefinition_date_date\",\n \"ConditionDefinition_description_string\" = \"ConditionDefinition_description_string\",\n \"ConditionDefinition_identifier_token\" = \"ConditionDefinition_identifier_token\",\n \"ConditionDefinition_jurisdiction_token\" = \"ConditionDefinition_jurisdiction_token\",\n \"ConditionDefinition_name_string\" = \"ConditionDefinition_name_string\",\n \"ConditionDefinition_publisher_string\" = \"ConditionDefinition_publisher_string\",\n \"ConditionDefinition_status_token\" = \"ConditionDefinition_status_token\",\n \"ConditionDefinition_title_string\" = \"ConditionDefinition_title_string\",\n \"ConditionDefinition_url_uri\" = \"ConditionDefinition_url_uri\",\n \"ConditionDefinition_version_token\" = \"ConditionDefinition_version_token\",\n \"ConditionDefinition_context-type-quantity_composite\" = \"ConditionDefinition_context-type-quantity_composite\",\n \"ConditionDefinition_context-type-value_composite\" = \"ConditionDefinition_context-type-value_composite\",\n \"Consent_identifier_token\" = \"Consent_identifier_token\",\n \"Consent_patient_reference\" = \"Consent_patient_reference\",\n \"Consent_date_date\" = \"Consent_date_date\",\n \"Consent_action_token\" = \"Consent_action_token\",\n \"Consent_actor_reference\" = \"Consent_actor_reference\",\n \"Consent_category_token\" = \"Consent_category_token\",\n \"Consent_controller_reference\" = \"Consent_controller_reference\",\n \"Consent_data_reference\" = \"Consent_data_reference\",\n \"Consent_grantee_reference\" = \"Consent_grantee_reference\",\n \"Consent_manager_reference\" = \"Consent_manager_reference\",\n \"Consent_period_date\" = \"Consent_period_date\",\n \"Consent_purpose_token\" = \"Consent_purpose_token\",\n \"Consent_security-label_token\" = \"Consent_security-label_token\",\n \"Consent_source-reference_reference\" = \"Consent_source-reference_reference\",\n \"Consent_status_token\" = \"Consent_status_token\",\n \"Consent_subject_reference\" = \"Consent_subject_reference\",\n \"Consent_verified_token\" = \"Consent_verified_token\",\n \"Consent_verified-date_date\" = \"Consent_verified-date_date\",\n \"Contract_identifier_token\" = \"Contract_identifier_token\",\n \"Contract_patient_reference\" = \"Contract_patient_reference\",\n \"Contract_authority_reference\" = \"Contract_authority_reference\",\n \"Contract_domain_reference\" = \"Contract_domain_reference\",\n \"Contract_instantiates_uri\" = \"Contract_instantiates_uri\",\n \"Contract_issued_date\" = \"Contract_issued_date\",\n \"Contract_signer_reference\" = \"Contract_signer_reference\",\n \"Contract_status_token\" = \"Contract_status_token\",\n \"Contract_subject_reference\" = \"Contract_subject_reference\",\n \"Contract_url_uri\" = \"Contract_url_uri\",\n \"Coverage_identifier_token\" = \"Coverage_identifier_token\",\n \"Coverage_patient_reference\" = \"Coverage_patient_reference\",\n \"Coverage_type_token\" = \"Coverage_type_token\",\n \"Coverage_beneficiary_reference\" = \"Coverage_beneficiary_reference\",\n \"Coverage_class-type_token\" = \"Coverage_class-type_token\",\n \"Coverage_class-value_token\" = \"Coverage_class-value_token\",\n \"Coverage_dependent_string\" = \"Coverage_dependent_string\",\n \"Coverage_insurer_reference\" = \"Coverage_insurer_reference\",\n \"Coverage_paymentby-party_reference\" = \"Coverage_paymentby-party_reference\",\n \"Coverage_policy-holder_reference\" = \"Coverage_policy-holder_reference\",\n \"Coverage_status_token\" = \"Coverage_status_token\",\n \"Coverage_subscriber_reference\" = \"Coverage_subscriber_reference\",\n \"Coverage_subscriberid_token\" = \"Coverage_subscriberid_token\",\n \"CoverageEligibilityRequest_identifier_token\" = \"CoverageEligibilityRequest_identifier_token\",\n \"CoverageEligibilityRequest_patient_reference\" = \"CoverageEligibilityRequest_patient_reference\",\n \"CoverageEligibilityRequest_created_date\" = \"CoverageEligibilityRequest_created_date\",\n \"CoverageEligibilityRequest_enterer_reference\" = \"CoverageEligibilityRequest_enterer_reference\",\n \"CoverageEligibilityRequest_facility_reference\" = \"CoverageEligibilityRequest_facility_reference\",\n \"CoverageEligibilityRequest_provider_reference\" = \"CoverageEligibilityRequest_provider_reference\",\n \"CoverageEligibilityRequest_status_token\" = \"CoverageEligibilityRequest_status_token\",\n \"CoverageEligibilityResponse_identifier_token\" = \"CoverageEligibilityResponse_identifier_token\",\n \"CoverageEligibilityResponse_patient_reference\" = \"CoverageEligibilityResponse_patient_reference\",\n \"CoverageEligibilityResponse_created_date\" = \"CoverageEligibilityResponse_created_date\",\n \"CoverageEligibilityResponse_disposition_string\" = \"CoverageEligibilityResponse_disposition_string\",\n \"CoverageEligibilityResponse_insurer_reference\" = \"CoverageEligibilityResponse_insurer_reference\",\n \"CoverageEligibilityResponse_outcome_token\" = \"CoverageEligibilityResponse_outcome_token\",\n \"CoverageEligibilityResponse_request_reference\" = \"CoverageEligibilityResponse_request_reference\",\n \"CoverageEligibilityResponse_requestor_reference\" = \"CoverageEligibilityResponse_requestor_reference\",\n \"CoverageEligibilityResponse_status_token\" = \"CoverageEligibilityResponse_status_token\",\n \"DetectedIssue_identifier_token\" = \"DetectedIssue_identifier_token\",\n \"DetectedIssue_patient_reference\" = \"DetectedIssue_patient_reference\",\n \"DetectedIssue_code_token\" = \"DetectedIssue_code_token\",\n \"DetectedIssue_author_reference\" = \"DetectedIssue_author_reference\",\n \"DetectedIssue_category_token\" = \"DetectedIssue_category_token\",\n \"DetectedIssue_identified_date\" = \"DetectedIssue_identified_date\",\n \"DetectedIssue_implicated_reference\" = \"DetectedIssue_implicated_reference\",\n \"DetectedIssue_status_token\" = \"DetectedIssue_status_token\",\n \"DetectedIssue_subject_reference\" = \"DetectedIssue_subject_reference\",\n \"Device_biological-source-event_token\" = \"Device_biological-source-event_token\",\n \"Device_code_token\" = \"Device_code_token\",\n \"Device_definition_reference\" = \"Device_definition_reference\",\n \"Device_device-name_string\" = \"Device_device-name_string\",\n \"Device_expiration-date_date\" = \"Device_expiration-date_date\",\n \"Device_identifier_token\" = \"Device_identifier_token\",\n \"Device_location_reference\" = \"Device_location_reference\",\n \"Device_lot-number_string\" = \"Device_lot-number_string\",\n \"Device_manufacture-date_date\" = \"Device_manufacture-date_date\",\n \"Device_manufacturer_string\" = \"Device_manufacturer_string\",\n \"Device_model_string\" = \"Device_model_string\",\n \"Device_organization_reference\" = \"Device_organization_reference\",\n \"Device_parent_reference\" = \"Device_parent_reference\",\n \"Device_serial-number_string\" = \"Device_serial-number_string\",\n \"Device_specification_token\" = \"Device_specification_token\",\n \"Device_status_token\" = \"Device_status_token\",\n \"Device_type_token\" = \"Device_type_token\",\n \"Device_udi-carrier_string\" = \"Device_udi-carrier_string\",\n \"Device_udi-di_string\" = \"Device_udi-di_string\",\n \"Device_url_uri\" = \"Device_url_uri\",\n \"Device_version_string\" = \"Device_version_string\",\n \"Device_code-value-concept_composite\" = \"Device_code-value-concept_composite\",\n \"Device_specification-version_composite\" = \"Device_specification-version_composite\",\n \"DeviceAssociation_device_reference\" = \"DeviceAssociation_device_reference\",\n \"DeviceAssociation_identifier_token\" = \"DeviceAssociation_identifier_token\",\n \"DeviceAssociation_operator_reference\" = \"DeviceAssociation_operator_reference\",\n \"DeviceAssociation_patient_reference\" = \"DeviceAssociation_patient_reference\",\n \"DeviceAssociation_status_token\" = \"DeviceAssociation_status_token\",\n \"DeviceAssociation_subject_reference\" = \"DeviceAssociation_subject_reference\",\n \"DeviceDefinition_device-name_string\" = \"DeviceDefinition_device-name_string\",\n \"DeviceDefinition_identifier_token\" = \"DeviceDefinition_identifier_token\",\n \"DeviceDefinition_manufacturer_reference\" = \"DeviceDefinition_manufacturer_reference\",\n \"DeviceDefinition_organization_reference\" = \"DeviceDefinition_organization_reference\",\n \"DeviceDefinition_specification_token\" = \"DeviceDefinition_specification_token\",\n \"DeviceDefinition_type_token\" = \"DeviceDefinition_type_token\",\n \"DeviceDefinition_specification-version_composite\" = \"DeviceDefinition_specification-version_composite\",\n \"DeviceDispense_code_token\" = \"DeviceDispense_code_token\",\n \"DeviceDispense_identifier_token\" = \"DeviceDispense_identifier_token\",\n \"DeviceDispense_patient_reference\" = \"DeviceDispense_patient_reference\",\n \"DeviceDispense_status_token\" = \"DeviceDispense_status_token\",\n \"DeviceDispense_subject_reference\" = \"DeviceDispense_subject_reference\",\n \"DeviceMetric_category_token\" = \"DeviceMetric_category_token\",\n \"DeviceMetric_device_reference\" = \"DeviceMetric_device_reference\",\n \"DeviceMetric_identifier_token\" = \"DeviceMetric_identifier_token\",\n \"DeviceMetric_type_token\" = \"DeviceMetric_type_token\",\n \"DeviceRequest_identifier_token\" = \"DeviceRequest_identifier_token\",\n \"DeviceRequest_patient_reference\" = \"DeviceRequest_patient_reference\",\n \"DeviceRequest_code_token\" = \"DeviceRequest_code_token\",\n \"DeviceRequest_encounter_reference\" = \"DeviceRequest_encounter_reference\",\n \"DeviceRequest_authored-on_date\" = \"DeviceRequest_authored-on_date\",\n \"DeviceRequest_based-on_reference\" = \"DeviceRequest_based-on_reference\",\n \"DeviceRequest_device_reference\" = \"DeviceRequest_device_reference\",\n \"DeviceRequest_event-date_date\" = \"DeviceRequest_event-date_date\",\n \"DeviceRequest_group-identifier_token\" = \"DeviceRequest_group-identifier_token\",\n \"DeviceRequest_instantiates-canonical_reference\" = \"DeviceRequest_instantiates-canonical_reference\",\n \"DeviceRequest_instantiates-uri_uri\" = \"DeviceRequest_instantiates-uri_uri\",\n \"DeviceRequest_insurance_reference\" = \"DeviceRequest_insurance_reference\",\n \"DeviceRequest_intent_token\" = \"DeviceRequest_intent_token\",\n \"DeviceRequest_performer_reference\" = \"DeviceRequest_performer_reference\",\n \"DeviceRequest_performer-code_token\" = \"DeviceRequest_performer-code_token\",\n \"DeviceRequest_prior-request_reference\" = \"DeviceRequest_prior-request_reference\",\n \"DeviceRequest_requester_reference\" = \"DeviceRequest_requester_reference\",\n \"DeviceRequest_status_token\" = \"DeviceRequest_status_token\",\n \"DeviceRequest_subject_reference\" = \"DeviceRequest_subject_reference\",\n \"DeviceUsage_identifier_token\" = \"DeviceUsage_identifier_token\",\n \"DeviceUsage_patient_reference\" = \"DeviceUsage_patient_reference\",\n \"DeviceUsage_device_token\" = \"DeviceUsage_device_token\",\n \"DeviceUsage_status_token\" = \"DeviceUsage_status_token\",\n \"DiagnosticReport_identifier_token\" = \"DiagnosticReport_identifier_token\",\n \"DiagnosticReport_patient_reference\" = \"DiagnosticReport_patient_reference\",\n \"DiagnosticReport_code_token\" = \"DiagnosticReport_code_token\",\n \"DiagnosticReport_date_date\" = \"DiagnosticReport_date_date\",\n \"DiagnosticReport_encounter_reference\" = \"DiagnosticReport_encounter_reference\",\n \"DiagnosticReport_based-on_reference\" = \"DiagnosticReport_based-on_reference\",\n \"DiagnosticReport_category_token\" = \"DiagnosticReport_category_token\",\n \"DiagnosticReport_conclusion_token\" = \"DiagnosticReport_conclusion_token\",\n \"DiagnosticReport_issued_date\" = \"DiagnosticReport_issued_date\",\n \"DiagnosticReport_media_reference\" = \"DiagnosticReport_media_reference\",\n \"DiagnosticReport_performer_reference\" = \"DiagnosticReport_performer_reference\",\n \"DiagnosticReport_result_reference\" = \"DiagnosticReport_result_reference\",\n \"DiagnosticReport_results-interpreter_reference\" = \"DiagnosticReport_results-interpreter_reference\",\n \"DiagnosticReport_specimen_reference\" = \"DiagnosticReport_specimen_reference\",\n \"DiagnosticReport_status_token\" = \"DiagnosticReport_status_token\",\n \"DiagnosticReport_study_reference\" = \"DiagnosticReport_study_reference\",\n \"DiagnosticReport_subject_reference\" = \"DiagnosticReport_subject_reference\",\n \"DocumentReference_identifier_token\" = \"DocumentReference_identifier_token\",\n \"DocumentReference_patient_reference\" = \"DocumentReference_patient_reference\",\n \"DocumentReference_type_token\" = \"DocumentReference_type_token\",\n \"DocumentReference_date_date\" = \"DocumentReference_date_date\",\n \"DocumentReference_attester_reference\" = \"DocumentReference_attester_reference\",\n \"DocumentReference_author_reference\" = \"DocumentReference_author_reference\",\n \"DocumentReference_based-on_reference\" = \"DocumentReference_based-on_reference\",\n \"DocumentReference_bodysite_token\" = \"DocumentReference_bodysite_token\",\n \"DocumentReference_bodysite-reference_reference\" = \"DocumentReference_bodysite-reference_reference\",\n \"DocumentReference_category_token\" = \"DocumentReference_category_token\",\n \"DocumentReference_contenttype_token\" = \"DocumentReference_contenttype_token\",\n \"DocumentReference_context_reference\" = \"DocumentReference_context_reference\",\n \"DocumentReference_creation_date\" = \"DocumentReference_creation_date\",\n \"DocumentReference_custodian_reference\" = \"DocumentReference_custodian_reference\",\n \"DocumentReference_description_string\" = \"DocumentReference_description_string\",\n \"DocumentReference_doc-status_token\" = \"DocumentReference_doc-status_token\",\n \"DocumentReference_event-code_token\" = \"DocumentReference_event-code_token\",\n \"DocumentReference_event-reference_reference\" = \"DocumentReference_event-reference_reference\",\n \"DocumentReference_facility_token\" = \"DocumentReference_facility_token\",\n \"DocumentReference_format-canonical_reference\" = \"DocumentReference_format-canonical_reference\",\n \"DocumentReference_format-code_token\" = \"DocumentReference_format-code_token\",\n \"DocumentReference_format-uri_uri\" = \"DocumentReference_format-uri_uri\",\n \"DocumentReference_language_token\" = \"DocumentReference_language_token\",\n \"DocumentReference_location_uri\" = \"DocumentReference_location_uri\",\n \"DocumentReference_modality_token\" = \"DocumentReference_modality_token\",\n \"DocumentReference_period_date\" = \"DocumentReference_period_date\",\n \"DocumentReference_relatesto_reference\" = \"DocumentReference_relatesto_reference\",\n \"DocumentReference_relation_token\" = \"DocumentReference_relation_token\",\n \"DocumentReference_security-label_token\" = \"DocumentReference_security-label_token\",\n \"DocumentReference_setting_token\" = \"DocumentReference_setting_token\",\n \"DocumentReference_status_token\" = \"DocumentReference_status_token\",\n \"DocumentReference_subject_reference\" = \"DocumentReference_subject_reference\",\n \"DocumentReference_version_string\" = \"DocumentReference_version_string\",\n \"DocumentReference_relationship_composite\" = \"DocumentReference_relationship_composite\",\n \"Encounter_identifier_token\" = \"Encounter_identifier_token\",\n \"Encounter_patient_reference\" = \"Encounter_patient_reference\",\n \"Encounter_type_token\" = \"Encounter_type_token\",\n \"Encounter_date_date\" = \"Encounter_date_date\",\n \"Encounter_account_reference\" = \"Encounter_account_reference\",\n \"Encounter_appointment_reference\" = \"Encounter_appointment_reference\",\n \"Encounter_based-on_reference\" = \"Encounter_based-on_reference\",\n \"Encounter_careteam_reference\" = \"Encounter_careteam_reference\",\n \"Encounter_class_token\" = \"Encounter_class_token\",\n \"Encounter_date-start_date\" = \"Encounter_date-start_date\",\n \"Encounter_diagnosis-code_token\" = \"Encounter_diagnosis-code_token\",\n \"Encounter_diagnosis-reference_reference\" = \"Encounter_diagnosis-reference_reference\",\n \"Encounter_end-date_date\" = \"Encounter_end-date_date\",\n \"Encounter_episode-of-care_reference\" = \"Encounter_episode-of-care_reference\",\n \"Encounter_length_quantity\" = \"Encounter_length_quantity\",\n \"Encounter_location_reference\" = \"Encounter_location_reference\",\n \"Encounter_part-of_reference\" = \"Encounter_part-of_reference\",\n \"Encounter_participant_reference\" = \"Encounter_participant_reference\",\n \"Encounter_participant-type_token\" = \"Encounter_participant-type_token\",\n \"Encounter_practitioner_reference\" = \"Encounter_practitioner_reference\",\n \"Encounter_reason-code_token\" = \"Encounter_reason-code_token\",\n \"Encounter_reason-reference_reference\" = \"Encounter_reason-reference_reference\",\n \"Encounter_service-provider_reference\" = \"Encounter_service-provider_reference\",\n \"Encounter_special-arrangement_token\" = \"Encounter_special-arrangement_token\",\n \"Encounter_status_token\" = \"Encounter_status_token\",\n \"Encounter_subject_reference\" = \"Encounter_subject_reference\",\n \"Encounter_subject-status_token\" = \"Encounter_subject-status_token\",\n \"Encounter_location-period_composite\" = \"Encounter_location-period_composite\",\n \"EncounterHistory_encounter_reference\" = \"EncounterHistory_encounter_reference\",\n \"EncounterHistory_identifier_token\" = \"EncounterHistory_identifier_token\",\n \"EncounterHistory_patient_reference\" = \"EncounterHistory_patient_reference\",\n \"EncounterHistory_status_token\" = \"EncounterHistory_status_token\",\n \"EncounterHistory_subject_reference\" = \"EncounterHistory_subject_reference\",\n \"Endpoint_connection-type_token\" = \"Endpoint_connection-type_token\",\n \"Endpoint_identifier_token\" = \"Endpoint_identifier_token\",\n \"Endpoint_name_string\" = \"Endpoint_name_string\",\n \"Endpoint_organization_reference\" = \"Endpoint_organization_reference\",\n \"Endpoint_payload-type_token\" = \"Endpoint_payload-type_token\",\n \"Endpoint_status_token\" = \"Endpoint_status_token\",\n \"EnrollmentRequest_identifier_token\" = \"EnrollmentRequest_identifier_token\",\n \"EnrollmentRequest_patient_reference\" = \"EnrollmentRequest_patient_reference\",\n \"EnrollmentRequest_status_token\" = \"EnrollmentRequest_status_token\",\n \"EnrollmentRequest_subject_reference\" = \"EnrollmentRequest_subject_reference\",\n \"EnrollmentResponse_identifier_token\" = \"EnrollmentResponse_identifier_token\",\n \"EnrollmentResponse_request_reference\" = \"EnrollmentResponse_request_reference\",\n \"EnrollmentResponse_status_token\" = \"EnrollmentResponse_status_token\",\n \"EpisodeOfCare_identifier_token\" = \"EpisodeOfCare_identifier_token\",\n \"EpisodeOfCare_patient_reference\" = \"EpisodeOfCare_patient_reference\",\n \"EpisodeOfCare_type_token\" = \"EpisodeOfCare_type_token\",\n \"EpisodeOfCare_date_date\" = \"EpisodeOfCare_date_date\",\n \"EpisodeOfCare_care-manager_reference\" = \"EpisodeOfCare_care-manager_reference\",\n \"EpisodeOfCare_diagnosis-code_token\" = \"EpisodeOfCare_diagnosis-code_token\",\n \"EpisodeOfCare_diagnosis-reference_reference\" = \"EpisodeOfCare_diagnosis-reference_reference\",\n \"EpisodeOfCare_incoming-referral_reference\" = \"EpisodeOfCare_incoming-referral_reference\",\n \"EpisodeOfCare_organization_reference\" = \"EpisodeOfCare_organization_reference\",\n \"EpisodeOfCare_reason-code_token\" = \"EpisodeOfCare_reason-code_token\",\n \"EpisodeOfCare_reason-reference_reference\" = \"EpisodeOfCare_reason-reference_reference\",\n \"EpisodeOfCare_status_token\" = \"EpisodeOfCare_status_token\",\n \"EventDefinition_composed-of_reference\" = \"EventDefinition_composed-of_reference\",\n \"EventDefinition_context_token\" = \"EventDefinition_context_token\",\n \"EventDefinition_context-quantity_quantity\" = \"EventDefinition_context-quantity_quantity\",\n \"EventDefinition_context-type_token\" = \"EventDefinition_context-type_token\",\n \"EventDefinition_date_date\" = \"EventDefinition_date_date\",\n \"EventDefinition_depends-on_reference\" = \"EventDefinition_depends-on_reference\",\n \"EventDefinition_derived-from_reference\" = \"EventDefinition_derived-from_reference\",\n \"EventDefinition_description_string\" = \"EventDefinition_description_string\",\n \"EventDefinition_effective_date\" = \"EventDefinition_effective_date\",\n \"EventDefinition_identifier_token\" = \"EventDefinition_identifier_token\",\n \"EventDefinition_jurisdiction_token\" = \"EventDefinition_jurisdiction_token\",\n \"EventDefinition_name_string\" = \"EventDefinition_name_string\",\n \"EventDefinition_predecessor_reference\" = \"EventDefinition_predecessor_reference\",\n \"EventDefinition_publisher_string\" = \"EventDefinition_publisher_string\",\n \"EventDefinition_status_token\" = \"EventDefinition_status_token\",\n \"EventDefinition_successor_reference\" = \"EventDefinition_successor_reference\",\n \"EventDefinition_title_string\" = \"EventDefinition_title_string\",\n \"EventDefinition_topic_token\" = \"EventDefinition_topic_token\",\n \"EventDefinition_url_uri\" = \"EventDefinition_url_uri\",\n \"EventDefinition_version_token\" = \"EventDefinition_version_token\",\n \"EventDefinition_context-type-quantity_composite\" = \"EventDefinition_context-type-quantity_composite\",\n \"EventDefinition_context-type-value_composite\" = \"EventDefinition_context-type-value_composite\",\n \"Evidence_context_token\" = \"Evidence_context_token\",\n \"Evidence_context-quantity_quantity\" = \"Evidence_context-quantity_quantity\",\n \"Evidence_context-type_token\" = \"Evidence_context-type_token\",\n \"Evidence_date_date\" = \"Evidence_date_date\",\n \"Evidence_description_string\" = \"Evidence_description_string\",\n \"Evidence_identifier_token\" = \"Evidence_identifier_token\",\n \"Evidence_publisher_string\" = \"Evidence_publisher_string\",\n \"Evidence_status_token\" = \"Evidence_status_token\",\n \"Evidence_title_string\" = \"Evidence_title_string\",\n \"Evidence_url_uri\" = \"Evidence_url_uri\",\n \"Evidence_version_token\" = \"Evidence_version_token\",\n \"Evidence_context-type-quantity_composite\" = \"Evidence_context-type-quantity_composite\",\n \"Evidence_context-type-value_composite\" = \"Evidence_context-type-value_composite\",\n \"EvidenceReport_context_token\" = \"EvidenceReport_context_token\",\n \"EvidenceReport_context-quantity_quantity\" = \"EvidenceReport_context-quantity_quantity\",\n \"EvidenceReport_context-type_token\" = \"EvidenceReport_context-type_token\",\n \"EvidenceReport_identifier_token\" = \"EvidenceReport_identifier_token\",\n \"EvidenceReport_publisher_string\" = \"EvidenceReport_publisher_string\",\n \"EvidenceReport_status_token\" = \"EvidenceReport_status_token\",\n \"EvidenceReport_url_uri\" = \"EvidenceReport_url_uri\",\n \"EvidenceReport_context-type-quantity_composite\" = \"EvidenceReport_context-type-quantity_composite\",\n \"EvidenceReport_context-type-value_composite\" = \"EvidenceReport_context-type-value_composite\",\n \"EvidenceVariable_composed-of_reference\" = \"EvidenceVariable_composed-of_reference\",\n \"EvidenceVariable_context_token\" = \"EvidenceVariable_context_token\",\n \"EvidenceVariable_context-quantity_quantity\" = \"EvidenceVariable_context-quantity_quantity\",\n \"EvidenceVariable_context-type_token\" = \"EvidenceVariable_context-type_token\",\n \"EvidenceVariable_date_date\" = \"EvidenceVariable_date_date\",\n \"EvidenceVariable_depends-on_reference\" = \"EvidenceVariable_depends-on_reference\",\n \"EvidenceVariable_derived-from_reference\" = \"EvidenceVariable_derived-from_reference\",\n \"EvidenceVariable_description_string\" = \"EvidenceVariable_description_string\",\n \"EvidenceVariable_identifier_token\" = \"EvidenceVariable_identifier_token\",\n \"EvidenceVariable_name_string\" = \"EvidenceVariable_name_string\",\n \"EvidenceVariable_predecessor_reference\" = \"EvidenceVariable_predecessor_reference\",\n \"EvidenceVariable_publisher_string\" = \"EvidenceVariable_publisher_string\",\n \"EvidenceVariable_status_token\" = \"EvidenceVariable_status_token\",\n \"EvidenceVariable_successor_reference\" = \"EvidenceVariable_successor_reference\",\n \"EvidenceVariable_title_string\" = \"EvidenceVariable_title_string\",\n \"EvidenceVariable_topic_token\" = \"EvidenceVariable_topic_token\",\n \"EvidenceVariable_url_uri\" = \"EvidenceVariable_url_uri\",\n \"EvidenceVariable_version_token\" = \"EvidenceVariable_version_token\",\n \"EvidenceVariable_context-type-quantity_composite\" = \"EvidenceVariable_context-type-quantity_composite\",\n \"EvidenceVariable_context-type-value_composite\" = \"EvidenceVariable_context-type-value_composite\",\n \"ExampleScenario_context_token\" = \"ExampleScenario_context_token\",\n \"ExampleScenario_context-quantity_quantity\" = \"ExampleScenario_context-quantity_quantity\",\n \"ExampleScenario_context-type_token\" = \"ExampleScenario_context-type_token\",\n \"ExampleScenario_date_date\" = \"ExampleScenario_date_date\",\n \"ExampleScenario_identifier_token\" = \"ExampleScenario_identifier_token\",\n \"ExampleScenario_jurisdiction_token\" = \"ExampleScenario_jurisdiction_token\",\n \"ExampleScenario_name_string\" = \"ExampleScenario_name_string\",\n \"ExampleScenario_publisher_string\" = \"ExampleScenario_publisher_string\",\n \"ExampleScenario_status_token\" = \"ExampleScenario_status_token\",\n \"ExampleScenario_url_uri\" = \"ExampleScenario_url_uri\",\n \"ExampleScenario_version_token\" = \"ExampleScenario_version_token\",\n \"ExampleScenario_context-type-quantity_composite\" = \"ExampleScenario_context-type-quantity_composite\",\n \"ExampleScenario_context-type-value_composite\" = \"ExampleScenario_context-type-value_composite\",\n \"ExplanationOfBenefit_identifier_token\" = \"ExplanationOfBenefit_identifier_token\",\n \"ExplanationOfBenefit_patient_reference\" = \"ExplanationOfBenefit_patient_reference\",\n \"ExplanationOfBenefit_encounter_reference\" = \"ExplanationOfBenefit_encounter_reference\",\n \"ExplanationOfBenefit_care-team_reference\" = \"ExplanationOfBenefit_care-team_reference\",\n \"ExplanationOfBenefit_claim_reference\" = \"ExplanationOfBenefit_claim_reference\",\n \"ExplanationOfBenefit_coverage_reference\" = \"ExplanationOfBenefit_coverage_reference\",\n \"ExplanationOfBenefit_created_date\" = \"ExplanationOfBenefit_created_date\",\n \"ExplanationOfBenefit_detail-udi_reference\" = \"ExplanationOfBenefit_detail-udi_reference\",\n \"ExplanationOfBenefit_disposition_string\" = \"ExplanationOfBenefit_disposition_string\",\n \"ExplanationOfBenefit_enterer_reference\" = \"ExplanationOfBenefit_enterer_reference\",\n \"ExplanationOfBenefit_facility_reference\" = \"ExplanationOfBenefit_facility_reference\",\n \"ExplanationOfBenefit_item-udi_reference\" = \"ExplanationOfBenefit_item-udi_reference\",\n \"ExplanationOfBenefit_payee_reference\" = \"ExplanationOfBenefit_payee_reference\",\n \"ExplanationOfBenefit_procedure-udi_reference\" = \"ExplanationOfBenefit_procedure-udi_reference\",\n \"ExplanationOfBenefit_provider_reference\" = \"ExplanationOfBenefit_provider_reference\",\n \"ExplanationOfBenefit_status_token\" = \"ExplanationOfBenefit_status_token\",\n \"ExplanationOfBenefit_subdetail-udi_reference\" = \"ExplanationOfBenefit_subdetail-udi_reference\",\n \"FamilyMemberHistory_identifier_token\" = \"FamilyMemberHistory_identifier_token\",\n \"FamilyMemberHistory_patient_reference\" = \"FamilyMemberHistory_patient_reference\",\n \"FamilyMemberHistory_code_token\" = \"FamilyMemberHistory_code_token\",\n \"FamilyMemberHistory_date_date\" = \"FamilyMemberHistory_date_date\",\n \"FamilyMemberHistory_instantiates-canonical_reference\" = \"FamilyMemberHistory_instantiates-canonical_reference\",\n \"FamilyMemberHistory_instantiates-uri_uri\" = \"FamilyMemberHistory_instantiates-uri_uri\",\n \"FamilyMemberHistory_relationship_token\" = \"FamilyMemberHistory_relationship_token\",\n \"FamilyMemberHistory_sex_token\" = \"FamilyMemberHistory_sex_token\",\n \"FamilyMemberHistory_status_token\" = \"FamilyMemberHistory_status_token\",\n \"Flag_identifier_token\" = \"Flag_identifier_token\",\n \"Flag_patient_reference\" = \"Flag_patient_reference\",\n \"Flag_date_date\" = \"Flag_date_date\",\n \"Flag_encounter_reference\" = \"Flag_encounter_reference\",\n \"Flag_author_reference\" = \"Flag_author_reference\",\n \"Flag_category_token\" = \"Flag_category_token\",\n \"Flag_status_token\" = \"Flag_status_token\",\n \"Flag_subject_reference\" = \"Flag_subject_reference\",\n \"FormularyItem_code_token\" = \"FormularyItem_code_token\",\n \"FormularyItem_identifier_token\" = \"FormularyItem_identifier_token\",\n \"GenomicStudy_focus_reference\" = \"GenomicStudy_focus_reference\",\n \"GenomicStudy_identifier_token\" = \"GenomicStudy_identifier_token\",\n \"GenomicStudy_patient_reference\" = \"GenomicStudy_patient_reference\",\n \"GenomicStudy_status_token\" = \"GenomicStudy_status_token\",\n \"GenomicStudy_subject_reference\" = \"GenomicStudy_subject_reference\",\n \"Goal_identifier_token\" = \"Goal_identifier_token\",\n \"Goal_patient_reference\" = \"Goal_patient_reference\",\n \"Goal_achievement-status_token\" = \"Goal_achievement-status_token\",\n \"Goal_addresses_reference\" = \"Goal_addresses_reference\",\n \"Goal_category_token\" = \"Goal_category_token\",\n \"Goal_description_token\" = \"Goal_description_token\",\n \"Goal_lifecycle-status_token\" = \"Goal_lifecycle-status_token\",\n \"Goal_start-date_date\" = \"Goal_start-date_date\",\n \"Goal_subject_reference\" = \"Goal_subject_reference\",\n \"Goal_target-date_date\" = \"Goal_target-date_date\",\n \"Goal_target-measure_token\" = \"Goal_target-measure_token\",\n \"GraphDefinition_context_token\" = \"GraphDefinition_context_token\",\n \"GraphDefinition_context-quantity_quantity\" = \"GraphDefinition_context-quantity_quantity\",\n \"GraphDefinition_context-type_token\" = \"GraphDefinition_context-type_token\",\n \"GraphDefinition_date_date\" = \"GraphDefinition_date_date\",\n \"GraphDefinition_description_string\" = \"GraphDefinition_description_string\",\n \"GraphDefinition_identifier_token\" = \"GraphDefinition_identifier_token\",\n \"GraphDefinition_jurisdiction_token\" = \"GraphDefinition_jurisdiction_token\",\n \"GraphDefinition_name_string\" = \"GraphDefinition_name_string\",\n \"GraphDefinition_publisher_string\" = \"GraphDefinition_publisher_string\",\n \"GraphDefinition_status_token\" = \"GraphDefinition_status_token\",\n \"GraphDefinition_url_uri\" = \"GraphDefinition_url_uri\",\n \"GraphDefinition_version_token\" = \"GraphDefinition_version_token\",\n \"GraphDefinition_context-type-quantity_composite\" = \"GraphDefinition_context-type-quantity_composite\",\n \"GraphDefinition_context-type-value_composite\" = \"GraphDefinition_context-type-value_composite\",\n \"GraphDefinition_start_token\" = \"GraphDefinition_start_token\",\n \"Group_characteristic_token\" = \"Group_characteristic_token\",\n \"Group_characteristic-reference_reference\" = \"Group_characteristic-reference_reference\",\n \"Group_code_token\" = \"Group_code_token\",\n \"Group_exclude_token\" = \"Group_exclude_token\",\n \"Group_identifier_token\" = \"Group_identifier_token\",\n \"Group_managing-entity_reference\" = \"Group_managing-entity_reference\",\n \"Group_member_reference\" = \"Group_member_reference\",\n \"Group_membership_token\" = \"Group_membership_token\",\n \"Group_name_string\" = \"Group_name_string\",\n \"Group_type_token\" = \"Group_type_token\",\n \"Group_value_token\" = \"Group_value_token\",\n \"Group_characteristic-value_composite\" = \"Group_characteristic-value_composite\",\n \"GuidanceResponse_identifier_token\" = \"GuidanceResponse_identifier_token\",\n \"GuidanceResponse_patient_reference\" = \"GuidanceResponse_patient_reference\",\n \"GuidanceResponse_request_token\" = \"GuidanceResponse_request_token\",\n \"GuidanceResponse_status_token\" = \"GuidanceResponse_status_token\",\n \"GuidanceResponse_subject_reference\" = \"GuidanceResponse_subject_reference\",\n \"HealthcareService_active_token\" = \"HealthcareService_active_token\",\n \"HealthcareService_characteristic_token\" = \"HealthcareService_characteristic_token\",\n \"HealthcareService_communication_token\" = \"HealthcareService_communication_token\",\n \"HealthcareService_coverage-area_reference\" = \"HealthcareService_coverage-area_reference\",\n \"HealthcareService_eligibility_token\" = \"HealthcareService_eligibility_token\",\n \"HealthcareService_endpoint_reference\" = \"HealthcareService_endpoint_reference\",\n \"HealthcareService_identifier_token\" = \"HealthcareService_identifier_token\",\n \"HealthcareService_location_reference\" = \"HealthcareService_location_reference\",\n \"HealthcareService_name_string\" = \"HealthcareService_name_string\",\n \"HealthcareService_offered-in_reference\" = \"HealthcareService_offered-in_reference\",\n \"HealthcareService_organization_reference\" = \"HealthcareService_organization_reference\",\n \"HealthcareService_program_token\" = \"HealthcareService_program_token\",\n \"HealthcareService_service-category_token\" = \"HealthcareService_service-category_token\",\n \"HealthcareService_service-type_token\" = \"HealthcareService_service-type_token\",\n \"HealthcareService_specialty_token\" = \"HealthcareService_specialty_token\",\n \"ImagingSelection_identifier_token\" = \"ImagingSelection_identifier_token\",\n \"ImagingSelection_patient_reference\" = \"ImagingSelection_patient_reference\",\n \"ImagingSelection_code_token\" = \"ImagingSelection_code_token\",\n \"ImagingSelection_based-on_reference\" = \"ImagingSelection_based-on_reference\",\n \"ImagingSelection_body-site_token\" = \"ImagingSelection_body-site_token\",\n \"ImagingSelection_body-structure_reference\" = \"ImagingSelection_body-structure_reference\",\n \"ImagingSelection_derived-from_reference\" = \"ImagingSelection_derived-from_reference\",\n \"ImagingSelection_issued_date\" = \"ImagingSelection_issued_date\",\n \"ImagingSelection_status_token\" = \"ImagingSelection_status_token\",\n \"ImagingSelection_study-uid_token\" = \"ImagingSelection_study-uid_token\",\n \"ImagingSelection_subject_reference\" = \"ImagingSelection_subject_reference\",\n \"ImagingStudy_identifier_token\" = \"ImagingStudy_identifier_token\",\n \"ImagingStudy_patient_reference\" = \"ImagingStudy_patient_reference\",\n \"ImagingStudy_encounter_reference\" = \"ImagingStudy_encounter_reference\",\n \"ImagingStudy_based-on_reference\" = \"ImagingStudy_based-on_reference\",\n \"ImagingStudy_body-site_token\" = \"ImagingStudy_body-site_token\",\n \"ImagingStudy_body-structure_reference\" = \"ImagingStudy_body-structure_reference\",\n \"ImagingStudy_dicom-class_token\" = \"ImagingStudy_dicom-class_token\",\n \"ImagingStudy_endpoint_reference\" = \"ImagingStudy_endpoint_reference\",\n \"ImagingStudy_instance_token\" = \"ImagingStudy_instance_token\",\n \"ImagingStudy_modality_token\" = \"ImagingStudy_modality_token\",\n \"ImagingStudy_performer_reference\" = \"ImagingStudy_performer_reference\",\n \"ImagingStudy_reason_token\" = \"ImagingStudy_reason_token\",\n \"ImagingStudy_referrer_reference\" = \"ImagingStudy_referrer_reference\",\n \"ImagingStudy_series_token\" = \"ImagingStudy_series_token\",\n \"ImagingStudy_started_date\" = \"ImagingStudy_started_date\",\n \"ImagingStudy_status_token\" = \"ImagingStudy_status_token\",\n \"ImagingStudy_subject_reference\" = \"ImagingStudy_subject_reference\",\n \"Immunization_identifier_token\" = \"Immunization_identifier_token\",\n \"Immunization_patient_reference\" = \"Immunization_patient_reference\",\n \"Immunization_date_date\" = \"Immunization_date_date\",\n \"Immunization_location_reference\" = \"Immunization_location_reference\",\n \"Immunization_lot-number_string\" = \"Immunization_lot-number_string\",\n \"Immunization_manufacturer_reference\" = \"Immunization_manufacturer_reference\",\n \"Immunization_performer_reference\" = \"Immunization_performer_reference\",\n \"Immunization_reaction_reference\" = \"Immunization_reaction_reference\",\n \"Immunization_reaction-date_date\" = \"Immunization_reaction-date_date\",\n \"Immunization_reason-code_token\" = \"Immunization_reason-code_token\",\n \"Immunization_reason-reference_reference\" = \"Immunization_reason-reference_reference\",\n \"Immunization_series_string\" = \"Immunization_series_string\",\n \"Immunization_status_token\" = \"Immunization_status_token\",\n \"Immunization_status-reason_token\" = \"Immunization_status-reason_token\",\n \"Immunization_target-disease_token\" = \"Immunization_target-disease_token\",\n \"Immunization_vaccine-code_token\" = \"Immunization_vaccine-code_token\",\n \"ImmunizationEvaluation_identifier_token\" = \"ImmunizationEvaluation_identifier_token\",\n \"ImmunizationEvaluation_patient_reference\" = \"ImmunizationEvaluation_patient_reference\",\n \"ImmunizationEvaluation_date_date\" = \"ImmunizationEvaluation_date_date\",\n \"ImmunizationEvaluation_dose-status_token\" = \"ImmunizationEvaluation_dose-status_token\",\n \"ImmunizationEvaluation_immunization-event_reference\" = \"ImmunizationEvaluation_immunization-event_reference\",\n \"ImmunizationEvaluation_status_token\" = \"ImmunizationEvaluation_status_token\",\n \"ImmunizationEvaluation_target-disease_token\" = \"ImmunizationEvaluation_target-disease_token\",\n \"ImmunizationRecommendation_identifier_token\" = \"ImmunizationRecommendation_identifier_token\",\n \"ImmunizationRecommendation_patient_reference\" = \"ImmunizationRecommendation_patient_reference\",\n \"ImmunizationRecommendation_date_date\" = \"ImmunizationRecommendation_date_date\",\n \"ImmunizationRecommendation_information_reference\" = \"ImmunizationRecommendation_information_reference\",\n \"ImmunizationRecommendation_status_token\" = \"ImmunizationRecommendation_status_token\",\n \"ImmunizationRecommendation_support_reference\" = \"ImmunizationRecommendation_support_reference\",\n \"ImmunizationRecommendation_target-disease_token\" = \"ImmunizationRecommendation_target-disease_token\",\n \"ImmunizationRecommendation_vaccine-type_token\" = \"ImmunizationRecommendation_vaccine-type_token\",\n \"ImplementationGuide_context_token\" = \"ImplementationGuide_context_token\",\n \"ImplementationGuide_context-quantity_quantity\" = \"ImplementationGuide_context-quantity_quantity\",\n \"ImplementationGuide_context-type_token\" = \"ImplementationGuide_context-type_token\",\n \"ImplementationGuide_date_date\" = \"ImplementationGuide_date_date\",\n \"ImplementationGuide_description_string\" = \"ImplementationGuide_description_string\",\n \"ImplementationGuide_identifier_token\" = \"ImplementationGuide_identifier_token\",\n \"ImplementationGuide_jurisdiction_token\" = \"ImplementationGuide_jurisdiction_token\",\n \"ImplementationGuide_name_string\" = \"ImplementationGuide_name_string\",\n \"ImplementationGuide_publisher_string\" = \"ImplementationGuide_publisher_string\",\n \"ImplementationGuide_status_token\" = \"ImplementationGuide_status_token\",\n \"ImplementationGuide_title_string\" = \"ImplementationGuide_title_string\",\n \"ImplementationGuide_url_uri\" = \"ImplementationGuide_url_uri\",\n \"ImplementationGuide_version_token\" = \"ImplementationGuide_version_token\",\n \"ImplementationGuide_context-type-quantity_composite\" = \"ImplementationGuide_context-type-quantity_composite\",\n \"ImplementationGuide_context-type-value_composite\" = \"ImplementationGuide_context-type-value_composite\",\n \"ImplementationGuide_depends-on_reference\" = \"ImplementationGuide_depends-on_reference\",\n \"ImplementationGuide_experimental_token\" = \"ImplementationGuide_experimental_token\",\n \"ImplementationGuide_global_reference\" = \"ImplementationGuide_global_reference\",\n \"ImplementationGuide_resource_reference\" = \"ImplementationGuide_resource_reference\",\n \"Ingredient_for_reference\" = \"Ingredient_for_reference\",\n \"Ingredient_function_token\" = \"Ingredient_function_token\",\n \"Ingredient_identifier_token\" = \"Ingredient_identifier_token\",\n \"Ingredient_manufacturer_reference\" = \"Ingredient_manufacturer_reference\",\n \"Ingredient_role_token\" = \"Ingredient_role_token\",\n \"Ingredient_status_token\" = \"Ingredient_status_token\",\n \"Ingredient_strength-concentration-quantity_quantity\" = \"Ingredient_strength-concentration-quantity_quantity\",\n \"Ingredient_strength-presentation-quantity_quantity\" = \"Ingredient_strength-presentation-quantity_quantity\",\n \"Ingredient_substance_reference\" = \"Ingredient_substance_reference\",\n \"Ingredient_substance-code_token\" = \"Ingredient_substance-code_token\",\n \"Ingredient_substance-definition_reference\" = \"Ingredient_substance-definition_reference\",\n \"Ingredient_strength-concentration-ratio_composite\" = \"Ingredient_strength-concentration-ratio_composite\",\n \"Ingredient_strength-presentation-ratio_composite\" = \"Ingredient_strength-presentation-ratio_composite\",\n \"InsurancePlan_address_string\" = \"InsurancePlan_address_string\",\n \"InsurancePlan_address-city_string\" = \"InsurancePlan_address-city_string\",\n \"InsurancePlan_address-country_string\" = \"InsurancePlan_address-country_string\",\n \"InsurancePlan_address-postalcode_string\" = \"InsurancePlan_address-postalcode_string\",\n \"InsurancePlan_address-state_string\" = \"InsurancePlan_address-state_string\",\n \"InsurancePlan_address-use_token\" = \"InsurancePlan_address-use_token\",\n \"InsurancePlan_administered-by_reference\" = \"InsurancePlan_administered-by_reference\",\n \"InsurancePlan_endpoint_reference\" = \"InsurancePlan_endpoint_reference\",\n \"InsurancePlan_identifier_token\" = \"InsurancePlan_identifier_token\",\n \"InsurancePlan_name_string\" = \"InsurancePlan_name_string\",\n \"InsurancePlan_owned-by_reference\" = \"InsurancePlan_owned-by_reference\",\n \"InsurancePlan_phonetic_string\" = \"InsurancePlan_phonetic_string\",\n \"InsurancePlan_status_token\" = \"InsurancePlan_status_token\",\n \"InsurancePlan_type_token\" = \"InsurancePlan_type_token\",\n \"InventoryItem_code_token\" = \"InventoryItem_code_token\",\n \"InventoryItem_identifier_token\" = \"InventoryItem_identifier_token\",\n \"InventoryItem_status_token\" = \"InventoryItem_status_token\",\n \"InventoryItem_subject_reference\" = \"InventoryItem_subject_reference\",\n \"InventoryReport_identifier_token\" = \"InventoryReport_identifier_token\",\n \"InventoryReport_item_token\" = \"InventoryReport_item_token\",\n \"InventoryReport_item-reference_reference\" = \"InventoryReport_item-reference_reference\",\n \"InventoryReport_status_token\" = \"InventoryReport_status_token\",\n \"Invoice_identifier_token\" = \"Invoice_identifier_token\",\n \"Invoice_patient_reference\" = \"Invoice_patient_reference\",\n \"Invoice_type_token\" = \"Invoice_type_token\",\n \"Invoice_date_date\" = \"Invoice_date_date\",\n \"Invoice_account_reference\" = \"Invoice_account_reference\",\n \"Invoice_issuer_reference\" = \"Invoice_issuer_reference\",\n \"Invoice_participant_reference\" = \"Invoice_participant_reference\",\n \"Invoice_participant-role_token\" = \"Invoice_participant-role_token\",\n \"Invoice_recipient_reference\" = \"Invoice_recipient_reference\",\n \"Invoice_status_token\" = \"Invoice_status_token\",\n \"Invoice_subject_reference\" = \"Invoice_subject_reference\",\n \"Invoice_totalgross_quantity\" = \"Invoice_totalgross_quantity\",\n \"Invoice_totalnet_quantity\" = \"Invoice_totalnet_quantity\",\n \"Library_composed-of_reference\" = \"Library_composed-of_reference\",\n \"Library_context_token\" = \"Library_context_token\",\n \"Library_context-quantity_quantity\" = \"Library_context-quantity_quantity\",\n \"Library_context-type_token\" = \"Library_context-type_token\",\n \"Library_date_date\" = \"Library_date_date\",\n \"Library_depends-on_reference\" = \"Library_depends-on_reference\",\n \"Library_derived-from_reference\" = \"Library_derived-from_reference\",\n \"Library_description_string\" = \"Library_description_string\",\n \"Library_effective_date\" = \"Library_effective_date\",\n \"Library_identifier_token\" = \"Library_identifier_token\",\n \"Library_jurisdiction_token\" = \"Library_jurisdiction_token\",\n \"Library_name_string\" = \"Library_name_string\",\n \"Library_predecessor_reference\" = \"Library_predecessor_reference\",\n \"Library_publisher_string\" = \"Library_publisher_string\",\n \"Library_status_token\" = \"Library_status_token\",\n \"Library_successor_reference\" = \"Library_successor_reference\",\n \"Library_title_string\" = \"Library_title_string\",\n \"Library_topic_token\" = \"Library_topic_token\",\n \"Library_url_uri\" = \"Library_url_uri\",\n \"Library_version_token\" = \"Library_version_token\",\n \"Library_context-type-quantity_composite\" = \"Library_context-type-quantity_composite\",\n \"Library_context-type-value_composite\" = \"Library_context-type-value_composite\",\n \"Library_content-type_token\" = \"Library_content-type_token\",\n \"Library_type_token\" = \"Library_type_token\",\n \"Linkage_author_reference\" = \"Linkage_author_reference\",\n \"Linkage_item_reference\" = \"Linkage_item_reference\",\n \"Linkage_source_reference\" = \"Linkage_source_reference\",\n \"List_identifier_token\" = \"List_identifier_token\",\n \"List_patient_reference\" = \"List_patient_reference\",\n \"List_code_token\" = \"List_code_token\",\n \"List_date_date\" = \"List_date_date\",\n \"List_encounter_reference\" = \"List_encounter_reference\",\n \"List_empty-reason_token\" = \"List_empty-reason_token\",\n \"List_item_reference\" = \"List_item_reference\",\n \"List_notes_string\" = \"List_notes_string\",\n \"List_source_reference\" = \"List_source_reference\",\n \"List_status_token\" = \"List_status_token\",\n \"List_subject_reference\" = \"List_subject_reference\",\n \"List_title_string\" = \"List_title_string\",\n \"Location_address_string\" = \"Location_address_string\",\n \"Location_address-city_string\" = \"Location_address-city_string\",\n \"Location_address-country_string\" = \"Location_address-country_string\",\n \"Location_address-postalcode_string\" = \"Location_address-postalcode_string\",\n \"Location_address-state_string\" = \"Location_address-state_string\",\n \"Location_address-use_token\" = \"Location_address-use_token\",\n \"Location_characteristic_token\" = \"Location_characteristic_token\",\n \"Location_contains_special\" = \"Location_contains_special\",\n \"Location_endpoint_reference\" = \"Location_endpoint_reference\",\n \"Location_identifier_token\" = \"Location_identifier_token\",\n \"Location_name_string\" = \"Location_name_string\",\n \"Location_near_special\" = \"Location_near_special\",\n \"Location_operational-status_token\" = \"Location_operational-status_token\",\n \"Location_organization_reference\" = \"Location_organization_reference\",\n \"Location_partof_reference\" = \"Location_partof_reference\",\n \"Location_status_token\" = \"Location_status_token\",\n \"Location_type_token\" = \"Location_type_token\",\n \"ManufacturedItemDefinition_dose-form_token\" = \"ManufacturedItemDefinition_dose-form_token\",\n \"ManufacturedItemDefinition_identifier_token\" = \"ManufacturedItemDefinition_identifier_token\",\n \"ManufacturedItemDefinition_ingredient_token\" = \"ManufacturedItemDefinition_ingredient_token\",\n \"ManufacturedItemDefinition_name_token\" = \"ManufacturedItemDefinition_name_token\",\n \"ManufacturedItemDefinition_status_token\" = \"ManufacturedItemDefinition_status_token\",\n \"Measure_composed-of_reference\" = \"Measure_composed-of_reference\",\n \"Measure_context_token\" = \"Measure_context_token\",\n \"Measure_context-quantity_quantity\" = \"Measure_context-quantity_quantity\",\n \"Measure_context-type_token\" = \"Measure_context-type_token\",\n \"Measure_date_date\" = \"Measure_date_date\",\n \"Measure_depends-on_reference\" = \"Measure_depends-on_reference\",\n \"Measure_derived-from_reference\" = \"Measure_derived-from_reference\",\n \"Measure_description_string\" = \"Measure_description_string\",\n \"Measure_effective_date\" = \"Measure_effective_date\",\n \"Measure_identifier_token\" = \"Measure_identifier_token\",\n \"Measure_jurisdiction_token\" = \"Measure_jurisdiction_token\",\n \"Measure_name_string\" = \"Measure_name_string\",\n \"Measure_predecessor_reference\" = \"Measure_predecessor_reference\",\n \"Measure_publisher_string\" = \"Measure_publisher_string\",\n \"Measure_status_token\" = \"Measure_status_token\",\n \"Measure_successor_reference\" = \"Measure_successor_reference\",\n \"Measure_title_string\" = \"Measure_title_string\",\n \"Measure_topic_token\" = \"Measure_topic_token\",\n \"Measure_url_uri\" = \"Measure_url_uri\",\n \"Measure_version_token\" = \"Measure_version_token\",\n \"Measure_context-type-quantity_composite\" = \"Measure_context-type-quantity_composite\",\n \"Measure_context-type-value_composite\" = \"Measure_context-type-value_composite\",\n \"MeasureReport_identifier_token\" = \"MeasureReport_identifier_token\",\n \"MeasureReport_patient_reference\" = \"MeasureReport_patient_reference\",\n \"MeasureReport_date_date\" = \"MeasureReport_date_date\",\n \"MeasureReport_evaluated-resource_reference\" = \"MeasureReport_evaluated-resource_reference\",\n \"MeasureReport_location_reference\" = \"MeasureReport_location_reference\",\n \"MeasureReport_measure_reference\" = \"MeasureReport_measure_reference\",\n \"MeasureReport_period_date\" = \"MeasureReport_period_date\",\n \"MeasureReport_reporter_reference\" = \"MeasureReport_reporter_reference\",\n \"MeasureReport_status_token\" = \"MeasureReport_status_token\",\n \"MeasureReport_subject_reference\" = \"MeasureReport_subject_reference\",\n \"Medication_identifier_token\" = \"Medication_identifier_token\",\n \"Medication_code_token\" = \"Medication_code_token\",\n \"Medication_expiration-date_date\" = \"Medication_expiration-date_date\",\n \"Medication_form_token\" = \"Medication_form_token\",\n \"Medication_ingredient_reference\" = \"Medication_ingredient_reference\",\n \"Medication_ingredient-code_token\" = \"Medication_ingredient-code_token\",\n \"Medication_lot-number_token\" = \"Medication_lot-number_token\",\n \"Medication_marketingauthorizationholder_reference\" = \"Medication_marketingauthorizationholder_reference\",\n \"Medication_serial-number_token\" = \"Medication_serial-number_token\",\n \"Medication_status_token\" = \"Medication_status_token\",\n \"MedicationAdministration_identifier_token\" = \"MedicationAdministration_identifier_token\",\n \"MedicationAdministration_patient_reference\" = \"MedicationAdministration_patient_reference\",\n \"MedicationAdministration_code_token\" = \"MedicationAdministration_code_token\",\n \"MedicationAdministration_date_date\" = \"MedicationAdministration_date_date\",\n \"MedicationAdministration_device_reference\" = \"MedicationAdministration_device_reference\",\n \"MedicationAdministration_encounter_reference\" = \"MedicationAdministration_encounter_reference\",\n \"MedicationAdministration_medication_reference\" = \"MedicationAdministration_medication_reference\",\n \"MedicationAdministration_performer_reference\" = \"MedicationAdministration_performer_reference\",\n \"MedicationAdministration_performer-device-code_token\" = \"MedicationAdministration_performer-device-code_token\",\n \"MedicationAdministration_reason-given_reference\" = \"MedicationAdministration_reason-given_reference\",\n \"MedicationAdministration_reason-given-code_token\" = \"MedicationAdministration_reason-given-code_token\",\n \"MedicationAdministration_reason-not-given_token\" = \"MedicationAdministration_reason-not-given_token\",\n \"MedicationAdministration_request_reference\" = \"MedicationAdministration_request_reference\",\n \"MedicationAdministration_status_token\" = \"MedicationAdministration_status_token\",\n \"MedicationAdministration_subject_reference\" = \"MedicationAdministration_subject_reference\",\n \"MedicationDispense_identifier_token\" = \"MedicationDispense_identifier_token\",\n \"MedicationDispense_patient_reference\" = \"MedicationDispense_patient_reference\",\n \"MedicationDispense_type_token\" = \"MedicationDispense_type_token\",\n \"MedicationDispense_code_token\" = \"MedicationDispense_code_token\",\n \"MedicationDispense_encounter_reference\" = \"MedicationDispense_encounter_reference\",\n \"MedicationDispense_medication_reference\" = \"MedicationDispense_medication_reference\",\n \"MedicationDispense_status_token\" = \"MedicationDispense_status_token\",\n \"MedicationDispense_destination_reference\" = \"MedicationDispense_destination_reference\",\n \"MedicationDispense_location_reference\" = \"MedicationDispense_location_reference\",\n \"MedicationDispense_performer_reference\" = \"MedicationDispense_performer_reference\",\n \"MedicationDispense_prescription_reference\" = \"MedicationDispense_prescription_reference\",\n \"MedicationDispense_receiver_reference\" = \"MedicationDispense_receiver_reference\",\n \"MedicationDispense_recorded_date\" = \"MedicationDispense_recorded_date\",\n \"MedicationDispense_responsibleparty_reference\" = \"MedicationDispense_responsibleparty_reference\",\n \"MedicationDispense_subject_reference\" = \"MedicationDispense_subject_reference\",\n \"MedicationDispense_whenhandedover_date\" = \"MedicationDispense_whenhandedover_date\",\n \"MedicationDispense_whenprepared_date\" = \"MedicationDispense_whenprepared_date\",\n \"MedicationKnowledge_identifier_token\" = \"MedicationKnowledge_identifier_token\",\n \"MedicationKnowledge_status_token\" = \"MedicationKnowledge_status_token\",\n \"MedicationKnowledge_classification_token\" = \"MedicationKnowledge_classification_token\",\n \"MedicationKnowledge_classification-type_token\" = \"MedicationKnowledge_classification-type_token\",\n \"MedicationKnowledge_code_token\" = \"MedicationKnowledge_code_token\",\n \"MedicationKnowledge_doseform_token\" = \"MedicationKnowledge_doseform_token\",\n \"MedicationKnowledge_ingredient_reference\" = \"MedicationKnowledge_ingredient_reference\",\n \"MedicationKnowledge_ingredient-code_token\" = \"MedicationKnowledge_ingredient-code_token\",\n \"MedicationKnowledge_monitoring-program-name_token\" = \"MedicationKnowledge_monitoring-program-name_token\",\n \"MedicationKnowledge_monitoring-program-type_token\" = \"MedicationKnowledge_monitoring-program-type_token\",\n \"MedicationKnowledge_monograph_reference\" = \"MedicationKnowledge_monograph_reference\",\n \"MedicationKnowledge_monograph-type_token\" = \"MedicationKnowledge_monograph-type_token\",\n \"MedicationKnowledge_packaging-cost_quantity\" = \"MedicationKnowledge_packaging-cost_quantity\",\n \"MedicationKnowledge_packaging-cost-concept_token\" = \"MedicationKnowledge_packaging-cost-concept_token\",\n \"MedicationKnowledge_product-type_token\" = \"MedicationKnowledge_product-type_token\",\n \"MedicationKnowledge_source-cost_token\" = \"MedicationKnowledge_source-cost_token\",\n \"MedicationRequest_identifier_token\" = \"MedicationRequest_identifier_token\",\n \"MedicationRequest_patient_reference\" = \"MedicationRequest_patient_reference\",\n \"MedicationRequest_code_token\" = \"MedicationRequest_code_token\",\n \"MedicationRequest_encounter_reference\" = \"MedicationRequest_encounter_reference\",\n \"MedicationRequest_medication_reference\" = \"MedicationRequest_medication_reference\",\n \"MedicationRequest_status_token\" = \"MedicationRequest_status_token\",\n \"MedicationRequest_authoredon_date\" = \"MedicationRequest_authoredon_date\",\n \"MedicationRequest_category_token\" = \"MedicationRequest_category_token\",\n \"MedicationRequest_combo-date_date\" = \"MedicationRequest_combo-date_date\",\n \"MedicationRequest_group-identifier_token\" = \"MedicationRequest_group-identifier_token\",\n \"MedicationRequest_intended-dispenser_reference\" = \"MedicationRequest_intended-dispenser_reference\",\n \"MedicationRequest_intended-performer_reference\" = \"MedicationRequest_intended-performer_reference\",\n \"MedicationRequest_intended-performertype_token\" = \"MedicationRequest_intended-performertype_token\",\n \"MedicationRequest_intent_token\" = \"MedicationRequest_intent_token\",\n \"MedicationRequest_priority_token\" = \"MedicationRequest_priority_token\",\n \"MedicationRequest_requester_reference\" = \"MedicationRequest_requester_reference\",\n \"MedicationRequest_subject_reference\" = \"MedicationRequest_subject_reference\",\n \"MedicationStatement_identifier_token\" = \"MedicationStatement_identifier_token\",\n \"MedicationStatement_patient_reference\" = \"MedicationStatement_patient_reference\",\n \"MedicationStatement_code_token\" = \"MedicationStatement_code_token\",\n \"MedicationStatement_encounter_reference\" = \"MedicationStatement_encounter_reference\",\n \"MedicationStatement_medication_reference\" = \"MedicationStatement_medication_reference\",\n \"MedicationStatement_status_token\" = \"MedicationStatement_status_token\",\n \"MedicationStatement_adherence_token\" = \"MedicationStatement_adherence_token\",\n \"MedicationStatement_category_token\" = \"MedicationStatement_category_token\",\n \"MedicationStatement_effective_date\" = \"MedicationStatement_effective_date\",\n \"MedicationStatement_source_reference\" = \"MedicationStatement_source_reference\",\n \"MedicationStatement_subject_reference\" = \"MedicationStatement_subject_reference\",\n \"MedicinalProductDefinition_characteristic_token\" = \"MedicinalProductDefinition_characteristic_token\",\n \"MedicinalProductDefinition_characteristic-type_token\" = \"MedicinalProductDefinition_characteristic-type_token\",\n \"MedicinalProductDefinition_contact_reference\" = \"MedicinalProductDefinition_contact_reference\",\n \"MedicinalProductDefinition_domain_token\" = \"MedicinalProductDefinition_domain_token\",\n \"MedicinalProductDefinition_identifier_token\" = \"MedicinalProductDefinition_identifier_token\",\n \"MedicinalProductDefinition_ingredient_token\" = \"MedicinalProductDefinition_ingredient_token\",\n \"MedicinalProductDefinition_master-file_reference\" = \"MedicinalProductDefinition_master-file_reference\",\n \"MedicinalProductDefinition_name_string\" = \"MedicinalProductDefinition_name_string\",\n \"MedicinalProductDefinition_name-language_token\" = \"MedicinalProductDefinition_name-language_token\",\n \"MedicinalProductDefinition_product-classification_token\" = \"MedicinalProductDefinition_product-classification_token\",\n \"MedicinalProductDefinition_status_token\" = \"MedicinalProductDefinition_status_token\",\n \"MedicinalProductDefinition_type_token\" = \"MedicinalProductDefinition_type_token\",\n \"MessageDefinition_context_token\" = \"MessageDefinition_context_token\",\n \"MessageDefinition_context-quantity_quantity\" = \"MessageDefinition_context-quantity_quantity\",\n \"MessageDefinition_context-type_token\" = \"MessageDefinition_context-type_token\",\n \"MessageDefinition_date_date\" = \"MessageDefinition_date_date\",\n \"MessageDefinition_description_string\" = \"MessageDefinition_description_string\",\n \"MessageDefinition_identifier_token\" = \"MessageDefinition_identifier_token\",\n \"MessageDefinition_jurisdiction_token\" = \"MessageDefinition_jurisdiction_token\",\n \"MessageDefinition_name_string\" = \"MessageDefinition_name_string\",\n \"MessageDefinition_publisher_string\" = \"MessageDefinition_publisher_string\",\n \"MessageDefinition_status_token\" = \"MessageDefinition_status_token\",\n \"MessageDefinition_title_string\" = \"MessageDefinition_title_string\",\n \"MessageDefinition_url_uri\" = \"MessageDefinition_url_uri\",\n \"MessageDefinition_version_token\" = \"MessageDefinition_version_token\",\n \"MessageDefinition_context-type-quantity_composite\" = \"MessageDefinition_context-type-quantity_composite\",\n \"MessageDefinition_context-type-value_composite\" = \"MessageDefinition_context-type-value_composite\",\n \"MessageDefinition_category_token\" = \"MessageDefinition_category_token\",\n \"MessageDefinition_event_token\" = \"MessageDefinition_event_token\",\n \"MessageDefinition_focus_token\" = \"MessageDefinition_focus_token\",\n \"MessageDefinition_parent_reference\" = \"MessageDefinition_parent_reference\",\n \"MessageHeader_author_reference\" = \"MessageHeader_author_reference\",\n \"MessageHeader_code_token\" = \"MessageHeader_code_token\",\n \"MessageHeader_destination_string\" = \"MessageHeader_destination_string\",\n \"MessageHeader_event_token\" = \"MessageHeader_event_token\",\n \"MessageHeader_focus_reference\" = \"MessageHeader_focus_reference\",\n \"MessageHeader_receiver_reference\" = \"MessageHeader_receiver_reference\",\n \"MessageHeader_response-id_token\" = \"MessageHeader_response-id_token\",\n \"MessageHeader_responsible_reference\" = \"MessageHeader_responsible_reference\",\n \"MessageHeader_sender_reference\" = \"MessageHeader_sender_reference\",\n \"MessageHeader_source_string\" = \"MessageHeader_source_string\",\n \"MessageHeader_target_reference\" = \"MessageHeader_target_reference\",\n \"MolecularSequence_identifier_token\" = \"MolecularSequence_identifier_token\",\n \"MolecularSequence_patient_reference\" = \"MolecularSequence_patient_reference\",\n \"MolecularSequence_type_token\" = \"MolecularSequence_type_token\",\n \"MolecularSequence_focus_reference\" = \"MolecularSequence_focus_reference\",\n \"MolecularSequence_subject_reference\" = \"MolecularSequence_subject_reference\",\n \"NamingSystem_context_token\" = \"NamingSystem_context_token\",\n \"NamingSystem_context-quantity_quantity\" = \"NamingSystem_context-quantity_quantity\",\n \"NamingSystem_context-type_token\" = \"NamingSystem_context-type_token\",\n \"NamingSystem_date_date\" = \"NamingSystem_date_date\",\n \"NamingSystem_derived-from_reference\" = \"NamingSystem_derived-from_reference\",\n \"NamingSystem_description_string\" = \"NamingSystem_description_string\",\n \"NamingSystem_effective_date\" = \"NamingSystem_effective_date\",\n \"NamingSystem_identifier_token\" = \"NamingSystem_identifier_token\",\n \"NamingSystem_jurisdiction_token\" = \"NamingSystem_jurisdiction_token\",\n \"NamingSystem_name_string\" = \"NamingSystem_name_string\",\n \"NamingSystem_predecessor_reference\" = \"NamingSystem_predecessor_reference\",\n \"NamingSystem_publisher_string\" = \"NamingSystem_publisher_string\",\n \"NamingSystem_status_token\" = \"NamingSystem_status_token\",\n \"NamingSystem_topic_token\" = \"NamingSystem_topic_token\",\n \"NamingSystem_url_uri\" = \"NamingSystem_url_uri\",\n \"NamingSystem_version_token\" = \"NamingSystem_version_token\",\n \"NamingSystem_context-type-quantity_composite\" = \"NamingSystem_context-type-quantity_composite\",\n \"NamingSystem_context-type-value_composite\" = \"NamingSystem_context-type-value_composite\",\n \"NamingSystem_contact_string\" = \"NamingSystem_contact_string\",\n \"NamingSystem_id-type_token\" = \"NamingSystem_id-type_token\",\n \"NamingSystem_kind_token\" = \"NamingSystem_kind_token\",\n \"NamingSystem_period_date\" = \"NamingSystem_period_date\",\n \"NamingSystem_responsible_string\" = \"NamingSystem_responsible_string\",\n \"NamingSystem_telecom_token\" = \"NamingSystem_telecom_token\",\n \"NamingSystem_type_token\" = \"NamingSystem_type_token\",\n \"NamingSystem_value_string\" = \"NamingSystem_value_string\",\n \"NutritionIntake_identifier_token\" = \"NutritionIntake_identifier_token\",\n \"NutritionIntake_patient_reference\" = \"NutritionIntake_patient_reference\",\n \"NutritionIntake_code_token\" = \"NutritionIntake_code_token\",\n \"NutritionIntake_date_date\" = \"NutritionIntake_date_date\",\n \"NutritionIntake_encounter_reference\" = \"NutritionIntake_encounter_reference\",\n \"NutritionIntake_nutrition_token\" = \"NutritionIntake_nutrition_token\",\n \"NutritionIntake_source_reference\" = \"NutritionIntake_source_reference\",\n \"NutritionIntake_status_token\" = \"NutritionIntake_status_token\",\n \"NutritionIntake_subject_reference\" = \"NutritionIntake_subject_reference\",\n \"NutritionOrder_identifier_token\" = \"NutritionOrder_identifier_token\",\n \"NutritionOrder_patient_reference\" = \"NutritionOrder_patient_reference\",\n \"NutritionOrder_encounter_reference\" = \"NutritionOrder_encounter_reference\",\n \"NutritionOrder_additive_token\" = \"NutritionOrder_additive_token\",\n \"NutritionOrder_datetime_date\" = \"NutritionOrder_datetime_date\",\n \"NutritionOrder_formula_token\" = \"NutritionOrder_formula_token\",\n \"NutritionOrder_group-identifier_token\" = \"NutritionOrder_group-identifier_token\",\n \"NutritionOrder_oraldiet_token\" = \"NutritionOrder_oraldiet_token\",\n \"NutritionOrder_provider_reference\" = \"NutritionOrder_provider_reference\",\n \"NutritionOrder_status_token\" = \"NutritionOrder_status_token\",\n \"NutritionOrder_subject_reference\" = \"NutritionOrder_subject_reference\",\n \"NutritionOrder_supplement_token\" = \"NutritionOrder_supplement_token\",\n \"NutritionProduct_code_token\" = \"NutritionProduct_code_token\",\n \"NutritionProduct_identifier_token\" = \"NutritionProduct_identifier_token\",\n \"NutritionProduct_lot-number_token\" = \"NutritionProduct_lot-number_token\",\n \"NutritionProduct_serial-number_token\" = \"NutritionProduct_serial-number_token\",\n \"NutritionProduct_status_token\" = \"NutritionProduct_status_token\",\n \"Observation_identifier_token\" = \"Observation_identifier_token\",\n \"Observation_patient_reference\" = \"Observation_patient_reference\",\n \"Observation_code_token\" = \"Observation_code_token\",\n \"Observation_date_date\" = \"Observation_date_date\",\n \"Observation_encounter_reference\" = \"Observation_encounter_reference\",\n \"Observation_based-on_reference\" = \"Observation_based-on_reference\",\n \"Observation_category_token\" = \"Observation_category_token\",\n \"Observation_combo-code_token\" = \"Observation_combo-code_token\",\n \"Observation_combo-data-absent-reason_token\" = \"Observation_combo-data-absent-reason_token\",\n \"Observation_combo-value-concept_token\" = \"Observation_combo-value-concept_token\",\n \"Observation_combo-value-quantity_quantity\" = \"Observation_combo-value-quantity_quantity\",\n \"Observation_component-code_token\" = \"Observation_component-code_token\",\n \"Observation_component-data-absent-reason_token\" = \"Observation_component-data-absent-reason_token\",\n \"Observation_component-value-canonical_uri\" = \"Observation_component-value-canonical_uri\",\n \"Observation_component-value-concept_token\" = \"Observation_component-value-concept_token\",\n \"Observation_component-value-quantity_quantity\" = \"Observation_component-value-quantity_quantity\",\n \"Observation_component-value-reference_reference\" = \"Observation_component-value-reference_reference\",\n \"Observation_data-absent-reason_token\" = \"Observation_data-absent-reason_token\",\n \"Observation_derived-from_reference\" = \"Observation_derived-from_reference\",\n \"Observation_device_reference\" = \"Observation_device_reference\",\n \"Observation_focus_reference\" = \"Observation_focus_reference\",\n \"Observation_has-member_reference\" = \"Observation_has-member_reference\",\n \"Observation_method_token\" = \"Observation_method_token\",\n \"Observation_part-of_reference\" = \"Observation_part-of_reference\",\n \"Observation_performer_reference\" = \"Observation_performer_reference\",\n \"Observation_specimen_reference\" = \"Observation_specimen_reference\",\n \"Observation_status_token\" = \"Observation_status_token\",\n \"Observation_subject_reference\" = \"Observation_subject_reference\",\n \"Observation_value-canonical_uri\" = \"Observation_value-canonical_uri\",\n \"Observation_value-concept_token\" = \"Observation_value-concept_token\",\n \"Observation_value-date_date\" = \"Observation_value-date_date\",\n \"Observation_value-markdown_string\" = \"Observation_value-markdown_string\",\n \"Observation_value-quantity_quantity\" = \"Observation_value-quantity_quantity\",\n \"Observation_value-reference_reference\" = \"Observation_value-reference_reference\",\n \"Observation_code-value-concept_composite\" = \"Observation_code-value-concept_composite\",\n \"Observation_code-value-date_composite\" = \"Observation_code-value-date_composite\",\n \"Observation_code-value-quantity_composite\" = \"Observation_code-value-quantity_composite\",\n \"Observation_code-value-string_composite\" = \"Observation_code-value-string_composite\",\n \"Observation_combo-code-value-concept_composite\" = \"Observation_combo-code-value-concept_composite\",\n \"Observation_combo-code-value-quantity_composite\" = \"Observation_combo-code-value-quantity_composite\",\n \"Observation_component-code-value-concept_composite\" = \"Observation_component-code-value-concept_composite\",\n \"Observation_component-code-value-quantity_composite\" = \"Observation_component-code-value-quantity_composite\",\n \"ObservationDefinition_identifier_token\" = \"ObservationDefinition_identifier_token\",\n \"ObservationDefinition_status_token\" = \"ObservationDefinition_status_token\",\n \"ObservationDefinition_title_string\" = \"ObservationDefinition_title_string\",\n \"ObservationDefinition_url_uri\" = \"ObservationDefinition_url_uri\",\n \"ObservationDefinition_category_token\" = \"ObservationDefinition_category_token\",\n \"ObservationDefinition_code_token\" = \"ObservationDefinition_code_token\",\n \"ObservationDefinition_experimental_token\" = \"ObservationDefinition_experimental_token\",\n \"ObservationDefinition_method_token\" = \"ObservationDefinition_method_token\",\n \"OperationDefinition_context_token\" = \"OperationDefinition_context_token\",\n \"OperationDefinition_context-quantity_quantity\" = \"OperationDefinition_context-quantity_quantity\",\n \"OperationDefinition_context-type_token\" = \"OperationDefinition_context-type_token\",\n \"OperationDefinition_date_date\" = \"OperationDefinition_date_date\",\n \"OperationDefinition_description_string\" = \"OperationDefinition_description_string\",\n \"OperationDefinition_identifier_token\" = \"OperationDefinition_identifier_token\",\n \"OperationDefinition_jurisdiction_token\" = \"OperationDefinition_jurisdiction_token\",\n \"OperationDefinition_name_string\" = \"OperationDefinition_name_string\",\n \"OperationDefinition_publisher_string\" = \"OperationDefinition_publisher_string\",\n \"OperationDefinition_status_token\" = \"OperationDefinition_status_token\",\n \"OperationDefinition_title_string\" = \"OperationDefinition_title_string\",\n \"OperationDefinition_url_uri\" = \"OperationDefinition_url_uri\",\n \"OperationDefinition_version_token\" = \"OperationDefinition_version_token\",\n \"OperationDefinition_context-type-quantity_composite\" = \"OperationDefinition_context-type-quantity_composite\",\n \"OperationDefinition_context-type-value_composite\" = \"OperationDefinition_context-type-value_composite\",\n \"OperationDefinition_base_reference\" = \"OperationDefinition_base_reference\",\n \"OperationDefinition_code_token\" = \"OperationDefinition_code_token\",\n \"OperationDefinition_input-profile_reference\" = \"OperationDefinition_input-profile_reference\",\n \"OperationDefinition_instance_token\" = \"OperationDefinition_instance_token\",\n \"OperationDefinition_kind_token\" = \"OperationDefinition_kind_token\",\n \"OperationDefinition_output-profile_reference\" = \"OperationDefinition_output-profile_reference\",\n \"OperationDefinition_system_token\" = \"OperationDefinition_system_token\",\n \"OperationDefinition_type_token\" = \"OperationDefinition_type_token\",\n \"Organization_active_token\" = \"Organization_active_token\",\n \"Organization_address_string\" = \"Organization_address_string\",\n \"Organization_address-city_string\" = \"Organization_address-city_string\",\n \"Organization_address-country_string\" = \"Organization_address-country_string\",\n \"Organization_address-postalcode_string\" = \"Organization_address-postalcode_string\",\n \"Organization_address-state_string\" = \"Organization_address-state_string\",\n \"Organization_address-use_token\" = \"Organization_address-use_token\",\n \"Organization_endpoint_reference\" = \"Organization_endpoint_reference\",\n \"Organization_identifier_token\" = \"Organization_identifier_token\",\n \"Organization_name_string\" = \"Organization_name_string\",\n \"Organization_partof_reference\" = \"Organization_partof_reference\",\n \"Organization_phonetic_string\" = \"Organization_phonetic_string\",\n \"Organization_type_token\" = \"Organization_type_token\",\n \"OrganizationAffiliation_active_token\" = \"OrganizationAffiliation_active_token\",\n \"OrganizationAffiliation_date_date\" = \"OrganizationAffiliation_date_date\",\n \"OrganizationAffiliation_email_token\" = \"OrganizationAffiliation_email_token\",\n \"OrganizationAffiliation_endpoint_reference\" = \"OrganizationAffiliation_endpoint_reference\",\n \"OrganizationAffiliation_identifier_token\" = \"OrganizationAffiliation_identifier_token\",\n \"OrganizationAffiliation_location_reference\" = \"OrganizationAffiliation_location_reference\",\n \"OrganizationAffiliation_network_reference\" = \"OrganizationAffiliation_network_reference\",\n \"OrganizationAffiliation_participating-organization_reference\" = \"OrganizationAffiliation_participating-organization_reference\",\n \"OrganizationAffiliation_phone_token\" = \"OrganizationAffiliation_phone_token\",\n \"OrganizationAffiliation_primary-organization_reference\" = \"OrganizationAffiliation_primary-organization_reference\",\n \"OrganizationAffiliation_role_token\" = \"OrganizationAffiliation_role_token\",\n \"OrganizationAffiliation_service_reference\" = \"OrganizationAffiliation_service_reference\",\n \"OrganizationAffiliation_specialty_token\" = \"OrganizationAffiliation_specialty_token\",\n \"OrganizationAffiliation_telecom_token\" = \"OrganizationAffiliation_telecom_token\",\n \"PackagedProductDefinition_biological_reference\" = \"PackagedProductDefinition_biological_reference\",\n \"PackagedProductDefinition_contained-item_reference\" = \"PackagedProductDefinition_contained-item_reference\",\n \"PackagedProductDefinition_device_reference\" = \"PackagedProductDefinition_device_reference\",\n \"PackagedProductDefinition_identifier_token\" = \"PackagedProductDefinition_identifier_token\",\n \"PackagedProductDefinition_manufactured-item_reference\" = \"PackagedProductDefinition_manufactured-item_reference\",\n \"PackagedProductDefinition_medication_reference\" = \"PackagedProductDefinition_medication_reference\",\n \"PackagedProductDefinition_name_token\" = \"PackagedProductDefinition_name_token\",\n \"PackagedProductDefinition_nutrition_reference\" = \"PackagedProductDefinition_nutrition_reference\",\n \"PackagedProductDefinition_package_reference\" = \"PackagedProductDefinition_package_reference\",\n \"PackagedProductDefinition_package-for_reference\" = \"PackagedProductDefinition_package-for_reference\",\n \"PackagedProductDefinition_status_token\" = \"PackagedProductDefinition_status_token\",\n \"Patient_active_token\" = \"Patient_active_token\",\n \"Patient_address_string\" = \"Patient_address_string\",\n \"Patient_address-city_string\" = \"Patient_address-city_string\",\n \"Patient_address-country_string\" = \"Patient_address-country_string\",\n \"Patient_address-postalcode_string\" = \"Patient_address-postalcode_string\",\n \"Patient_address-state_string\" = \"Patient_address-state_string\",\n \"Patient_address-use_token\" = \"Patient_address-use_token\",\n \"Patient_birthdate_date\" = \"Patient_birthdate_date\",\n \"Patient_death-date_date\" = \"Patient_death-date_date\",\n \"Patient_deceased_token\" = \"Patient_deceased_token\",\n \"Patient_email_token\" = \"Patient_email_token\",\n \"Patient_family_string\" = \"Patient_family_string\",\n \"Patient_gender_token\" = \"Patient_gender_token\",\n \"Patient_general-practitioner_reference\" = \"Patient_general-practitioner_reference\",\n \"Patient_given_string\" = \"Patient_given_string\",\n \"Patient_identifier_token\" = \"Patient_identifier_token\",\n \"Patient_language_token\" = \"Patient_language_token\",\n \"Patient_link_reference\" = \"Patient_link_reference\",\n \"Patient_name_string\" = \"Patient_name_string\",\n \"Patient_organization_reference\" = \"Patient_organization_reference\",\n \"Patient_phone_token\" = \"Patient_phone_token\",\n \"Patient_phonetic_string\" = \"Patient_phonetic_string\",\n \"Patient_telecom_token\" = \"Patient_telecom_token\",\n \"PaymentNotice_created_date\" = \"PaymentNotice_created_date\",\n \"PaymentNotice_identifier_token\" = \"PaymentNotice_identifier_token\",\n \"PaymentNotice_payment-status_token\" = \"PaymentNotice_payment-status_token\",\n \"PaymentNotice_reporter_reference\" = \"PaymentNotice_reporter_reference\",\n \"PaymentNotice_request_reference\" = \"PaymentNotice_request_reference\",\n \"PaymentNotice_response_reference\" = \"PaymentNotice_response_reference\",\n \"PaymentNotice_status_token\" = \"PaymentNotice_status_token\",\n \"PaymentReconciliation_allocation-account_reference\" = \"PaymentReconciliation_allocation-account_reference\",\n \"PaymentReconciliation_allocation-encounter_reference\" = \"PaymentReconciliation_allocation-encounter_reference\",\n \"PaymentReconciliation_created_date\" = \"PaymentReconciliation_created_date\",\n \"PaymentReconciliation_disposition_string\" = \"PaymentReconciliation_disposition_string\",\n \"PaymentReconciliation_identifier_token\" = \"PaymentReconciliation_identifier_token\",\n \"PaymentReconciliation_outcome_token\" = \"PaymentReconciliation_outcome_token\",\n \"PaymentReconciliation_payment-issuer_reference\" = \"PaymentReconciliation_payment-issuer_reference\",\n \"PaymentReconciliation_request_reference\" = \"PaymentReconciliation_request_reference\",\n \"PaymentReconciliation_requestor_reference\" = \"PaymentReconciliation_requestor_reference\",\n \"PaymentReconciliation_status_token\" = \"PaymentReconciliation_status_token\",\n \"Permission_status_token\" = \"Permission_status_token\",\n \"Person_identifier_token\" = \"Person_identifier_token\",\n \"Person_patient_reference\" = \"Person_patient_reference\",\n \"Person_address_string\" = \"Person_address_string\",\n \"Person_address-city_string\" = \"Person_address-city_string\",\n \"Person_address-country_string\" = \"Person_address-country_string\",\n \"Person_address-postalcode_string\" = \"Person_address-postalcode_string\",\n \"Person_address-state_string\" = \"Person_address-state_string\",\n \"Person_address-use_token\" = \"Person_address-use_token\",\n \"Person_birthdate_date\" = \"Person_birthdate_date\",\n \"Person_email_token\" = \"Person_email_token\",\n \"Person_gender_token\" = \"Person_gender_token\",\n \"Person_phone_token\" = \"Person_phone_token\",\n \"Person_phonetic_string\" = \"Person_phonetic_string\",\n \"Person_telecom_token\" = \"Person_telecom_token\",\n \"Person_death-date_date\" = \"Person_death-date_date\",\n \"Person_deceased_token\" = \"Person_deceased_token\",\n \"Person_family_string\" = \"Person_family_string\",\n \"Person_given_string\" = \"Person_given_string\",\n \"Person_link_reference\" = \"Person_link_reference\",\n \"Person_name_string\" = \"Person_name_string\",\n \"Person_organization_reference\" = \"Person_organization_reference\",\n \"Person_practitioner_reference\" = \"Person_practitioner_reference\",\n \"Person_relatedperson_reference\" = \"Person_relatedperson_reference\",\n \"PlanDefinition_composed-of_reference\" = \"PlanDefinition_composed-of_reference\",\n \"PlanDefinition_context_token\" = \"PlanDefinition_context_token\",\n \"PlanDefinition_context-quantity_quantity\" = \"PlanDefinition_context-quantity_quantity\",\n \"PlanDefinition_context-type_token\" = \"PlanDefinition_context-type_token\",\n \"PlanDefinition_date_date\" = \"PlanDefinition_date_date\",\n \"PlanDefinition_depends-on_reference\" = \"PlanDefinition_depends-on_reference\",\n \"PlanDefinition_derived-from_reference\" = \"PlanDefinition_derived-from_reference\",\n \"PlanDefinition_description_string\" = \"PlanDefinition_description_string\",\n \"PlanDefinition_effective_date\" = \"PlanDefinition_effective_date\",\n \"PlanDefinition_identifier_token\" = \"PlanDefinition_identifier_token\",\n \"PlanDefinition_jurisdiction_token\" = \"PlanDefinition_jurisdiction_token\",\n \"PlanDefinition_name_string\" = \"PlanDefinition_name_string\",\n \"PlanDefinition_predecessor_reference\" = \"PlanDefinition_predecessor_reference\",\n \"PlanDefinition_publisher_string\" = \"PlanDefinition_publisher_string\",\n \"PlanDefinition_status_token\" = \"PlanDefinition_status_token\",\n \"PlanDefinition_successor_reference\" = \"PlanDefinition_successor_reference\",\n \"PlanDefinition_title_string\" = \"PlanDefinition_title_string\",\n \"PlanDefinition_topic_token\" = \"PlanDefinition_topic_token\",\n \"PlanDefinition_url_uri\" = \"PlanDefinition_url_uri\",\n \"PlanDefinition_version_token\" = \"PlanDefinition_version_token\",\n \"PlanDefinition_context-type-quantity_composite\" = \"PlanDefinition_context-type-quantity_composite\",\n \"PlanDefinition_context-type-value_composite\" = \"PlanDefinition_context-type-value_composite\",\n \"PlanDefinition_definition_reference\" = \"PlanDefinition_definition_reference\",\n \"PlanDefinition_type_token\" = \"PlanDefinition_type_token\",\n \"Practitioner_address_string\" = \"Practitioner_address_string\",\n \"Practitioner_address-city_string\" = \"Practitioner_address-city_string\",\n \"Practitioner_address-country_string\" = \"Practitioner_address-country_string\",\n \"Practitioner_address-postalcode_string\" = \"Practitioner_address-postalcode_string\",\n \"Practitioner_address-state_string\" = \"Practitioner_address-state_string\",\n \"Practitioner_address-use_token\" = \"Practitioner_address-use_token\",\n \"Practitioner_email_token\" = \"Practitioner_email_token\",\n \"Practitioner_family_string\" = \"Practitioner_family_string\",\n \"Practitioner_gender_token\" = \"Practitioner_gender_token\",\n \"Practitioner_given_string\" = \"Practitioner_given_string\",\n \"Practitioner_phone_token\" = \"Practitioner_phone_token\",\n \"Practitioner_phonetic_string\" = \"Practitioner_phonetic_string\",\n \"Practitioner_telecom_token\" = \"Practitioner_telecom_token\",\n \"Practitioner_active_token\" = \"Practitioner_active_token\",\n \"Practitioner_communication_token\" = \"Practitioner_communication_token\",\n \"Practitioner_death-date_date\" = \"Practitioner_death-date_date\",\n \"Practitioner_deceased_token\" = \"Practitioner_deceased_token\",\n \"Practitioner_identifier_token\" = \"Practitioner_identifier_token\",\n \"Practitioner_name_string\" = \"Practitioner_name_string\",\n \"Practitioner_qualification-period_date\" = \"Practitioner_qualification-period_date\",\n \"PractitionerRole_email_token\" = \"PractitionerRole_email_token\",\n \"PractitionerRole_phone_token\" = \"PractitionerRole_phone_token\",\n \"PractitionerRole_telecom_token\" = \"PractitionerRole_telecom_token\",\n \"PractitionerRole_active_token\" = \"PractitionerRole_active_token\",\n \"PractitionerRole_characteristic_token\" = \"PractitionerRole_characteristic_token\",\n \"PractitionerRole_communication_token\" = \"PractitionerRole_communication_token\",\n \"PractitionerRole_date_date\" = \"PractitionerRole_date_date\",\n \"PractitionerRole_endpoint_reference\" = \"PractitionerRole_endpoint_reference\",\n \"PractitionerRole_identifier_token\" = \"PractitionerRole_identifier_token\",\n \"PractitionerRole_location_reference\" = \"PractitionerRole_location_reference\",\n \"PractitionerRole_organization_reference\" = \"PractitionerRole_organization_reference\",\n \"PractitionerRole_practitioner_reference\" = \"PractitionerRole_practitioner_reference\",\n \"PractitionerRole_role_token\" = \"PractitionerRole_role_token\",\n \"PractitionerRole_service_reference\" = \"PractitionerRole_service_reference\",\n \"PractitionerRole_specialty_token\" = \"PractitionerRole_specialty_token\",\n \"Procedure_identifier_token\" = \"Procedure_identifier_token\",\n \"Procedure_patient_reference\" = \"Procedure_patient_reference\",\n \"Procedure_code_token\" = \"Procedure_code_token\",\n \"Procedure_date_date\" = \"Procedure_date_date\",\n \"Procedure_encounter_reference\" = \"Procedure_encounter_reference\",\n \"Procedure_based-on_reference\" = \"Procedure_based-on_reference\",\n \"Procedure_category_token\" = \"Procedure_category_token\",\n \"Procedure_instantiates-canonical_reference\" = \"Procedure_instantiates-canonical_reference\",\n \"Procedure_instantiates-uri_uri\" = \"Procedure_instantiates-uri_uri\",\n \"Procedure_location_reference\" = \"Procedure_location_reference\",\n \"Procedure_part-of_reference\" = \"Procedure_part-of_reference\",\n \"Procedure_performer_reference\" = \"Procedure_performer_reference\",\n \"Procedure_reason-code_token\" = \"Procedure_reason-code_token\",\n \"Procedure_reason-reference_reference\" = \"Procedure_reason-reference_reference\",\n \"Procedure_report_reference\" = \"Procedure_report_reference\",\n \"Procedure_status_token\" = \"Procedure_status_token\",\n \"Procedure_subject_reference\" = \"Procedure_subject_reference\",\n \"Provenance_patient_reference\" = \"Provenance_patient_reference\",\n \"Provenance_encounter_reference\" = \"Provenance_encounter_reference\",\n \"Provenance_activity_token\" = \"Provenance_activity_token\",\n \"Provenance_agent_reference\" = \"Provenance_agent_reference\",\n \"Provenance_agent-role_token\" = \"Provenance_agent-role_token\",\n \"Provenance_agent-type_token\" = \"Provenance_agent-type_token\",\n \"Provenance_based-on_reference\" = \"Provenance_based-on_reference\",\n \"Provenance_entity_reference\" = \"Provenance_entity_reference\",\n \"Provenance_location_reference\" = \"Provenance_location_reference\",\n \"Provenance_recorded_date\" = \"Provenance_recorded_date\",\n \"Provenance_signature-type_token\" = \"Provenance_signature-type_token\",\n \"Provenance_target_reference\" = \"Provenance_target_reference\",\n \"Provenance_when_date\" = \"Provenance_when_date\",\n \"Questionnaire_context_token\" = \"Questionnaire_context_token\",\n \"Questionnaire_context-quantity_quantity\" = \"Questionnaire_context-quantity_quantity\",\n \"Questionnaire_context-type_token\" = \"Questionnaire_context-type_token\",\n \"Questionnaire_date_date\" = \"Questionnaire_date_date\",\n \"Questionnaire_description_string\" = \"Questionnaire_description_string\",\n \"Questionnaire_effective_date\" = \"Questionnaire_effective_date\",\n \"Questionnaire_identifier_token\" = \"Questionnaire_identifier_token\",\n \"Questionnaire_jurisdiction_token\" = \"Questionnaire_jurisdiction_token\",\n \"Questionnaire_name_string\" = \"Questionnaire_name_string\",\n \"Questionnaire_publisher_string\" = \"Questionnaire_publisher_string\",\n \"Questionnaire_status_token\" = \"Questionnaire_status_token\",\n \"Questionnaire_title_string\" = \"Questionnaire_title_string\",\n \"Questionnaire_url_uri\" = \"Questionnaire_url_uri\",\n \"Questionnaire_version_token\" = \"Questionnaire_version_token\",\n \"Questionnaire_context-type-quantity_composite\" = \"Questionnaire_context-type-quantity_composite\",\n \"Questionnaire_context-type-value_composite\" = \"Questionnaire_context-type-value_composite\",\n \"Questionnaire_combo-code_token\" = \"Questionnaire_combo-code_token\",\n \"Questionnaire_definition_uri\" = \"Questionnaire_definition_uri\",\n \"Questionnaire_item-code_token\" = \"Questionnaire_item-code_token\",\n \"Questionnaire_questionnaire-code_token\" = \"Questionnaire_questionnaire-code_token\",\n \"Questionnaire_subject-type_token\" = \"Questionnaire_subject-type_token\",\n \"QuestionnaireResponse_identifier_token\" = \"QuestionnaireResponse_identifier_token\",\n \"QuestionnaireResponse_patient_reference\" = \"QuestionnaireResponse_patient_reference\",\n \"QuestionnaireResponse_encounter_reference\" = \"QuestionnaireResponse_encounter_reference\",\n \"QuestionnaireResponse_author_reference\" = \"QuestionnaireResponse_author_reference\",\n \"QuestionnaireResponse_authored_date\" = \"QuestionnaireResponse_authored_date\",\n \"QuestionnaireResponse_based-on_reference\" = \"QuestionnaireResponse_based-on_reference\",\n \"QuestionnaireResponse_item-subject_reference\" = \"QuestionnaireResponse_item-subject_reference\",\n \"QuestionnaireResponse_part-of_reference\" = \"QuestionnaireResponse_part-of_reference\",\n \"QuestionnaireResponse_questionnaire_reference\" = \"QuestionnaireResponse_questionnaire_reference\",\n \"QuestionnaireResponse_source_reference\" = \"QuestionnaireResponse_source_reference\",\n \"QuestionnaireResponse_status_token\" = \"QuestionnaireResponse_status_token\",\n \"QuestionnaireResponse_subject_reference\" = \"QuestionnaireResponse_subject_reference\",\n \"RegulatedAuthorization_case_token\" = \"RegulatedAuthorization_case_token\",\n \"RegulatedAuthorization_case-type_token\" = \"RegulatedAuthorization_case-type_token\",\n \"RegulatedAuthorization_holder_reference\" = \"RegulatedAuthorization_holder_reference\",\n \"RegulatedAuthorization_identifier_token\" = \"RegulatedAuthorization_identifier_token\",\n \"RegulatedAuthorization_region_token\" = \"RegulatedAuthorization_region_token\",\n \"RegulatedAuthorization_status_token\" = \"RegulatedAuthorization_status_token\",\n \"RegulatedAuthorization_subject_reference\" = \"RegulatedAuthorization_subject_reference\",\n \"RelatedPerson_identifier_token\" = \"RelatedPerson_identifier_token\",\n \"RelatedPerson_patient_reference\" = \"RelatedPerson_patient_reference\",\n \"RelatedPerson_address_string\" = \"RelatedPerson_address_string\",\n \"RelatedPerson_address-city_string\" = \"RelatedPerson_address-city_string\",\n \"RelatedPerson_address-country_string\" = \"RelatedPerson_address-country_string\",\n \"RelatedPerson_address-postalcode_string\" = \"RelatedPerson_address-postalcode_string\",\n \"RelatedPerson_address-state_string\" = \"RelatedPerson_address-state_string\",\n \"RelatedPerson_address-use_token\" = \"RelatedPerson_address-use_token\",\n \"RelatedPerson_birthdate_date\" = \"RelatedPerson_birthdate_date\",\n \"RelatedPerson_email_token\" = \"RelatedPerson_email_token\",\n \"RelatedPerson_gender_token\" = \"RelatedPerson_gender_token\",\n \"RelatedPerson_phone_token\" = \"RelatedPerson_phone_token\",\n \"RelatedPerson_phonetic_string\" = \"RelatedPerson_phonetic_string\",\n \"RelatedPerson_telecom_token\" = \"RelatedPerson_telecom_token\",\n \"RelatedPerson_active_token\" = \"RelatedPerson_active_token\",\n \"RelatedPerson_family_string\" = \"RelatedPerson_family_string\",\n \"RelatedPerson_given_string\" = \"RelatedPerson_given_string\",\n \"RelatedPerson_name_string\" = \"RelatedPerson_name_string\",\n \"RelatedPerson_relationship_token\" = \"RelatedPerson_relationship_token\",\n \"RequestOrchestration_identifier_token\" = \"RequestOrchestration_identifier_token\",\n \"RequestOrchestration_patient_reference\" = \"RequestOrchestration_patient_reference\",\n \"RequestOrchestration_code_token\" = \"RequestOrchestration_code_token\",\n \"RequestOrchestration_encounter_reference\" = \"RequestOrchestration_encounter_reference\",\n \"RequestOrchestration_author_reference\" = \"RequestOrchestration_author_reference\",\n \"RequestOrchestration_authored_date\" = \"RequestOrchestration_authored_date\",\n \"RequestOrchestration_based-on_reference\" = \"RequestOrchestration_based-on_reference\",\n \"RequestOrchestration_group-identifier_token\" = \"RequestOrchestration_group-identifier_token\",\n \"RequestOrchestration_instantiates-canonical_reference\" = \"RequestOrchestration_instantiates-canonical_reference\",\n \"RequestOrchestration_instantiates-uri_uri\" = \"RequestOrchestration_instantiates-uri_uri\",\n \"RequestOrchestration_intent_token\" = \"RequestOrchestration_intent_token\",\n \"RequestOrchestration_participant_reference\" = \"RequestOrchestration_participant_reference\",\n \"RequestOrchestration_priority_token\" = \"RequestOrchestration_priority_token\",\n \"RequestOrchestration_status_token\" = \"RequestOrchestration_status_token\",\n \"RequestOrchestration_subject_reference\" = \"RequestOrchestration_subject_reference\",\n \"Requirements_context_token\" = \"Requirements_context_token\",\n \"Requirements_context-quantity_quantity\" = \"Requirements_context-quantity_quantity\",\n \"Requirements_context-type_token\" = \"Requirements_context-type_token\",\n \"Requirements_date_date\" = \"Requirements_date_date\",\n \"Requirements_description_string\" = \"Requirements_description_string\",\n \"Requirements_identifier_token\" = \"Requirements_identifier_token\",\n \"Requirements_jurisdiction_token\" = \"Requirements_jurisdiction_token\",\n \"Requirements_name_string\" = \"Requirements_name_string\",\n \"Requirements_publisher_string\" = \"Requirements_publisher_string\",\n \"Requirements_status_token\" = \"Requirements_status_token\",\n \"Requirements_title_string\" = \"Requirements_title_string\",\n \"Requirements_url_uri\" = \"Requirements_url_uri\",\n \"Requirements_version_token\" = \"Requirements_version_token\",\n \"Requirements_context-type-quantity_composite\" = \"Requirements_context-type-quantity_composite\",\n \"Requirements_context-type-value_composite\" = \"Requirements_context-type-value_composite\",\n \"Requirements_actor_reference\" = \"Requirements_actor_reference\",\n \"Requirements_derived-from_reference\" = \"Requirements_derived-from_reference\",\n \"ResearchStudy_classifier_token\" = \"ResearchStudy_classifier_token\",\n \"ResearchStudy_condition_token\" = \"ResearchStudy_condition_token\",\n \"ResearchStudy_date_date\" = \"ResearchStudy_date_date\",\n \"ResearchStudy_description_string\" = \"ResearchStudy_description_string\",\n \"ResearchStudy_eligibility_reference\" = \"ResearchStudy_eligibility_reference\",\n \"ResearchStudy_focus-code_token\" = \"ResearchStudy_focus-code_token\",\n \"ResearchStudy_focus-reference_reference\" = \"ResearchStudy_focus-reference_reference\",\n \"ResearchStudy_identifier_token\" = \"ResearchStudy_identifier_token\",\n \"ResearchStudy_keyword_token\" = \"ResearchStudy_keyword_token\",\n \"ResearchStudy_name_string\" = \"ResearchStudy_name_string\",\n \"ResearchStudy_objective-description_string\" = \"ResearchStudy_objective-description_string\",\n \"ResearchStudy_objective-type_token\" = \"ResearchStudy_objective-type_token\",\n \"ResearchStudy_part-of_reference\" = \"ResearchStudy_part-of_reference\",\n \"ResearchStudy_phase_token\" = \"ResearchStudy_phase_token\",\n \"ResearchStudy_protocol_reference\" = \"ResearchStudy_protocol_reference\",\n \"ResearchStudy_recruitment-actual_number\" = \"ResearchStudy_recruitment-actual_number\",\n \"ResearchStudy_recruitment-target_number\" = \"ResearchStudy_recruitment-target_number\",\n \"ResearchStudy_region_token\" = \"ResearchStudy_region_token\",\n \"ResearchStudy_site_reference\" = \"ResearchStudy_site_reference\",\n \"ResearchStudy_status_token\" = \"ResearchStudy_status_token\",\n \"ResearchStudy_study-design_token\" = \"ResearchStudy_study-design_token\",\n \"ResearchStudy_title_string\" = \"ResearchStudy_title_string\",\n \"ResearchStudy_progress-status-state-actual_composite\" = \"ResearchStudy_progress-status-state-actual_composite\",\n \"ResearchStudy_progress-status-state-period_composite\" = \"ResearchStudy_progress-status-state-period_composite\",\n \"ResearchStudy_progress-status-state-period-actual_composite\" = \"ResearchStudy_progress-status-state-period-actual_composite\",\n \"ResearchSubject_identifier_token\" = \"ResearchSubject_identifier_token\",\n \"ResearchSubject_patient_reference\" = \"ResearchSubject_patient_reference\",\n \"ResearchSubject_date_date\" = \"ResearchSubject_date_date\",\n \"ResearchSubject_status_token\" = \"ResearchSubject_status_token\",\n \"ResearchSubject_study_reference\" = \"ResearchSubject_study_reference\",\n \"ResearchSubject_subject_reference\" = \"ResearchSubject_subject_reference\",\n \"ResearchSubject_subject_state_token\" = \"ResearchSubject_subject_state_token\",\n \"RiskAssessment_identifier_token\" = \"RiskAssessment_identifier_token\",\n \"RiskAssessment_patient_reference\" = \"RiskAssessment_patient_reference\",\n \"RiskAssessment_date_date\" = \"RiskAssessment_date_date\",\n \"RiskAssessment_encounter_reference\" = \"RiskAssessment_encounter_reference\",\n \"RiskAssessment_condition_reference\" = \"RiskAssessment_condition_reference\",\n \"RiskAssessment_method_token\" = \"RiskAssessment_method_token\",\n \"RiskAssessment_performer_reference\" = \"RiskAssessment_performer_reference\",\n \"RiskAssessment_probability_number\" = \"RiskAssessment_probability_number\",\n \"RiskAssessment_risk_token\" = \"RiskAssessment_risk_token\",\n \"RiskAssessment_subject_reference\" = \"RiskAssessment_subject_reference\",\n \"Schedule_active_token\" = \"Schedule_active_token\",\n \"Schedule_actor_reference\" = \"Schedule_actor_reference\",\n \"Schedule_date_date\" = \"Schedule_date_date\",\n \"Schedule_identifier_token\" = \"Schedule_identifier_token\",\n \"Schedule_name_string\" = \"Schedule_name_string\",\n \"Schedule_service-category_token\" = \"Schedule_service-category_token\",\n \"Schedule_service-type_token\" = \"Schedule_service-type_token\",\n \"Schedule_service-type-reference_reference\" = \"Schedule_service-type-reference_reference\",\n \"Schedule_specialty_token\" = \"Schedule_specialty_token\",\n \"SearchParameter_context_token\" = \"SearchParameter_context_token\",\n \"SearchParameter_context-quantity_quantity\" = \"SearchParameter_context-quantity_quantity\",\n \"SearchParameter_context-type_token\" = \"SearchParameter_context-type_token\",\n \"SearchParameter_date_date\" = \"SearchParameter_date_date\",\n \"SearchParameter_description_string\" = \"SearchParameter_description_string\",\n \"SearchParameter_identifier_token\" = \"SearchParameter_identifier_token\",\n \"SearchParameter_jurisdiction_token\" = \"SearchParameter_jurisdiction_token\",\n \"SearchParameter_name_string\" = \"SearchParameter_name_string\",\n \"SearchParameter_publisher_string\" = \"SearchParameter_publisher_string\",\n \"SearchParameter_status_token\" = \"SearchParameter_status_token\",\n \"SearchParameter_url_uri\" = \"SearchParameter_url_uri\",\n \"SearchParameter_version_token\" = \"SearchParameter_version_token\",\n \"SearchParameter_context-type-quantity_composite\" = \"SearchParameter_context-type-quantity_composite\",\n \"SearchParameter_context-type-value_composite\" = \"SearchParameter_context-type-value_composite\",\n \"SearchParameter_base_token\" = \"SearchParameter_base_token\",\n \"SearchParameter_code_token\" = \"SearchParameter_code_token\",\n \"SearchParameter_component_reference\" = \"SearchParameter_component_reference\",\n \"SearchParameter_derived-from_reference\" = \"SearchParameter_derived-from_reference\",\n \"SearchParameter_target_token\" = \"SearchParameter_target_token\",\n \"SearchParameter_type_token\" = \"SearchParameter_type_token\",\n \"ServiceRequest_identifier_token\" = \"ServiceRequest_identifier_token\",\n \"ServiceRequest_patient_reference\" = \"ServiceRequest_patient_reference\",\n \"ServiceRequest_encounter_reference\" = \"ServiceRequest_encounter_reference\",\n \"ServiceRequest_authored_date\" = \"ServiceRequest_authored_date\",\n \"ServiceRequest_based-on_reference\" = \"ServiceRequest_based-on_reference\",\n \"ServiceRequest_body-site_token\" = \"ServiceRequest_body-site_token\",\n \"ServiceRequest_body-structure_reference\" = \"ServiceRequest_body-structure_reference\",\n \"ServiceRequest_category_token\" = \"ServiceRequest_category_token\",\n \"ServiceRequest_code-concept_token\" = \"ServiceRequest_code-concept_token\",\n \"ServiceRequest_code-reference_reference\" = \"ServiceRequest_code-reference_reference\",\n \"ServiceRequest_instantiates-canonical_reference\" = \"ServiceRequest_instantiates-canonical_reference\",\n \"ServiceRequest_instantiates-uri_uri\" = \"ServiceRequest_instantiates-uri_uri\",\n \"ServiceRequest_intent_token\" = \"ServiceRequest_intent_token\",\n \"ServiceRequest_occurrence_date\" = \"ServiceRequest_occurrence_date\",\n \"ServiceRequest_performer_reference\" = \"ServiceRequest_performer_reference\",\n \"ServiceRequest_performer-type_token\" = \"ServiceRequest_performer-type_token\",\n \"ServiceRequest_priority_token\" = \"ServiceRequest_priority_token\",\n \"ServiceRequest_replaces_reference\" = \"ServiceRequest_replaces_reference\",\n \"ServiceRequest_requester_reference\" = \"ServiceRequest_requester_reference\",\n \"ServiceRequest_requisition_token\" = \"ServiceRequest_requisition_token\",\n \"ServiceRequest_specimen_reference\" = \"ServiceRequest_specimen_reference\",\n \"ServiceRequest_status_token\" = \"ServiceRequest_status_token\",\n \"ServiceRequest_subject_reference\" = \"ServiceRequest_subject_reference\",\n \"Slot_appointment-type_token\" = \"Slot_appointment-type_token\",\n \"Slot_identifier_token\" = \"Slot_identifier_token\",\n \"Slot_schedule_reference\" = \"Slot_schedule_reference\",\n \"Slot_service-category_token\" = \"Slot_service-category_token\",\n \"Slot_service-type_token\" = \"Slot_service-type_token\",\n \"Slot_service-type-reference_reference\" = \"Slot_service-type-reference_reference\",\n \"Slot_specialty_token\" = \"Slot_specialty_token\",\n \"Slot_start_date\" = \"Slot_start_date\",\n \"Slot_status_token\" = \"Slot_status_token\",\n \"Specimen_identifier_token\" = \"Specimen_identifier_token\",\n \"Specimen_patient_reference\" = \"Specimen_patient_reference\",\n \"Specimen_type_token\" = \"Specimen_type_token\",\n \"Specimen_accession_token\" = \"Specimen_accession_token\",\n \"Specimen_bodysite_reference\" = \"Specimen_bodysite_reference\",\n \"Specimen_collected_date\" = \"Specimen_collected_date\",\n \"Specimen_collector_reference\" = \"Specimen_collector_reference\",\n \"Specimen_container-device_reference\" = \"Specimen_container-device_reference\",\n \"Specimen_parent_reference\" = \"Specimen_parent_reference\",\n \"Specimen_procedure_reference\" = \"Specimen_procedure_reference\",\n \"Specimen_status_token\" = \"Specimen_status_token\",\n \"Specimen_subject_reference\" = \"Specimen_subject_reference\",\n \"SpecimenDefinition_identifier_token\" = \"SpecimenDefinition_identifier_token\",\n \"SpecimenDefinition_status_token\" = \"SpecimenDefinition_status_token\",\n \"SpecimenDefinition_title_string\" = \"SpecimenDefinition_title_string\",\n \"SpecimenDefinition_url_uri\" = \"SpecimenDefinition_url_uri\",\n \"SpecimenDefinition_container_token\" = \"SpecimenDefinition_container_token\",\n \"SpecimenDefinition_experimental_token\" = \"SpecimenDefinition_experimental_token\",\n \"SpecimenDefinition_is-derived_token\" = \"SpecimenDefinition_is-derived_token\",\n \"SpecimenDefinition_type_token\" = \"SpecimenDefinition_type_token\",\n \"SpecimenDefinition_type-tested_token\" = \"SpecimenDefinition_type-tested_token\",\n \"StructureDefinition_context_token\" = \"StructureDefinition_context_token\",\n \"StructureDefinition_context-quantity_quantity\" = \"StructureDefinition_context-quantity_quantity\",\n \"StructureDefinition_context-type_token\" = \"StructureDefinition_context-type_token\",\n \"StructureDefinition_date_date\" = \"StructureDefinition_date_date\",\n \"StructureDefinition_description_string\" = \"StructureDefinition_description_string\",\n \"StructureDefinition_identifier_token\" = \"StructureDefinition_identifier_token\",\n \"StructureDefinition_jurisdiction_token\" = \"StructureDefinition_jurisdiction_token\",\n \"StructureDefinition_name_string\" = \"StructureDefinition_name_string\",\n \"StructureDefinition_publisher_string\" = \"StructureDefinition_publisher_string\",\n \"StructureDefinition_status_token\" = \"StructureDefinition_status_token\",\n \"StructureDefinition_title_string\" = \"StructureDefinition_title_string\",\n \"StructureDefinition_url_uri\" = \"StructureDefinition_url_uri\",\n \"StructureDefinition_version_token\" = \"StructureDefinition_version_token\",\n \"StructureDefinition_context-type-quantity_composite\" = \"StructureDefinition_context-type-quantity_composite\",\n \"StructureDefinition_context-type-value_composite\" = \"StructureDefinition_context-type-value_composite\",\n \"StructureDefinition_abstract_token\" = \"StructureDefinition_abstract_token\",\n \"StructureDefinition_base_reference\" = \"StructureDefinition_base_reference\",\n \"StructureDefinition_base-path_token\" = \"StructureDefinition_base-path_token\",\n \"StructureDefinition_derivation_token\" = \"StructureDefinition_derivation_token\",\n \"StructureDefinition_experimental_token\" = \"StructureDefinition_experimental_token\",\n \"StructureDefinition_ext-context-expression_token\" = \"StructureDefinition_ext-context-expression_token\",\n \"StructureDefinition_ext-context-type_token\" = \"StructureDefinition_ext-context-type_token\",\n \"StructureDefinition_keyword_token\" = \"StructureDefinition_keyword_token\",\n \"StructureDefinition_kind_token\" = \"StructureDefinition_kind_token\",\n \"StructureDefinition_path_token\" = \"StructureDefinition_path_token\",\n \"StructureDefinition_type_uri\" = \"StructureDefinition_type_uri\",\n \"StructureDefinition_valueset_reference\" = \"StructureDefinition_valueset_reference\",\n \"StructureDefinition_ext-context_composite\" = \"StructureDefinition_ext-context_composite\",\n \"StructureMap_context_token\" = \"StructureMap_context_token\",\n \"StructureMap_context-quantity_quantity\" = \"StructureMap_context-quantity_quantity\",\n \"StructureMap_context-type_token\" = \"StructureMap_context-type_token\",\n \"StructureMap_date_date\" = \"StructureMap_date_date\",\n \"StructureMap_description_string\" = \"StructureMap_description_string\",\n \"StructureMap_identifier_token\" = \"StructureMap_identifier_token\",\n \"StructureMap_jurisdiction_token\" = \"StructureMap_jurisdiction_token\",\n \"StructureMap_name_string\" = \"StructureMap_name_string\",\n \"StructureMap_publisher_string\" = \"StructureMap_publisher_string\",\n \"StructureMap_status_token\" = \"StructureMap_status_token\",\n \"StructureMap_title_string\" = \"StructureMap_title_string\",\n \"StructureMap_url_uri\" = \"StructureMap_url_uri\",\n \"StructureMap_version_token\" = \"StructureMap_version_token\",\n \"StructureMap_context-type-quantity_composite\" = \"StructureMap_context-type-quantity_composite\",\n \"StructureMap_context-type-value_composite\" = \"StructureMap_context-type-value_composite\",\n \"Subscription_contact_token\" = \"Subscription_contact_token\",\n \"Subscription_content-level_token\" = \"Subscription_content-level_token\",\n \"Subscription_filter-value_string\" = \"Subscription_filter-value_string\",\n \"Subscription_identifier_token\" = \"Subscription_identifier_token\",\n \"Subscription_name_string\" = \"Subscription_name_string\",\n \"Subscription_owner_reference\" = \"Subscription_owner_reference\",\n \"Subscription_payload_token\" = \"Subscription_payload_token\",\n \"Subscription_status_token\" = \"Subscription_status_token\",\n \"Subscription_topic_uri\" = \"Subscription_topic_uri\",\n \"Subscription_type_token\" = \"Subscription_type_token\",\n \"Subscription_url_uri\" = \"Subscription_url_uri\",\n \"SubscriptionTopic_date_date\" = \"SubscriptionTopic_date_date\",\n \"SubscriptionTopic_identifier_token\" = \"SubscriptionTopic_identifier_token\",\n \"SubscriptionTopic_status_token\" = \"SubscriptionTopic_status_token\",\n \"SubscriptionTopic_title_string\" = \"SubscriptionTopic_title_string\",\n \"SubscriptionTopic_url_uri\" = \"SubscriptionTopic_url_uri\",\n \"SubscriptionTopic_version_token\" = \"SubscriptionTopic_version_token\",\n \"SubscriptionTopic_derived-or-self_uri\" = \"SubscriptionTopic_derived-or-self_uri\",\n \"SubscriptionTopic_effective_date\" = \"SubscriptionTopic_effective_date\",\n \"SubscriptionTopic_event_token\" = \"SubscriptionTopic_event_token\",\n \"SubscriptionTopic_resource_uri\" = \"SubscriptionTopic_resource_uri\",\n \"SubscriptionTopic_trigger-description_string\" = \"SubscriptionTopic_trigger-description_string\",\n \"Substance_category_token\" = \"Substance_category_token\",\n \"Substance_code_token\" = \"Substance_code_token\",\n \"Substance_code-reference_reference\" = \"Substance_code-reference_reference\",\n \"Substance_expiry_date\" = \"Substance_expiry_date\",\n \"Substance_identifier_token\" = \"Substance_identifier_token\",\n \"Substance_quantity_quantity\" = \"Substance_quantity_quantity\",\n \"Substance_status_token\" = \"Substance_status_token\",\n \"Substance_substance-reference_reference\" = \"Substance_substance-reference_reference\",\n \"SubstanceDefinition_classification_token\" = \"SubstanceDefinition_classification_token\",\n \"SubstanceDefinition_code_token\" = \"SubstanceDefinition_code_token\",\n \"SubstanceDefinition_domain_token\" = \"SubstanceDefinition_domain_token\",\n \"SubstanceDefinition_identifier_token\" = \"SubstanceDefinition_identifier_token\",\n \"SubstanceDefinition_name_string\" = \"SubstanceDefinition_name_string\",\n \"SupplyDelivery_identifier_token\" = \"SupplyDelivery_identifier_token\",\n \"SupplyDelivery_patient_reference\" = \"SupplyDelivery_patient_reference\",\n \"SupplyDelivery_receiver_reference\" = \"SupplyDelivery_receiver_reference\",\n \"SupplyDelivery_status_token\" = \"SupplyDelivery_status_token\",\n \"SupplyDelivery_supplier_reference\" = \"SupplyDelivery_supplier_reference\",\n \"SupplyRequest_identifier_token\" = \"SupplyRequest_identifier_token\",\n \"SupplyRequest_patient_reference\" = \"SupplyRequest_patient_reference\",\n \"SupplyRequest_date_date\" = \"SupplyRequest_date_date\",\n \"SupplyRequest_category_token\" = \"SupplyRequest_category_token\",\n \"SupplyRequest_requester_reference\" = \"SupplyRequest_requester_reference\",\n \"SupplyRequest_status_token\" = \"SupplyRequest_status_token\",\n \"SupplyRequest_subject_reference\" = \"SupplyRequest_subject_reference\",\n \"SupplyRequest_supplier_reference\" = \"SupplyRequest_supplier_reference\",\n \"Task_identifier_token\" = \"Task_identifier_token\",\n \"Task_patient_reference\" = \"Task_patient_reference\",\n \"Task_code_token\" = \"Task_code_token\",\n \"Task_encounter_reference\" = \"Task_encounter_reference\",\n \"Task_actor_reference\" = \"Task_actor_reference\",\n \"Task_authored-on_date\" = \"Task_authored-on_date\",\n \"Task_based-on_reference\" = \"Task_based-on_reference\",\n \"Task_business-status_token\" = \"Task_business-status_token\",\n \"Task_focus_reference\" = \"Task_focus_reference\",\n \"Task_group-identifier_token\" = \"Task_group-identifier_token\",\n \"Task_intent_token\" = \"Task_intent_token\",\n \"Task_modified_date\" = \"Task_modified_date\",\n \"Task_output_reference\" = \"Task_output_reference\",\n \"Task_owner_reference\" = \"Task_owner_reference\",\n \"Task_part-of_reference\" = \"Task_part-of_reference\",\n \"Task_performer_token\" = \"Task_performer_token\",\n \"Task_period_date\" = \"Task_period_date\",\n \"Task_priority_token\" = \"Task_priority_token\",\n \"Task_requestedperformer-reference_reference\" = \"Task_requestedperformer-reference_reference\",\n \"Task_requester_reference\" = \"Task_requester_reference\",\n \"Task_status_token\" = \"Task_status_token\",\n \"Task_subject_reference\" = \"Task_subject_reference\",\n \"TerminologyCapabilities_context_token\" = \"TerminologyCapabilities_context_token\",\n \"TerminologyCapabilities_context-quantity_quantity\" = \"TerminologyCapabilities_context-quantity_quantity\",\n \"TerminologyCapabilities_context-type_token\" = \"TerminologyCapabilities_context-type_token\",\n \"TerminologyCapabilities_date_date\" = \"TerminologyCapabilities_date_date\",\n \"TerminologyCapabilities_description_string\" = \"TerminologyCapabilities_description_string\",\n \"TerminologyCapabilities_identifier_token\" = \"TerminologyCapabilities_identifier_token\",\n \"TerminologyCapabilities_jurisdiction_token\" = \"TerminologyCapabilities_jurisdiction_token\",\n \"TerminologyCapabilities_name_string\" = \"TerminologyCapabilities_name_string\",\n \"TerminologyCapabilities_publisher_string\" = \"TerminologyCapabilities_publisher_string\",\n \"TerminologyCapabilities_status_token\" = \"TerminologyCapabilities_status_token\",\n \"TerminologyCapabilities_title_string\" = \"TerminologyCapabilities_title_string\",\n \"TerminologyCapabilities_url_uri\" = \"TerminologyCapabilities_url_uri\",\n \"TerminologyCapabilities_version_token\" = \"TerminologyCapabilities_version_token\",\n \"TerminologyCapabilities_context-type-quantity_composite\" = \"TerminologyCapabilities_context-type-quantity_composite\",\n \"TerminologyCapabilities_context-type-value_composite\" = \"TerminologyCapabilities_context-type-value_composite\",\n \"TestPlan_identifier_token\" = \"TestPlan_identifier_token\",\n \"TestPlan_status_token\" = \"TestPlan_status_token\",\n \"TestPlan_url_uri\" = \"TestPlan_url_uri\",\n \"TestPlan_scope_reference\" = \"TestPlan_scope_reference\",\n \"TestReport_identifier_token\" = \"TestReport_identifier_token\",\n \"TestReport_issued_date\" = \"TestReport_issued_date\",\n \"TestReport_participant_uri\" = \"TestReport_participant_uri\",\n \"TestReport_result_token\" = \"TestReport_result_token\",\n \"TestReport_status_token\" = \"TestReport_status_token\",\n \"TestReport_tester_string\" = \"TestReport_tester_string\",\n \"TestReport_testscript_reference\" = \"TestReport_testscript_reference\",\n \"TestScript_context_token\" = \"TestScript_context_token\",\n \"TestScript_context-quantity_quantity\" = \"TestScript_context-quantity_quantity\",\n \"TestScript_context-type_token\" = \"TestScript_context-type_token\",\n \"TestScript_date_date\" = \"TestScript_date_date\",\n \"TestScript_description_string\" = \"TestScript_description_string\",\n \"TestScript_identifier_token\" = \"TestScript_identifier_token\",\n \"TestScript_jurisdiction_token\" = \"TestScript_jurisdiction_token\",\n \"TestScript_name_string\" = \"TestScript_name_string\",\n \"TestScript_publisher_string\" = \"TestScript_publisher_string\",\n \"TestScript_status_token\" = \"TestScript_status_token\",\n \"TestScript_title_string\" = \"TestScript_title_string\",\n \"TestScript_url_uri\" = \"TestScript_url_uri\",\n \"TestScript_version_token\" = \"TestScript_version_token\",\n \"TestScript_context-type-quantity_composite\" = \"TestScript_context-type-quantity_composite\",\n \"TestScript_context-type-value_composite\" = \"TestScript_context-type-value_composite\",\n \"TestScript_scope-artifact_reference\" = \"TestScript_scope-artifact_reference\",\n \"TestScript_testscript-capability_string\" = \"TestScript_testscript-capability_string\",\n \"TestScript_scope-artifact-conformance_composite\" = \"TestScript_scope-artifact-conformance_composite\",\n \"TestScript_scope-artifact-phase_composite\" = \"TestScript_scope-artifact-phase_composite\",\n \"Transport_identifier_token\" = \"Transport_identifier_token\",\n \"Transport_status_token\" = \"Transport_status_token\",\n \"ValueSet_context_token\" = \"ValueSet_context_token\",\n \"ValueSet_context-quantity_quantity\" = \"ValueSet_context-quantity_quantity\",\n \"ValueSet_context-type_token\" = \"ValueSet_context-type_token\",\n \"ValueSet_date_date\" = \"ValueSet_date_date\",\n \"ValueSet_derived-from_reference\" = \"ValueSet_derived-from_reference\",\n \"ValueSet_description_string\" = \"ValueSet_description_string\",\n \"ValueSet_effective_date\" = \"ValueSet_effective_date\",\n \"ValueSet_identifier_token\" = \"ValueSet_identifier_token\",\n \"ValueSet_jurisdiction_token\" = \"ValueSet_jurisdiction_token\",\n \"ValueSet_name_string\" = \"ValueSet_name_string\",\n \"ValueSet_predecessor_reference\" = \"ValueSet_predecessor_reference\",\n \"ValueSet_publisher_string\" = \"ValueSet_publisher_string\",\n \"ValueSet_status_token\" = \"ValueSet_status_token\",\n \"ValueSet_title_string\" = \"ValueSet_title_string\",\n \"ValueSet_topic_token\" = \"ValueSet_topic_token\",\n \"ValueSet_url_uri\" = \"ValueSet_url_uri\",\n \"ValueSet_version_token\" = \"ValueSet_version_token\",\n \"ValueSet_context-type-quantity_composite\" = \"ValueSet_context-type-quantity_composite\",\n \"ValueSet_context-type-value_composite\" = \"ValueSet_context-type-value_composite\",\n \"ValueSet_code_token\" = \"ValueSet_code_token\",\n \"ValueSet_expansion_uri\" = \"ValueSet_expansion_uri\",\n \"ValueSet_reference_uri\" = \"ValueSet_reference_uri\",\n \"VerificationResult_attestation-method_token\" = \"VerificationResult_attestation-method_token\",\n \"VerificationResult_attestation-onbehalfof_reference\" = \"VerificationResult_attestation-onbehalfof_reference\",\n \"VerificationResult_attestation-who_reference\" = \"VerificationResult_attestation-who_reference\",\n \"VerificationResult_primarysource-date_date\" = \"VerificationResult_primarysource-date_date\",\n \"VerificationResult_primarysource-type_token\" = \"VerificationResult_primarysource-type_token\",\n \"VerificationResult_primarysource-who_reference\" = \"VerificationResult_primarysource-who_reference\",\n \"VerificationResult_status_token\" = \"VerificationResult_status_token\",\n \"VerificationResult_status-date_date\" = \"VerificationResult_status-date_date\",\n \"VerificationResult_target_reference\" = \"VerificationResult_target_reference\",\n \"VerificationResult_validator-organization_reference\" = \"VerificationResult_validator-organization_reference\",\n \"VisionPrescription_identifier_token\" = \"VisionPrescription_identifier_token\",\n \"VisionPrescription_patient_reference\" = \"VisionPrescription_patient_reference\",\n \"VisionPrescription_encounter_reference\" = \"VisionPrescription_encounter_reference\",\n \"VisionPrescription_datewritten_date\" = \"VisionPrescription_datewritten_date\",\n \"VisionPrescription_prescriber_reference\" = \"VisionPrescription_prescriber_reference\",\n \"VisionPrescription_status_token\" = \"VisionPrescription_status_token\",\n}\n\nexport enum fhirSPRefOnly {\n \"Account_guarantor_reference\" = \"Account_guarantor_reference\",\n \"Account_owner_reference\" = \"Account_owner_reference\",\n \"Account_patient_reference\" = \"Account_patient_reference\",\n \"Account_relatedaccount_reference\" = \"Account_relatedaccount_reference\",\n \"Account_subject_reference\" = \"Account_subject_reference\",\n \"ActivityDefinition_composed-of_reference\" = \"ActivityDefinition_composed-of_reference\",\n \"ActivityDefinition_depends-on_reference\" = \"ActivityDefinition_depends-on_reference\",\n \"ActivityDefinition_derived-from_reference\" = \"ActivityDefinition_derived-from_reference\",\n \"ActivityDefinition_predecessor_reference\" = \"ActivityDefinition_predecessor_reference\",\n \"ActivityDefinition_successor_reference\" = \"ActivityDefinition_successor_reference\",\n \"AdministrableProductDefinition_device_reference\" = \"AdministrableProductDefinition_device_reference\",\n \"AdministrableProductDefinition_form-of_reference\" = \"AdministrableProductDefinition_form-of_reference\",\n \"AdministrableProductDefinition_manufactured-item_reference\" = \"AdministrableProductDefinition_manufactured-item_reference\",\n \"AdverseEvent_patient_reference\" = \"AdverseEvent_patient_reference\",\n \"AdverseEvent_location_reference\" = \"AdverseEvent_location_reference\",\n \"AdverseEvent_recorder_reference\" = \"AdverseEvent_recorder_reference\",\n \"AdverseEvent_resultingeffect_reference\" = \"AdverseEvent_resultingeffect_reference\",\n \"AdverseEvent_study_reference\" = \"AdverseEvent_study_reference\",\n \"AdverseEvent_subject_reference\" = \"AdverseEvent_subject_reference\",\n \"AdverseEvent_substance_reference\" = \"AdverseEvent_substance_reference\",\n \"AllergyIntolerance_patient_reference\" = \"AllergyIntolerance_patient_reference\",\n \"AllergyIntolerance_manifestation-reference_reference\" = \"AllergyIntolerance_manifestation-reference_reference\",\n \"AllergyIntolerance_participant_reference\" = \"AllergyIntolerance_participant_reference\",\n \"Appointment_patient_reference\" = \"Appointment_patient_reference\",\n \"Appointment_actor_reference\" = \"Appointment_actor_reference\",\n \"Appointment_based-on_reference\" = \"Appointment_based-on_reference\",\n \"Appointment_group_reference\" = \"Appointment_group_reference\",\n \"Appointment_location_reference\" = \"Appointment_location_reference\",\n \"Appointment_practitioner_reference\" = \"Appointment_practitioner_reference\",\n \"Appointment_reason-reference_reference\" = \"Appointment_reason-reference_reference\",\n \"Appointment_service-type-reference_reference\" = \"Appointment_service-type-reference_reference\",\n \"Appointment_slot_reference\" = \"Appointment_slot_reference\",\n \"Appointment_subject_reference\" = \"Appointment_subject_reference\",\n \"Appointment_supporting-info_reference\" = \"Appointment_supporting-info_reference\",\n \"AppointmentResponse_patient_reference\" = \"AppointmentResponse_patient_reference\",\n \"AppointmentResponse_actor_reference\" = \"AppointmentResponse_actor_reference\",\n \"AppointmentResponse_appointment_reference\" = \"AppointmentResponse_appointment_reference\",\n \"AppointmentResponse_group_reference\" = \"AppointmentResponse_group_reference\",\n \"AppointmentResponse_location_reference\" = \"AppointmentResponse_location_reference\",\n \"AppointmentResponse_practitioner_reference\" = \"AppointmentResponse_practitioner_reference\",\n \"AuditEvent_patient_reference\" = \"AuditEvent_patient_reference\",\n \"AuditEvent_agent_reference\" = \"AuditEvent_agent_reference\",\n \"AuditEvent_based-on_reference\" = \"AuditEvent_based-on_reference\",\n \"AuditEvent_encounter_reference\" = \"AuditEvent_encounter_reference\",\n \"AuditEvent_entity_reference\" = \"AuditEvent_entity_reference\",\n \"AuditEvent_source_reference\" = \"AuditEvent_source_reference\",\n \"Basic_patient_reference\" = \"Basic_patient_reference\",\n \"Basic_author_reference\" = \"Basic_author_reference\",\n \"Basic_subject_reference\" = \"Basic_subject_reference\",\n \"BiologicallyDerivedProduct_collector_reference\" = \"BiologicallyDerivedProduct_collector_reference\",\n \"BiologicallyDerivedProduct_request_reference\" = \"BiologicallyDerivedProduct_request_reference\",\n \"BiologicallyDerivedProductDispense_patient_reference\" = \"BiologicallyDerivedProductDispense_patient_reference\",\n \"BiologicallyDerivedProductDispense_performer_reference\" = \"BiologicallyDerivedProductDispense_performer_reference\",\n \"BiologicallyDerivedProductDispense_product_reference\" = \"BiologicallyDerivedProductDispense_product_reference\",\n \"BodyStructure_patient_reference\" = \"BodyStructure_patient_reference\",\n \"Bundle_composition_reference\" = \"Bundle_composition_reference\",\n \"Bundle_message_reference\" = \"Bundle_message_reference\",\n \"CapabilityStatement_guide_reference\" = \"CapabilityStatement_guide_reference\",\n \"CapabilityStatement_resource-profile_reference\" = \"CapabilityStatement_resource-profile_reference\",\n \"CapabilityStatement_supported-profile_reference\" = \"CapabilityStatement_supported-profile_reference\",\n \"CarePlan_patient_reference\" = \"CarePlan_patient_reference\",\n \"CarePlan_encounter_reference\" = \"CarePlan_encounter_reference\",\n \"CarePlan_activity-reference_reference\" = \"CarePlan_activity-reference_reference\",\n \"CarePlan_based-on_reference\" = \"CarePlan_based-on_reference\",\n \"CarePlan_care-team_reference\" = \"CarePlan_care-team_reference\",\n \"CarePlan_condition_reference\" = \"CarePlan_condition_reference\",\n \"CarePlan_custodian_reference\" = \"CarePlan_custodian_reference\",\n \"CarePlan_goal_reference\" = \"CarePlan_goal_reference\",\n \"CarePlan_instantiates-canonical_reference\" = \"CarePlan_instantiates-canonical_reference\",\n \"CarePlan_part-of_reference\" = \"CarePlan_part-of_reference\",\n \"CarePlan_replaces_reference\" = \"CarePlan_replaces_reference\",\n \"CarePlan_subject_reference\" = \"CarePlan_subject_reference\",\n \"CareTeam_patient_reference\" = \"CareTeam_patient_reference\",\n \"CareTeam_participant_reference\" = \"CareTeam_participant_reference\",\n \"CareTeam_subject_reference\" = \"CareTeam_subject_reference\",\n \"ChargeItem_patient_reference\" = \"ChargeItem_patient_reference\",\n \"ChargeItem_encounter_reference\" = \"ChargeItem_encounter_reference\",\n \"ChargeItem_account_reference\" = \"ChargeItem_account_reference\",\n \"ChargeItem_enterer_reference\" = \"ChargeItem_enterer_reference\",\n \"ChargeItem_performer-actor_reference\" = \"ChargeItem_performer-actor_reference\",\n \"ChargeItem_performing-organization_reference\" = \"ChargeItem_performing-organization_reference\",\n \"ChargeItem_requesting-organization_reference\" = \"ChargeItem_requesting-organization_reference\",\n \"ChargeItem_service_reference\" = \"ChargeItem_service_reference\",\n \"ChargeItem_subject_reference\" = \"ChargeItem_subject_reference\",\n \"Claim_patient_reference\" = \"Claim_patient_reference\",\n \"Claim_encounter_reference\" = \"Claim_encounter_reference\",\n \"Claim_care-team_reference\" = \"Claim_care-team_reference\",\n \"Claim_detail-udi_reference\" = \"Claim_detail-udi_reference\",\n \"Claim_enterer_reference\" = \"Claim_enterer_reference\",\n \"Claim_facility_reference\" = \"Claim_facility_reference\",\n \"Claim_insurer_reference\" = \"Claim_insurer_reference\",\n \"Claim_item-udi_reference\" = \"Claim_item-udi_reference\",\n \"Claim_payee_reference\" = \"Claim_payee_reference\",\n \"Claim_procedure-udi_reference\" = \"Claim_procedure-udi_reference\",\n \"Claim_provider_reference\" = \"Claim_provider_reference\",\n \"Claim_subdetail-udi_reference\" = \"Claim_subdetail-udi_reference\",\n \"ClaimResponse_patient_reference\" = \"ClaimResponse_patient_reference\",\n \"ClaimResponse_insurer_reference\" = \"ClaimResponse_insurer_reference\",\n \"ClaimResponse_request_reference\" = \"ClaimResponse_request_reference\",\n \"ClaimResponse_requestor_reference\" = \"ClaimResponse_requestor_reference\",\n \"ClinicalImpression_patient_reference\" = \"ClinicalImpression_patient_reference\",\n \"ClinicalImpression_encounter_reference\" = \"ClinicalImpression_encounter_reference\",\n \"ClinicalImpression_finding-ref_reference\" = \"ClinicalImpression_finding-ref_reference\",\n \"ClinicalImpression_performer_reference\" = \"ClinicalImpression_performer_reference\",\n \"ClinicalImpression_previous_reference\" = \"ClinicalImpression_previous_reference\",\n \"ClinicalImpression_problem_reference\" = \"ClinicalImpression_problem_reference\",\n \"ClinicalImpression_subject_reference\" = \"ClinicalImpression_subject_reference\",\n \"ClinicalImpression_supporting-info_reference\" = \"ClinicalImpression_supporting-info_reference\",\n \"ClinicalUseDefinition_contraindication-reference_reference\" = \"ClinicalUseDefinition_contraindication-reference_reference\",\n \"ClinicalUseDefinition_effect-reference_reference\" = \"ClinicalUseDefinition_effect-reference_reference\",\n \"ClinicalUseDefinition_indication-reference_reference\" = \"ClinicalUseDefinition_indication-reference_reference\",\n \"ClinicalUseDefinition_product_reference\" = \"ClinicalUseDefinition_product_reference\",\n \"ClinicalUseDefinition_subject_reference\" = \"ClinicalUseDefinition_subject_reference\",\n \"CodeSystem_derived-from_reference\" = \"CodeSystem_derived-from_reference\",\n \"CodeSystem_predecessor_reference\" = \"CodeSystem_predecessor_reference\",\n \"CodeSystem_supplements_reference\" = \"CodeSystem_supplements_reference\",\n \"Communication_patient_reference\" = \"Communication_patient_reference\",\n \"Communication_encounter_reference\" = \"Communication_encounter_reference\",\n \"Communication_based-on_reference\" = \"Communication_based-on_reference\",\n \"Communication_instantiates-canonical_reference\" = \"Communication_instantiates-canonical_reference\",\n \"Communication_part-of_reference\" = \"Communication_part-of_reference\",\n \"Communication_recipient_reference\" = \"Communication_recipient_reference\",\n \"Communication_sender_reference\" = \"Communication_sender_reference\",\n \"Communication_subject_reference\" = \"Communication_subject_reference\",\n \"CommunicationRequest_patient_reference\" = \"CommunicationRequest_patient_reference\",\n \"CommunicationRequest_encounter_reference\" = \"CommunicationRequest_encounter_reference\",\n \"CommunicationRequest_based-on_reference\" = \"CommunicationRequest_based-on_reference\",\n \"CommunicationRequest_information-provider_reference\" = \"CommunicationRequest_information-provider_reference\",\n \"CommunicationRequest_recipient_reference\" = \"CommunicationRequest_recipient_reference\",\n \"CommunicationRequest_replaces_reference\" = \"CommunicationRequest_replaces_reference\",\n \"CommunicationRequest_requester_reference\" = \"CommunicationRequest_requester_reference\",\n \"CommunicationRequest_subject_reference\" = \"CommunicationRequest_subject_reference\",\n \"Composition_patient_reference\" = \"Composition_patient_reference\",\n \"Composition_encounter_reference\" = \"Composition_encounter_reference\",\n \"Composition_attester_reference\" = \"Composition_attester_reference\",\n \"Composition_author_reference\" = \"Composition_author_reference\",\n \"Composition_entry_reference\" = \"Composition_entry_reference\",\n \"Composition_event-reference_reference\" = \"Composition_event-reference_reference\",\n \"Composition_related_reference\" = \"Composition_related_reference\",\n \"Composition_subject_reference\" = \"Composition_subject_reference\",\n \"ConceptMap_derived-from_reference\" = \"ConceptMap_derived-from_reference\",\n \"ConceptMap_predecessor_reference\" = \"ConceptMap_predecessor_reference\",\n \"ConceptMap_other-map_reference\" = \"ConceptMap_other-map_reference\",\n \"ConceptMap_source-group-system_reference\" = \"ConceptMap_source-group-system_reference\",\n \"ConceptMap_source-scope_reference\" = \"ConceptMap_source-scope_reference\",\n \"ConceptMap_target-group-system_reference\" = \"ConceptMap_target-group-system_reference\",\n \"ConceptMap_target-scope_reference\" = \"ConceptMap_target-scope_reference\",\n \"Condition_patient_reference\" = \"Condition_patient_reference\",\n \"Condition_encounter_reference\" = \"Condition_encounter_reference\",\n \"Condition_evidence-detail_reference\" = \"Condition_evidence-detail_reference\",\n \"Condition_participant-actor_reference\" = \"Condition_participant-actor_reference\",\n \"Condition_subject_reference\" = \"Condition_subject_reference\",\n \"Consent_patient_reference\" = \"Consent_patient_reference\",\n \"Consent_actor_reference\" = \"Consent_actor_reference\",\n \"Consent_controller_reference\" = \"Consent_controller_reference\",\n \"Consent_data_reference\" = \"Consent_data_reference\",\n \"Consent_grantee_reference\" = \"Consent_grantee_reference\",\n \"Consent_manager_reference\" = \"Consent_manager_reference\",\n \"Consent_source-reference_reference\" = \"Consent_source-reference_reference\",\n \"Consent_subject_reference\" = \"Consent_subject_reference\",\n \"Contract_patient_reference\" = \"Contract_patient_reference\",\n \"Contract_authority_reference\" = \"Contract_authority_reference\",\n \"Contract_domain_reference\" = \"Contract_domain_reference\",\n \"Contract_signer_reference\" = \"Contract_signer_reference\",\n \"Contract_subject_reference\" = \"Contract_subject_reference\",\n \"Coverage_patient_reference\" = \"Coverage_patient_reference\",\n \"Coverage_beneficiary_reference\" = \"Coverage_beneficiary_reference\",\n \"Coverage_insurer_reference\" = \"Coverage_insurer_reference\",\n \"Coverage_paymentby-party_reference\" = \"Coverage_paymentby-party_reference\",\n \"Coverage_policy-holder_reference\" = \"Coverage_policy-holder_reference\",\n \"Coverage_subscriber_reference\" = \"Coverage_subscriber_reference\",\n \"CoverageEligibilityRequest_patient_reference\" = \"CoverageEligibilityRequest_patient_reference\",\n \"CoverageEligibilityRequest_enterer_reference\" = \"CoverageEligibilityRequest_enterer_reference\",\n \"CoverageEligibilityRequest_facility_reference\" = \"CoverageEligibilityRequest_facility_reference\",\n \"CoverageEligibilityRequest_provider_reference\" = \"CoverageEligibilityRequest_provider_reference\",\n \"CoverageEligibilityResponse_patient_reference\" = \"CoverageEligibilityResponse_patient_reference\",\n \"CoverageEligibilityResponse_insurer_reference\" = \"CoverageEligibilityResponse_insurer_reference\",\n \"CoverageEligibilityResponse_request_reference\" = \"CoverageEligibilityResponse_request_reference\",\n \"CoverageEligibilityResponse_requestor_reference\" = \"CoverageEligibilityResponse_requestor_reference\",\n \"DetectedIssue_patient_reference\" = \"DetectedIssue_patient_reference\",\n \"DetectedIssue_author_reference\" = \"DetectedIssue_author_reference\",\n \"DetectedIssue_implicated_reference\" = \"DetectedIssue_implicated_reference\",\n \"DetectedIssue_subject_reference\" = \"DetectedIssue_subject_reference\",\n \"Device_definition_reference\" = \"Device_definition_reference\",\n \"Device_location_reference\" = \"Device_location_reference\",\n \"Device_organization_reference\" = \"Device_organization_reference\",\n \"Device_parent_reference\" = \"Device_parent_reference\",\n \"DeviceAssociation_device_reference\" = \"DeviceAssociation_device_reference\",\n \"DeviceAssociation_operator_reference\" = \"DeviceAssociation_operator_reference\",\n \"DeviceAssociation_patient_reference\" = \"DeviceAssociation_patient_reference\",\n \"DeviceAssociation_subject_reference\" = \"DeviceAssociation_subject_reference\",\n \"DeviceDefinition_manufacturer_reference\" = \"DeviceDefinition_manufacturer_reference\",\n \"DeviceDefinition_organization_reference\" = \"DeviceDefinition_organization_reference\",\n \"DeviceDispense_patient_reference\" = \"DeviceDispense_patient_reference\",\n \"DeviceDispense_subject_reference\" = \"DeviceDispense_subject_reference\",\n \"DeviceMetric_device_reference\" = \"DeviceMetric_device_reference\",\n \"DeviceRequest_patient_reference\" = \"DeviceRequest_patient_reference\",\n \"DeviceRequest_encounter_reference\" = \"DeviceRequest_encounter_reference\",\n \"DeviceRequest_based-on_reference\" = \"DeviceRequest_based-on_reference\",\n \"DeviceRequest_device_reference\" = \"DeviceRequest_device_reference\",\n \"DeviceRequest_instantiates-canonical_reference\" = \"DeviceRequest_instantiates-canonical_reference\",\n \"DeviceRequest_insurance_reference\" = \"DeviceRequest_insurance_reference\",\n \"DeviceRequest_performer_reference\" = \"DeviceRequest_performer_reference\",\n \"DeviceRequest_prior-request_reference\" = \"DeviceRequest_prior-request_reference\",\n \"DeviceRequest_requester_reference\" = \"DeviceRequest_requester_reference\",\n \"DeviceRequest_subject_reference\" = \"DeviceRequest_subject_reference\",\n \"DeviceUsage_patient_reference\" = \"DeviceUsage_patient_reference\",\n \"DiagnosticReport_patient_reference\" = \"DiagnosticReport_patient_reference\",\n \"DiagnosticReport_encounter_reference\" = \"DiagnosticReport_encounter_reference\",\n \"DiagnosticReport_based-on_reference\" = \"DiagnosticReport_based-on_reference\",\n \"DiagnosticReport_media_reference\" = \"DiagnosticReport_media_reference\",\n \"DiagnosticReport_performer_reference\" = \"DiagnosticReport_performer_reference\",\n \"DiagnosticReport_result_reference\" = \"DiagnosticReport_result_reference\",\n \"DiagnosticReport_results-interpreter_reference\" = \"DiagnosticReport_results-interpreter_reference\",\n \"DiagnosticReport_specimen_reference\" = \"DiagnosticReport_specimen_reference\",\n \"DiagnosticReport_study_reference\" = \"DiagnosticReport_study_reference\",\n \"DiagnosticReport_subject_reference\" = \"DiagnosticReport_subject_reference\",\n \"DocumentReference_patient_reference\" = \"DocumentReference_patient_reference\",\n \"DocumentReference_attester_reference\" = \"DocumentReference_attester_reference\",\n \"DocumentReference_author_reference\" = \"DocumentReference_author_reference\",\n \"DocumentReference_based-on_reference\" = \"DocumentReference_based-on_reference\",\n \"DocumentReference_bodysite-reference_reference\" = \"DocumentReference_bodysite-reference_reference\",\n \"DocumentReference_context_reference\" = \"DocumentReference_context_reference\",\n \"DocumentReference_custodian_reference\" = \"DocumentReference_custodian_reference\",\n \"DocumentReference_event-reference_reference\" = \"DocumentReference_event-reference_reference\",\n \"DocumentReference_format-canonical_reference\" = \"DocumentReference_format-canonical_reference\",\n \"DocumentReference_relatesto_reference\" = \"DocumentReference_relatesto_reference\",\n \"DocumentReference_subject_reference\" = \"DocumentReference_subject_reference\",\n \"Encounter_patient_reference\" = \"Encounter_patient_reference\",\n \"Encounter_account_reference\" = \"Encounter_account_reference\",\n \"Encounter_appointment_reference\" = \"Encounter_appointment_reference\",\n \"Encounter_based-on_reference\" = \"Encounter_based-on_reference\",\n \"Encounter_careteam_reference\" = \"Encounter_careteam_reference\",\n \"Encounter_diagnosis-reference_reference\" = \"Encounter_diagnosis-reference_reference\",\n \"Encounter_episode-of-care_reference\" = \"Encounter_episode-of-care_reference\",\n \"Encounter_location_reference\" = \"Encounter_location_reference\",\n \"Encounter_part-of_reference\" = \"Encounter_part-of_reference\",\n \"Encounter_participant_reference\" = \"Encounter_participant_reference\",\n \"Encounter_practitioner_reference\" = \"Encounter_practitioner_reference\",\n \"Encounter_reason-reference_reference\" = \"Encounter_reason-reference_reference\",\n \"Encounter_service-provider_reference\" = \"Encounter_service-provider_reference\",\n \"Encounter_subject_reference\" = \"Encounter_subject_reference\",\n \"EncounterHistory_encounter_reference\" = \"EncounterHistory_encounter_reference\",\n \"EncounterHistory_patient_reference\" = \"EncounterHistory_patient_reference\",\n \"EncounterHistory_subject_reference\" = \"EncounterHistory_subject_reference\",\n \"Endpoint_organization_reference\" = \"Endpoint_organization_reference\",\n \"EnrollmentRequest_patient_reference\" = \"EnrollmentRequest_patient_reference\",\n \"EnrollmentRequest_subject_reference\" = \"EnrollmentRequest_subject_reference\",\n \"EnrollmentResponse_request_reference\" = \"EnrollmentResponse_request_reference\",\n \"EpisodeOfCare_patient_reference\" = \"EpisodeOfCare_patient_reference\",\n \"EpisodeOfCare_care-manager_reference\" = \"EpisodeOfCare_care-manager_reference\",\n \"EpisodeOfCare_diagnosis-reference_reference\" = \"EpisodeOfCare_diagnosis-reference_reference\",\n \"EpisodeOfCare_incoming-referral_reference\" = \"EpisodeOfCare_incoming-referral_reference\",\n \"EpisodeOfCare_organization_reference\" = \"EpisodeOfCare_organization_reference\",\n \"EpisodeOfCare_reason-reference_reference\" = \"EpisodeOfCare_reason-reference_reference\",\n \"EventDefinition_composed-of_reference\" = \"EventDefinition_composed-of_reference\",\n \"EventDefinition_depends-on_reference\" = \"EventDefinition_depends-on_reference\",\n \"EventDefinition_derived-from_reference\" = \"EventDefinition_derived-from_reference\",\n \"EventDefinition_predecessor_reference\" = \"EventDefinition_predecessor_reference\",\n \"EventDefinition_successor_reference\" = \"EventDefinition_successor_reference\",\n \"EvidenceVariable_composed-of_reference\" = \"EvidenceVariable_composed-of_reference\",\n \"EvidenceVariable_depends-on_reference\" = \"EvidenceVariable_depends-on_reference\",\n \"EvidenceVariable_derived-from_reference\" = \"EvidenceVariable_derived-from_reference\",\n \"EvidenceVariable_predecessor_reference\" = \"EvidenceVariable_predecessor_reference\",\n \"EvidenceVariable_successor_reference\" = \"EvidenceVariable_successor_reference\",\n \"ExplanationOfBenefit_patient_reference\" = \"ExplanationOfBenefit_patient_reference\",\n \"ExplanationOfBenefit_encounter_reference\" = \"ExplanationOfBenefit_encounter_reference\",\n \"ExplanationOfBenefit_care-team_reference\" = \"ExplanationOfBenefit_care-team_reference\",\n \"ExplanationOfBenefit_claim_reference\" = \"ExplanationOfBenefit_claim_reference\",\n \"ExplanationOfBenefit_coverage_reference\" = \"ExplanationOfBenefit_coverage_reference\",\n \"ExplanationOfBenefit_detail-udi_reference\" = \"ExplanationOfBenefit_detail-udi_reference\",\n \"ExplanationOfBenefit_enterer_reference\" = \"ExplanationOfBenefit_enterer_reference\",\n \"ExplanationOfBenefit_facility_reference\" = \"ExplanationOfBenefit_facility_reference\",\n \"ExplanationOfBenefit_item-udi_reference\" = \"ExplanationOfBenefit_item-udi_reference\",\n \"ExplanationOfBenefit_payee_reference\" = \"ExplanationOfBenefit_payee_reference\",\n \"ExplanationOfBenefit_procedure-udi_reference\" = \"ExplanationOfBenefit_procedure-udi_reference\",\n \"ExplanationOfBenefit_provider_reference\" = \"ExplanationOfBenefit_provider_reference\",\n \"ExplanationOfBenefit_subdetail-udi_reference\" = \"ExplanationOfBenefit_subdetail-udi_reference\",\n \"FamilyMemberHistory_patient_reference\" = \"FamilyMemberHistory_patient_reference\",\n \"FamilyMemberHistory_instantiates-canonical_reference\" = \"FamilyMemberHistory_instantiates-canonical_reference\",\n \"Flag_patient_reference\" = \"Flag_patient_reference\",\n \"Flag_encounter_reference\" = \"Flag_encounter_reference\",\n \"Flag_author_reference\" = \"Flag_author_reference\",\n \"Flag_subject_reference\" = \"Flag_subject_reference\",\n \"GenomicStudy_focus_reference\" = \"GenomicStudy_focus_reference\",\n \"GenomicStudy_patient_reference\" = \"GenomicStudy_patient_reference\",\n \"GenomicStudy_subject_reference\" = \"GenomicStudy_subject_reference\",\n \"Goal_patient_reference\" = \"Goal_patient_reference\",\n \"Goal_addresses_reference\" = \"Goal_addresses_reference\",\n \"Goal_subject_reference\" = \"Goal_subject_reference\",\n \"Group_characteristic-reference_reference\" = \"Group_characteristic-reference_reference\",\n \"Group_managing-entity_reference\" = \"Group_managing-entity_reference\",\n \"Group_member_reference\" = \"Group_member_reference\",\n \"GuidanceResponse_patient_reference\" = \"GuidanceResponse_patient_reference\",\n \"GuidanceResponse_subject_reference\" = \"GuidanceResponse_subject_reference\",\n \"HealthcareService_coverage-area_reference\" = \"HealthcareService_coverage-area_reference\",\n \"HealthcareService_endpoint_reference\" = \"HealthcareService_endpoint_reference\",\n \"HealthcareService_location_reference\" = \"HealthcareService_location_reference\",\n \"HealthcareService_offered-in_reference\" = \"HealthcareService_offered-in_reference\",\n \"HealthcareService_organization_reference\" = \"HealthcareService_organization_reference\",\n \"ImagingSelection_patient_reference\" = \"ImagingSelection_patient_reference\",\n \"ImagingSelection_based-on_reference\" = \"ImagingSelection_based-on_reference\",\n \"ImagingSelection_body-structure_reference\" = \"ImagingSelection_body-structure_reference\",\n \"ImagingSelection_derived-from_reference\" = \"ImagingSelection_derived-from_reference\",\n \"ImagingSelection_subject_reference\" = \"ImagingSelection_subject_reference\",\n \"ImagingStudy_patient_reference\" = \"ImagingStudy_patient_reference\",\n \"ImagingStudy_encounter_reference\" = \"ImagingStudy_encounter_reference\",\n \"ImagingStudy_based-on_reference\" = \"ImagingStudy_based-on_reference\",\n \"ImagingStudy_body-structure_reference\" = \"ImagingStudy_body-structure_reference\",\n \"ImagingStudy_endpoint_reference\" = \"ImagingStudy_endpoint_reference\",\n \"ImagingStudy_performer_reference\" = \"ImagingStudy_performer_reference\",\n \"ImagingStudy_referrer_reference\" = \"ImagingStudy_referrer_reference\",\n \"ImagingStudy_subject_reference\" = \"ImagingStudy_subject_reference\",\n \"Immunization_patient_reference\" = \"Immunization_patient_reference\",\n \"Immunization_location_reference\" = \"Immunization_location_reference\",\n \"Immunization_manufacturer_reference\" = \"Immunization_manufacturer_reference\",\n \"Immunization_performer_reference\" = \"Immunization_performer_reference\",\n \"Immunization_reaction_reference\" = \"Immunization_reaction_reference\",\n \"Immunization_reason-reference_reference\" = \"Immunization_reason-reference_reference\",\n \"ImmunizationEvaluation_patient_reference\" = \"ImmunizationEvaluation_patient_reference\",\n \"ImmunizationEvaluation_immunization-event_reference\" = \"ImmunizationEvaluation_immunization-event_reference\",\n \"ImmunizationRecommendation_patient_reference\" = \"ImmunizationRecommendation_patient_reference\",\n \"ImmunizationRecommendation_information_reference\" = \"ImmunizationRecommendation_information_reference\",\n \"ImmunizationRecommendation_support_reference\" = \"ImmunizationRecommendation_support_reference\",\n \"ImplementationGuide_depends-on_reference\" = \"ImplementationGuide_depends-on_reference\",\n \"ImplementationGuide_global_reference\" = \"ImplementationGuide_global_reference\",\n \"ImplementationGuide_resource_reference\" = \"ImplementationGuide_resource_reference\",\n \"Ingredient_for_reference\" = \"Ingredient_for_reference\",\n \"Ingredient_manufacturer_reference\" = \"Ingredient_manufacturer_reference\",\n \"Ingredient_substance_reference\" = \"Ingredient_substance_reference\",\n \"Ingredient_substance-definition_reference\" = \"Ingredient_substance-definition_reference\",\n \"InsurancePlan_administered-by_reference\" = \"InsurancePlan_administered-by_reference\",\n \"InsurancePlan_endpoint_reference\" = \"InsurancePlan_endpoint_reference\",\n \"InsurancePlan_owned-by_reference\" = \"InsurancePlan_owned-by_reference\",\n \"InventoryItem_subject_reference\" = \"InventoryItem_subject_reference\",\n \"InventoryReport_item-reference_reference\" = \"InventoryReport_item-reference_reference\",\n \"Invoice_patient_reference\" = \"Invoice_patient_reference\",\n \"Invoice_account_reference\" = \"Invoice_account_reference\",\n \"Invoice_issuer_reference\" = \"Invoice_issuer_reference\",\n \"Invoice_participant_reference\" = \"Invoice_participant_reference\",\n \"Invoice_recipient_reference\" = \"Invoice_recipient_reference\",\n \"Invoice_subject_reference\" = \"Invoice_subject_reference\",\n \"Library_composed-of_reference\" = \"Library_composed-of_reference\",\n \"Library_depends-on_reference\" = \"Library_depends-on_reference\",\n \"Library_derived-from_reference\" = \"Library_derived-from_reference\",\n \"Library_predecessor_reference\" = \"Library_predecessor_reference\",\n \"Library_successor_reference\" = \"Library_successor_reference\",\n \"Linkage_author_reference\" = \"Linkage_author_reference\",\n \"Linkage_item_reference\" = \"Linkage_item_reference\",\n \"Linkage_source_reference\" = \"Linkage_source_reference\",\n \"List_patient_reference\" = \"List_patient_reference\",\n \"List_encounter_reference\" = \"List_encounter_reference\",\n \"List_item_reference\" = \"List_item_reference\",\n \"List_source_reference\" = \"List_source_reference\",\n \"List_subject_reference\" = \"List_subject_reference\",\n \"Location_endpoint_reference\" = \"Location_endpoint_reference\",\n \"Location_organization_reference\" = \"Location_organization_reference\",\n \"Location_partof_reference\" = \"Location_partof_reference\",\n \"Measure_composed-of_reference\" = \"Measure_composed-of_reference\",\n \"Measure_depends-on_reference\" = \"Measure_depends-on_reference\",\n \"Measure_derived-from_reference\" = \"Measure_derived-from_reference\",\n \"Measure_predecessor_reference\" = \"Measure_predecessor_reference\",\n \"Measure_successor_reference\" = \"Measure_successor_reference\",\n \"MeasureReport_patient_reference\" = \"MeasureReport_patient_reference\",\n \"MeasureReport_evaluated-resource_reference\" = \"MeasureReport_evaluated-resource_reference\",\n \"MeasureReport_location_reference\" = \"MeasureReport_location_reference\",\n \"MeasureReport_measure_reference\" = \"MeasureReport_measure_reference\",\n \"MeasureReport_reporter_reference\" = \"MeasureReport_reporter_reference\",\n \"MeasureReport_subject_reference\" = \"MeasureReport_subject_reference\",\n \"Medication_ingredient_reference\" = \"Medication_ingredient_reference\",\n \"Medication_marketingauthorizationholder_reference\" = \"Medication_marketingauthorizationholder_reference\",\n \"MedicationAdministration_patient_reference\" = \"MedicationAdministration_patient_reference\",\n \"MedicationAdministration_device_reference\" = \"MedicationAdministration_device_reference\",\n \"MedicationAdministration_encounter_reference\" = \"MedicationAdministration_encounter_reference\",\n \"MedicationAdministration_medication_reference\" = \"MedicationAdministration_medication_reference\",\n \"MedicationAdministration_performer_reference\" = \"MedicationAdministration_performer_reference\",\n \"MedicationAdministration_reason-given_reference\" = \"MedicationAdministration_reason-given_reference\",\n \"MedicationAdministration_request_reference\" = \"MedicationAdministration_request_reference\",\n \"MedicationAdministration_subject_reference\" = \"MedicationAdministration_subject_reference\",\n \"MedicationDispense_patient_reference\" = \"MedicationDispense_patient_reference\",\n \"MedicationDispense_encounter_reference\" = \"MedicationDispense_encounter_reference\",\n \"MedicationDispense_medication_reference\" = \"MedicationDispense_medication_reference\",\n \"MedicationDispense_destination_reference\" = \"MedicationDispense_destination_reference\",\n \"MedicationDispense_location_reference\" = \"MedicationDispense_location_reference\",\n \"MedicationDispense_performer_reference\" = \"MedicationDispense_performer_reference\",\n \"MedicationDispense_prescription_reference\" = \"MedicationDispense_prescription_reference\",\n \"MedicationDispense_receiver_reference\" = \"MedicationDispense_receiver_reference\",\n \"MedicationDispense_responsibleparty_reference\" = \"MedicationDispense_responsibleparty_reference\",\n \"MedicationDispense_subject_reference\" = \"MedicationDispense_subject_reference\",\n \"MedicationKnowledge_ingredient_reference\" = \"MedicationKnowledge_ingredient_reference\",\n \"MedicationKnowledge_monograph_reference\" = \"MedicationKnowledge_monograph_reference\",\n \"MedicationRequest_patient_reference\" = \"MedicationRequest_patient_reference\",\n \"MedicationRequest_encounter_reference\" = \"MedicationRequest_encounter_reference\",\n \"MedicationRequest_medication_reference\" = \"MedicationRequest_medication_reference\",\n \"MedicationRequest_intended-dispenser_reference\" = \"MedicationRequest_intended-dispenser_reference\",\n \"MedicationRequest_intended-performer_reference\" = \"MedicationRequest_intended-performer_reference\",\n \"MedicationRequest_requester_reference\" = \"MedicationRequest_requester_reference\",\n \"MedicationRequest_subject_reference\" = \"MedicationRequest_subject_reference\",\n \"MedicationStatement_patient_reference\" = \"MedicationStatement_patient_reference\",\n \"MedicationStatement_encounter_reference\" = \"MedicationStatement_encounter_reference\",\n \"MedicationStatement_medication_reference\" = \"MedicationStatement_medication_reference\",\n \"MedicationStatement_source_reference\" = \"MedicationStatement_source_reference\",\n \"MedicationStatement_subject_reference\" = \"MedicationStatement_subject_reference\",\n \"MedicinalProductDefinition_contact_reference\" = \"MedicinalProductDefinition_contact_reference\",\n \"MedicinalProductDefinition_master-file_reference\" = \"MedicinalProductDefinition_master-file_reference\",\n \"MessageDefinition_parent_reference\" = \"MessageDefinition_parent_reference\",\n \"MessageHeader_author_reference\" = \"MessageHeader_author_reference\",\n \"MessageHeader_focus_reference\" = \"MessageHeader_focus_reference\",\n \"MessageHeader_receiver_reference\" = \"MessageHeader_receiver_reference\",\n \"MessageHeader_responsible_reference\" = \"MessageHeader_responsible_reference\",\n \"MessageHeader_sender_reference\" = \"MessageHeader_sender_reference\",\n \"MessageHeader_target_reference\" = \"MessageHeader_target_reference\",\n \"MolecularSequence_patient_reference\" = \"MolecularSequence_patient_reference\",\n \"MolecularSequence_focus_reference\" = \"MolecularSequence_focus_reference\",\n \"MolecularSequence_subject_reference\" = \"MolecularSequence_subject_reference\",\n \"NamingSystem_derived-from_reference\" = \"NamingSystem_derived-from_reference\",\n \"NamingSystem_predecessor_reference\" = \"NamingSystem_predecessor_reference\",\n \"NutritionIntake_patient_reference\" = \"NutritionIntake_patient_reference\",\n \"NutritionIntake_encounter_reference\" = \"NutritionIntake_encounter_reference\",\n \"NutritionIntake_source_reference\" = \"NutritionIntake_source_reference\",\n \"NutritionIntake_subject_reference\" = \"NutritionIntake_subject_reference\",\n \"NutritionOrder_patient_reference\" = \"NutritionOrder_patient_reference\",\n \"NutritionOrder_encounter_reference\" = \"NutritionOrder_encounter_reference\",\n \"NutritionOrder_provider_reference\" = \"NutritionOrder_provider_reference\",\n \"NutritionOrder_subject_reference\" = \"NutritionOrder_subject_reference\",\n \"Observation_patient_reference\" = \"Observation_patient_reference\",\n \"Observation_encounter_reference\" = \"Observation_encounter_reference\",\n \"Observation_based-on_reference\" = \"Observation_based-on_reference\",\n \"Observation_component-value-reference_reference\" = \"Observation_component-value-reference_reference\",\n \"Observation_derived-from_reference\" = \"Observation_derived-from_reference\",\n \"Observation_device_reference\" = \"Observation_device_reference\",\n \"Observation_focus_reference\" = \"Observation_focus_reference\",\n \"Observation_has-member_reference\" = \"Observation_has-member_reference\",\n \"Observation_part-of_reference\" = \"Observation_part-of_reference\",\n \"Observation_performer_reference\" = \"Observation_performer_reference\",\n \"Observation_specimen_reference\" = \"Observation_specimen_reference\",\n \"Observation_subject_reference\" = \"Observation_subject_reference\",\n \"Observation_value-reference_reference\" = \"Observation_value-reference_reference\",\n \"OperationDefinition_base_reference\" = \"OperationDefinition_base_reference\",\n \"OperationDefinition_input-profile_reference\" = \"OperationDefinition_input-profile_reference\",\n \"OperationDefinition_output-profile_reference\" = \"OperationDefinition_output-profile_reference\",\n \"Organization_endpoint_reference\" = \"Organization_endpoint_reference\",\n \"Organization_partof_reference\" = \"Organization_partof_reference\",\n \"OrganizationAffiliation_endpoint_reference\" = \"OrganizationAffiliation_endpoint_reference\",\n \"OrganizationAffiliation_location_reference\" = \"OrganizationAffiliation_location_reference\",\n \"OrganizationAffiliation_network_reference\" = \"OrganizationAffiliation_network_reference\",\n \"OrganizationAffiliation_participating-organization_reference\" = \"OrganizationAffiliation_participating-organization_reference\",\n \"OrganizationAffiliation_primary-organization_reference\" = \"OrganizationAffiliation_primary-organization_reference\",\n \"OrganizationAffiliation_service_reference\" = \"OrganizationAffiliation_service_reference\",\n \"PackagedProductDefinition_biological_reference\" = \"PackagedProductDefinition_biological_reference\",\n \"PackagedProductDefinition_contained-item_reference\" = \"PackagedProductDefinition_contained-item_reference\",\n \"PackagedProductDefinition_device_reference\" = \"PackagedProductDefinition_device_reference\",\n \"PackagedProductDefinition_manufactured-item_reference\" = \"PackagedProductDefinition_manufactured-item_reference\",\n \"PackagedProductDefinition_medication_reference\" = \"PackagedProductDefinition_medication_reference\",\n \"PackagedProductDefinition_nutrition_reference\" = \"PackagedProductDefinition_nutrition_reference\",\n \"PackagedProductDefinition_package_reference\" = \"PackagedProductDefinition_package_reference\",\n \"PackagedProductDefinition_package-for_reference\" = \"PackagedProductDefinition_package-for_reference\",\n \"Patient_general-practitioner_reference\" = \"Patient_general-practitioner_reference\",\n \"Patient_link_reference\" = \"Patient_link_reference\",\n \"Patient_organization_reference\" = \"Patient_organization_reference\",\n \"PaymentNotice_reporter_reference\" = \"PaymentNotice_reporter_reference\",\n \"PaymentNotice_request_reference\" = \"PaymentNotice_request_reference\",\n \"PaymentNotice_response_reference\" = \"PaymentNotice_response_reference\",\n \"PaymentReconciliation_allocation-account_reference\" = \"PaymentReconciliation_allocation-account_reference\",\n \"PaymentReconciliation_allocation-encounter_reference\" = \"PaymentReconciliation_allocation-encounter_reference\",\n \"PaymentReconciliation_payment-issuer_reference\" = \"PaymentReconciliation_payment-issuer_reference\",\n \"PaymentReconciliation_request_reference\" = \"PaymentReconciliation_request_reference\",\n \"PaymentReconciliation_requestor_reference\" = \"PaymentReconciliation_requestor_reference\",\n \"Person_patient_reference\" = \"Person_patient_reference\",\n \"Person_link_reference\" = \"Person_link_reference\",\n \"Person_organization_reference\" = \"Person_organization_reference\",\n \"Person_practitioner_reference\" = \"Person_practitioner_reference\",\n \"Person_relatedperson_reference\" = \"Person_relatedperson_reference\",\n \"PlanDefinition_composed-of_reference\" = \"PlanDefinition_composed-of_reference\",\n \"PlanDefinition_depends-on_reference\" = \"PlanDefinition_depends-on_reference\",\n \"PlanDefinition_derived-from_reference\" = \"PlanDefinition_derived-from_reference\",\n \"PlanDefinition_predecessor_reference\" = \"PlanDefinition_predecessor_reference\",\n \"PlanDefinition_successor_reference\" = \"PlanDefinition_successor_reference\",\n \"PlanDefinition_definition_reference\" = \"PlanDefinition_definition_reference\",\n \"PractitionerRole_endpoint_reference\" = \"PractitionerRole_endpoint_reference\",\n \"PractitionerRole_location_reference\" = \"PractitionerRole_location_reference\",\n \"PractitionerRole_organization_reference\" = \"PractitionerRole_organization_reference\",\n \"PractitionerRole_practitioner_reference\" = \"PractitionerRole_practitioner_reference\",\n \"PractitionerRole_service_reference\" = \"PractitionerRole_service_reference\",\n \"Procedure_patient_reference\" = \"Procedure_patient_reference\",\n \"Procedure_encounter_reference\" = \"Procedure_encounter_reference\",\n \"Procedure_based-on_reference\" = \"Procedure_based-on_reference\",\n \"Procedure_instantiates-canonical_reference\" = \"Procedure_instantiates-canonical_reference\",\n \"Procedure_location_reference\" = \"Procedure_location_reference\",\n \"Procedure_part-of_reference\" = \"Procedure_part-of_reference\",\n \"Procedure_performer_reference\" = \"Procedure_performer_reference\",\n \"Procedure_reason-reference_reference\" = \"Procedure_reason-reference_reference\",\n \"Procedure_report_reference\" = \"Procedure_report_reference\",\n \"Procedure_subject_reference\" = \"Procedure_subject_reference\",\n \"Provenance_patient_reference\" = \"Provenance_patient_reference\",\n \"Provenance_encounter_reference\" = \"Provenance_encounter_reference\",\n \"Provenance_agent_reference\" = \"Provenance_agent_reference\",\n \"Provenance_based-on_reference\" = \"Provenance_based-on_reference\",\n \"Provenance_entity_reference\" = \"Provenance_entity_reference\",\n \"Provenance_location_reference\" = \"Provenance_location_reference\",\n \"Provenance_target_reference\" = \"Provenance_target_reference\",\n \"QuestionnaireResponse_patient_reference\" = \"QuestionnaireResponse_patient_reference\",\n \"QuestionnaireResponse_encounter_reference\" = \"QuestionnaireResponse_encounter_reference\",\n \"QuestionnaireResponse_author_reference\" = \"QuestionnaireResponse_author_reference\",\n \"QuestionnaireResponse_based-on_reference\" = \"QuestionnaireResponse_based-on_reference\",\n \"QuestionnaireResponse_item-subject_reference\" = \"QuestionnaireResponse_item-subject_reference\",\n \"QuestionnaireResponse_part-of_reference\" = \"QuestionnaireResponse_part-of_reference\",\n \"QuestionnaireResponse_questionnaire_reference\" = \"QuestionnaireResponse_questionnaire_reference\",\n \"QuestionnaireResponse_source_reference\" = \"QuestionnaireResponse_source_reference\",\n \"QuestionnaireResponse_subject_reference\" = \"QuestionnaireResponse_subject_reference\",\n \"RegulatedAuthorization_holder_reference\" = \"RegulatedAuthorization_holder_reference\",\n \"RegulatedAuthorization_subject_reference\" = \"RegulatedAuthorization_subject_reference\",\n \"RelatedPerson_patient_reference\" = \"RelatedPerson_patient_reference\",\n \"RequestOrchestration_patient_reference\" = \"RequestOrchestration_patient_reference\",\n \"RequestOrchestration_encounter_reference\" = \"RequestOrchestration_encounter_reference\",\n \"RequestOrchestration_author_reference\" = \"RequestOrchestration_author_reference\",\n \"RequestOrchestration_based-on_reference\" = \"RequestOrchestration_based-on_reference\",\n \"RequestOrchestration_instantiates-canonical_reference\" = \"RequestOrchestration_instantiates-canonical_reference\",\n \"RequestOrchestration_participant_reference\" = \"RequestOrchestration_participant_reference\",\n \"RequestOrchestration_subject_reference\" = \"RequestOrchestration_subject_reference\",\n \"Requirements_actor_reference\" = \"Requirements_actor_reference\",\n \"Requirements_derived-from_reference\" = \"Requirements_derived-from_reference\",\n \"ResearchStudy_eligibility_reference\" = \"ResearchStudy_eligibility_reference\",\n \"ResearchStudy_focus-reference_reference\" = \"ResearchStudy_focus-reference_reference\",\n \"ResearchStudy_part-of_reference\" = \"ResearchStudy_part-of_reference\",\n \"ResearchStudy_protocol_reference\" = \"ResearchStudy_protocol_reference\",\n \"ResearchStudy_site_reference\" = \"ResearchStudy_site_reference\",\n \"ResearchSubject_patient_reference\" = \"ResearchSubject_patient_reference\",\n \"ResearchSubject_study_reference\" = \"ResearchSubject_study_reference\",\n \"ResearchSubject_subject_reference\" = \"ResearchSubject_subject_reference\",\n \"RiskAssessment_patient_reference\" = \"RiskAssessment_patient_reference\",\n \"RiskAssessment_encounter_reference\" = \"RiskAssessment_encounter_reference\",\n \"RiskAssessment_condition_reference\" = \"RiskAssessment_condition_reference\",\n \"RiskAssessment_performer_reference\" = \"RiskAssessment_performer_reference\",\n \"RiskAssessment_subject_reference\" = \"RiskAssessment_subject_reference\",\n \"Schedule_actor_reference\" = \"Schedule_actor_reference\",\n \"Schedule_service-type-reference_reference\" = \"Schedule_service-type-reference_reference\",\n \"SearchParameter_component_reference\" = \"SearchParameter_component_reference\",\n \"SearchParameter_derived-from_reference\" = \"SearchParameter_derived-from_reference\",\n \"ServiceRequest_patient_reference\" = \"ServiceRequest_patient_reference\",\n \"ServiceRequest_encounter_reference\" = \"ServiceRequest_encounter_reference\",\n \"ServiceRequest_based-on_reference\" = \"ServiceRequest_based-on_reference\",\n \"ServiceRequest_body-structure_reference\" = \"ServiceRequest_body-structure_reference\",\n \"ServiceRequest_code-reference_reference\" = \"ServiceRequest_code-reference_reference\",\n \"ServiceRequest_instantiates-canonical_reference\" = \"ServiceRequest_instantiates-canonical_reference\",\n \"ServiceRequest_performer_reference\" = \"ServiceRequest_performer_reference\",\n \"ServiceRequest_replaces_reference\" = \"ServiceRequest_replaces_reference\",\n \"ServiceRequest_requester_reference\" = \"ServiceRequest_requester_reference\",\n \"ServiceRequest_specimen_reference\" = \"ServiceRequest_specimen_reference\",\n \"ServiceRequest_subject_reference\" = \"ServiceRequest_subject_reference\",\n \"Slot_schedule_reference\" = \"Slot_schedule_reference\",\n \"Slot_service-type-reference_reference\" = \"Slot_service-type-reference_reference\",\n \"Specimen_patient_reference\" = \"Specimen_patient_reference\",\n \"Specimen_bodysite_reference\" = \"Specimen_bodysite_reference\",\n \"Specimen_collector_reference\" = \"Specimen_collector_reference\",\n \"Specimen_container-device_reference\" = \"Specimen_container-device_reference\",\n \"Specimen_parent_reference\" = \"Specimen_parent_reference\",\n \"Specimen_procedure_reference\" = \"Specimen_procedure_reference\",\n \"Specimen_subject_reference\" = \"Specimen_subject_reference\",\n \"StructureDefinition_base_reference\" = \"StructureDefinition_base_reference\",\n \"StructureDefinition_valueset_reference\" = \"StructureDefinition_valueset_reference\",\n \"Subscription_owner_reference\" = \"Subscription_owner_reference\",\n \"Substance_code-reference_reference\" = \"Substance_code-reference_reference\",\n \"Substance_substance-reference_reference\" = \"Substance_substance-reference_reference\",\n \"SupplyDelivery_patient_reference\" = \"SupplyDelivery_patient_reference\",\n \"SupplyDelivery_receiver_reference\" = \"SupplyDelivery_receiver_reference\",\n \"SupplyDelivery_supplier_reference\" = \"SupplyDelivery_supplier_reference\",\n \"SupplyRequest_patient_reference\" = \"SupplyRequest_patient_reference\",\n \"SupplyRequest_requester_reference\" = \"SupplyRequest_requester_reference\",\n \"SupplyRequest_subject_reference\" = \"SupplyRequest_subject_reference\",\n \"SupplyRequest_supplier_reference\" = \"SupplyRequest_supplier_reference\",\n \"Task_patient_reference\" = \"Task_patient_reference\",\n \"Task_encounter_reference\" = \"Task_encounter_reference\",\n \"Task_actor_reference\" = \"Task_actor_reference\",\n \"Task_based-on_reference\" = \"Task_based-on_reference\",\n \"Task_focus_reference\" = \"Task_focus_reference\",\n \"Task_output_reference\" = \"Task_output_reference\",\n \"Task_owner_reference\" = \"Task_owner_reference\",\n \"Task_part-of_reference\" = \"Task_part-of_reference\",\n \"Task_requestedperformer-reference_reference\" = \"Task_requestedperformer-reference_reference\",\n \"Task_requester_reference\" = \"Task_requester_reference\",\n \"Task_subject_reference\" = \"Task_subject_reference\",\n \"TestPlan_scope_reference\" = \"TestPlan_scope_reference\",\n \"TestReport_testscript_reference\" = \"TestReport_testscript_reference\",\n \"TestScript_scope-artifact_reference\" = \"TestScript_scope-artifact_reference\",\n \"ValueSet_derived-from_reference\" = \"ValueSet_derived-from_reference\",\n \"ValueSet_predecessor_reference\" = \"ValueSet_predecessor_reference\",\n \"VerificationResult_attestation-onbehalfof_reference\" = \"VerificationResult_attestation-onbehalfof_reference\",\n \"VerificationResult_attestation-who_reference\" = \"VerificationResult_attestation-who_reference\",\n \"VerificationResult_primarysource-who_reference\" = \"VerificationResult_primarysource-who_reference\",\n \"VerificationResult_target_reference\" = \"VerificationResult_target_reference\",\n \"VerificationResult_validator-organization_reference\" = \"VerificationResult_validator-organization_reference\",\n \"VisionPrescription_patient_reference\" = \"VisionPrescription_patient_reference\",\n \"VisionPrescription_encounter_reference\" = \"VisionPrescription_encounter_reference\",\n \"VisionPrescription_prescriber_reference\" = \"VisionPrescription_prescriber_reference\",\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n]);\nfunction inlineRef(schema, limit = true) {\n if (typeof schema == \"boolean\")\n return true;\n if (limit === true)\n return !hasRef(schema);\n if (!limit)\n return false;\n return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key))\n return true;\n const sch = schema[key];\n if (Array.isArray(sch) && sch.some(hasRef))\n return true;\n if (typeof sch == \"object\" && hasRef(sch))\n return true;\n }\n return false;\n}\nfunction countKeys(schema) {\n let count = 0;\n for (const key in schema) {\n if (key === \"$ref\")\n return Infinity;\n count++;\n if (SIMPLE_INLINED.has(key))\n continue;\n if (typeof schema[key] == \"object\") {\n (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/**\n * @param {Array<string>} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array<string>} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n buffer.length = 0\n return true\n}\n\n/**\n * @param {Array<string>} buffer\n * @param {Array<string>} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n if (buffer.length) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== '') {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n buffer.length = 0\n }\n return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n /** @type {Array<string>} */\n const address = []\n /** @type {Array<string>} */\n const buffer = []\n let endipv6Encountered = false\n let endIpv6 = false\n\n let consume = consumeHextets\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume(buffer, address, output)) { break }\n if (++tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i > 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n address.push(':')\n continue\n } else if (cursor === '%') {\n if (!consume(buffer, address, output)) { break }\n // switch to zone detection\n consume = consumeIsZone\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (consume === consumeIsZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, isIPV6: true, escapedHost }\n } else {\n return { host, isIPV6: false }\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {boolean} esc\n * @returns {import('../types/index').URIComponent}\n */\nfunction normalizeComponentEncoding (component, esc) {\n const func = esc !== true ? escape : unescape\n if (component.scheme !== undefined) {\n component.scheme = func(component.scheme)\n }\n if (component.userinfo !== undefined) {\n component.userinfo = func(component.userinfo)\n }\n if (component.host !== undefined) {\n component.host = func(component.host)\n }\n if (component.path !== undefined) {\n component.path = func(component.path)\n }\n if (component.query !== undefined) {\n component.query = func(component.query)\n }\n if (component.fragment !== undefined) {\n component.fragment = func(component.fragment)\n }\n return component\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(component.userinfo)\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = unescape(component.host)\n if (!isIPv4(host)) {\n const ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = component.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(component.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const [path, query] = wsComponent.resourceName.split('?')\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = query\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (serialize(parse(uri, options), options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\n/**\n * @param {Readonly<import('./types/index').URIComponent>} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = escape(component.path)\n\n if (component.scheme !== undefined) {\n component.path = component.path.split('%3A').join(':')\n }\n } else {\n component.path = unescape(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', component.query)\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', component.fragment)\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const ipv6result = normalizeIPv6(parsed.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","import Ajv, { ValidateFunction } from \"ajv\";\n\n// ---- Version-agnostic OperationOutcome (v6-friendly) ------------------------\nexport type AjvErr = { dataPath?: string; instancePath?: string; message?: string; params?: any };\n\nimport draft6 from './fhir-schema/draft-06.json'\nimport fhirSchema from './fhir-schema/fhir.schema.json'\n\nexport class STSFhirValidator {\n #ajv: Ajv;\n #validatorCache: Map<string, ValidateFunction>;\n #bundleValidator: ValidateFunction;\n\n private static instance: STSFhirValidator;\n\n static getInstance(): STSFhirValidator {\n if (!STSFhirValidator.instance) {\n STSFhirValidator.instance = new STSFhirValidator();\n }\n return STSFhirValidator.instance;\n } \n\n private constructor() {\n this.#ajv = new Ajv({\n allErrors: true,\n verbose: true,\n strict: false // <- unknown keywords won't error\n });\n\n this.#ajv.addMetaSchema(draft6);\n this.#ajv.addSchema(fhirSchema, \"FHIR\");\n\n // Cache compiled validators\n this.#validatorCache = new Map<string, ValidateFunction>();\n this.#bundleValidator = this.#ajv.compile({ $ref: \"FHIR#/definitions/Bundle\" });\n }\n\n get bundleValidator() {\n return this.#bundleValidator;\n }\n\n ToOperationOutcome(errors: AjvErr[] | null | undefined, code?: string, diagnosticsPrefix?: string) {\n const diag = diagnosticsPrefix ?? \"Validation failed\";\n\n const displayPath = (e: AjvErr) =>\n (e.instancePath && e.instancePath.length ? e.instancePath : (e.dataPath ?? \"\")) || \"/\";\n\n const exprPath = (e: AjvErr) => {\n if (e.instancePath && e.instancePath.length) {\n // \"/name/0/family\" -> \"name.0.family\"\n return e.instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\");\n }\n if (e.dataPath && e.dataPath.length) {\n // \".name[0].family\" or \"/name/0/family\" -> \"name.0.family\"\n const p = e.dataPath.startsWith(\"/\")\n ? e.dataPath.replace(/^\\//, \"\").replace(/\\//g, \".\")\n : e.dataPath.replace(/^\\./, \"\").replace(/\\[(\\d+)\\]/g, \".$1\");\n return p || undefined;\n }\n return undefined;\n };\n\n if (errors && errors.length > 0) {\n return {\n resourceType: \"OperationOutcome\",\n issue: (errors ?? []).map((e) => ({\n severity: \"error\",\n code: \"invalid\",\n diagnostics: `${diag}: ${displayPath(e)} ${e.message ?? \"\"}`.trim(),\n details: e.params ? { text: JSON.stringify(e.params) } : undefined,\n ...(exprPath(e) ? { expression: [exprPath(e)!] } : {}),\n })),\n };\n } else {\n return {\n resourceType: \"OperationOutcome\",\n issue: [\n {\n severity: \"error\",\n code, // \"invalid\",\n diagnostics: diagnosticsPrefix\n }\n ]\n };\n }\n }\n\n LoadValidator(resourceType: string): void {\n this.#getValidatorForResourceType(resourceType);\n }\n\n #getValidatorForResourceType(resourceType: string): ValidateFunction {\n let validateFunction = this.#validatorCache.get(resourceType);\n if (!validateFunction) {\n validateFunction = this.#ajv.compile({ $ref: `FHIR#/definitions/${resourceType}` });\n this.#validatorCache.set(resourceType, validateFunction!);\n }\n return validateFunction!;\n }\n\n ValidateResource(res: any): { ok: true } | { ok: false; outcome: any } {\n if (!res || typeof res !== \"object\" || !res.resourceType) {\n return { ok: false, outcome: this.ToOperationOutcome([], 'invalid', \"Missing or invalid resourceType\") };\n }\n const validate = this.#getValidatorForResourceType(res.resourceType);\n const ok = !!validate(res);\n if (ok) {\n return { \n ok: true\n };\n }\n return { ok: false, outcome: this.ToOperationOutcome(validate.errors as AjvErr[] | null | undefined) };\n }\n\n // ---- Validation middleware for single-resource writes -----------------------\n /*\n ValidateBodyIsFHIR(req: Request, res: Response, next: NextFunction) {\n const body = req.body;\n if (!body || typeof body !== \"object\" || !body.resourceType) {\n return res.status(400).json(this.ToOperationOutcome([], 'invalid', \"Body must be a FHIR resource with resourceType\"));\n }\n const result = this.ValidateResource(body);\n if (!result.ok) {\n return res.status(400).json(result.outcome);\n }\n next();\n }\n */\n}\n","/**\n * Normalize a URI for comparison by removing trailing slashes,\n * query parameters, and fragments.\n */\nexport function normalizeUri(uri: string): string {\n try {\n const u = new URL(uri);\n u.search = '';\n u.hash = '';\n return u.toString().replace(/\\/+$/, '');\n } catch (err) {\n throw new Error(`Invalid URI: ${uri}`);\n }\n}\n\nexport function isAbsoluteUrl(val: string): boolean {\n try { \n new URL(val); \n return true; \n } catch {\n return false; \n }\n}\n\n// baseUrl = `${req.protocol}://${req.get(\"host\")}${this.#options.base}/`;\n// searchUrl = new URL(`${req.protocol}://${req.get(\"host\")}${req.originalUrl}`)\n// baseUrlNoParams = `${req.protocol}://${req.get('host')}${req.baseUrl}${req.path}`;\n// fullUrl: `${searchUrl.toString().split(\"?\")[0]}/${r.id}`\n\nexport function getBaseResource(url: URL): string {\n // Split path into segments\n const segments = url.pathname.split(\"/\").filter(Boolean);\n\n // Drop the last segment (resource name, e.g., Person)\n const basePath = segments.slice(0, -1).join(\"/\");\n\n // Rebuild URL\n return url.origin + \"/\" + (basePath ? basePath + \"/\" : \"\");\n}\n\n/**\n * Return all hierarchical URI segments from most specific to least.\n * For example:\n * http://a/b/c → [http://a/b/c, http://a/b, http://a]\n */\nexport function GetAboveHierarchy(uri: string): string[] {\n const url = new URL(uri);\n url.search = '';\n url.hash = '';\n\n const base = `${url.protocol}//${url.host}`;\n const pathParts = url.pathname.split('/').filter(Boolean);\n\n const hierarchy: string[] = [base];\n for (let i = 0; i < pathParts.length; i++) {\n hierarchy.push(`${base}/${pathParts.slice(0, i + 1).join('/')}`);\n }\n\n return hierarchy.reverse().map(u => u.replace(/\\/+$/, ''));\n} \n"],"names":["require$$0","keyword","value","conversions","route","require$$1","code","colorConvert","module","util","unescape","escape","chalk","styles","ansiStyles","require$$2","self","parts","require$$3","StatusCodes","withNativeBlob","withNativeArrayBuffer","isView","type","lookup","decode","isBinary","protocol","globalThis","description","Emitter","uri","_a","names","DEFAULT_TRANSPORTS","Socket","RESERVED_EVENTS","PacketType","id","resolve","Engine","socket","source","io","uuidv4","Sleep","url","STSAxiosConfig","isNode","fhirRT","fhirSP","fhirSPRefOnly","exports","UsedValueState","not","items","rules","Type","names_1","require$$4","DataType","types","dataType","properties","pattern","validate","errors","subschema","equal","jsonSchemaTraverseModule","ref","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","parse","fastUri","fastUriModule","uri_1","Ajv","$schema","definitions","format","core_1","core","ucs2length_1","ucs2length","equal_1","validation_1","validation","prefixItems","oneOf","require$$11","require$$12","require$$13","require$$14","require$$15","applicator","format_2","DiscrError","discriminator","required"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113]}
|