@learncard/vpqr-plugin 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../node_modules/.pnpm/base32-decode@1.0.0/node_modules/base32-decode/index.js", "../../../../node_modules/.pnpm/tslib@2.5.0/node_modules/tslib/tslib.js", "../src/index.ts", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/is.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/token.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/byte-utils.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/bl.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/common.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/0uint.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/1negint.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/2bytes.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/3string.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/4array.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/5map.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/6tag.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/7float.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/jump.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/encode.js", "../../../../node_modules/.pnpm/cborg@1.10.0/node_modules/cborg/esm/lib/decode.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/CborldError.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/CborldDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/registeredContexts.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/ContextDecoder.js", "../../../../node_modules/.pnpm/js-base64@3.7.5/node_modules/js-base64/base64.mjs", "../../../../node_modules/.pnpm/base58-universal@2.0.0/node_modules/base58-universal/lib/baseN.js", "../../../../node_modules/.pnpm/base58-universal@2.0.0/node_modules/base58-universal/lib/index.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/MultibaseDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/keywords.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/Transformer.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/Base58DidUrlDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/HttpUrlDecoder.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/parse.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UuidUrnDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UriDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/VocabTermDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateTimeDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/util-browser.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/Decompressor.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/decode.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/CborldEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/ContextEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/MultibaseEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/Base58DidUrlEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/HttpUrlEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UuidUrnEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UriEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/VocabTermEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateTimeEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/Compressor.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/encode.js", "../../../../node_modules/.pnpm/to-data-view@2.0.0/node_modules/to-data-view/index.js", "../../../../node_modules/.pnpm/base32-encode@2.0.0/node_modules/base32-encode/index.js", "../../../../node_modules/.pnpm/@digitalbazaar+vpqr@3.0.0/node_modules/@digitalbazaar/vpqr/lib/vpqr.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/common/Mode.js", "../../../../node_modules/.pnpm/tslib@2.5.0/node_modules/tslib/modules/index.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRData.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/encoding/UTF8.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRByte.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRMath.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/Polynomial.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRUtil.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/common/ErrorCorrectionLevel.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/RSBlock.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/BitBuffer.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/io/OutputStream.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/io/ByteArrayOutputStream.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/io/Base64EncodeOutputStream.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/image/GIFImage.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/common/MaskPattern.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/Writer.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/encoding/UTF16.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.0/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRAlphanumeric.js"],
4
- "sourcesContent": ["var RFC4648 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'\nvar RFC4648_HEX = '0123456789ABCDEFGHIJKLMNOPQRSTUV'\nvar CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'\n\nfunction readChar (alphabet, char) {\n var idx = alphabet.indexOf(char)\n\n if (idx === -1) {\n throw new Error('Invalid character found: ' + char)\n }\n\n return idx\n}\n\nmodule.exports = function base32Decode (input, variant) {\n var alphabet\n\n switch (variant) {\n case 'RFC3548':\n case 'RFC4648':\n alphabet = RFC4648\n input = input.replace(/=+$/, '')\n break\n case 'RFC4648-HEX':\n alphabet = RFC4648_HEX\n input = input.replace(/=+$/, '')\n break\n case 'Crockford':\n alphabet = CROCKFORD\n input = input.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')\n break\n default:\n throw new Error('Unknown base32 variant: ' + variant)\n }\n\n var length = input.length\n\n var bits = 0\n var value = 0\n\n var index = 0\n var output = new Uint8Array((length * 5 / 8) | 0)\n\n for (var i = 0; i < length; i++) {\n value = (value << 5) | readChar(alphabet, input[i])\n bits += 5\n\n if (bits >= 8) {\n output[index++] = (value >>> (bits - 8)) & 255\n bits -= 8\n }\n }\n\n return output.buffer\n}\n", "/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __esDecorate;\r\nvar __runInitializers;\r\nvar __propKey;\r\nvar __setFunctionName;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n };\r\n\r\n __runInitializers = function (thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n };\r\n\r\n __propKey = function (x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n };\r\n\r\n __setFunctionName = function (f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__esDecorate\", __esDecorate);\r\n exporter(\"__runInitializers\", __runInitializers);\r\n exporter(\"__propKey\", __propKey);\r\n exporter(\"__setFunctionName\", __setFunctionName);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n});\r\n", "import { toQrCode, fromQrCode } from '@digitalbazaar/vpqr';\n\nimport { VpqrPlugin, VpqrPluginDependentMethods } from './types';\nimport { LearnCard } from '@learncard/core';\n\nexport * from './types';\n\n/**\n * @group Plugins\n */\nexport const getVpqrPlugin = (\n learnCard: LearnCard<any, any, VpqrPluginDependentMethods>\n): VpqrPlugin => {\n return {\n name: 'Vpqr',\n displayName: 'VP QR',\n description: 'Allows reading and creating QR codes with Verifiable Presentations in them',\n methods: {\n vpFromQrCode: async (_learnCard, text) => {\n return (\n await fromQrCode({\n text,\n documentLoader: async (url: string) => ({\n document: await learnCard.invoke.contextLoader(url),\n }),\n })\n )?.vp;\n },\n vpToQrCode: async (_learnCard, vp) => {\n return (\n await toQrCode({\n vp,\n documentLoader: async (url: string) => ({\n document: await learnCard.invoke.contextLoader(url),\n }),\n })\n )?.imageDataUrl;\n },\n },\n };\n};\n", "const typeofs = [\n 'string',\n 'number',\n 'bigint',\n 'symbol'\n];\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'HTMLElement',\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nexport function is(value) {\n if (value === null) {\n return 'null';\n }\n if (value === undefined) {\n return 'undefined';\n }\n if (value === true || value === false) {\n return 'boolean';\n }\n const typeOf = typeof value;\n if (typeofs.includes(typeOf)) {\n return typeOf;\n }\n if (typeOf === 'function') {\n return 'Function';\n }\n if (Array.isArray(value)) {\n return 'Array';\n }\n if (isBuffer(value)) {\n return 'Buffer';\n }\n const objectType = getObjectType(value);\n if (objectType) {\n return objectType;\n }\n return 'Object';\n}\nfunction isBuffer(value) {\n return value && value.constructor && value.constructor.isBuffer && value.constructor.isBuffer.call(null, value);\n}\nfunction getObjectType(value) {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (objectTypeNames.includes(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n}", "class Type {\n constructor(major, name, terminal) {\n this.major = major;\n this.majorEncoded = major << 5;\n this.name = name;\n this.terminal = terminal;\n }\n toString() {\n return `Type[${ this.major }].${ this.name }`;\n }\n compare(typ) {\n return this.major < typ.major ? -1 : this.major > typ.major ? 1 : 0;\n }\n}\nType.uint = new Type(0, 'uint', true);\nType.negint = new Type(1, 'negint', true);\nType.bytes = new Type(2, 'bytes', true);\nType.string = new Type(3, 'string', true);\nType.array = new Type(4, 'array', false);\nType.map = new Type(5, 'map', false);\nType.tag = new Type(6, 'tag', false);\nType.float = new Type(7, 'float', true);\nType.false = new Type(7, 'false', true);\nType.true = new Type(7, 'true', true);\nType.null = new Type(7, 'null', true);\nType.undefined = new Type(7, 'undefined', true);\nType.break = new Type(7, 'break', true);\nclass Token {\n constructor(type, value, encodedLength) {\n this.type = type;\n this.value = value;\n this.encodedLength = encodedLength;\n this.encodedBytes = undefined;\n this.byteValue = undefined;\n }\n toString() {\n return `Token[${ this.type }].${ this.value }`;\n }\n}\nexport {\n Type,\n Token\n};", "export const useBuffer = globalThis.process && !globalThis.process.browser && globalThis.Buffer && typeof globalThis.Buffer.isBuffer === 'function';\nconst textDecoder = new TextDecoder();\nconst textEncoder = new TextEncoder();\nfunction isBuffer(buf) {\n return useBuffer && globalThis.Buffer.isBuffer(buf);\n}\nexport function asU8A(buf) {\n if (!(buf instanceof Uint8Array)) {\n return Uint8Array.from(buf);\n }\n return isBuffer(buf) ? new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength) : buf;\n}\nexport const toString = useBuffer ? (bytes, start, end) => {\n return end - start > 64 ? globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8') : utf8Slice(bytes, start, end);\n} : (bytes, start, end) => {\n return end - start > 64 ? textDecoder.decode(bytes.subarray(start, end)) : utf8Slice(bytes, start, end);\n};\nexport const fromString = useBuffer ? string => {\n return string.length > 64 ? globalThis.Buffer.from(string) : utf8ToBytes(string);\n} : string => {\n return string.length > 64 ? textEncoder.encode(string) : utf8ToBytes(string);\n};\nexport const fromArray = arr => {\n return Uint8Array.from(arr);\n};\nexport const slice = useBuffer ? (bytes, start, end) => {\n if (isBuffer(bytes)) {\n return new Uint8Array(bytes.subarray(start, end));\n }\n return bytes.slice(start, end);\n} : (bytes, start, end) => {\n return bytes.slice(start, end);\n};\nexport const concat = useBuffer ? (chunks, length) => {\n chunks = chunks.map(c => c instanceof Uint8Array ? c : globalThis.Buffer.from(c));\n return asU8A(globalThis.Buffer.concat(chunks, length));\n} : (chunks, length) => {\n const out = new Uint8Array(length);\n let off = 0;\n for (let b of chunks) {\n if (off + b.length > out.length) {\n b = b.subarray(0, out.length - off);\n }\n out.set(b, off);\n off += b.length;\n }\n return out;\n};\nexport const alloc = useBuffer ? size => {\n return globalThis.Buffer.allocUnsafe(size);\n} : size => {\n return new Uint8Array(size);\n};\nexport const toHex = useBuffer ? d => {\n if (typeof d === 'string') {\n return d;\n }\n return globalThis.Buffer.from(toBytes(d)).toString('hex');\n} : d => {\n if (typeof d === 'string') {\n return d;\n }\n return Array.prototype.reduce.call(toBytes(d), (p, c) => `${ p }${ c.toString(16).padStart(2, '0') }`, '');\n};\nexport const fromHex = useBuffer ? hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n return globalThis.Buffer.from(hex, 'hex');\n} : hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n if (!hex.length) {\n return new Uint8Array(0);\n }\n return new Uint8Array(hex.split('').map((c, i, d) => i % 2 === 0 ? `0x${ c }${ d[i + 1] }` : '').filter(Boolean).map(e => parseInt(e, 16)));\n};\nfunction toBytes(obj) {\n if (obj instanceof Uint8Array && obj.constructor.name === 'Uint8Array') {\n return obj;\n }\n if (obj instanceof ArrayBuffer) {\n return new Uint8Array(obj);\n }\n if (ArrayBuffer.isView(obj)) {\n return new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n}\nexport function compare(b1, b2) {\n if (isBuffer(b1) && isBuffer(b2)) {\n return b1.compare(b2);\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] === b2[i]) {\n continue;\n }\n return b1[i] < b2[i] ? -1 : 1;\n }\n return 0;\n}\nfunction utf8ToBytes(string, units = Infinity) {\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n}\nfunction utf8Slice(buf, offset, end) {\n const res = [];\n while (offset < end) {\n const firstByte = buf[offset];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (offset + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[offset + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n fourthByte = buf[offset + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n offset += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n}\nconst MAX_ARGUMENTS_LENGTH = 4096;\nexport function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = '';\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n}", "import {\n alloc,\n concat,\n slice\n} from './byte-utils.js';\nconst defaultChunkSize = 256;\nexport class Bl {\n constructor(chunkSize = defaultChunkSize) {\n this.chunkSize = chunkSize;\n this.cursor = 0;\n this.maxCursor = -1;\n this.chunks = [];\n this._initReuseChunk = null;\n }\n reset() {\n this.cursor = 0;\n this.maxCursor = -1;\n if (this.chunks.length) {\n this.chunks = [];\n }\n if (this._initReuseChunk !== null) {\n this.chunks.push(this._initReuseChunk);\n this.maxCursor = this._initReuseChunk.length - 1;\n }\n }\n push(bytes) {\n let topChunk = this.chunks[this.chunks.length - 1];\n const newMax = this.cursor + bytes.length;\n if (newMax <= this.maxCursor + 1) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n topChunk.set(bytes, chunkPos);\n } else {\n if (topChunk) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n if (chunkPos < topChunk.length) {\n this.chunks[this.chunks.length - 1] = topChunk.subarray(0, chunkPos);\n this.maxCursor = this.cursor - 1;\n }\n }\n if (bytes.length < 64 && bytes.length < this.chunkSize) {\n topChunk = alloc(this.chunkSize);\n this.chunks.push(topChunk);\n this.maxCursor += topChunk.length;\n if (this._initReuseChunk === null) {\n this._initReuseChunk = topChunk;\n }\n topChunk.set(bytes, 0);\n } else {\n this.chunks.push(bytes);\n this.maxCursor += bytes.length;\n }\n }\n this.cursor += bytes.length;\n }\n toBytes(reset = false) {\n let byts;\n if (this.chunks.length === 1) {\n const chunk = this.chunks[0];\n if (reset && this.cursor > chunk.length / 2) {\n byts = this.cursor === chunk.length ? chunk : chunk.subarray(0, this.cursor);\n this._initReuseChunk = null;\n this.chunks = [];\n } else {\n byts = slice(chunk, 0, this.cursor);\n }\n } else {\n byts = concat(this.chunks, this.cursor);\n }\n if (reset) {\n this.reset();\n }\n return byts;\n }\n}", "const decodeErrPrefix = 'CBOR decode error:';\nconst encodeErrPrefix = 'CBOR encode error:';\nconst uintMinorPrefixBytes = [];\nuintMinorPrefixBytes[23] = 1;\nuintMinorPrefixBytes[24] = 2;\nuintMinorPrefixBytes[25] = 3;\nuintMinorPrefixBytes[26] = 5;\nuintMinorPrefixBytes[27] = 9;\nfunction assertEnoughData(data, pos, need) {\n if (data.length - pos < need) {\n throw new Error(`${ decodeErrPrefix } not enough data for type`);\n }\n}\nexport {\n decodeErrPrefix,\n encodeErrPrefix,\n uintMinorPrefixBytes,\n assertEnoughData\n};", "import {\n Token,\n Type\n} from './token.js';\nimport {\n decodeErrPrefix,\n assertEnoughData\n} from './common.js';\nexport const uintBoundaries = [\n 24,\n 256,\n 65536,\n 4294967296,\n BigInt('18446744073709551616')\n];\nexport function readUint8(data, offset, options) {\n assertEnoughData(data, offset, 1);\n const value = data[offset];\n if (options.strict === true && value < uintBoundaries[0]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint16(data, offset, options) {\n assertEnoughData(data, offset, 2);\n const value = data[offset] << 8 | data[offset + 1];\n if (options.strict === true && value < uintBoundaries[1]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint32(data, offset, options) {\n assertEnoughData(data, offset, 4);\n const value = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n if (options.strict === true && value < uintBoundaries[2]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint64(data, offset, options) {\n assertEnoughData(data, offset, 8);\n const hi = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n const lo = data[offset + 4] * 16777216 + (data[offset + 5] << 16) + (data[offset + 6] << 8) + data[offset + 7];\n const value = (BigInt(hi) << BigInt(32)) + BigInt(lo);\n if (options.strict === true && value < uintBoundaries[3]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n if (value <= Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n if (options.allowBigInt === true) {\n return value;\n }\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n}\nexport function decodeUint8(data, pos, _minor, options) {\n return new Token(Type.uint, readUint8(data, pos + 1, options), 2);\n}\nexport function decodeUint16(data, pos, _minor, options) {\n return new Token(Type.uint, readUint16(data, pos + 1, options), 3);\n}\nexport function decodeUint32(data, pos, _minor, options) {\n return new Token(Type.uint, readUint32(data, pos + 1, options), 5);\n}\nexport function decodeUint64(data, pos, _minor, options) {\n return new Token(Type.uint, readUint64(data, pos + 1, options), 9);\n}\nexport function encodeUint(buf, token) {\n return encodeUintValue(buf, 0, token.value);\n}\nexport function encodeUintValue(buf, major, uint) {\n if (uint < uintBoundaries[0]) {\n const nuint = Number(uint);\n buf.push([major | nuint]);\n } else if (uint < uintBoundaries[1]) {\n const nuint = Number(uint);\n buf.push([\n major | 24,\n nuint\n ]);\n } else if (uint < uintBoundaries[2]) {\n const nuint = Number(uint);\n buf.push([\n major | 25,\n nuint >>> 8,\n nuint & 255\n ]);\n } else if (uint < uintBoundaries[3]) {\n const nuint = Number(uint);\n buf.push([\n major | 26,\n nuint >>> 24 & 255,\n nuint >>> 16 & 255,\n nuint >>> 8 & 255,\n nuint & 255\n ]);\n } else {\n const buint = BigInt(uint);\n if (buint < uintBoundaries[4]) {\n const set = [\n major | 27,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n let lo = Number(buint & BigInt(4294967295));\n let hi = Number(buint >> BigInt(32) & BigInt(4294967295));\n set[8] = lo & 255;\n lo = lo >> 8;\n set[7] = lo & 255;\n lo = lo >> 8;\n set[6] = lo & 255;\n lo = lo >> 8;\n set[5] = lo & 255;\n set[4] = hi & 255;\n hi = hi >> 8;\n set[3] = hi & 255;\n hi = hi >> 8;\n set[2] = hi & 255;\n hi = hi >> 8;\n set[1] = hi & 255;\n buf.push(set);\n } else {\n throw new Error(`${ decodeErrPrefix } encountered BigInt larger than allowable range`);\n }\n }\n}\nencodeUint.encodedSize = function encodedSize(token) {\n return encodeUintValue.encodedSize(token.value);\n};\nencodeUintValue.encodedSize = function encodedSize(uint) {\n if (uint < uintBoundaries[0]) {\n return 1;\n }\n if (uint < uintBoundaries[1]) {\n return 2;\n }\n if (uint < uintBoundaries[2]) {\n return 3;\n }\n if (uint < uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeUint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nexport function decodeNegint8(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeNegint16(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeNegint32(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint32(data, pos + 1, options), 5);\n}\nconst neg1b = BigInt(-1);\nconst pos1b = BigInt(1);\nexport function decodeNegint64(data, pos, _minor, options) {\n const int = uint.readUint64(data, pos + 1, options);\n if (typeof int !== 'bigint') {\n const value = -1 - int;\n if (value >= Number.MIN_SAFE_INTEGER) {\n return new Token(Type.negint, value, 9);\n }\n }\n if (options.allowBigInt !== true) {\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n }\n return new Token(Type.negint, neg1b - BigInt(int), 9);\n}\nexport function encodeNegint(buf, token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n uint.encodeUintValue(buf, token.type.majorEncoded, unsigned);\n}\nencodeNegint.encodedSize = function encodedSize(token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n if (unsigned < uint.uintBoundaries[0]) {\n return 1;\n }\n if (unsigned < uint.uintBoundaries[1]) {\n return 2;\n }\n if (unsigned < uint.uintBoundaries[2]) {\n return 3;\n }\n if (unsigned < uint.uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeNegint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? 1 : tok1.value > tok2.value ? -1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport {\n compare,\n fromString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length) {\n assertEnoughData(data, pos, prefix + length);\n const buf = slice(data, pos + prefix, pos + prefix + length);\n return new Token(Type.bytes, buf, prefix + length);\n}\nexport function decodeBytesCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeBytes8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeBytes16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeBytes32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeBytes64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer bytes lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nfunction tokenBytes(token) {\n if (token.encodedBytes === undefined) {\n token.encodedBytes = token.type === Type.string ? fromString(token.value) : token.value;\n }\n return token.encodedBytes;\n}\nexport function encodeBytes(buf, token) {\n const bytes = tokenBytes(token);\n uint.encodeUintValue(buf, token.type.majorEncoded, bytes.length);\n buf.push(bytes);\n}\nencodeBytes.encodedSize = function encodedSize(token) {\n const bytes = tokenBytes(token);\n return uint.encodeUintValue.encodedSize(bytes.length) + bytes.length;\n};\nencodeBytes.compareTokens = function compareTokens(tok1, tok2) {\n return compareBytes(tokenBytes(tok1), tokenBytes(tok2));\n};\nexport function compareBytes(b1, b2) {\n return b1.length < b2.length ? -1 : b1.length > b2.length ? 1 : compare(b1, b2);\n}", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport { encodeBytes } from './2bytes.js';\nimport {\n toString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length, options) {\n const totLength = prefix + length;\n assertEnoughData(data, pos, totLength);\n const tok = new Token(Type.string, toString(data, pos + prefix, pos + totLength), totLength);\n if (options.retainStringBytes === true) {\n tok.byteValue = slice(data, pos + prefix, pos + totLength);\n }\n return tok;\n}\nexport function decodeStringCompact(data, pos, minor, options) {\n return toToken(data, pos, 1, minor, options);\n}\nexport function decodeString8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options), options);\n}\nexport function decodeString16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options), options);\n}\nexport function decodeString32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options), options);\n}\nexport function decodeString64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer string lengths not supported`);\n }\n return toToken(data, pos, 9, l, options);\n}\nexport const encodeString = encodeBytes;", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.array, length, prefix);\n}\nexport function decodeArrayCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeArray8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeArray16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeArray32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeArray64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer array lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeArrayIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeArray(buf, token) {\n uint.encodeUintValue(buf, Type.array.majorEncoded, token.value);\n}\nencodeArray.compareTokens = uint.encodeUint.compareTokens;\nencodeArray.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.map, length, prefix);\n}\nexport function decodeMapCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeMap8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeMap16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeMap32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeMap64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer map lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeMapIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeMap(buf, token) {\n uint.encodeUintValue(buf, Type.map.majorEncoded, token.value);\n}\nencodeMap.compareTokens = uint.encodeUint.compareTokens;\nencodeMap.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nexport function decodeTagCompact(_data, _pos, minor, _options) {\n return new Token(Type.tag, minor, 1);\n}\nexport function decodeTag8(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeTag16(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeTag32(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint32(data, pos + 1, options), 5);\n}\nexport function decodeTag64(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint64(data, pos + 1, options), 9);\n}\nexport function encodeTag(buf, token) {\n uint.encodeUintValue(buf, Type.tag.majorEncoded, token.value);\n}\nencodeTag.compareTokens = uint.encodeUint.compareTokens;\nencodeTag.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport { decodeErrPrefix } from './common.js';\nimport { encodeUint } from './0uint.js';\nconst MINOR_FALSE = 20;\nconst MINOR_TRUE = 21;\nconst MINOR_NULL = 22;\nconst MINOR_UNDEFINED = 23;\nexport function decodeUndefined(_data, _pos, _minor, options) {\n if (options.allowUndefined === false) {\n throw new Error(`${ decodeErrPrefix } undefined values are not supported`);\n } else if (options.coerceUndefinedToNull === true) {\n return new Token(Type.null, null, 1);\n }\n return new Token(Type.undefined, undefined, 1);\n}\nexport function decodeBreak(_data, _pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return new Token(Type.break, undefined, 1);\n}\nfunction createToken(value, bytes, options) {\n if (options) {\n if (options.allowNaN === false && Number.isNaN(value)) {\n throw new Error(`${ decodeErrPrefix } NaN values are not supported`);\n }\n if (options.allowInfinity === false && (value === Infinity || value === -Infinity)) {\n throw new Error(`${ decodeErrPrefix } Infinity values are not supported`);\n }\n }\n return new Token(Type.float, value, bytes);\n}\nexport function decodeFloat16(data, pos, _minor, options) {\n return createToken(readFloat16(data, pos + 1), 3, options);\n}\nexport function decodeFloat32(data, pos, _minor, options) {\n return createToken(readFloat32(data, pos + 1), 5, options);\n}\nexport function decodeFloat64(data, pos, _minor, options) {\n return createToken(readFloat64(data, pos + 1), 9, options);\n}\nexport function encodeFloat(buf, token, options) {\n const float = token.value;\n if (float === false) {\n buf.push([Type.float.majorEncoded | MINOR_FALSE]);\n } else if (float === true) {\n buf.push([Type.float.majorEncoded | MINOR_TRUE]);\n } else if (float === null) {\n buf.push([Type.float.majorEncoded | MINOR_NULL]);\n } else if (float === undefined) {\n buf.push([Type.float.majorEncoded | MINOR_UNDEFINED]);\n } else {\n let decoded;\n let success = false;\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n ui8a[0] = 249;\n buf.push(ui8a.slice(0, 3));\n success = true;\n } else {\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n ui8a[0] = 250;\n buf.push(ui8a.slice(0, 5));\n success = true;\n }\n }\n }\n if (!success) {\n encodeFloat64(float);\n decoded = readFloat64(ui8a, 1);\n ui8a[0] = 251;\n buf.push(ui8a.slice(0, 9));\n }\n }\n}\nencodeFloat.encodedSize = function encodedSize(token, options) {\n const float = token.value;\n if (float === false || float === true || float === null || float === undefined) {\n return 1;\n }\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n let decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n return 3;\n }\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n return 5;\n }\n }\n return 9;\n};\nconst buffer = new ArrayBuffer(9);\nconst dataView = new DataView(buffer, 1);\nconst ui8a = new Uint8Array(buffer, 0);\nfunction encodeFloat16(inp) {\n if (inp === Infinity) {\n dataView.setUint16(0, 31744, false);\n } else if (inp === -Infinity) {\n dataView.setUint16(0, 64512, false);\n } else if (Number.isNaN(inp)) {\n dataView.setUint16(0, 32256, false);\n } else {\n dataView.setFloat32(0, inp);\n const valu32 = dataView.getUint32(0);\n const exponent = (valu32 & 2139095040) >> 23;\n const mantissa = valu32 & 8388607;\n if (exponent === 255) {\n dataView.setUint16(0, 31744, false);\n } else if (exponent === 0) {\n dataView.setUint16(0, (inp & 2147483648) >> 16 | mantissa >> 13, false);\n } else {\n const logicalExponent = exponent - 127;\n if (logicalExponent < -24) {\n dataView.setUint16(0, 0);\n } else if (logicalExponent < -14) {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | 1 << 24 + logicalExponent, false);\n } else {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | logicalExponent + 15 << 10 | mantissa >> 13, false);\n }\n }\n }\n}\nfunction readFloat16(ui8a, pos) {\n if (ui8a.length - pos < 2) {\n throw new Error(`${ decodeErrPrefix } not enough data for float16`);\n }\n const half = (ui8a[pos] << 8) + ui8a[pos + 1];\n if (half === 31744) {\n return Infinity;\n }\n if (half === 64512) {\n return -Infinity;\n }\n if (half === 32256) {\n return NaN;\n }\n const exp = half >> 10 & 31;\n const mant = half & 1023;\n let val;\n if (exp === 0) {\n val = mant * 2 ** -24;\n } else if (exp !== 31) {\n val = (mant + 1024) * 2 ** (exp - 25);\n } else {\n val = mant === 0 ? Infinity : NaN;\n }\n return half & 32768 ? -val : val;\n}\nfunction encodeFloat32(inp) {\n dataView.setFloat32(0, inp, false);\n}\nfunction readFloat32(ui8a, pos) {\n if (ui8a.length - pos < 4) {\n throw new Error(`${ decodeErrPrefix } not enough data for float32`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 4).getFloat32(0, false);\n}\nfunction encodeFloat64(inp) {\n dataView.setFloat64(0, inp, false);\n}\nfunction readFloat64(ui8a, pos) {\n if (ui8a.length - pos < 8) {\n throw new Error(`${ decodeErrPrefix } not enough data for float64`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 8).getFloat64(0, false);\n}\nencodeFloat.compareTokens = encodeUint.compareTokens;", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport * as negint from './1negint.js';\nimport * as bytes from './2bytes.js';\nimport * as string from './3string.js';\nimport * as array from './4array.js';\nimport * as map from './5map.js';\nimport * as tag from './6tag.js';\nimport * as float from './7float.js';\nimport { decodeErrPrefix } from './common.js';\nimport { fromArray } from './byte-utils.js';\nfunction invalidMinor(data, pos, minor) {\n throw new Error(`${ decodeErrPrefix } encountered invalid minor (${ minor }) for major ${ data[pos] >>> 5 }`);\n}\nfunction errorer(msg) {\n return () => {\n throw new Error(`${ decodeErrPrefix } ${ msg }`);\n };\n}\nexport const jump = [];\nfor (let i = 0; i <= 23; i++) {\n jump[i] = invalidMinor;\n}\njump[24] = uint.decodeUint8;\njump[25] = uint.decodeUint16;\njump[26] = uint.decodeUint32;\njump[27] = uint.decodeUint64;\njump[28] = invalidMinor;\njump[29] = invalidMinor;\njump[30] = invalidMinor;\njump[31] = invalidMinor;\nfor (let i = 32; i <= 55; i++) {\n jump[i] = invalidMinor;\n}\njump[56] = negint.decodeNegint8;\njump[57] = negint.decodeNegint16;\njump[58] = negint.decodeNegint32;\njump[59] = negint.decodeNegint64;\njump[60] = invalidMinor;\njump[61] = invalidMinor;\njump[62] = invalidMinor;\njump[63] = invalidMinor;\nfor (let i = 64; i <= 87; i++) {\n jump[i] = bytes.decodeBytesCompact;\n}\njump[88] = bytes.decodeBytes8;\njump[89] = bytes.decodeBytes16;\njump[90] = bytes.decodeBytes32;\njump[91] = bytes.decodeBytes64;\njump[92] = invalidMinor;\njump[93] = invalidMinor;\njump[94] = invalidMinor;\njump[95] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 96; i <= 119; i++) {\n jump[i] = string.decodeStringCompact;\n}\njump[120] = string.decodeString8;\njump[121] = string.decodeString16;\njump[122] = string.decodeString32;\njump[123] = string.decodeString64;\njump[124] = invalidMinor;\njump[125] = invalidMinor;\njump[126] = invalidMinor;\njump[127] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 128; i <= 151; i++) {\n jump[i] = array.decodeArrayCompact;\n}\njump[152] = array.decodeArray8;\njump[153] = array.decodeArray16;\njump[154] = array.decodeArray32;\njump[155] = array.decodeArray64;\njump[156] = invalidMinor;\njump[157] = invalidMinor;\njump[158] = invalidMinor;\njump[159] = array.decodeArrayIndefinite;\nfor (let i = 160; i <= 183; i++) {\n jump[i] = map.decodeMapCompact;\n}\njump[184] = map.decodeMap8;\njump[185] = map.decodeMap16;\njump[186] = map.decodeMap32;\njump[187] = map.decodeMap64;\njump[188] = invalidMinor;\njump[189] = invalidMinor;\njump[190] = invalidMinor;\njump[191] = map.decodeMapIndefinite;\nfor (let i = 192; i <= 215; i++) {\n jump[i] = tag.decodeTagCompact;\n}\njump[216] = tag.decodeTag8;\njump[217] = tag.decodeTag16;\njump[218] = tag.decodeTag32;\njump[219] = tag.decodeTag64;\njump[220] = invalidMinor;\njump[221] = invalidMinor;\njump[222] = invalidMinor;\njump[223] = invalidMinor;\nfor (let i = 224; i <= 243; i++) {\n jump[i] = errorer('simple values are not supported');\n}\njump[244] = invalidMinor;\njump[245] = invalidMinor;\njump[246] = invalidMinor;\njump[247] = float.decodeUndefined;\njump[248] = errorer('simple values are not supported');\njump[249] = float.decodeFloat16;\njump[250] = float.decodeFloat32;\njump[251] = float.decodeFloat64;\njump[252] = invalidMinor;\njump[253] = invalidMinor;\njump[254] = invalidMinor;\njump[255] = float.decodeBreak;\nexport const quick = [];\nfor (let i = 0; i < 24; i++) {\n quick[i] = new Token(Type.uint, i, 1);\n}\nfor (let i = -1; i >= -24; i--) {\n quick[31 - i] = new Token(Type.negint, i, 1);\n}\nquick[64] = new Token(Type.bytes, new Uint8Array(0), 1);\nquick[96] = new Token(Type.string, '', 1);\nquick[128] = new Token(Type.array, 0, 1);\nquick[160] = new Token(Type.map, 0, 1);\nquick[244] = new Token(Type.false, false, 1);\nquick[245] = new Token(Type.true, true, 1);\nquick[246] = new Token(Type.null, null, 1);\nexport function quickEncodeToken(token) {\n switch (token.type) {\n case Type.false:\n return fromArray([244]);\n case Type.true:\n return fromArray([245]);\n case Type.null:\n return fromArray([246]);\n case Type.bytes:\n if (!token.value.length) {\n return fromArray([64]);\n }\n return;\n case Type.string:\n if (token.value === '') {\n return fromArray([96]);\n }\n return;\n case Type.array:\n if (token.value === 0) {\n return fromArray([128]);\n }\n return;\n case Type.map:\n if (token.value === 0) {\n return fromArray([160]);\n }\n return;\n case Type.uint:\n if (token.value < 24) {\n return fromArray([Number(token.value)]);\n }\n return;\n case Type.negint:\n if (token.value >= -24) {\n return fromArray([31 - Number(token.value)]);\n }\n }\n}", "import { is } from './is.js';\nimport {\n Token,\n Type\n} from './token.js';\nimport { Bl } from './bl.js';\nimport { encodeErrPrefix } from './common.js';\nimport { quickEncodeToken } from './jump.js';\nimport { asU8A } from './byte-utils.js';\nimport { encodeUint } from './0uint.js';\nimport { encodeNegint } from './1negint.js';\nimport { encodeBytes } from './2bytes.js';\nimport { encodeString } from './3string.js';\nimport { encodeArray } from './4array.js';\nimport { encodeMap } from './5map.js';\nimport { encodeTag } from './6tag.js';\nimport { encodeFloat } from './7float.js';\nconst defaultEncodeOptions = {\n float64: false,\n mapSorter,\n quickEncodeToken\n};\nexport function makeCborEncoders() {\n const encoders = [];\n encoders[Type.uint.major] = encodeUint;\n encoders[Type.negint.major] = encodeNegint;\n encoders[Type.bytes.major] = encodeBytes;\n encoders[Type.string.major] = encodeString;\n encoders[Type.array.major] = encodeArray;\n encoders[Type.map.major] = encodeMap;\n encoders[Type.tag.major] = encodeTag;\n encoders[Type.float.major] = encodeFloat;\n return encoders;\n}\nconst cborEncoders = makeCborEncoders();\nconst buf = new Bl();\nclass Ref {\n constructor(obj, parent) {\n this.obj = obj;\n this.parent = parent;\n }\n includes(obj) {\n let p = this;\n do {\n if (p.obj === obj) {\n return true;\n }\n } while (p = p.parent);\n return false;\n }\n static createCheck(stack, obj) {\n if (stack && stack.includes(obj)) {\n throw new Error(`${ encodeErrPrefix } object contains circular references`);\n }\n return new Ref(obj, stack);\n }\n}\nconst simpleTokens = {\n null: new Token(Type.null, null),\n undefined: new Token(Type.undefined, undefined),\n true: new Token(Type.true, true),\n false: new Token(Type.false, false),\n emptyArray: new Token(Type.array, 0),\n emptyMap: new Token(Type.map, 0)\n};\nconst typeEncoders = {\n number(obj, _typ, _options, _refStack) {\n if (!Number.isInteger(obj) || !Number.isSafeInteger(obj)) {\n return new Token(Type.float, obj);\n } else if (obj >= 0) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n bigint(obj, _typ, _options, _refStack) {\n if (obj >= BigInt(0)) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n Uint8Array(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, obj);\n },\n string(obj, _typ, _options, _refStack) {\n return new Token(Type.string, obj);\n },\n boolean(obj, _typ, _options, _refStack) {\n return obj ? simpleTokens.true : simpleTokens.false;\n },\n null(_obj, _typ, _options, _refStack) {\n return simpleTokens.null;\n },\n undefined(_obj, _typ, _options, _refStack) {\n return simpleTokens.undefined;\n },\n ArrayBuffer(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj));\n },\n DataView(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength));\n },\n Array(obj, _typ, options, refStack) {\n if (!obj.length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyArray,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyArray;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const e of obj) {\n entries[i++] = objectToTokens(e, options, refStack);\n }\n if (options.addBreakTokens) {\n return [\n new Token(Type.array, obj.length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.array, obj.length),\n entries\n ];\n },\n Object(obj, typ, options, refStack) {\n const isMap = typ !== 'Object';\n const keys = isMap ? obj.keys() : Object.keys(obj);\n const length = isMap ? obj.size : keys.length;\n if (!length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyMap,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyMap;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const key of keys) {\n entries[i++] = [\n objectToTokens(key, options, refStack),\n objectToTokens(isMap ? obj.get(key) : obj[key], options, refStack)\n ];\n }\n sortMapEntries(entries, options);\n if (options.addBreakTokens) {\n return [\n new Token(Type.map, length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.map, length),\n entries\n ];\n }\n};\ntypeEncoders.Map = typeEncoders.Object;\ntypeEncoders.Buffer = typeEncoders.Uint8Array;\nfor (const typ of 'Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64'.split(' ')) {\n typeEncoders[`${ typ }Array`] = typeEncoders.DataView;\n}\nfunction objectToTokens(obj, options = {}, refStack) {\n const typ = is(obj);\n const customTypeEncoder = options && options.typeEncoders && options.typeEncoders[typ] || typeEncoders[typ];\n if (typeof customTypeEncoder === 'function') {\n const tokens = customTypeEncoder(obj, typ, options, refStack);\n if (tokens != null) {\n return tokens;\n }\n }\n const typeEncoder = typeEncoders[typ];\n if (!typeEncoder) {\n throw new Error(`${ encodeErrPrefix } unsupported type: ${ typ }`);\n }\n return typeEncoder(obj, typ, options, refStack);\n}\nfunction sortMapEntries(entries, options) {\n if (options.mapSorter) {\n entries.sort(options.mapSorter);\n }\n}\nfunction mapSorter(e1, e2) {\n const keyToken1 = Array.isArray(e1[0]) ? e1[0][0] : e1[0];\n const keyToken2 = Array.isArray(e2[0]) ? e2[0][0] : e2[0];\n if (keyToken1.type !== keyToken2.type) {\n return keyToken1.type.compare(keyToken2.type);\n }\n const major = keyToken1.type.major;\n const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2);\n if (tcmp === 0) {\n console.warn('WARNING: complex key types used, CBOR key sorting guarantees are gone');\n }\n return tcmp;\n}\nfunction tokensToEncoded(buf, tokens, encoders, options) {\n if (Array.isArray(tokens)) {\n for (const token of tokens) {\n tokensToEncoded(buf, token, encoders, options);\n }\n } else {\n encoders[tokens.type.major](buf, tokens, options);\n }\n}\nfunction encodeCustom(data, encoders, options) {\n const tokens = objectToTokens(data, options);\n if (!Array.isArray(tokens) && options.quickEncodeToken) {\n const quickBytes = options.quickEncodeToken(tokens);\n if (quickBytes) {\n return quickBytes;\n }\n const encoder = encoders[tokens.type.major];\n if (encoder.encodedSize) {\n const size = encoder.encodedSize(tokens, options);\n const buf = new Bl(size);\n encoder(buf, tokens, options);\n if (buf.chunks.length !== 1) {\n throw new Error(`Unexpected error: pre-calculated length for ${ tokens } was wrong`);\n }\n return asU8A(buf.chunks[0]);\n }\n }\n buf.reset();\n tokensToEncoded(buf, tokens, encoders, options);\n return buf.toBytes(true);\n}\nfunction encode(data, options) {\n options = Object.assign({}, defaultEncodeOptions, options);\n return encodeCustom(data, cborEncoders, options);\n}\nexport {\n objectToTokens,\n encode,\n encodeCustom,\n Ref\n};", "import { decodeErrPrefix } from './common.js';\nimport { Type } from './token.js';\nimport {\n jump,\n quick\n} from './jump.js';\nconst defaultDecodeOptions = {\n strict: false,\n allowIndefinite: true,\n allowUndefined: true,\n allowBigInt: true\n};\nclass Tokeniser {\n constructor(data, options = {}) {\n this.pos = 0;\n this.data = data;\n this.options = options;\n }\n done() {\n return this.pos >= this.data.length;\n }\n next() {\n const byt = this.data[this.pos];\n let token = quick[byt];\n if (token === undefined) {\n const decoder = jump[byt];\n if (!decoder) {\n throw new Error(`${ decodeErrPrefix } no decoder for major type ${ byt >>> 5 } (byte 0x${ byt.toString(16).padStart(2, '0') })`);\n }\n const minor = byt & 31;\n token = decoder(this.data, this.pos, minor, this.options);\n }\n this.pos += token.encodedLength;\n return token;\n }\n}\nconst DONE = Symbol.for('DONE');\nconst BREAK = Symbol.for('BREAK');\nfunction tokenToArray(token, tokeniser, options) {\n const arr = [];\n for (let i = 0; i < token.value; i++) {\n const value = tokensToObject(tokeniser, options);\n if (value === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed array`);\n }\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found array but not enough entries (got ${ i }, expected ${ token.value })`);\n }\n arr[i] = value;\n }\n return arr;\n}\nfunction tokenToMap(token, tokeniser, options) {\n const useMaps = options.useMaps === true;\n const obj = useMaps ? undefined : {};\n const m = useMaps ? new Map() : undefined;\n for (let i = 0; i < token.value; i++) {\n const key = tokensToObject(tokeniser, options);\n if (key === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed map`);\n }\n if (key === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no key], expected ${ token.value })`);\n }\n if (useMaps !== true && typeof key !== 'string') {\n throw new Error(`${ decodeErrPrefix } non-string keys not supported (got ${ typeof key })`);\n }\n if (options.rejectDuplicateMapKeys === true) {\n if (useMaps && m.has(key) || !useMaps && key in obj) {\n throw new Error(`${ decodeErrPrefix } found repeat map key \"${ key }\"`);\n }\n }\n const value = tokensToObject(tokeniser, options);\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no value], expected ${ token.value })`);\n }\n if (useMaps) {\n m.set(key, value);\n } else {\n obj[key] = value;\n }\n }\n return useMaps ? m : obj;\n}\nfunction tokensToObject(tokeniser, options) {\n if (tokeniser.done()) {\n return DONE;\n }\n const token = tokeniser.next();\n if (token.type === Type.break) {\n return BREAK;\n }\n if (token.type.terminal) {\n return token.value;\n }\n if (token.type === Type.array) {\n return tokenToArray(token, tokeniser, options);\n }\n if (token.type === Type.map) {\n return tokenToMap(token, tokeniser, options);\n }\n if (token.type === Type.tag) {\n if (options.tags && typeof options.tags[token.value] === 'function') {\n const tagged = tokensToObject(tokeniser, options);\n return options.tags[token.value](tagged);\n }\n throw new Error(`${ decodeErrPrefix } tag not supported (${ token.value })`);\n }\n throw new Error('unsupported');\n}\nfunction decode(data, options) {\n if (!(data instanceof Uint8Array)) {\n throw new Error(`${ decodeErrPrefix } data to decode must be a Uint8Array`);\n }\n options = Object.assign({}, defaultDecodeOptions, options);\n const tokeniser = options.tokenizer || new Tokeniser(data, options);\n const decoded = tokensToObject(tokeniser, options);\n if (decoded === DONE) {\n throw new Error(`${ decodeErrPrefix } did not find any content to decode`);\n }\n if (decoded === BREAK) {\n throw new Error(`${ decodeErrPrefix } got unexpected break`);\n }\n if (!tokeniser.done()) {\n throw new Error(`${ decodeErrPrefix } too many terminals, data makes no sense`);\n }\n return decoded;\n}\nexport {\n Tokeniser,\n tokensToObject,\n decode\n};", "/*!\n * Copyright (c) 2020 Digital Bazaar, Inc. All rights reserved.\n */\nexport class CborldError extends Error {\n constructor(value, message) {\n super();\n this.message = message;\n this.value = value;\n this.stack = (new Error(`${value}: ${message}`)).stack;\n this.name = this.constructor.name;\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport class CborldDecoder {\n // eslint-disable-next-line no-unused-vars\n decode({value} = {}) {\n throw new Error('Must be implemented by derived class.');\n }\n\n // eslint-disable-next-line no-unused-vars\n static createDecoder({value, transformer} = {}) {\n throw new Error('Must be implemented by derived class.');\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\n// known CBOR-LD registry values\nexport const ID_TO_URL = new Map();\nexport const URL_TO_ID = new Map();\n\n/**\n * @see https://digitalbazaar.github.io/cbor-ld-spec/#term-codec-registry\n */\n_addRegistration(0x10, 'https://www.w3.org/ns/activitystreams');\n_addRegistration(0x11, 'https://www.w3.org/2018/credentials/v1');\n_addRegistration(0x12, 'https://www.w3.org/ns/did/v1');\n_addRegistration(0x13, 'https://w3id.org/security/suites/ed25519-2018/v1');\n_addRegistration(0x14, 'https://w3id.org/security/suites/ed25519-2020/v1');\n_addRegistration(0x15, 'https://w3id.org/cit/v1');\n_addRegistration(0x16, 'https://w3id.org/age/v1');\n_addRegistration(0x17, 'https://w3id.org/security/suites/x25519-2020/v1');\n_addRegistration(0x18, 'https://w3id.org/veres-one/v1');\n_addRegistration(0x19, 'https://w3id.org/webkms/v1');\n_addRegistration(0x1A, 'https://w3id.org/zcap/v1');\n_addRegistration(0x1B, 'https://w3id.org/security/suites/hmac-2019/v1');\n_addRegistration(0x1C, 'https://w3id.org/security/suites/aes-2019/v1');\n_addRegistration(0x1D, 'https://w3id.org/vaccination/v1');\n_addRegistration(0x1E, 'https://w3id.org/vc-revocation-list-2020/v1');\n_addRegistration(0x1F, 'https://w3id.org/dcc/v1c');\n_addRegistration(0x20, 'https://w3id.org/vc/status-list/v1');\n\nfunction _addRegistration(id, url) {\n URL_TO_ID.set(url, id);\n ID_TO_URL.set(id, url);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {CborldError} from '../CborldError.js';\nimport {ID_TO_URL} from './registeredContexts.js';\n\nexport class ContextDecoder extends CborldDecoder {\n constructor({reverseAppContextMap} = {}) {\n super();\n this.reverseAppContextMap = reverseAppContextMap;\n }\n\n decode({value} = {}) {\n // handle uncompressed context\n if(typeof value !== 'number') {\n return _mapToObject(value);\n }\n\n // handle compressed context\n const url = ID_TO_URL.get(value) || this.reverseAppContextMap.get(value);\n if(url === undefined) {\n throw new CborldError(\n 'ERR_UNDEFINED_COMPRESSED_CONTEXT',\n `Undefined compressed context \"${value}\".`);\n }\n return url;\n }\n\n static createDecoder({transformer} = {}) {\n const {reverseAppContextMap} = transformer;\n return new ContextDecoder({reverseAppContextMap});\n }\n}\n\nfunction _mapToObject(map) {\n if(Array.isArray(map)) {\n return map.map(_mapToObject);\n }\n if(!(map instanceof Map)) {\n return map;\n }\n\n const obj = {};\n for(const [key, value] of map) {\n obj[key] = _mapToObject(value);\n }\n return obj;\n}\n", "/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.5';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasatob = typeof atob === 'function';\nconst _hasbtoa = typeof btoa === 'function';\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = _hasbtoa ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 \u00A75\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 \u00A75.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = _hasatob ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins,\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n", "/**\n * Base-N/Base-X encoding/decoding functions.\n *\n * Original implementation from base-x:\n * https://github.com/cryptocoinjs/base-x\n *\n * Which is MIT licensed:\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n */\n// baseN alphabet indexes\nconst _reverseAlphabets = {};\n\n/**\n * BaseN-encodes a Uint8Array using the given alphabet.\n *\n * @param {Uint8Array} input - The bytes to encode in a Uint8Array.\n * @param {string} alphabet - The alphabet to use for encoding.\n * @param {number} maxline - The maximum number of encoded characters per line\n * to use, defaults to none.\n *\n * @returns {string} The baseN-encoded output string.\n */\nexport function encode(input, alphabet, maxline) {\n if(!(input instanceof Uint8Array)) {\n throw new TypeError('\"input\" must be a Uint8Array.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(maxline !== undefined && typeof maxline !== 'number') {\n throw new TypeError('\"maxline\" must be a number.');\n }\n if(input.length === 0) {\n return '';\n }\n\n let output = '';\n\n let i = 0;\n const base = alphabet.length;\n const first = alphabet.charAt(0);\n const digits = [0];\n for(i = 0; i < input.length; ++i) {\n let carry = input[i];\n for(let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n // deal with leading zeros\n for(i = 0; input[i] === 0 && i < input.length - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n\n if(maxline) {\n const regex = new RegExp('.{1,' + maxline + '}', 'g');\n output = output.match(regex).join('\\r\\n');\n }\n\n return output;\n}\n\n/**\n * Decodes a baseN-encoded (using the given alphabet) string to a\n * Uint8Array.\n *\n * @param {string} input - The baseN-encoded input string.\n * @param {string} alphabet - The alphabet to use for decoding.\n *\n * @returns {Uint8Array} The decoded bytes in a Uint8Array.\n */\nexport function decode(input, alphabet) {\n if(typeof input !== 'string') {\n throw new TypeError('\"input\" must be a string.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(input.length === 0) {\n return new Uint8Array();\n }\n\n let table = _reverseAlphabets[alphabet];\n if(!table) {\n // compute reverse alphabet\n table = _reverseAlphabets[alphabet] = [];\n for(let i = 0; i < alphabet.length; ++i) {\n table[alphabet.charCodeAt(i)] = i;\n }\n }\n\n // remove whitespace characters\n input = input.replace(/\\s/g, '');\n\n const base = alphabet.length;\n const first = alphabet.charAt(0);\n const bytes = [0];\n for(let i = 0; i < input.length; i++) {\n const value = table[input.charCodeAt(i)];\n if(value === undefined) {\n return;\n }\n\n let carry = value;\n for(let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while(carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for(let k = 0; input[k] === first && k < input.length - 1; ++k) {\n bytes.push(0);\n }\n\n return new Uint8Array(bytes.reverse());\n}\n", "/*!\n * Copyright (c) 2019-2022 Digital Bazaar, Inc. All rights reserved.\n */\nimport {\n encode as _encode,\n decode as _decode\n} from './baseN.js';\n\n// base58 characters (Bitcoin alphabet)\nconst alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\nexport function encode(input, maxline) {\n return _encode(input, alphabet, maxline);\n}\n\nexport function decode(input) {\n return _decode(input, alphabet);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {Base64} from 'js-base64';\nimport {encode as encodeBase58} from 'base58-universal';\n\n// this class is used to encode a multibase encoded value in CBOR-LD, which\n// actually means transforming bytes to a multibase-encoded string\nexport class MultibaseDecoder extends CborldDecoder {\n decode({value} = {}) {\n const {buffer, byteOffset, length} = value;\n const suffix = new Uint8Array(buffer, byteOffset + 1, length - 1);\n if(value[0] === 0x7a) {\n // 0x7a === 'z' (multibase code for base58btc)\n return `z${encodeBase58(suffix)}`;\n }\n if(value[0] === 0x4d) {\n // 0x4d === 'M' (multibase code for base64pad)\n return `M${Base64.fromUint8Array(suffix)}`;\n }\n return value;\n }\n\n static createDecoder({value} = {}) {\n if(!(value instanceof Uint8Array)) {\n return false;\n }\n // supported multibase encodings:\n // 0x7a === 'z' (multibase code for base58btc)\n // 0x4d === 'M' (multibase code for base64pad)\n if(value[0] === 0x7a || value[0] === 0x4d) {\n return new MultibaseDecoder();\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport const KEYWORDS = new Map([\n // ordered is important, do not change\n ['@context', 0],\n ['@type', 2],\n ['@id', 4],\n ['@value', 6],\n // alphabetized after `@context`, `@type`, `@id`, `@value`\n // IDs <= 24 represented with 1 byte, IDs > 24 use 2+ bytes\n ['@direction', 8],\n ['@graph', 10],\n ['@included', 12],\n ['@index', 14],\n ['@json', 16],\n ['@language', 18],\n ['@list', 20],\n ['@nest', 22],\n ['@reverse', 24],\n // TODO: remove these? these only appear in frames and contexts\n ['@base', 26],\n ['@container', 28],\n ['@default', 30],\n ['@embed', 32],\n ['@explicit', 34],\n ['@none', 36],\n ['@omitDefault', 38],\n ['@prefix', 40],\n ['@preserve', 42],\n ['@protected', 44],\n ['@requireAll', 46],\n ['@set', 48],\n ['@version', 50],\n ['@vocab', 52]\n]);\nexport const FIRST_CUSTOM_TERM_ID = 100;\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldError} from './CborldError.js';\nimport {KEYWORDS} from './keywords.js';\n\nexport class Transformer {\n /**\n * Creates a new Transformer for transforming CBOR-LD <=> JSON-LD.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {documentLoaderFunction} options.documentLoader -The document\n * loader to use when resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767\n * (0x7FFF)).\n */\n constructor({appContextMap, documentLoader} = {}) {\n this.appContextMap = appContextMap;\n this.documentLoader = documentLoader;\n }\n\n // default no-op hook functions\n _beforeObjectContexts() {}\n _afterObjectContexts() {}\n _beforeTypeScopedContexts() {}\n\n async _transform({obj, transformMap, contextStack = []}) {\n // hook before object contexts are applied\n this._beforeObjectContexts({obj, transformMap});\n\n // apply embedded contexts in the object\n let activeCtx = await this._applyEmbeddedContexts({obj, contextStack});\n\n // hook after object contexts are applied\n this._afterObjectContexts({obj, transformMap});\n\n // TODO: support `@propagate: true` on type-scoped contexts; until then\n // throw an error if it is set\n\n // preserve context stack before applying type-scoped contexts\n const childContextStack = contextStack.slice();\n\n // hook before type-scoped contexts are applied\n this._beforeTypeScopedContexts({activeCtx, obj, transformMap});\n\n // apply type-scoped contexts\n activeCtx = await this._applyTypeScopedContexts({obj, contextStack});\n\n // walk term entries to transform\n const {aliases, scopedContextMap, termMap} = activeCtx;\n const termEntries = this._getEntries(\n {obj, transformMap, transformer: this, termMap});\n for(const [termInfo, value] of termEntries) {\n const {term} = termInfo;\n\n // transform `@id`\n if(term === '@id' || aliases.id.has(term)) {\n this._transformObjectId({obj, transformMap, termInfo, value});\n continue;\n }\n\n // transform `@type`\n if(term === '@type' || aliases.type.has(term)) {\n this._transformObjectType({obj, transformMap, termInfo, value});\n continue;\n }\n\n // use `childContextStack` when processing properties as it will remove\n // type-scoped contexts unless a property-scoped context is applied\n let propertyContextStack = childContextStack;\n\n // apply any property-scoped context\n let newActiveCtx;\n const propertyScopedContext = scopedContextMap.get(term);\n if(propertyScopedContext) {\n // TODO: support `@propagate: false` on property-scoped contexts; until\n // then throw an error if it is set\n newActiveCtx = await this._applyEmbeddedContexts({\n obj: {'@context': propertyScopedContext},\n contextStack\n });\n propertyContextStack = contextStack.slice();\n }\n\n // iterate through all values for the current transform entry\n const {plural, def} = termInfo;\n const termType = this._getTermType(\n {activeCtx: newActiveCtx || activeCtx, def});\n const values = plural ? value : [value];\n const entries = [];\n for(const value of values) {\n // `null` is never transformed\n if(value === null) {\n entries.push(null);\n continue;\n }\n\n // try to transform typed value\n if(this._transformTypedValue({entries, termType, value, termInfo})) {\n continue;\n }\n\n if(typeof value !== 'object') {\n // value not transformed and cannot recurse, so do not transform\n entries.push(value);\n continue;\n }\n\n // transform array\n if(Array.isArray(value)) {\n await this._transformArray(\n {entries, contextStack: propertyContextStack, value});\n continue;\n }\n\n // transform object\n await this._transformObject({\n entries, contextStack: propertyContextStack, value});\n }\n\n // revert property-scoped active context if one was created\n if(newActiveCtx) {\n newActiveCtx.revert();\n }\n\n this._assignEntries({entries, obj, transformMap, termInfo});\n }\n\n // revert active context for this object\n activeCtx.revert();\n }\n\n /**\n * Apply the embedded contexts in the given object to produce an\n * active context.\n *\n * @param {object} options - The options to use.\n * @param {object} options.obj - The object to get the active context for.\n * @param {Array} [options.contextStack] - The stack of active contexts.\n *\n * @returns {Promise<object>} - The active context instance.\n */\n async _applyEmbeddedContexts({obj, contextStack}) {\n const stackTop = contextStack.length;\n\n // push any local embedded contexts onto the context stack\n const localContexts = obj['@context'];\n await this._updateContextStack({contextStack, contexts: localContexts});\n\n // get `id` and `type` aliases for the active context\n let active = contextStack[contextStack.length - 1];\n if(!active) {\n // empty initial context\n active = {\n aliases: {\n id: new Set(),\n type: new Set()\n },\n context: {},\n scopedContextMap: new Map(),\n termMap: new Map()\n };\n }\n\n return {\n ...active,\n revert() {\n contextStack.length = stackTop;\n }\n };\n }\n\n async _applyTypeScopedContexts({obj, contextStack}) {\n const stackTop = contextStack.length;\n\n // get `id` and `type` aliases for the active context\n let active = contextStack[contextStack.length - 1];\n if(!active) {\n // empty initial context\n active = {\n aliases: {\n id: new Set(),\n type: new Set()\n },\n context: {},\n scopedContextMap: new Map(),\n termMap: new Map()\n };\n }\n const {aliases} = active;\n\n // get unique object type(s)\n let totalTypes = [];\n const typeTerms = ['@type', ...aliases.type];\n for(const term of typeTerms) {\n const types = obj[term];\n if(Array.isArray(types)) {\n totalTypes.push(...types);\n } else {\n totalTypes.push(types);\n }\n }\n // apply types in lexicographically sorted order (per JSON-LD spec)\n totalTypes = [...new Set(totalTypes)].sort();\n\n // apply any type-scoped contexts\n let {scopedContextMap} = active;\n for(const type of totalTypes) {\n const contexts = scopedContextMap.get(type);\n if(contexts) {\n await this._updateContextStack({contextStack, contexts});\n active = contextStack[contextStack.length - 1];\n ({scopedContextMap} = active);\n }\n }\n\n return {\n ...active,\n revert() {\n contextStack.length = stackTop;\n }\n };\n }\n\n async _updateContextStack({contextStack, contexts, transformer}) {\n // push any localized contexts onto the context stack\n if(!contexts) {\n return;\n }\n if(!Array.isArray(contexts)) {\n contexts = [contexts];\n }\n\n const {contextMap} = this;\n for(const context of contexts) {\n let entry = contextMap.get(context);\n if(!entry) {\n let ctx = context;\n let contextUrl;\n if(typeof context === 'string') {\n // fetch context\n contextUrl = context;\n ({'@context': ctx} = await this._getDocument({url: contextUrl}));\n }\n // FIXME: validate `ctx` to ensure its a valid JSON-LD context value\n // add context\n entry = await this._addContext({context: ctx, contextUrl, transformer});\n }\n\n // clone entry to create new active context entry for context stack\n const newActive = {\n aliases: {\n id: new Set(entry.aliases.id),\n type: new Set(entry.aliases.type)\n },\n context,\n scopedContextMap: new Map(entry.scopedContextMap),\n termMap: new Map(entry.termMap)\n };\n\n // push new active context and get old one\n const oldActive = contextStack[contextStack.length - 1];\n contextStack.push(newActive);\n if(!oldActive) {\n continue;\n }\n\n // compute `id` and `type` aliases by including any previous aliases that\n // have not been replaced by the new context\n const {aliases, termMap} = newActive;\n for(const key of ['id', 'type']) {\n for(const alias of oldActive.aliases[key]) {\n if(!(context[alias] === null || newActive.termMap.has(alias))) {\n aliases[key].add(alias);\n }\n }\n }\n\n // compute scoped context map by including any scoped contexts that have\n // not been replaced by the new context\n const {scopedContextMap} = newActive;\n for(const [key, value] of oldActive.scopedContextMap) {\n if(!(context[key] === null || scopedContextMap.has(key))) {\n scopedContextMap.set(key, value);\n }\n }\n\n // compute new terms map\n for(const [key, value] of oldActive.termMap) {\n if(!(context[key] === null || termMap.has(key))) {\n termMap.set(key, value);\n }\n }\n }\n }\n\n async _addContext({context, contextUrl}) {\n const {contextMap, termToId, idToTerm} = this;\n\n // handle `@import`\n const importUrl = context['@import'];\n if(importUrl) {\n let importEntry = contextMap.get(importUrl);\n if(!importEntry) {\n const {'@context': importCtx} = await this._getDocument(\n {url: importUrl});\n importEntry = await this._addContext(\n {context: importCtx, contextUrl: importUrl});\n }\n context = {...importEntry.context, ...context};\n }\n\n // precompute any `@id` and `@type` aliases, scoped contexts, and terms\n const scopedContextMap = new Map();\n const termMap = new Map();\n const entry = {\n aliases: {id: new Set(), type: new Set()},\n context,\n scopedContextMap,\n termMap\n };\n\n // process context keys in sorted order to ensure term IDs are assigned\n // consistently\n const keys = Object.keys(context).sort();\n for(const key of keys) {\n const def = context[key];\n if(!def) {\n continue;\n }\n if(def === '@id' || def.id === '@id') {\n entry.aliases.id.add(key);\n } else if(def === '@type' || def.id === '@type') {\n entry.aliases.type.add(key);\n }\n if(KEYWORDS.has(key)) {\n // skip keywords\n continue;\n }\n // ensure the term has been assigned an ID\n if(!termToId.has(key)) {\n const id = this.nextTermId;\n this.nextTermId += 2;\n termToId.set(key, id);\n if(idToTerm) {\n idToTerm.set(id, key);\n }\n }\n termMap.set(key, def);\n const scopedContext = def['@context'];\n if(scopedContext) {\n scopedContextMap.set(key, scopedContext);\n }\n }\n\n // add entry for context URL or context object\n contextMap.set(contextUrl || context, entry);\n\n return entry;\n }\n\n async _getDocument({url}) {\n const {document} = await this.documentLoader(url);\n if(typeof document === 'string') {\n return JSON.parse(document);\n }\n return document;\n }\n\n _getTermType({activeCtx, def}) {\n const {'@type': type} = def;\n if(!type) {\n // no term type\n return;\n }\n\n // check for potential CURIE value\n const [prefix, ...suffix] = type.split(':');\n const prefixDef = activeCtx.termMap.get(prefix);\n if(prefixDef === undefined) {\n // no CURIE\n return type;\n }\n\n // handle CURIE\n if(typeof prefixDef === 'string') {\n return prefixDef + suffix.join(':');\n }\n\n // prefix definition must be an object\n if(!(typeof prefixDef === 'object' &&\n typeof prefixDef['@id'] === 'string')) {\n throw new CborldError(\n 'ERR_INVALID_TERM_DEFINITION',\n 'JSON-LD term definitions must be strings or objects with \"@id\".');\n }\n return prefixDef['@id'] + suffix.join(':');\n }\n\n _getIdForTerm({term, plural}) {\n const id = this.termToId.get(term);\n if(id === undefined) {\n throw new CborldError(\n 'ERR_UNDEFINED_TERM',\n 'CBOR-LD compression requires all terms to be defined in a JSON-LD ' +\n 'context.');\n }\n return plural ? id + 1 : id;\n }\n\n _getTermForId({id}) {\n const plural = (id & 1) === 1;\n const term = this.idToTerm.get(plural ? id - 1 : id);\n return {term, plural};\n }\n}\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {encode as encodeBase58} from 'base58-universal';\n\nconst ID_TO_SCHEME = new Map([\n // Note: only v1 mainnet is supported\n [1024, 'did:v1:nym:'],\n [1025, 'did:key:']\n]);\n\nexport class Base58DidUrlDecoder extends CborldDecoder {\n decode({value} = {}) {\n let url = ID_TO_SCHEME.get(value[0]);\n if(typeof value[1] === 'string') {\n url += value[1];\n } else {\n url += `z${encodeBase58(value[1])}`;\n }\n if(value.length > 2) {\n if(typeof value[2] === 'string') {\n url += `#${value[2]}`;\n } else {\n url += `#z${encodeBase58(value[2])}`;\n }\n }\n return url;\n }\n\n static createDecoder({value} = {}) {\n if(!(Array.isArray(value) && value.length > 1 && value.length <= 3)) {\n return false;\n }\n if(!ID_TO_SCHEME.has(value[0])) {\n return false;\n }\n return new Base58DidUrlDecoder();\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\n\nexport class HttpUrlDecoder extends CborldDecoder {\n constructor({secure} = {}) {\n super();\n this.secure = secure;\n }\n\n decode({value} = {}) {\n const scheme = this.secure ? 'https://' : 'http://';\n return `${scheme}${value[1]}`;\n }\n\n static createDecoder({value} = {}) {\n if(!(value.length === 2 && typeof value[1] === 'string')) {\n return false;\n }\n return new HttpUrlDecoder({secure: value[0] === 2});\n }\n}\n", "export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;", "import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {stringify} from 'uuid';\n\nexport class UuidUrnDecoder extends CborldDecoder {\n decode({value} = {}) {\n const uuid = typeof value[1] === 'string' ?\n value[1] : stringify(value[1]);\n return `urn:uuid:${uuid}`;\n }\n\n static createDecoder({value} = {}) {\n if(value.length === 2 &&\n (typeof value[1] === 'string' || value[1] instanceof Uint8Array)) {\n return new UuidUrnDecoder();\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {Base58DidUrlDecoder} from './Base58DidUrlDecoder.js';\nimport {HttpUrlDecoder} from './HttpUrlDecoder.js';\nimport {UuidUrnDecoder} from './UuidUrnDecoder.js';\n\nconst SCHEME_ID_TO_DECODER = new Map([\n [1, HttpUrlDecoder],\n [2, HttpUrlDecoder],\n [3, UuidUrnDecoder],\n [1024, Base58DidUrlDecoder],\n [1025, Base58DidUrlDecoder]\n]);\n\nexport class UriDecoder extends CborldDecoder {\n static createDecoder({value} = {}) {\n if(!(Array.isArray(value) || value.length > 1)) {\n return false;\n }\n\n const DecoderClass = SCHEME_ID_TO_DECODER.get(value[0]);\n return DecoderClass && DecoderClass.createDecoder({value});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {UriDecoder} from './UriDecoder.js';\n\nexport class VocabTermDecoder extends CborldDecoder {\n constructor({term} = {}) {\n super();\n this.term = term;\n }\n\n decode() {\n return this.term;\n }\n\n static createDecoder({value, transformer} = {}) {\n if(Array.isArray(value)) {\n return UriDecoder.createDecoder({value, transformer});\n }\n const term = transformer.idToTerm.get(value);\n if(term !== undefined) {\n return new VocabTermDecoder({term});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\n\nexport class XsdDateDecoder extends CborldDecoder {\n decode({value} = {}) {\n const dateString = new Date(value * 1000).toISOString();\n return dateString.substring(0, dateString.indexOf('T'));\n }\n\n static createDecoder({value} = {}) {\n if(typeof value === 'number') {\n return new XsdDateDecoder();\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\n\nexport class XsdDateTimeDecoder extends CborldDecoder {\n constructor({value} = {}) {\n super();\n this.value = value;\n }\n\n decode({value} = {}) {\n if(typeof value === 'number') {\n return new Date(value * 1000).toISOString().replace('.000Z', 'Z');\n }\n return new Date(value[0] * 1000 + value[1]).toISOString();\n }\n\n static createDecoder({value} = {}) {\n if(typeof value === 'number') {\n return new XsdDateTimeDecoder();\n }\n if(Array.isArray(value) && value.length === 2 &&\n (typeof value[0] === 'number' || typeof value[1] === 'number')) {\n return new XsdDateTimeDecoder();\n }\n }\n}\n", "// browser support\n/* eslint-env browser */\n/* eslint-disable-next-line no-unused-vars */\nexport function inspect(data, options) {\n return JSON.stringify(data, null, 2);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {CborldError} from './CborldError.js';\nimport {ContextDecoder} from './codecs/ContextDecoder.js';\nimport {MultibaseDecoder} from './codecs/MultibaseDecoder.js';\nimport {Transformer} from './Transformer.js';\nimport {UriDecoder} from './codecs/UriDecoder.js';\nimport {VocabTermDecoder} from './codecs/VocabTermDecoder.js';\nimport {XsdDateDecoder} from './codecs/XsdDateDecoder.js';\nimport {XsdDateTimeDecoder} from './codecs/XsdDateTimeDecoder.js';\nimport {inspect} from './util.js';\nimport {FIRST_CUSTOM_TERM_ID, KEYWORDS} from './keywords.js';\n\nexport const TYPE_DECODERS = new Map([\n ['@id', UriDecoder],\n ['@vocab', VocabTermDecoder],\n ['https://w3id.org/security#multibase', MultibaseDecoder],\n ['http://www.w3.org/2001/XMLSchema#date', XsdDateDecoder],\n ['http://www.w3.org/2001/XMLSchema#dateTime', XsdDateTimeDecoder]\n]);\n\nconst CONTEXT_TERM_ID = KEYWORDS.get('@context');\nconst CONTEXT_TERM_ID_PLURAL = CONTEXT_TERM_ID + 1;\n\nexport class Decompressor extends Transformer {\n /**\n * Creates a new Decompressor for generating a JSON-LD document from\n * compressed CBOR-LD. The created instance may only be used on a single\n * CBOR-LD input at a time.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {documentLoaderFunction} options.documentLoader - The document\n * loader to use when resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767\n * (0x7FFF)).\n */\n constructor({documentLoader, appContextMap} = {}) {\n super({documentLoader, appContextMap});\n this.reverseAppContextMap = new Map();\n // build reverse contxt map\n if(appContextMap) {\n for(const [k, v] of appContextMap) {\n this.reverseAppContextMap.set(v, k);\n }\n }\n }\n\n /**\n * Decompresses the given CBOR-LD byte array to a JSON-LD document.\n *\n * @param {object} options - The options to use.\n * @param {Uint8Array} options.compressedBytes - The CBOR-LD compressed\n * bytes that follow the compressed CBOR-LD CBOR tag.\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<object>} - The JSON-LD document.\n */\n async decompress({compressedBytes, diagnose} = {}) {\n this.contextMap = new Map();\n this.termToId = new Map(KEYWORDS);\n this.nextTermId = FIRST_CUSTOM_TERM_ID;\n this.idToTerm = new Map();\n for(const [term, id] of this.termToId) {\n this.idToTerm.set(id, term);\n }\n\n // decoded output could be one or more transform maps\n const transformMap = cborg.decode(compressedBytes, {useMaps: true});\n if(diagnose) {\n diagnose('Diagnostic CBOR-LD decompression transform map(s):');\n diagnose(inspect(transformMap, {depth: null, colors: true}));\n }\n\n // handle single or multiple JSON-LD docs\n const results = [];\n const isArray = Array.isArray(transformMap);\n const transformMaps = isArray ? transformMap : [transformMap];\n for(const transformMap of transformMaps) {\n const obj = {};\n await this._transform({obj, transformMap});\n results.push(obj);\n }\n return isArray ? results : results[0];\n }\n\n _beforeObjectContexts({obj, transformMap}) {\n // decode `@context` for `transformMap`, if any\n const encodedContext = transformMap.get(CONTEXT_TERM_ID);\n if(encodedContext) {\n const decoder = ContextDecoder.createDecoder(\n {value: encodedContext, transformer: this});\n obj['@context'] = decoder ?\n decoder.decode({value: encodedContext}) : encodedContext;\n }\n const encodedContexts = transformMap.get(CONTEXT_TERM_ID_PLURAL);\n if(encodedContexts) {\n if(encodedContext) {\n // can't use *both* the singular and plural context term ID\n throw new CborldError(\n 'ERR_INVALID_ENCODED_CONTEXT',\n 'Both singular and plural context IDs were found in the ' +\n 'CBOR-LD input.');\n }\n if(!Array.isArray(encodedContexts)) {\n // `encodedContexts` must be an array\n throw new CborldError(\n 'ERR_INVALID_ENCODED_CONTEXT',\n 'Encoded plural context value must be an array.');\n }\n const entries = [];\n for(const value of encodedContexts) {\n const decoder = ContextDecoder.createDecoder(\n {value, transformer: this});\n entries.push(decoder ? decoder.decode({value}) : value);\n }\n obj['@context'] = entries;\n }\n }\n\n _beforeTypeScopedContexts({activeCtx, obj, transformMap}) {\n // decode object types\n const {termToId} = this;\n const typeTerms = ['@type', ...activeCtx.aliases.type];\n for(const term of typeTerms) {\n // check both singular and plural term IDs\n const termId = termToId.get(term);\n let value = transformMap.get(termId);\n if(value === undefined) {\n value = transformMap.get(termId + 1);\n }\n if(value !== undefined) {\n if(Array.isArray(value)) {\n obj[term] = value.map(value => {\n const decoder = VocabTermDecoder.createDecoder(\n {value, transformer: this});\n return decoder ? decoder.decode({value}) : value;\n });\n } else {\n const decoder = VocabTermDecoder.createDecoder(\n {value, transformer: this});\n obj[term] = decoder ? decoder.decode({value}) : value;\n }\n }\n }\n }\n\n _getEntries({transformMap, termMap}) {\n // get term entries to be transformed and sort by *term* to ensure term\n // IDs will be assigned in the same order that the compressor assigned them\n const entries = [];\n for(const [key, value] of transformMap) {\n // skip `@context`; not a term entry\n if(key === CONTEXT_TERM_ID || key === CONTEXT_TERM_ID_PLURAL) {\n continue;\n }\n\n // check for undefined term IDs\n const {term, plural} = this._getTermForId({id: key});\n if(term === undefined) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM_ID',\n `Unknown term ID '${key}' was detected in the CBOR-LD input.`);\n }\n\n // check for undefined term\n const def = termMap.get(term);\n if(def === undefined && !(term.startsWith('@') && KEYWORDS.has(term))) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM',\n `Unknown term \"${term}\" was detected in the CBOR-LD input.`);\n }\n\n entries.push([{term, termId: key, plural, def}, value]);\n }\n return entries.sort(_sortEntriesByTerm);\n }\n\n _getTermInfo({termMap, key}) {\n // check for undefined term IDs\n const {term, plural} = this._getTermForId({id: key});\n if(term === undefined) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM_ID',\n `Unknown term ID '${key}' was detected in the CBOR-LD input.`);\n }\n\n // check for undefined term\n const def = termMap.get(term);\n if(def === undefined && !(term.startsWith('@') && KEYWORDS.has(term))) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM',\n `Unknown term \"${term}\" was detected in the CBOR-LD input.`);\n }\n\n return {term, termId: key, plural, def};\n }\n\n _transformObjectId({obj, termInfo, value}) {\n const decoder = UriDecoder.createDecoder({value});\n obj[termInfo.term] = decoder ? decoder.decode({value}) : value;\n }\n\n _transformObjectType({obj, termInfo, value}) {\n const {term, plural} = termInfo;\n const values = plural ? value : [value];\n const entries = [];\n for(const value of values) {\n const decoder = VocabTermDecoder.createDecoder(\n {value, transformer: this});\n entries.push(decoder ? decoder.decode({value}) : value);\n }\n obj[term] = plural ? entries : entries[0];\n }\n\n _transformTypedValue({entries, termType, value}) {\n const DecoderClass = TYPE_DECODERS.get(termType);\n const decoder = DecoderClass && DecoderClass.createDecoder(\n {value, transformer: this});\n if(decoder) {\n entries.push(decoder.decode({value}));\n return true;\n }\n }\n\n async _transformArray({entries, contextStack, value}) {\n // recurse into array\n const children = [];\n for(const transformMap of value) {\n const obj = {};\n children.push(obj);\n await this._transform({obj, transformMap, contextStack});\n }\n entries.push(children);\n }\n\n async _transformObject({entries, contextStack, value}) {\n // recurse into object\n const child = {};\n entries.push(child);\n return this._transform({obj: child, transformMap: value, contextStack});\n }\n\n _assignEntries({entries, obj, termInfo}) {\n const {term, plural} = termInfo;\n obj[term] = plural ? entries : entries[0];\n }\n}\n\nfunction _sortEntriesByTerm([{term: t1}], [{term: t2}]) {\n return t1 < t2 ? -1 : t1 > t2 ? 1 : 0;\n}\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n", "/*!\n * Copyright (c) 2020-2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {CborldError} from './CborldError.js';\nimport {Decompressor} from './Decompressor.js';\nimport {inspect} from './util.js';\n\n/**\n * Decodes a CBOR-LD byte array into a JSON-LD document.\n *\n * @param {object} options - The options to use when decoding CBOR-LD.\n * @param {Uint8Array} options.cborldBytes - The encoded CBOR-LD bytes to\n * decode.\n * @param {Function} options.documentLoader -The document loader to use when\n * resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their associated CBOR-LD values. The values must be greater than\n * 32767 (0x7FFF)).\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<object>} - The decoded JSON-LD Document.\n */\nexport async function decode({\n cborldBytes, documentLoader, appContextMap = new Map(), diagnose}) {\n if(!(cborldBytes instanceof Uint8Array)) {\n throw new TypeError('\"cborldBytes\" must be a Uint8Array.');\n }\n\n // 0xd9 == 11011001\n // 110 = CBOR major type 6\n // 11001 = 25, 16-bit tag size (65536 possible values)\n let index = 0;\n if(cborldBytes[index++] !== 0xd9) {\n throw new CborldError(\n 'ERR_NOT_CBORLD',\n 'CBOR-LD must start with a CBOR major type \"Tag\" header of `0xd9`.');\n }\n\n // ensure `cborldBytes` represent CBOR-LD\n if(cborldBytes[index++] !== 0x05) {\n throw new CborldError(\n 'ERR_NOT_CBORLD', 'CBOR-LD 16-bit tag must start with `0x05`.');\n }\n\n const compressionMode = cborldBytes[index];\n if(compressionMode === undefined) {\n throw new CborldError(\n 'ERR_NOT_CBORLD', 'Truncated CBOR-LD 16-bit tag.');\n }\n\n if(!(compressionMode === 0 || compressionMode === 1)) {\n throw new CborldError(\n 'ERR_NOT_CBORLD',\n `Unsupported CBOR-LD compression mode \"${compressionMode}\".`);\n }\n\n index++;\n const {buffer, byteOffset, length} = cborldBytes;\n const suffix = new Uint8Array(buffer, byteOffset + index, length - index);\n\n // handle uncompressed CBOR-LD\n if(compressionMode === 0) {\n return cborg.decode(suffix, {useMaps: false});\n }\n\n // decompress CBOR-LD\n const decompressor = new Decompressor({documentLoader, appContextMap});\n const result = await decompressor.decompress(\n {compressedBytes: suffix, diagnose});\n\n if(diagnose) {\n diagnose('Diagnostic JSON-LD result:');\n diagnose(inspect(result, {depth: null, colors: true}));\n }\n\n return result;\n}\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport class CborldEncoder {\n encode() {\n throw new Error('Must be implemented by derived class.');\n }\n\n // eslint-disable-next-line no-unused-vars\n static createEncoder({value} = {}) {\n throw new Error('Must be implemented by derived class.');\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {URL_TO_ID} from './registeredContexts.js';\nimport {Token, Type} from 'cborg';\n\nexport class ContextEncoder extends CborldEncoder {\n constructor({context, appContextMap} = {}) {\n super();\n this.context = context;\n this.appContextMap = appContextMap;\n }\n\n encode() {\n const {context} = this;\n const id = URL_TO_ID.get(context) || this.appContextMap.get(context);\n if(id === undefined) {\n return new Token(Type.string, context);\n }\n return new Token(Type.uint, id);\n }\n\n static createEncoder({value, transformer} = {}) {\n if(typeof value !== 'string') {\n return false;\n }\n const {appContextMap} = transformer;\n return new ContextEncoder({context: value, appContextMap});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {Base64} from 'js-base64';\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {decode as decodeBase58} from 'base58-universal';\nimport {Token, Type} from 'cborg';\n\n// this class is used to encode a multibase encoded value in CBOR-LD, which\n// actually means transforming a multibase-encoded string to bytes\nexport class MultibaseEncoder extends CborldEncoder {\n constructor({value} = {}) {\n super();\n this.value = value;\n }\n\n encode() {\n const {value} = this;\n\n let prefix;\n let suffix;\n if(value[0] === 'z') {\n // 0x7a === 'z' (multibase code for base58btc)\n prefix = 0x7a;\n suffix = decodeBase58(value.substr(1));\n } else if(value[0] === 'M') {\n // 0x4d === 'M' (multibase code for base64pad)\n prefix = 0x4d;\n suffix = Base64.toUint8Array(value.substr(1));\n }\n\n const bytes = new Uint8Array(1 + suffix.length);\n bytes[0] = prefix;\n bytes.set(suffix, 1);\n return new Token(Type.bytes, bytes);\n }\n\n static createEncoder({value} = {}) {\n if(typeof value !== 'string') {\n return false;\n }\n // supported multibase encodings:\n // 0x7a === 'z' (multibase code for base58btc)\n // 0x4d === 'M' (multibase code for base64pad)\n if(value[0] === 'z' || value[0] === 'M') {\n return new MultibaseEncoder({value});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\nimport {decode as decodeBase58} from 'base58-universal';\n\nconst SCHEME_TO_ID = new Map([\n ['did:v1:nym:', 1024],\n ['did:key:', 1025]\n]);\n\nexport class Base58DidUrlEncoder extends CborldEncoder {\n constructor({value, scheme} = {}) {\n super();\n this.value = value;\n this.scheme = scheme;\n }\n\n encode() {\n const {value, scheme} = this;\n const suffix = value.substr(scheme.length);\n const [authority, fragment] = suffix.split('#');\n const entries = [\n new Token(Type.uint, SCHEME_TO_ID.get(scheme)),\n _multibase58ToToken(authority)\n ];\n if(fragment !== undefined) {\n entries.push(_multibase58ToToken(fragment));\n }\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n const keys = [...SCHEME_TO_ID.keys()];\n for(const key of keys) {\n if(value.startsWith(key)) {\n return new Base58DidUrlEncoder({value, scheme: key});\n }\n }\n }\n}\n\nfunction _multibase58ToToken(str) {\n if(str.startsWith('z')) {\n const decoded = decodeBase58(str.substr(1));\n if(decoded) {\n return new Token(Type.bytes, decoded);\n }\n }\n // cannot compress\n return new Token(Type.string, str);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\n\nexport class HttpUrlEncoder extends CborldEncoder {\n constructor({value, secure} = {}) {\n super();\n this.value = value;\n this.secure = secure;\n }\n\n encode() {\n const {value, secure} = this;\n const length = secure ? 'https://'.length : 'http://'.length;\n const entries = [\n new Token(Type.uint, secure ? 2 : 1),\n new Token(Type.string, value.substr(length))\n ];\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n // presume HTTPS is more common, check for it first\n if(value.startsWith('https://')) {\n return new HttpUrlEncoder({value, secure: true});\n }\n if(value.startsWith('http://')) {\n return new HttpUrlEncoder({value, secure: false});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\nimport {parse} from 'uuid';\n\nexport class UuidUrnEncoder extends CborldEncoder {\n constructor({value} = {}) {\n super();\n this.value = value;\n }\n\n encode() {\n const {value} = this;\n const rest = value.substr('urn:uuid:'.length);\n const entries = [new Token(Type.uint, 3)];\n if(rest.toLowerCase() === rest) {\n const uuidBytes = parse(rest);\n entries.push(new Token(Type.bytes, uuidBytes));\n } else {\n // cannot compress\n entries.push(new Token(Type.string, rest));\n }\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n if(value.startsWith('urn:uuid:')) {\n return new UuidUrnEncoder({value});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Base58DidUrlEncoder} from './Base58DidUrlEncoder.js';\nimport {HttpUrlEncoder} from './HttpUrlEncoder.js';\nimport {UuidUrnEncoder} from './UuidUrnEncoder.js';\n\nconst SCHEME_TO_ENCODER = new Map([\n ['http', HttpUrlEncoder],\n ['https', HttpUrlEncoder],\n ['urn:uuid', UuidUrnEncoder],\n ['did:v1:nym', Base58DidUrlEncoder],\n ['did:key', Base58DidUrlEncoder]\n]);\n\nexport class UriEncoder extends CborldEncoder {\n static createEncoder({value} = {}) {\n if(typeof value !== 'string') {\n return false;\n }\n\n // get full colon-delimited prefix\n let scheme;\n try {\n // this handles URIs both with authority followed by `//` and without\n const {protocol, pathname} = new URL(value);\n scheme = protocol;\n if(pathname.includes(':')) {\n scheme += pathname;\n }\n const split = value.split(':');\n split.pop();\n scheme = split.join(':');\n } catch(e) {\n return false;\n }\n\n const EncoderClass = SCHEME_TO_ENCODER.get(scheme);\n return EncoderClass && EncoderClass.createEncoder({value});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\nimport {UriEncoder} from './UriEncoder.js';\n\nexport class VocabTermEncoder extends CborldEncoder {\n constructor({termId} = {}) {\n super();\n this.termId = termId;\n }\n\n encode() {\n return new Token(Type.uint, this.termId);\n }\n\n static createEncoder({value, transformer} = {}) {\n const {termToId} = transformer;\n const termId = termToId.get(value);\n if(termId !== undefined) {\n return new VocabTermEncoder({termId});\n }\n return UriEncoder.createEncoder({value});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\n\nexport class XsdDateEncoder extends CborldEncoder {\n constructor({value, parsed} = {}) {\n super();\n this.value = value;\n this.parsed = parsed;\n }\n\n encode() {\n const {value, parsed} = this;\n const secondsSinceEpoch = Math.floor(parsed / 1000);\n const dateString = new Date(secondsSinceEpoch * 1000).toISOString();\n const expectedDate = dateString.substring(0, dateString.indexOf('T'));\n if(value !== expectedDate) {\n // compression would be lossy, do not compress\n return new Token(Type.string, value);\n }\n return new Token(Type.uint, secondsSinceEpoch);\n }\n\n static createEncoder({value} = {}) {\n if(value.includes('T')) {\n // time included, cannot compress\n return false;\n }\n const parsed = Date.parse(value);\n if(isNaN(parsed)) {\n // no date parsed, cannot compress\n return false;\n }\n\n return new XsdDateEncoder({value, parsed});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\n\nexport class XsdDateTimeEncoder extends CborldEncoder {\n constructor({value, parsed} = {}) {\n super();\n this.value = value;\n this.parsed = parsed;\n }\n\n encode() {\n const {value, parsed} = this;\n const secondsSinceEpoch = Math.floor(parsed / 1000);\n const secondsToken = new Token(Type.uint, secondsSinceEpoch);\n const millisecondIndex = value.indexOf('.');\n if(millisecondIndex === -1) {\n const expectedDate = new Date(\n secondsSinceEpoch * 1000).toISOString().replace('.000Z', 'Z');\n if(value !== expectedDate) {\n // compression would be lossy, do not compress\n return new Token(Type.string, value);\n }\n // compress with second precision\n return secondsToken;\n }\n\n const milliseconds = parseInt(value.substr(millisecondIndex + 1), 10);\n const expectedDate = new Date(\n secondsSinceEpoch * 1000 + milliseconds).toISOString();\n if(value !== expectedDate) {\n // compress would be lossy, do not compress\n return new Token(Type.string, value);\n }\n\n // compress with subsecond precision\n const entries = [\n secondsToken,\n new Token(Type.uint, milliseconds)\n ];\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n if(!value.includes('T')) {\n // no time included, cannot compress\n return false;\n }\n const parsed = Date.parse(value);\n if(isNaN(parsed)) {\n // no date parsed, cannot compress\n return false;\n }\n\n return new XsdDateTimeEncoder({value, parsed});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {CborldError} from './CborldError.js';\nimport {CborldEncoder} from './codecs/CborldEncoder.js';\nimport {ContextEncoder} from './codecs/ContextEncoder.js';\nimport {MultibaseEncoder} from './codecs/MultibaseEncoder.js';\nimport {Transformer} from './Transformer.js';\nimport {UriEncoder} from './codecs/UriEncoder.js';\nimport {VocabTermEncoder} from './codecs/VocabTermEncoder.js';\nimport {XsdDateEncoder} from './codecs/XsdDateEncoder.js';\nimport {XsdDateTimeEncoder} from './codecs/XsdDateTimeEncoder.js';\nimport {inspect} from './util.js';\nimport {FIRST_CUSTOM_TERM_ID, KEYWORDS} from './keywords.js';\n\nexport const TYPE_ENCODERS = new Map([\n ['@id', UriEncoder],\n ['@vocab', VocabTermEncoder],\n ['https://w3id.org/security#multibase', MultibaseEncoder],\n ['http://www.w3.org/2001/XMLSchema#date', XsdDateEncoder],\n ['http://www.w3.org/2001/XMLSchema#dateTime', XsdDateTimeEncoder]\n]);\n\nconst CONTEXT_TERM_ID = KEYWORDS.get('@context');\nconst CONTEXT_TERM_ID_PLURAL = CONTEXT_TERM_ID + 1;\n\n// override cborg object encoder to use cborld encoders\nconst typeEncoders = {\n Object(obj) {\n if(obj instanceof CborldEncoder) {\n return obj.encode({obj});\n }\n }\n};\n\nexport class Compressor extends Transformer {\n /**\n * Creates a new Compressor for generating compressed CBOR-LD from a\n * JSON-LD document. The created instance may only be used on a single\n * JSON-LD document at a time.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {documentLoaderFunction} options.documentLoader -The document\n * loader to use when resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767\n * (0x7FFF)).\n */\n constructor({documentLoader, appContextMap} = {}) {\n super({documentLoader, appContextMap});\n }\n\n /**\n * Compresses the given JSON-LD document into a CBOR-LD byte array of\n * compressed bytes that should follow the compressed CBOR-LD CBOR tag.\n *\n * @param {object} options - The options to use.\n * @param {object} options.jsonldDocument - The JSON-LD Document to convert\n * to CBOR-LD bytes.\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<Uint8Array>} - The compressed CBOR-LD bytes.\n */\n async compress({jsonldDocument, diagnose} = {}) {\n const transformMaps = await this._createTransformMaps({jsonldDocument});\n if(diagnose) {\n diagnose('Diagnostic CBOR-LD compression transform map(s):');\n diagnose(inspect(transformMaps, {depth: null, colors: true}));\n }\n return cborg.encode(transformMaps, {typeEncoders});\n }\n\n async _createTransformMaps({jsonldDocument}) {\n // initialize state\n this.contextMap = new Map();\n this.termToId = new Map(KEYWORDS);\n this.nextTermId = FIRST_CUSTOM_TERM_ID;\n\n // handle single or multiple JSON-LD docs\n const transformMaps = [];\n const isArray = Array.isArray(jsonldDocument);\n const docs = isArray ? jsonldDocument : [jsonldDocument];\n for(const obj of docs) {\n const transformMap = new Map();\n await this._transform({obj, transformMap});\n transformMaps.push(transformMap);\n }\n\n return isArray ? transformMaps : transformMaps[0];\n }\n\n _afterObjectContexts({obj, transformMap}) {\n // if `@context` is present in the object, encode it\n const context = obj['@context'];\n if(!context) {\n return;\n }\n\n const entries = [];\n const isArray = Array.isArray(context);\n const contexts = isArray ? context : [context];\n for(const value of contexts) {\n const encoder = ContextEncoder.createEncoder(\n {value, transformer: this});\n entries.push(encoder || value);\n }\n const id = isArray ? CONTEXT_TERM_ID_PLURAL : CONTEXT_TERM_ID;\n transformMap.set(id, isArray ? entries : entries[0]);\n }\n\n _getEntries({obj, termMap}) {\n // get term entries to be transformed and sort by *term* to ensure term\n // IDs will be assigned in the same order that the decompressor will\n const entries = [];\n const keys = Object.keys(obj).sort();\n for(const key of keys) {\n // skip `@context`; not a term entry\n if(key === '@context') {\n continue;\n }\n\n // check for undefined terms\n const def = termMap.get(key);\n if(def === undefined && !(key.startsWith('@') && KEYWORDS.has(key))) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM',\n `Unknown term '${key}' was detected in the JSON-LD input.`);\n }\n\n const value = obj[key];\n const plural = Array.isArray(value);\n const termId = this._getIdForTerm({term: key, plural});\n entries.push([{term: key, termId, plural, def}, value]);\n }\n return entries;\n }\n\n _transformObjectId({transformMap, termInfo, value}) {\n const {termId} = termInfo;\n const encoder = UriEncoder.createEncoder(\n {value, transformer: this, termInfo});\n transformMap.set(termId, encoder || value);\n }\n\n _transformObjectType({transformMap, termInfo, value}) {\n const {termId, plural} = termInfo;\n const values = plural ? value : [value];\n const entries = [];\n for(const value of values) {\n const encoder = VocabTermEncoder.createEncoder(\n {value, transformer: this, termInfo});\n entries.push(encoder || value);\n }\n transformMap.set(termId, plural ? entries : entries[0]);\n }\n\n _transformTypedValue({entries, termType, value, termInfo}) {\n const EncoderClass = TYPE_ENCODERS.get(termType);\n const encoder = EncoderClass && EncoderClass.createEncoder(\n {value, transformer: this, termInfo});\n if(encoder) {\n entries.push(encoder);\n return true;\n }\n }\n\n async _transformArray({entries, contextStack, value}) {\n // recurse into array\n const children = [];\n for(const obj of value) {\n const childMap = new Map();\n children.push(childMap);\n await this._transform({obj, transformMap: childMap, contextStack});\n }\n entries.push(children);\n }\n\n async _transformObject({entries, contextStack, value}) {\n // recurse into object\n const transformMap = new Map();\n entries.push(transformMap);\n await this._transform({obj: value, transformMap, contextStack});\n }\n\n _assignEntries({entries, transformMap, termInfo}) {\n const {termId, plural} = termInfo;\n transformMap.set(termId, plural ? entries : entries[0]);\n }\n}\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n", "/*!\n * Copyright (c) 2020-2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {inspect} from './util.js';\nimport {Compressor} from './Compressor.js';\n\n/**\n * Encodes a given JSON-LD document into a CBOR-LD byte array.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {object} options.jsonldDocument - The JSON-LD Document to convert to\n * CBOR-LD bytes.\n * @param {documentLoaderFunction} options.documentLoader -The document loader\n * to use when resolving JSON-LD Context URLs.\n * @param {boolean} [options.compressionMode=1] - `1` to use compression mode\n * version 1, `0` to use no compression.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767 (0x7FFF)).\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<Uint8Array>} - The encoded CBOR-LD bytes.\n */\nexport async function encode({\n jsonldDocument, documentLoader, appContextMap = new Map(),\n compressionMode = 1, diagnose\n} = {}) {\n if(!(compressionMode === 0 || compressionMode === 1)) {\n throw new TypeError(\n '\"compressionMode\" must be \"0\" (no compression) or \"1\" ' +\n 'for compression mode version 1.');\n }\n\n // 0xd9 == 11011001\n // 110 = CBOR major type 6\n // 11001 = 25, 16-bit tag size (65536 possible values)\n // 0x05 = always the first 8-bits of a CBOR-LD tag\n // compressionMode = last 8-bits of a CBOR-LD tag indicating compression type\n const prefix = new Uint8Array([0xd9, 0x05, compressionMode]);\n let suffix;\n\n if(compressionMode === 0) {\n // handle uncompressed CBOR-LD\n suffix = cborg.encode(jsonldDocument);\n } else {\n // compress CBOR-LD\n const compressor = new Compressor({documentLoader, appContextMap});\n suffix = await compressor.compress({jsonldDocument, diagnose});\n }\n\n // concatenate prefix and suffix\n const length = prefix.length + suffix.length;\n const bytes = new Uint8Array(length);\n bytes.set(prefix);\n bytes.set(suffix, prefix.length);\n\n if(diagnose) {\n diagnose('Diagnostic CBOR-LD result:');\n diagnose(inspect(bytes, {depth: null, colors: true}));\n }\n\n return bytes;\n}\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n", "export default function toDataView (data) {\n if (data instanceof Int8Array || data instanceof Uint8Array || data instanceof Uint8ClampedArray) {\n return new DataView(data.buffer, data.byteOffset, data.byteLength)\n }\n\n if (data instanceof ArrayBuffer) {\n return new DataView(data)\n }\n\n throw new TypeError('Expected `data` to be an ArrayBuffer, Buffer, Int8Array, Uint8Array or Uint8ClampedArray')\n}\n", "import toDataView from 'to-data-view'\n\nconst RFC4648 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'\nconst RFC4648_HEX = '0123456789ABCDEFGHIJKLMNOPQRSTUV'\nconst CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'\n\nexport default function base32Encode (data, variant, options) {\n options = options || {}\n let alphabet, defaultPadding\n\n switch (variant) {\n case 'RFC3548':\n case 'RFC4648':\n alphabet = RFC4648\n defaultPadding = true\n break\n case 'RFC4648-HEX':\n alphabet = RFC4648_HEX\n defaultPadding = true\n break\n case 'Crockford':\n alphabet = CROCKFORD\n defaultPadding = false\n break\n default:\n throw new Error('Unknown base32 variant: ' + variant)\n }\n\n const padding = (options.padding !== undefined ? options.padding : defaultPadding)\n const view = toDataView(data)\n\n let bits = 0\n let value = 0\n let output = ''\n\n for (let i = 0; i < view.byteLength; i++) {\n value = (value << 8) | view.getUint8(i)\n bits += 8\n\n while (bits >= 5) {\n output += alphabet[(value >>> (bits - 5)) & 31]\n bits -= 5\n }\n }\n\n if (bits > 0) {\n output += alphabet[(value << (5 - bits)) & 31]\n }\n\n if (padding) {\n while ((output.length % 8) !== 0) {\n output += '='\n }\n }\n\n return output\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborld from '@digitalbazaar/cborld';\n\nimport base32Encode from 'base32-encode';\nimport base32Decode from 'base32-decode';\n\nimport {\n Encoder,\n // QRByte,\n QRAlphanumeric,\n // ErrorCorrectionLevel\n} from '@nuintun/qrcode';\n\nconst VP_QR_VERSION = 'VP1';\nconst BASE_32_UPPERCASE_MULTIBASE_PREFIX = 'B';\n\nfunction _bytesToQrCodeDataUrl({bytes, size}) {\n const qrcode = new Encoder();\n qrcode.setEncodingHint(true);\n // qrcode.setErrorCorrectionLevel(ErrorCorrectionLevel.M);\n const encoded = base32Encode(bytes, 'RFC4648', {padding: false});\n\n const vpPayload =\n `${VP_QR_VERSION}-${BASE_32_UPPERCASE_MULTIBASE_PREFIX}${encoded}`;\n\n qrcode.write(new QRAlphanumeric(vpPayload));\n\n qrcode.make();\n\n return {\n payload: vpPayload,\n encodedCborld: encoded,\n version: qrcode.getVersion(),\n imageDataUrl: qrcode.toDataURL(size)\n };\n}\n\nexport async function toQrCode({\n vp, documentLoader, size, diagnose\n} = {}) {\n const cborldBytes = await cborld.encode({\n jsonldDocument: vp,\n documentLoader,\n // to debug, set diagnose: console.log\n diagnose\n });\n\n const {\n payload,\n imageDataUrl,\n encodedCborld,\n version\n } = _bytesToQrCodeDataUrl({\n bytes: cborldBytes, size\n });\n\n return {\n payload,\n imageDataUrl,\n encodedCborld,\n rawCborldBytes: cborldBytes,\n version\n };\n}\n\nexport async function fromQrCode({\n text, documentLoader, diagnose\n} = {}) {\n const header = VP_QR_VERSION + '-';\n if(!(text && text.startsWith(header))) {\n throw TypeError('Unsupported VP QR format.');\n }\n\n const multibasePayload = text.slice(header.length);\n\n if(!multibasePayload.startsWith(BASE_32_UPPERCASE_MULTIBASE_PREFIX)) {\n throw TypeError('Payload must be multibase base32 (RFC4648) encoded.');\n }\n\n const cborldArrayBuffer = base32Decode(multibasePayload.slice(1), 'RFC4648');\n const cborldBytes = new Uint8Array(cborldArrayBuffer);\n\n const vp = await cborld.decode({\n cborldBytes,\n documentLoader,\n // to debug, set diagnose: console.log\n diagnose\n });\n\n return {vp};\n}\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module Mode\n * @author nuintun\n * @author Cosmo Wolfe\n * @author Kazuhiko Arase\n */\n/**\n * @readonly\n */\nvar Mode;\n(function (Mode) {\n Mode[(Mode['Terminator'] = 0)] = 'Terminator';\n Mode[(Mode['Numeric'] = 1)] = 'Numeric';\n Mode[(Mode['Alphanumeric'] = 2)] = 'Alphanumeric';\n Mode[(Mode['StructuredAppend'] = 3)] = 'StructuredAppend';\n Mode[(Mode['Byte'] = 4)] = 'Byte';\n Mode[(Mode['Kanji'] = 8)] = 'Kanji';\n Mode[(Mode['ECI'] = 7)] = 'ECI';\n // FNC1FirstPosition = 0x5,\n // FNC1SecondPosition = 0x9\n})(Mode || (Mode = {}));\n\nexport { Mode };\n", "import tslib from '../tslib.js';\r\nconst {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __esDecorate,\r\n __runInitializers,\r\n __propKey,\r\n __setFunctionName,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n} = tslib;\r\nexport {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __esDecorate,\r\n __runInitializers,\r\n __propKey,\r\n __setFunctionName,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { Mode } from '../common/Mode.js';\n\n/**\n * @module QRData\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar QRData = /*#__PURE__*/ (function () {\n function QRData(mode, data) {\n this.bytes = [];\n this.mode = mode;\n this.data = data;\n }\n QRData.prototype.getLength = function () {\n return this.bytes.length;\n };\n QRData.prototype.getLengthInBits = function (version) {\n var mode = this.mode;\n var error = new Error('illegal mode: '.concat(mode));\n if (1 <= version && version < 10) {\n // 1 - 9\n switch (mode) {\n case Mode.Numeric:\n return 10;\n case Mode.Alphanumeric:\n return 9;\n case Mode.Byte:\n return 8;\n case Mode.Kanji:\n return 8;\n default:\n throw error;\n }\n } else if (version < 27) {\n // 10 - 26\n switch (mode) {\n case Mode.Numeric:\n return 12;\n case Mode.Alphanumeric:\n return 11;\n case Mode.Byte:\n return 16;\n case Mode.Kanji:\n return 10;\n default:\n throw error;\n }\n } else if (version < 41) {\n // 27 - 40\n switch (mode) {\n case Mode.Numeric:\n return 14;\n case Mode.Alphanumeric:\n return 13;\n case Mode.Byte:\n return 16;\n case Mode.Kanji:\n return 12;\n default:\n throw error;\n }\n } else {\n throw new Error('illegal version: '.concat(version));\n }\n };\n return QRData;\n})();\n\nexport { QRData };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module UTF8\n * @author nuintun\n */\n/**\n * @function encode\n * @param {string} text\n * @returns {number[]}\n * @see https://github.com/google/closure-library/blob/master/closure/goog/crypt/crypt.js\n */\nfunction encode(text) {\n var pos = 0;\n var length = text.length;\n var bytes = [];\n for (var i = 0; i < length; i++) {\n var code = text.charCodeAt(i);\n if (code < 128) {\n bytes[pos++] = code;\n } else if (code < 2048) {\n bytes[pos++] = (code >> 6) | 192;\n bytes[pos++] = (code & 63) | 128;\n } else if ((code & 0xfc00) === 0xd800 && i + 1 < length && (text.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n // Surrogate Pair\n code = 0x10000 + ((code & 0x03ff) << 10) + (text.charCodeAt(++i) & 0x03ff);\n bytes[pos++] = (code >> 18) | 240;\n bytes[pos++] = ((code >> 12) & 63) | 128;\n bytes[pos++] = ((code >> 6) & 63) | 128;\n bytes[pos++] = (code & 63) | 128;\n } else {\n bytes[pos++] = (code >> 12) | 224;\n bytes[pos++] = ((code >> 6) & 63) | 128;\n bytes[pos++] = (code & 63) | 128;\n }\n }\n return bytes;\n}\n/**\n * @function decode\n * @param {number[]} bytes\n * @returns {string}\n * @see https://github.com/google/closure-library/blob/master/closure/goog/crypt/crypt.js\n */\nfunction decode(bytes) {\n var pos = 0;\n var output = '';\n var length = bytes.length;\n var fromCharCode = String.fromCharCode;\n while (pos < length) {\n var c1 = bytes[pos++];\n if (c1 < 128) {\n output += fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n var c2 = bytes[pos++];\n output += fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n var c4 = bytes[pos++];\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) - 0x10000;\n output += fromCharCode(0xd800 + (u >> 10));\n output += fromCharCode(0xdc00 + (u & 1023));\n } else {\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n output += fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n }\n }\n return output;\n}\n\nexport { decode, encode };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { QRData } from './QRData.js';\nimport { Mode } from '../common/Mode.js';\nimport { encode } from '../../encoding/UTF8.js';\n\n/**\n * @module QR8BitByte\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar QRByte = /*#__PURE__*/ (function (_super) {\n __extends(QRByte, _super);\n /**\n * @constructor\n * @param {string} data\n */\n function QRByte(data, encode$1) {\n var _this = _super.call(this, Mode.Byte, data) || this;\n _this.encoding = -1;\n if (typeof encode$1 === 'function') {\n var _a = encode$1(data),\n encoding = _a.encoding,\n bytes = _a.bytes;\n _this.bytes = bytes;\n _this.encoding = encoding;\n } else {\n _this.bytes = encode(data);\n _this.encoding = 26 /* UTF8 */;\n }\n return _this;\n }\n /**\n * @public\n * @method writeTo\n * @param {BitBuffer} buffer\n */\n QRByte.prototype.writeTo = function (buffer) {\n var bytes = this.bytes;\n for (var _i = 0, bytes_1 = bytes; _i < bytes_1.length; _i++) {\n var byte = bytes_1[_i];\n buffer.put(byte, 8);\n }\n };\n return QRByte;\n})(QRData);\n\nexport { QRByte };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module QRMath\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar EXP_TABLE = [];\nvar LOG_TABLE = [];\nfor (var i = 0; i < 256; i++) {\n LOG_TABLE[i] = 0;\n EXP_TABLE[i] = i < 8 ? 1 << i : EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n LOG_TABLE[EXP_TABLE[i]] = i;\n}\nfunction glog(n) {\n if (n < 1) {\n throw new Error('illegal log: '.concat(n));\n }\n return LOG_TABLE[n];\n}\nfunction gexp(n) {\n while (n < 0) {\n n += 255;\n }\n while (n >= 256) {\n n -= 255;\n }\n return EXP_TABLE[n];\n}\n\nexport { gexp, glog };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { gexp, glog } from './QRMath.js';\n\n/**\n * @module Polynomial\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar Polynomial = /*#__PURE__*/ (function () {\n function Polynomial(num, shift) {\n if (shift === void 0) {\n shift = 0;\n }\n var offset = 0;\n var length = num.length;\n while (offset < length && num[offset] === 0) {\n offset++;\n }\n length -= offset;\n var numbers = [];\n for (var i = 0; i < length; i++) {\n numbers.push(num[offset + i]);\n }\n for (var i = 0; i < shift; i++) {\n numbers.push(0);\n }\n this.num = numbers;\n }\n Polynomial.prototype.getAt = function (index) {\n return this.num[index];\n };\n Polynomial.prototype.getLength = function () {\n return this.num.length;\n };\n Polynomial.prototype.multiply = function (e) {\n var num = [];\n var eLength = e.getLength();\n var tLength = this.getLength();\n var dLength = tLength + eLength - 1;\n for (var i = 0; i < dLength; i++) {\n num.push(0);\n }\n for (var i = 0; i < tLength; i++) {\n for (var j = 0; j < eLength; j++) {\n num[i + j] ^= gexp(glog(this.getAt(i)) + glog(e.getAt(j)));\n }\n }\n return new Polynomial(num);\n };\n Polynomial.prototype.mod = function (e) {\n var eLength = e.getLength();\n var tLength = this.getLength();\n if (tLength - eLength < 0) {\n return this;\n }\n var ratio = glog(this.getAt(0)) - glog(e.getAt(0));\n // Create copy\n var num = [];\n for (var i = 0; i < tLength; i++) {\n num.push(this.getAt(i));\n }\n // Subtract and calc rest.\n for (var i = 0; i < eLength; i++) {\n num[i] ^= gexp(glog(e.getAt(i)) + ratio);\n }\n // Call recursively\n return new Polynomial(num).mod(e);\n };\n return Polynomial;\n})();\n\nexport { Polynomial };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { gexp } from './QRMath.js';\nimport { Polynomial } from './Polynomial.js';\n\n/**\n * @module QRUtil\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar N1 = 3;\nvar N2 = 3;\nvar N3 = 40;\nvar N4 = 10;\nvar ALIGNMENT_PATTERN_TABLE = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n];\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\nfunction getAlignmentPattern(version) {\n return ALIGNMENT_PATTERN_TABLE[version - 1];\n}\nfunction getErrorCorrectionPolynomial(errorCorrectionLength) {\n var e = new Polynomial([1]);\n for (var i = 0; i < errorCorrectionLength; i++) {\n e = e.multiply(new Polynomial([1, gexp(i)]));\n }\n return e;\n}\nfunction getBCHDigit(data) {\n var digit = 0;\n while (data !== 0) {\n digit++;\n data >>>= 1;\n }\n return digit;\n}\nvar G18_BCH = getBCHDigit(G18);\nfunction getBCHVersion(data) {\n var offset = data << 12;\n while (getBCHDigit(offset) - G18_BCH >= 0) {\n offset ^= G18 << (getBCHDigit(offset) - G18_BCH);\n }\n return (data << 12) | offset;\n}\nvar G15_BCH = getBCHDigit(G15);\nfunction getBCHVersionInfo(data) {\n var offset = data << 10;\n while (getBCHDigit(offset) - G15_BCH >= 0) {\n offset ^= G15 << (getBCHDigit(offset) - G15_BCH);\n }\n return ((data << 10) | offset) ^ G15_MASK;\n}\nfunction applyMaskPenaltyRule1Internal(qrcode, isHorizontal) {\n var matrixSize = qrcode.getMatrixSize();\n var penalty = 0;\n for (var i = 0; i < matrixSize; i++) {\n var prevBit = false;\n var numSameBitCells = 0;\n for (var j = 0; j < matrixSize; j++) {\n var bit = isHorizontal ? qrcode.isDark(i, j) : qrcode.isDark(j, i);\n if (bit === prevBit) {\n numSameBitCells++;\n if (numSameBitCells === 5) {\n penalty += N1;\n } else if (numSameBitCells > 5) {\n penalty++;\n }\n } else {\n // set prev bit\n prevBit = bit;\n // include the cell itself\n numSameBitCells = 1;\n }\n }\n }\n return penalty;\n}\nfunction applyMaskPenaltyRule1(qrcode) {\n return applyMaskPenaltyRule1Internal(qrcode, true) + applyMaskPenaltyRule1Internal(qrcode, false);\n}\nfunction applyMaskPenaltyRule2(qrcode) {\n var matrixSize = qrcode.getMatrixSize();\n var penalty = 0;\n for (var y = 0; y < matrixSize - 1; y++) {\n for (var x = 0; x < matrixSize - 1; x++) {\n var value = qrcode.isDark(y, x);\n if (value === qrcode.isDark(y, x + 1) && value === qrcode.isDark(y + 1, x) && value === qrcode.isDark(y + 1, x + 1)) {\n penalty += N2;\n }\n }\n }\n return penalty;\n}\nfunction isFourWhite(qrcode, rangeIndex, from, to, isHorizontal) {\n from = Math.max(from, 0);\n to = Math.min(to, qrcode.getMatrixSize());\n for (var i = from; i < to; i++) {\n var value = isHorizontal ? qrcode.isDark(rangeIndex, i) : qrcode.isDark(i, rangeIndex);\n if (value) {\n return false;\n }\n }\n return true;\n}\nfunction applyMaskPenaltyRule3(qrcode) {\n var matrixSize = qrcode.getMatrixSize();\n var penalty = 0;\n for (var y = 0; y < matrixSize; y++) {\n for (var x = 0; x < matrixSize; x++) {\n if (\n x + 6 < matrixSize &&\n qrcode.isDark(y, x) &&\n !qrcode.isDark(y, x + 1) &&\n qrcode.isDark(y, x + 2) &&\n qrcode.isDark(y, x + 3) &&\n qrcode.isDark(y, x + 4) &&\n !qrcode.isDark(y, x + 5) &&\n qrcode.isDark(y, x + 6) &&\n (isFourWhite(qrcode, y, x - 4, x, true) || isFourWhite(qrcode, y, x + 7, x + 11, true))\n ) {\n penalty += N3;\n }\n if (\n y + 6 < matrixSize &&\n qrcode.isDark(y, x) &&\n !qrcode.isDark(y + 1, x) &&\n qrcode.isDark(y + 2, x) &&\n qrcode.isDark(y + 3, x) &&\n qrcode.isDark(y + 4, x) &&\n !qrcode.isDark(y + 5, x) &&\n qrcode.isDark(y + 6, x) &&\n (isFourWhite(qrcode, x, y - 4, y, false) || isFourWhite(qrcode, x, y + 7, y + 11, false))\n ) {\n penalty += N3;\n }\n }\n }\n return penalty;\n}\nfunction applyMaskPenaltyRule4(qrcode) {\n var matrixSize = qrcode.getMatrixSize();\n var numDarkCells = 0;\n for (var y = 0; y < matrixSize; y++) {\n for (var x = 0; x < matrixSize; x++) {\n if (qrcode.isDark(y, x)) {\n numDarkCells++;\n }\n }\n }\n var numTotalCells = matrixSize * matrixSize;\n var fivePercentVariances = Math.floor(Math.abs(numDarkCells * 20 - numTotalCells * 10) / numTotalCells);\n return fivePercentVariances * N4;\n}\n/**\n * @function calculateMaskPenalty\n * @param {Encoder} qrcode\n * @see https://www.thonky.com/qr-code-tutorial/data-masking\n * @see https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java\n */\nfunction calculateMaskPenalty(qrcode) {\n return (\n applyMaskPenaltyRule1(qrcode) +\n applyMaskPenaltyRule2(qrcode) +\n applyMaskPenaltyRule3(qrcode) +\n applyMaskPenaltyRule4(qrcode)\n );\n}\n\nexport { calculateMaskPenalty, getAlignmentPattern, getBCHVersion, getBCHVersionInfo, getErrorCorrectionPolynomial };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module ErrorCorrectionLevel\n * @author nuintun\n * @author Cosmo Wolfe\n * @author Kazuhiko Arase\n */\n/**\n * @readonly\n */\nvar ErrorCorrectionLevel;\n(function (ErrorCorrectionLevel) {\n // 7%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['L'] = 1)] = 'L';\n // 15%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['M'] = 0)] = 'M';\n // 25%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['Q'] = 3)] = 'Q';\n // 30%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['H'] = 2)] = 'H';\n})(ErrorCorrectionLevel || (ErrorCorrectionLevel = {}));\n\nexport { ErrorCorrectionLevel };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { ErrorCorrectionLevel } from '../common/ErrorCorrectionLevel.js';\n\n/**\n * @module RSBlock\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar RSBlock = /*#__PURE__*/ (function () {\n function RSBlock(totalCount, dataCount) {\n this.dataCount = dataCount;\n this.totalCount = totalCount;\n }\n RSBlock.prototype.getDataCount = function () {\n return this.dataCount;\n };\n RSBlock.prototype.getTotalCount = function () {\n return this.totalCount;\n };\n RSBlock.getRSBlocks = function (version, errorCorrectionLevel) {\n var rsBlocks = [];\n var rsBlock = RSBlock.getRSBlockTable(version, errorCorrectionLevel);\n var length = rsBlock.length / 3;\n for (var i = 0; i < length; i++) {\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n for (var j = 0; j < count; j++) {\n rsBlocks.push(new RSBlock(totalCount, dataCount));\n }\n }\n return rsBlocks;\n };\n RSBlock.getRSBlockTable = function (version, errorCorrectionLevel) {\n switch (errorCorrectionLevel) {\n case ErrorCorrectionLevel.L:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 0];\n case ErrorCorrectionLevel.M:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 1];\n case ErrorCorrectionLevel.Q:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 2];\n case ErrorCorrectionLevel.H:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 3];\n default:\n throw new Error('illegal error correction level: '.concat(errorCorrectionLevel));\n }\n };\n RSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12, 7, 37, 13],\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ];\n return RSBlock;\n})();\n\nexport { RSBlock };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module BitBuffer\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar BitBuffer = /*#__PURE__*/ (function () {\n function BitBuffer() {\n this.length = 0;\n this.buffer = [];\n }\n BitBuffer.prototype.getBuffer = function () {\n return this.buffer;\n };\n BitBuffer.prototype.getLengthInBits = function () {\n return this.length;\n };\n BitBuffer.prototype.getBit = function (index) {\n return ((this.buffer[(index / 8) >> 0] >>> (7 - (index % 8))) & 1) === 1;\n };\n BitBuffer.prototype.put = function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1);\n }\n };\n BitBuffer.prototype.putBit = function (bit) {\n var buffer = this.buffer;\n if (this.length === buffer.length * 8) {\n buffer.push(0);\n }\n if (bit) {\n buffer[(this.length / 8) >> 0] |= 0x80 >>> this.length % 8;\n }\n this.length++;\n };\n return BitBuffer;\n})();\n\nexport { BitBuffer };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module OutputStream\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar OutputStream = /*#__PURE__*/ (function () {\n function OutputStream() {}\n OutputStream.prototype.writeBytes = function (bytes, offset, length) {\n if (offset === void 0) {\n offset = 0;\n }\n if (length === void 0) {\n length = bytes.length;\n }\n for (var i = 0; i < length; i++) {\n this.writeByte(bytes[i + offset]);\n }\n };\n OutputStream.prototype.flush = function () {\n // The flush method\n };\n OutputStream.prototype.close = function () {\n this.flush();\n };\n return OutputStream;\n})();\n\nexport { OutputStream };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { OutputStream } from './OutputStream.js';\n\n/**\n * @module ByteArrayOutputStream\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar ByteArrayOutputStream = /*#__PURE__*/ (function (_super) {\n __extends(ByteArrayOutputStream, _super);\n function ByteArrayOutputStream() {\n var _this = (_super !== null && _super.apply(this, arguments)) || this;\n _this.bytes = [];\n return _this;\n }\n ByteArrayOutputStream.prototype.writeByte = function (byte) {\n this.bytes.push(byte);\n };\n ByteArrayOutputStream.prototype.writeInt16 = function (byte) {\n this.bytes.push(byte, byte >>> 8);\n };\n ByteArrayOutputStream.prototype.toByteArray = function () {\n return this.bytes;\n };\n return ByteArrayOutputStream;\n})(OutputStream);\n\nexport { ByteArrayOutputStream };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { OutputStream } from './OutputStream.js';\n\n/**\n * @module Base64EncodeOutputStream\n * @author nuintun\n * @author Kazuhiko Arase\n */\nfunction encode(ch) {\n if (ch >= 0) {\n if (ch < 26) {\n // A\n return 0x41 + ch;\n } else if (ch < 52) {\n // a\n return 0x61 + (ch - 26);\n } else if (ch < 62) {\n // 0\n return 0x30 + (ch - 52);\n } else if (ch === 62) {\n // +\n return 0x2b;\n } else if (ch === 63) {\n // /\n return 0x2f;\n }\n }\n throw new Error('illegal char: '.concat(String.fromCharCode(ch)));\n}\nvar Base64EncodeOutputStream = /*#__PURE__*/ (function (_super) {\n __extends(Base64EncodeOutputStream, _super);\n function Base64EncodeOutputStream(stream) {\n var _this = _super.call(this) || this;\n _this.buffer = 0;\n _this.length = 0;\n _this.bufLength = 0;\n _this.stream = stream;\n return _this;\n }\n Base64EncodeOutputStream.prototype.writeByte = function (byte) {\n this.buffer = (this.buffer << 8) | (byte & 0xff);\n this.bufLength += 8;\n this.length++;\n while (this.bufLength >= 6) {\n this.writeEncoded(this.buffer >>> (this.bufLength - 6));\n this.bufLength -= 6;\n }\n };\n /**\n * @override\n */\n Base64EncodeOutputStream.prototype.flush = function () {\n if (this.bufLength > 0) {\n this.writeEncoded(this.buffer << (6 - this.bufLength));\n this.buffer = 0;\n this.bufLength = 0;\n }\n var stream = this.stream;\n if (this.length % 3 != 0) {\n // Padding\n var pad = 3 - (this.length % 3);\n for (var i = 0; i < pad; i++) {\n // =\n stream.writeByte(0x3d);\n }\n }\n };\n Base64EncodeOutputStream.prototype.writeEncoded = function (byte) {\n this.stream.writeByte(encode(byte & 0x3f));\n };\n return Base64EncodeOutputStream;\n})(OutputStream);\n\nexport { Base64EncodeOutputStream };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { ByteArrayOutputStream } from '../io/ByteArrayOutputStream.js';\nimport { Base64EncodeOutputStream } from '../io/Base64EncodeOutputStream.js';\n\n/**\n * @module GIF Image (B/W)\n * @author nuintun\n * @author Kazuhiko Arase\n */\nfunction encodeToBase64(data) {\n var output = new ByteArrayOutputStream();\n var stream = new Base64EncodeOutputStream(output);\n stream.writeBytes(data);\n stream.close();\n output.close();\n return output.toByteArray();\n}\nvar LZWTable = /*#__PURE__*/ (function () {\n function LZWTable() {\n this.size = 0;\n this.map = {};\n }\n LZWTable.prototype.add = function (key) {\n if (!this.contains(key)) {\n this.map[key] = this.size++;\n }\n };\n LZWTable.prototype.getSize = function () {\n return this.size;\n };\n LZWTable.prototype.indexOf = function (key) {\n return this.map[key];\n };\n LZWTable.prototype.contains = function (key) {\n return this.map[key] >= 0;\n };\n return LZWTable;\n})();\nvar BitOutputStream = /*#__PURE__*/ (function () {\n function BitOutputStream(output) {\n this.output = output;\n this.bitLength = 0;\n this.bitBuffer = 0;\n }\n BitOutputStream.prototype.write = function (data, length) {\n if (data >>> length !== 0) {\n throw new Error('length overflow');\n }\n var output = this.output;\n while (this.bitLength + length >= 8) {\n output.writeByte(0xff & ((data << this.bitLength) | this.bitBuffer));\n length -= 8 - this.bitLength;\n data >>>= 8 - this.bitLength;\n this.bitBuffer = 0;\n this.bitLength = 0;\n }\n this.bitBuffer = (data << this.bitLength) | this.bitBuffer;\n this.bitLength = this.bitLength + length;\n };\n BitOutputStream.prototype.flush = function () {\n var output = this.output;\n if (this.bitLength > 0) {\n output.writeByte(this.bitBuffer);\n }\n output.flush();\n };\n BitOutputStream.prototype.close = function () {\n this.flush();\n this.output.close();\n };\n return BitOutputStream;\n})();\nvar GIFImage = /*#__PURE__*/ (function () {\n function GIFImage(width, height) {\n this.data = [];\n this.width = width;\n this.height = height;\n var size = width * height;\n for (var i = 0; i < size; i++) {\n this.data[i] = 0;\n }\n }\n GIFImage.prototype.getLZWRaster = function (lzwMinCodeSize) {\n // Setup LZWTable\n var table = new LZWTable();\n var fromCharCode = String.fromCharCode;\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n for (var i = 0; i < clearCode; i++) {\n table.add(fromCharCode(i));\n }\n table.add(fromCharCode(clearCode));\n table.add(fromCharCode(endCode));\n var bitLength = lzwMinCodeSize + 1;\n var byteOutput = new ByteArrayOutputStream();\n var bitOutput = new BitOutputStream(byteOutput);\n try {\n var data = this.data;\n var length_1 = data.length;\n var fromCharCode_1 = String.fromCharCode;\n // Clear code\n bitOutput.write(clearCode, bitLength);\n var dataIndex = 0;\n var words = fromCharCode_1(data[dataIndex++]);\n while (dataIndex < length_1) {\n var char = fromCharCode_1(data[dataIndex++]);\n if (table.contains(words + char)) {\n words += char;\n } else {\n bitOutput.write(table.indexOf(words), bitLength);\n if (table.getSize() < 0xfff) {\n if (table.getSize() === 1 << bitLength) {\n bitLength++;\n }\n table.add(words + char);\n }\n words = char;\n }\n }\n bitOutput.write(table.indexOf(words), bitLength);\n // End code\n bitOutput.write(endCode, bitLength);\n } finally {\n bitOutput.close();\n }\n return byteOutput.toByteArray();\n };\n GIFImage.prototype.setPixel = function (x, y, pixel) {\n var _a = this,\n width = _a.width,\n height = _a.height;\n if (x < 0 || width <= x) throw new Error('illegal x axis: '.concat(x));\n if (y < 0 || height <= y) throw new Error('illegal y axis: '.concat(y));\n this.data[y * width + x] = pixel;\n };\n GIFImage.prototype.getPixel = function (x, y) {\n var _a = this,\n width = _a.width,\n height = _a.height;\n if (x < 0 || width <= x) throw new Error('illegal x axis: '.concat(x));\n if (y < 0 || height <= y) throw new Error('illegal y axis: '.concat(y));\n return this.data[y * width + x];\n };\n GIFImage.prototype.write = function (output) {\n var _a = this,\n width = _a.width,\n height = _a.height;\n // GIF Signature\n output.writeByte(0x47); // G\n output.writeByte(0x49); // I\n output.writeByte(0x46); // F\n output.writeByte(0x38); // 8\n output.writeByte(0x37); // 7\n output.writeByte(0x61); // a\n // Screen Descriptor\n output.writeInt16(width);\n output.writeInt16(height);\n output.writeByte(0x80); // 2bit\n output.writeByte(0);\n output.writeByte(0);\n // Global Color Map\n // Black\n output.writeByte(0x00);\n output.writeByte(0x00);\n output.writeByte(0x00);\n // White\n output.writeByte(0xff);\n output.writeByte(0xff);\n output.writeByte(0xff);\n // Image Descriptor\n output.writeByte(0x2c); // ,\n output.writeInt16(0);\n output.writeInt16(0);\n output.writeInt16(width);\n output.writeInt16(height);\n output.writeByte(0);\n // Local Color Map\n // Raster Data\n var lzwMinCodeSize = 2;\n var raster = this.getLZWRaster(lzwMinCodeSize);\n var raLength = raster.length;\n output.writeByte(lzwMinCodeSize);\n var offset = 0;\n while (raLength - offset > 255) {\n output.writeByte(255);\n output.writeBytes(raster, offset, 255);\n offset += 255;\n }\n var length = raLength - offset;\n output.writeByte(length);\n output.writeBytes(raster, offset, length);\n output.writeByte(0x00);\n // GIF Terminator\n output.writeByte(0x3b); // ;\n };\n GIFImage.prototype.toDataURL = function () {\n var output = new ByteArrayOutputStream();\n this.write(output);\n var bytes = encodeToBase64(output.toByteArray());\n output.close();\n var length = bytes.length;\n var fromCharCode = String.fromCharCode;\n var url = 'data:image/gif;base64,';\n for (var i = 0; i < length; i++) {\n url += fromCharCode(bytes[i]);\n }\n return url;\n };\n return GIFImage;\n})();\n\nexport { GIFImage };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module MaskPattern\n * @author nuintun\n * @author Cosmo Wolfe\n * @author Kazuhiko Arase\n */\nfunction getMaskFunc(maskPattern) {\n switch (maskPattern) {\n case 0 /* PATTERN000 */:\n return function (x, y) {\n return ((x + y) & 0x1) === 0;\n };\n case 1 /* PATTERN001 */:\n return function (_x, y) {\n return (y & 0x1) === 0;\n };\n case 2 /* PATTERN010 */:\n return function (x, _y) {\n return x % 3 === 0;\n };\n case 3 /* PATTERN011 */:\n return function (x, y) {\n return (x + y) % 3 === 0;\n };\n case 4 /* PATTERN100 */:\n return function (x, y) {\n return ((((x / 3) >> 0) + ((y / 2) >> 0)) & 0x1) === 0;\n };\n case 5 /* PATTERN101 */:\n return function (x, y) {\n return ((x * y) & 0x1) + ((x * y) % 3) === 0;\n };\n case 6 /* PATTERN110 */:\n return function (x, y) {\n return ((((x * y) & 0x1) + ((x * y) % 3)) & 0x1) === 0;\n };\n case 7 /* PATTERN111 */:\n return function (x, y) {\n return ((((x * y) % 3) + ((x + y) & 0x1)) & 0x1) === 0;\n };\n default:\n throw new Error('illegal mask: '.concat(maskPattern));\n }\n}\n\nexport { getMaskFunc };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { QRByte } from './QRByte.js';\nimport { QRData } from './QRData.js';\nimport {\n getAlignmentPattern,\n getBCHVersion,\n calculateMaskPenalty,\n getErrorCorrectionPolynomial,\n getBCHVersionInfo\n} from './QRUtil.js';\nimport { RSBlock } from './RSBlock.js';\nimport { Mode } from '../common/Mode.js';\nimport { BitBuffer } from './BitBuffer.js';\nimport { Polynomial } from './Polynomial.js';\nimport { GIFImage } from '../../image/GIFImage.js';\nimport { getMaskFunc } from '../common/MaskPattern.js';\nimport { ErrorCorrectionLevel } from '../common/ErrorCorrectionLevel.js';\n\n/**\n * @module QRCode\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar PAD0 = 0xec;\nvar PAD1 = 0x11;\nvar toString = Object.prototype.toString;\n/**\n * @function appendECI\n * @param {number} encoding\n * @param {BitBuffer} buffer\n * @see https://github.com/nayuki/QR-Code-generator/blob/master/typescript-javascript/qrcodegen.ts\n * @see https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/qrcode/encoder/Encoder.java\n */\nfunction appendECI(encoding, buffer) {\n if (encoding < 0 || encoding >= 1000000) {\n throw new Error('byte mode encoding hint out of range');\n }\n buffer.put(Mode.ECI, 4);\n if (encoding < 1 << 7) {\n buffer.put(encoding, 8);\n } else if (encoding < 1 << 14) {\n buffer.put(2, 2);\n buffer.put(encoding, 14);\n } else {\n buffer.put(6, 3);\n buffer.put(encoding, 21);\n }\n}\nfunction prepareData(version, errorCorrectionLevel, encodingHint, chunks) {\n var buffer = new BitBuffer();\n var rsBlocks = RSBlock.getRSBlocks(version, errorCorrectionLevel);\n for (var _i = 0, chunks_1 = chunks; _i < chunks_1.length; _i++) {\n var data = chunks_1[_i];\n var mode = data.mode;\n // Default set encoding UTF-8 when has encoding hint\n if (encodingHint && mode === Mode.Byte) {\n appendECI(data.encoding, buffer);\n }\n buffer.put(mode, 4);\n buffer.put(data.getLength(), data.getLengthInBits(version));\n data.writeTo(buffer);\n }\n // Calc max data count\n var maxDataCount = 0;\n for (var _a = 0, rsBlocks_1 = rsBlocks; _a < rsBlocks_1.length; _a++) {\n var rsBlock = rsBlocks_1[_a];\n maxDataCount += rsBlock.getDataCount();\n }\n maxDataCount *= 8;\n return [buffer, rsBlocks, maxDataCount];\n}\nfunction createBytes(buffer, rsBlocks) {\n var offset = 0;\n var maxDcCount = 0;\n var maxEcCount = 0;\n var dcData = [];\n var ecData = [];\n var rsLength = rsBlocks.length;\n var bufferData = buffer.getBuffer();\n for (var r = 0; r < rsLength; r++) {\n var rsBlock = rsBlocks[r];\n var dcCount = rsBlock.getDataCount();\n var ecCount = rsBlock.getTotalCount() - dcCount;\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n dcData[r] = [];\n for (var i = 0; i < dcCount; i++) {\n dcData[r][i] = 0xff & bufferData[i + offset];\n }\n offset += dcCount;\n var rsPoly = getErrorCorrectionPolynomial(ecCount);\n var ecLength = rsPoly.getLength() - 1;\n var rawPoly = new Polynomial(dcData[r], ecLength);\n var modPoly = rawPoly.mod(rsPoly);\n var mpLength = modPoly.getLength();\n ecData[r] = [];\n for (var i = 0; i < ecLength; i++) {\n var modIndex = i + mpLength - ecLength;\n ecData[r][i] = modIndex >= 0 ? modPoly.getAt(modIndex) : 0;\n }\n }\n buffer = new BitBuffer();\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsLength; r++) {\n if (i < dcData[r].length) {\n buffer.put(dcData[r][i], 8);\n }\n }\n }\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsLength; r++) {\n if (i < ecData[r].length) {\n buffer.put(ecData[r][i], 8);\n }\n }\n }\n return buffer;\n}\nfunction createData(buffer, rsBlocks, maxDataCount) {\n // End\n if (buffer.getLengthInBits() + 4 <= maxDataCount) {\n buffer.put(0, 4);\n }\n // Padding\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(false);\n }\n // Padding\n while (true) {\n if (buffer.getLengthInBits() >= maxDataCount) {\n break;\n }\n buffer.put(PAD0, 8);\n if (buffer.getLengthInBits() >= maxDataCount) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n return createBytes(buffer, rsBlocks);\n}\nvar Encoder = /*#__PURE__*/ (function () {\n function Encoder(options) {\n if (options === void 0) {\n options = {};\n }\n this.matrixSize = 0;\n this.chunks = [];\n this.matrix = [];\n var _a = options.version,\n version = _a === void 0 ? 0 : _a,\n _b = options.encodingHint,\n encodingHint = _b === void 0 ? false : _b,\n _c = options.errorCorrectionLevel,\n errorCorrectionLevel = _c === void 0 ? ErrorCorrectionLevel.L : _c;\n this.setVersion(version);\n this.setEncodingHint(encodingHint);\n this.setErrorCorrectionLevel(errorCorrectionLevel);\n }\n /**\n * @public\n * @method getMatrix\n * @returns {boolean[][]}\n */\n Encoder.prototype.getMatrix = function () {\n return this.matrix;\n };\n /**\n * @public\n * @method getMatrixSize\n * @returns {number}\n */\n Encoder.prototype.getMatrixSize = function () {\n return this.matrixSize;\n };\n /**\n * @public\n * @method getVersion\n * @returns {number}\n */\n Encoder.prototype.getVersion = function () {\n return this.version;\n };\n /**\n * @public\n * @method setVersion\n * @param {number} version\n * @returns {Encoder}\n */\n Encoder.prototype.setVersion = function (version) {\n this.version = Math.min(40, Math.max(0, version >> 0));\n this.auto = this.version === 0;\n return this;\n };\n /**\n * @public\n * @method getErrorCorrectionLevel\n * @returns {ErrorCorrectionLevel}\n */\n Encoder.prototype.getErrorCorrectionLevel = function () {\n return this.errorCorrectionLevel;\n };\n /**\n * @public\n * @method setErrorCorrectionLevel\n * @param {ErrorCorrectionLevel} errorCorrectionLevel\n */\n Encoder.prototype.setErrorCorrectionLevel = function (errorCorrectionLevel) {\n switch (errorCorrectionLevel) {\n case ErrorCorrectionLevel.L:\n case ErrorCorrectionLevel.M:\n case ErrorCorrectionLevel.Q:\n case ErrorCorrectionLevel.H:\n this.errorCorrectionLevel = errorCorrectionLevel;\n }\n return this;\n };\n /**\n * @public\n * @method getEncodingHint\n * @returns {boolean}\n */\n Encoder.prototype.getEncodingHint = function () {\n return this.encodingHint;\n };\n /**\n * @public\n * @method setEncodingHint\n * @param {boolean} encodingHint\n * @returns {Encoder}\n */\n Encoder.prototype.setEncodingHint = function (encodingHint) {\n this.encodingHint = encodingHint;\n return this;\n };\n /**\n * @public\n * @method write\n * @param {QRData} data\n * @returns {Encoder}\n */\n Encoder.prototype.write = function (data) {\n var chunks = this.chunks;\n if (data instanceof QRData) {\n chunks.push(data);\n } else {\n var type = toString.call(data);\n if (type === '[object String]') {\n chunks.push(new QRByte(data));\n } else {\n throw new Error('illegal data: '.concat(data));\n }\n }\n return this;\n };\n /**\n * @public\n * @method isDark\n * @param {number} row\n * @param {number} col\n * @returns {boolean}\n */\n Encoder.prototype.isDark = function (row, col) {\n return this.matrix[row][col] === true;\n };\n Encoder.prototype.setupFinderPattern = function (row, col) {\n var matrix = this.matrix;\n var matrixSize = this.matrixSize;\n for (var r = -1; r <= 7; r++) {\n for (var c = -1; c <= 7; c++) {\n if (row + r <= -1 || matrixSize <= row + r || col + c <= -1 || matrixSize <= col + c) {\n continue;\n }\n if (\n (0 <= r && r <= 6 && (c === 0 || c === 6)) ||\n (0 <= c && c <= 6 && (r === 0 || r === 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n matrix[row + r][col + c] = true;\n } else {\n matrix[row + r][col + c] = false;\n }\n }\n }\n };\n Encoder.prototype.setupAlignmentPattern = function () {\n var matrix = this.matrix;\n var pos = getAlignmentPattern(this.version);\n var length = pos.length;\n for (var i = 0; i < length; i++) {\n for (var j = 0; j < length; j++) {\n var row = pos[i];\n var col = pos[j];\n if (matrix[row][col] !== null) {\n continue;\n }\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 || (r === 0 && c === 0)) {\n matrix[row + r][col + c] = true;\n } else {\n matrix[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n Encoder.prototype.setupTimingPattern = function () {\n var matrix = this.matrix;\n var count = this.matrixSize - 8;\n for (var i = 8; i < count; i++) {\n var bit = i % 2 === 0;\n // vertical\n if (matrix[i][6] === null) {\n matrix[i][6] = bit;\n }\n // horizontal\n if (matrix[6][i] === null) {\n matrix[6][i] = bit;\n }\n }\n };\n Encoder.prototype.setupFormatInfo = function (maskPattern) {\n var matrix = this.matrix;\n var data = (this.errorCorrectionLevel << 3) | maskPattern;\n var bits = getBCHVersionInfo(data);\n var matrixSize = this.matrixSize;\n for (var i = 0; i < 15; i++) {\n var bit = ((bits >> i) & 1) === 1;\n // Vertical\n if (i < 6) {\n matrix[i][8] = bit;\n } else if (i < 8) {\n matrix[i + 1][8] = bit;\n } else {\n matrix[matrixSize - 15 + i][8] = bit;\n }\n // Horizontal\n if (i < 8) {\n matrix[8][matrixSize - i - 1] = bit;\n } else if (i < 9) {\n matrix[8][15 - i - 1 + 1] = bit;\n } else {\n matrix[8][15 - i - 1] = bit;\n }\n }\n // Fixed point\n matrix[matrixSize - 8][8] = true;\n };\n Encoder.prototype.setupVersionInfo = function () {\n if (this.version >= 7) {\n var matrix = this.matrix;\n var matrixSize = this.matrixSize;\n var bits = getBCHVersion(this.version);\n for (var i = 0; i < 18; i++) {\n var bit = ((bits >> i) & 1) === 1;\n matrix[(i / 3) >> 0][(i % 3) + matrixSize - 8 - 3] = bit;\n matrix[(i % 3) + matrixSize - 8 - 3][(i / 3) >> 0] = bit;\n }\n }\n };\n Encoder.prototype.setupCodewords = function (data, maskPattern) {\n var matrix = this.matrix;\n var matrixSize = this.matrixSize;\n var bitLength = data.getLengthInBits();\n var maskFunc = getMaskFunc(maskPattern);\n // Bit index into the data\n var bitIndex = 0;\n // Do the funny zigzag scan\n for (var right = matrixSize - 1; right >= 1; right -= 2) {\n // Index of right column in each column pair\n if (right === 6) {\n right = 5;\n }\n for (var vert = 0; vert < matrixSize; vert++) {\n // Vertical counter\n for (var j = 0; j < 2; j++) {\n // Actual x coordinate\n var x = right - j;\n var upward = ((right + 1) & 2) === 0;\n // Actual y coordinate\n var y = upward ? matrixSize - 1 - vert : vert;\n if (matrix[y][x] !== null) {\n continue;\n }\n var bit = false;\n if (bitIndex < bitLength) {\n bit = data.getBit(bitIndex++);\n }\n var invert = maskFunc(x, y);\n if (invert) {\n bit = !bit;\n }\n matrix[y][x] = bit;\n }\n }\n }\n };\n Encoder.prototype.buildMatrix = function (data, maskPattern) {\n // Initialize matrix\n var matrix = [];\n var matrixSize = this.matrixSize;\n for (var row = 0; row < matrixSize; row++) {\n matrix[row] = [];\n for (var col = 0; col < matrixSize; col++) {\n matrix[row][col] = null;\n }\n }\n this.matrix = matrix;\n // Setup finder pattern\n this.setupFinderPattern(0, 0);\n this.setupFinderPattern(matrixSize - 7, 0);\n this.setupFinderPattern(0, matrixSize - 7);\n // Setup alignment pattern\n this.setupAlignmentPattern();\n // Setup timing pattern\n this.setupTimingPattern();\n // Setup format info\n this.setupFormatInfo(maskPattern);\n // Setup version info\n this.setupVersionInfo();\n // Setup codewords\n this.setupCodewords(data, maskPattern);\n };\n /**\n * @public\n * @method make\n * @returns {Encoder}\n */\n Encoder.prototype.make = function () {\n var _a, _b;\n var buffer;\n var rsBlocks;\n var maxDataCount;\n var _c = this,\n chunks = _c.chunks,\n errorCorrectionLevel = _c.errorCorrectionLevel;\n if (this.auto) {\n var version = 1;\n for (; version <= 40; version++) {\n (_a = prepareData(version, errorCorrectionLevel, this.encodingHint, chunks)),\n (buffer = _a[0]),\n (rsBlocks = _a[1]),\n (maxDataCount = _a[2]);\n if (buffer.getLengthInBits() <= maxDataCount) break;\n }\n var dataLengthInBits = buffer.getLengthInBits();\n if (dataLengthInBits > maxDataCount) {\n throw new Error('data overflow: '.concat(dataLengthInBits, ' > ').concat(maxDataCount));\n }\n this.version = version;\n } else {\n (_b = prepareData(this.version, errorCorrectionLevel, this.encodingHint, chunks)),\n (buffer = _b[0]),\n (rsBlocks = _b[1]),\n (maxDataCount = _b[2]);\n }\n // Calc module count\n this.matrixSize = this.version * 4 + 17;\n var matrices = [];\n var data = createData(buffer, rsBlocks, maxDataCount);\n var bestMaskPattern = -1;\n var minPenalty = Number.MAX_VALUE;\n // Choose best mask pattern\n for (var maskPattern = 0; maskPattern < 8; maskPattern++) {\n this.buildMatrix(data, maskPattern);\n matrices.push(this.matrix);\n var penalty = calculateMaskPenalty(this);\n if (penalty < minPenalty) {\n minPenalty = penalty;\n bestMaskPattern = maskPattern;\n }\n }\n this.matrix = matrices[bestMaskPattern];\n return this;\n };\n /**\n * @public\n * @method toDataURL\n * @param {number} moduleSize\n * @param {number} margin\n * @returns {string}\n */\n Encoder.prototype.toDataURL = function (moduleSize, margin) {\n if (moduleSize === void 0) {\n moduleSize = 2;\n }\n if (margin === void 0) {\n margin = moduleSize * 4;\n }\n moduleSize = Math.max(1, moduleSize >> 0);\n margin = Math.max(0, margin >> 0);\n var matrixSize = this.matrixSize;\n var size = moduleSize * matrixSize + margin * 2;\n var min = margin;\n var max = size - margin;\n var gif = new GIFImage(size, size);\n for (var y = 0; y < size; y++) {\n for (var x = 0; x < size; x++) {\n if (min <= x && x < max && min <= y && y < max) {\n var row = ((y - min) / moduleSize) >> 0;\n var col = ((x - min) / moduleSize) >> 0;\n gif.setPixel(x, y, this.isDark(row, col) ? 0 : 1);\n } else {\n gif.setPixel(x, y, 1);\n }\n }\n }\n return gif.toDataURL();\n };\n /**\n * @public\n * @method clear\n */\n Encoder.prototype.clear = function () {\n this.chunks = [];\n };\n return Encoder;\n})();\n\nexport { Encoder };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module UTF16\n * @author nuintun\n */\n/**\n * @function encode\n * @param {string} text\n * @returns {number[]}\n */\nfunction encode(text) {\n var length = text.length;\n var bytes = [];\n for (var i = 0; i < length; i++) {\n bytes.push(text.charCodeAt(i));\n }\n return bytes;\n}\n\nexport { encode };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.0\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { QRData } from './QRData.js';\nimport { Mode } from '../common/Mode.js';\nimport { encode } from '../../encoding/UTF16.js';\n\n/**\n * @module QRAlphanumeric\n * @author nuintun\n * @author Kazuhiko Arase\n */\nfunction getByte(byte) {\n if (0x30 <= byte && byte <= 0x39) {\n // 0 - 9\n return byte - 0x30;\n } else if (0x41 <= byte && byte <= 0x5a) {\n // A - Z\n return byte - 0x41 + 10;\n } else {\n switch (byte) {\n // space\n case 0x20:\n return 36;\n // $\n case 0x24:\n return 37;\n // %\n case 0x25:\n return 38;\n // *\n case 0x2a:\n return 39;\n // +\n case 0x2b:\n return 40;\n // -\n case 0x2d:\n return 41;\n // .\n case 0x2e:\n return 42;\n // /\n case 0x2f:\n return 43;\n // :\n case 0x3a:\n return 44;\n default:\n throw new Error('illegal char: '.concat(String.fromCharCode(byte)));\n }\n }\n}\nvar QRAlphanumeric = /*#__PURE__*/ (function (_super) {\n __extends(QRAlphanumeric, _super);\n /**\n * @constructor\n * @param {string} data\n */\n function QRAlphanumeric(data) {\n var _this = _super.call(this, Mode.Alphanumeric, data) || this;\n _this.bytes = encode(data);\n return _this;\n }\n /**\n * @public\n * @method writeTo\n * @param {BitBuffer} buffer\n */\n QRAlphanumeric.prototype.writeTo = function (buffer) {\n var i = 0;\n var bytes = this.bytes;\n var length = bytes.length;\n while (i + 1 < length) {\n buffer.put(getByte(bytes[i]) * 45 + getByte(bytes[i + 1]), 11);\n i += 2;\n }\n if (i < length) {\n buffer.put(getByte(bytes[i]), 6);\n }\n };\n return QRAlphanumeric;\n})(QRData);\n\nexport { QRAlphanumeric };\n"],
5
- "mappings": "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",
6
- "names": ["module", "RFC4648", "RFC4648_HEX", "CROCKFORD", "alphabet", "base32Decode", "module", "__extends", "__assign", "__rest", "__decorate", "__param", "__esDecorate", "__runInitializers", "__propKey", "__setFunctionName", "__metadata", "__awaiter", "__generator", "__exportStar", "__values", "__read", "__spread", "__spreadArrays", "__spreadArray", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "__classPrivateFieldIn", "__createBinding", "exports", "v", "isBuffer", "buf", "isBuffer", "buf", "buf", "encodedSize", "buf", "encodedSize", "compareTokens", "buf", "encodedSize", "compareTokens", "toToken", "toToken", "buf", "encodedSize", "toToken", "buf", "encodedSize", "buf", "encodedSize", "buf", "encodedSize", "ui8a", "buf", "encode", "decode", "encode", "alphabet", "decode", "encode", "decode", "buffer", "encode", "value", "encode", "transformMap", "value", "decode", "buffer", "decode", "decode", "expectedDate", "CONTEXT_TERM_ID", "CONTEXT_TERM_ID_PLURAL", "typeEncoders", "value", "encode", "alphabet", "Mode", "tslib", "QRData", "version", "encode", "QRByte", "encode", "buffer", "Polynomial", "version", "ErrorCorrectionLevel", "RSBlock", "version", "BitBuffer", "buffer", "OutputStream", "ByteArrayOutputStream", "encode", "Base64EncodeOutputStream", "LZWTable", "BitOutputStream", "GIFImage", "toString", "buffer", "version", "Encoder", "encode", "QRAlphanumeric", "encode", "buffer", "encode", "version", "base32Decode", "decode"]
3
+ "sources": ["../../../../node_modules/.pnpm/base32-decode@1.0.0/node_modules/base32-decode/index.js", "../src/index.ts", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/is.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/token.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/byte-utils.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/bl.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/common.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/0uint.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/1negint.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/2bytes.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/3string.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/4array.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/5map.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/6tag.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/7float.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/jump.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/encode.js", "../../../../node_modules/.pnpm/cborg@1.10.2/node_modules/cborg/esm/lib/decode.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/CborldError.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/CborldDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/registeredContexts.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/ContextDecoder.js", "../../../../node_modules/.pnpm/js-base64@3.7.5/node_modules/js-base64/base64.mjs", "../../../../node_modules/.pnpm/base58-universal@2.0.0/node_modules/base58-universal/lib/baseN.js", "../../../../node_modules/.pnpm/base58-universal@2.0.0/node_modules/base58-universal/lib/index.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/MultibaseDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/keywords.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/Transformer.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/Base58DidUrlDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/HttpUrlDecoder.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js", "../../../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/parse.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UuidUrnDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UriDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/VocabTermDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateTimeDecoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/util-browser.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/Decompressor.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/decode.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/CborldEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/ContextEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/MultibaseEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/Base58DidUrlEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/HttpUrlEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UuidUrnEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/UriEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/VocabTermEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/codecs/XsdDateTimeEncoder.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/Compressor.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/encode.js", "../../../../node_modules/.pnpm/@digitalbazaar+cborld@5.0.0/node_modules/@digitalbazaar/cborld/lib/index.js", "../../../../node_modules/.pnpm/to-data-view@2.0.0/node_modules/to-data-view/index.js", "../../../../node_modules/.pnpm/base32-encode@2.0.0/node_modules/base32-encode/index.js", "../../../../node_modules/.pnpm/@digitalbazaar+vpqr@3.0.0/node_modules/@digitalbazaar/vpqr/lib/vpqr.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/common/Mode.js", "../../../../node_modules/.pnpm/tslib@2.5.3/node_modules/tslib/tslib.es6.mjs", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRData.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/encoding/UTF8.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRByte.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRMath.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/Polynomial.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRUtil.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/common/ErrorCorrectionLevel.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/RSBlock.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/BitBuffer.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/io/OutputStream.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/io/ByteArrayOutputStream.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/io/Base64EncodeOutputStream.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/image/GIFImage.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/common/MaskPattern.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/Writer.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/encoding/UTF16.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/qrcode/encoder/QRAlphanumeric.js", "../../../../node_modules/.pnpm/@nuintun+qrcode@3.3.5/node_modules/@nuintun/qrcode/esm/index.js", "../../../../node_modules/.pnpm/@digitalbazaar+vpqr@3.0.0/node_modules/@digitalbazaar/vpqr/lib/index.js"],
4
+ "sourcesContent": ["var RFC4648 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'\nvar RFC4648_HEX = '0123456789ABCDEFGHIJKLMNOPQRSTUV'\nvar CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'\n\nfunction readChar (alphabet, char) {\n var idx = alphabet.indexOf(char)\n\n if (idx === -1) {\n throw new Error('Invalid character found: ' + char)\n }\n\n return idx\n}\n\nmodule.exports = function base32Decode (input, variant) {\n var alphabet\n\n switch (variant) {\n case 'RFC3548':\n case 'RFC4648':\n alphabet = RFC4648\n input = input.replace(/=+$/, '')\n break\n case 'RFC4648-HEX':\n alphabet = RFC4648_HEX\n input = input.replace(/=+$/, '')\n break\n case 'Crockford':\n alphabet = CROCKFORD\n input = input.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')\n break\n default:\n throw new Error('Unknown base32 variant: ' + variant)\n }\n\n var length = input.length\n\n var bits = 0\n var value = 0\n\n var index = 0\n var output = new Uint8Array((length * 5 / 8) | 0)\n\n for (var i = 0; i < length; i++) {\n value = (value << 5) | readChar(alphabet, input[i])\n bits += 5\n\n if (bits >= 8) {\n output[index++] = (value >>> (bits - 8)) & 255\n bits -= 8\n }\n }\n\n return output.buffer\n}\n", "import { toQrCode, fromQrCode } from '@digitalbazaar/vpqr';\n\nimport { VpqrPlugin, VpqrPluginDependentMethods } from './types';\nimport { LearnCard } from '@learncard/core';\n\nexport * from './types';\n\n/**\n * @group Plugins\n */\nexport const getVpqrPlugin = (\n learnCard: LearnCard<any, any, VpqrPluginDependentMethods>\n): VpqrPlugin => {\n return {\n name: 'Vpqr',\n displayName: 'VP QR',\n description: 'Allows reading and creating QR codes with Verifiable Presentations in them',\n methods: {\n vpFromQrCode: async (_learnCard, text) => {\n return (\n await fromQrCode({\n text,\n documentLoader: async (url: string) => ({\n document: await learnCard.invoke.contextLoader(url),\n }),\n })\n )?.vp;\n },\n vpToQrCode: async (_learnCard, vp) => {\n return (\n await toQrCode({\n vp,\n documentLoader: async (url: string) => ({\n document: await learnCard.invoke.contextLoader(url),\n }),\n })\n )?.imageDataUrl;\n },\n },\n };\n};\n", "const typeofs = [\n 'string',\n 'number',\n 'bigint',\n 'symbol'\n];\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'HTMLElement',\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nexport function is(value) {\n if (value === null) {\n return 'null';\n }\n if (value === undefined) {\n return 'undefined';\n }\n if (value === true || value === false) {\n return 'boolean';\n }\n const typeOf = typeof value;\n if (typeofs.includes(typeOf)) {\n return typeOf;\n }\n if (typeOf === 'function') {\n return 'Function';\n }\n if (Array.isArray(value)) {\n return 'Array';\n }\n if (isBuffer(value)) {\n return 'Buffer';\n }\n const objectType = getObjectType(value);\n if (objectType) {\n return objectType;\n }\n return 'Object';\n}\nfunction isBuffer(value) {\n return value && value.constructor && value.constructor.isBuffer && value.constructor.isBuffer.call(null, value);\n}\nfunction getObjectType(value) {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (objectTypeNames.includes(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n}", "class Type {\n constructor(major, name, terminal) {\n this.major = major;\n this.majorEncoded = major << 5;\n this.name = name;\n this.terminal = terminal;\n }\n toString() {\n return `Type[${ this.major }].${ this.name }`;\n }\n compare(typ) {\n return this.major < typ.major ? -1 : this.major > typ.major ? 1 : 0;\n }\n}\nType.uint = new Type(0, 'uint', true);\nType.negint = new Type(1, 'negint', true);\nType.bytes = new Type(2, 'bytes', true);\nType.string = new Type(3, 'string', true);\nType.array = new Type(4, 'array', false);\nType.map = new Type(5, 'map', false);\nType.tag = new Type(6, 'tag', false);\nType.float = new Type(7, 'float', true);\nType.false = new Type(7, 'false', true);\nType.true = new Type(7, 'true', true);\nType.null = new Type(7, 'null', true);\nType.undefined = new Type(7, 'undefined', true);\nType.break = new Type(7, 'break', true);\nclass Token {\n constructor(type, value, encodedLength) {\n this.type = type;\n this.value = value;\n this.encodedLength = encodedLength;\n this.encodedBytes = undefined;\n this.byteValue = undefined;\n }\n toString() {\n return `Token[${ this.type }].${ this.value }`;\n }\n}\nexport {\n Type,\n Token\n};", "export const useBuffer = globalThis.process && !globalThis.process.browser && globalThis.Buffer && typeof globalThis.Buffer.isBuffer === 'function';\nconst textDecoder = new TextDecoder();\nconst textEncoder = new TextEncoder();\nfunction isBuffer(buf) {\n return useBuffer && globalThis.Buffer.isBuffer(buf);\n}\nexport function asU8A(buf) {\n if (!(buf instanceof Uint8Array)) {\n return Uint8Array.from(buf);\n }\n return isBuffer(buf) ? new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength) : buf;\n}\nexport const toString = useBuffer ? (bytes, start, end) => {\n return end - start > 64 ? globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8') : utf8Slice(bytes, start, end);\n} : (bytes, start, end) => {\n return end - start > 64 ? textDecoder.decode(bytes.subarray(start, end)) : utf8Slice(bytes, start, end);\n};\nexport const fromString = useBuffer ? string => {\n return string.length > 64 ? globalThis.Buffer.from(string) : utf8ToBytes(string);\n} : string => {\n return string.length > 64 ? textEncoder.encode(string) : utf8ToBytes(string);\n};\nexport const fromArray = arr => {\n return Uint8Array.from(arr);\n};\nexport const slice = useBuffer ? (bytes, start, end) => {\n if (isBuffer(bytes)) {\n return new Uint8Array(bytes.subarray(start, end));\n }\n return bytes.slice(start, end);\n} : (bytes, start, end) => {\n return bytes.slice(start, end);\n};\nexport const concat = useBuffer ? (chunks, length) => {\n chunks = chunks.map(c => c instanceof Uint8Array ? c : globalThis.Buffer.from(c));\n return asU8A(globalThis.Buffer.concat(chunks, length));\n} : (chunks, length) => {\n const out = new Uint8Array(length);\n let off = 0;\n for (let b of chunks) {\n if (off + b.length > out.length) {\n b = b.subarray(0, out.length - off);\n }\n out.set(b, off);\n off += b.length;\n }\n return out;\n};\nexport const alloc = useBuffer ? size => {\n return globalThis.Buffer.allocUnsafe(size);\n} : size => {\n return new Uint8Array(size);\n};\nexport const toHex = useBuffer ? d => {\n if (typeof d === 'string') {\n return d;\n }\n return globalThis.Buffer.from(toBytes(d)).toString('hex');\n} : d => {\n if (typeof d === 'string') {\n return d;\n }\n return Array.prototype.reduce.call(toBytes(d), (p, c) => `${ p }${ c.toString(16).padStart(2, '0') }`, '');\n};\nexport const fromHex = useBuffer ? hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n return globalThis.Buffer.from(hex, 'hex');\n} : hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n if (!hex.length) {\n return new Uint8Array(0);\n }\n return new Uint8Array(hex.split('').map((c, i, d) => i % 2 === 0 ? `0x${ c }${ d[i + 1] }` : '').filter(Boolean).map(e => parseInt(e, 16)));\n};\nfunction toBytes(obj) {\n if (obj instanceof Uint8Array && obj.constructor.name === 'Uint8Array') {\n return obj;\n }\n if (obj instanceof ArrayBuffer) {\n return new Uint8Array(obj);\n }\n if (ArrayBuffer.isView(obj)) {\n return new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n}\nexport function compare(b1, b2) {\n if (isBuffer(b1) && isBuffer(b2)) {\n return b1.compare(b2);\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] === b2[i]) {\n continue;\n }\n return b1[i] < b2[i] ? -1 : 1;\n }\n return 0;\n}\nfunction utf8ToBytes(string, units = Infinity) {\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n}\nfunction utf8Slice(buf, offset, end) {\n const res = [];\n while (offset < end) {\n const firstByte = buf[offset];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (offset + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[offset + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n fourthByte = buf[offset + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n offset += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n}\nconst MAX_ARGUMENTS_LENGTH = 4096;\nexport function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = '';\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n}", "import {\n alloc,\n concat,\n slice\n} from './byte-utils.js';\nconst defaultChunkSize = 256;\nexport class Bl {\n constructor(chunkSize = defaultChunkSize) {\n this.chunkSize = chunkSize;\n this.cursor = 0;\n this.maxCursor = -1;\n this.chunks = [];\n this._initReuseChunk = null;\n }\n reset() {\n this.cursor = 0;\n this.maxCursor = -1;\n if (this.chunks.length) {\n this.chunks = [];\n }\n if (this._initReuseChunk !== null) {\n this.chunks.push(this._initReuseChunk);\n this.maxCursor = this._initReuseChunk.length - 1;\n }\n }\n push(bytes) {\n let topChunk = this.chunks[this.chunks.length - 1];\n const newMax = this.cursor + bytes.length;\n if (newMax <= this.maxCursor + 1) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n topChunk.set(bytes, chunkPos);\n } else {\n if (topChunk) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n if (chunkPos < topChunk.length) {\n this.chunks[this.chunks.length - 1] = topChunk.subarray(0, chunkPos);\n this.maxCursor = this.cursor - 1;\n }\n }\n if (bytes.length < 64 && bytes.length < this.chunkSize) {\n topChunk = alloc(this.chunkSize);\n this.chunks.push(topChunk);\n this.maxCursor += topChunk.length;\n if (this._initReuseChunk === null) {\n this._initReuseChunk = topChunk;\n }\n topChunk.set(bytes, 0);\n } else {\n this.chunks.push(bytes);\n this.maxCursor += bytes.length;\n }\n }\n this.cursor += bytes.length;\n }\n toBytes(reset = false) {\n let byts;\n if (this.chunks.length === 1) {\n const chunk = this.chunks[0];\n if (reset && this.cursor > chunk.length / 2) {\n byts = this.cursor === chunk.length ? chunk : chunk.subarray(0, this.cursor);\n this._initReuseChunk = null;\n this.chunks = [];\n } else {\n byts = slice(chunk, 0, this.cursor);\n }\n } else {\n byts = concat(this.chunks, this.cursor);\n }\n if (reset) {\n this.reset();\n }\n return byts;\n }\n}", "const decodeErrPrefix = 'CBOR decode error:';\nconst encodeErrPrefix = 'CBOR encode error:';\nconst uintMinorPrefixBytes = [];\nuintMinorPrefixBytes[23] = 1;\nuintMinorPrefixBytes[24] = 2;\nuintMinorPrefixBytes[25] = 3;\nuintMinorPrefixBytes[26] = 5;\nuintMinorPrefixBytes[27] = 9;\nfunction assertEnoughData(data, pos, need) {\n if (data.length - pos < need) {\n throw new Error(`${ decodeErrPrefix } not enough data for type`);\n }\n}\nexport {\n decodeErrPrefix,\n encodeErrPrefix,\n uintMinorPrefixBytes,\n assertEnoughData\n};", "import {\n Token,\n Type\n} from './token.js';\nimport {\n decodeErrPrefix,\n assertEnoughData\n} from './common.js';\nexport const uintBoundaries = [\n 24,\n 256,\n 65536,\n 4294967296,\n BigInt('18446744073709551616')\n];\nexport function readUint8(data, offset, options) {\n assertEnoughData(data, offset, 1);\n const value = data[offset];\n if (options.strict === true && value < uintBoundaries[0]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint16(data, offset, options) {\n assertEnoughData(data, offset, 2);\n const value = data[offset] << 8 | data[offset + 1];\n if (options.strict === true && value < uintBoundaries[1]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint32(data, offset, options) {\n assertEnoughData(data, offset, 4);\n const value = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n if (options.strict === true && value < uintBoundaries[2]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nexport function readUint64(data, offset, options) {\n assertEnoughData(data, offset, 8);\n const hi = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n const lo = data[offset + 4] * 16777216 + (data[offset + 5] << 16) + (data[offset + 6] << 8) + data[offset + 7];\n const value = (BigInt(hi) << BigInt(32)) + BigInt(lo);\n if (options.strict === true && value < uintBoundaries[3]) {\n throw new Error(`${ decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n if (value <= Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n if (options.allowBigInt === true) {\n return value;\n }\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n}\nexport function decodeUint8(data, pos, _minor, options) {\n return new Token(Type.uint, readUint8(data, pos + 1, options), 2);\n}\nexport function decodeUint16(data, pos, _minor, options) {\n return new Token(Type.uint, readUint16(data, pos + 1, options), 3);\n}\nexport function decodeUint32(data, pos, _minor, options) {\n return new Token(Type.uint, readUint32(data, pos + 1, options), 5);\n}\nexport function decodeUint64(data, pos, _minor, options) {\n return new Token(Type.uint, readUint64(data, pos + 1, options), 9);\n}\nexport function encodeUint(buf, token) {\n return encodeUintValue(buf, 0, token.value);\n}\nexport function encodeUintValue(buf, major, uint) {\n if (uint < uintBoundaries[0]) {\n const nuint = Number(uint);\n buf.push([major | nuint]);\n } else if (uint < uintBoundaries[1]) {\n const nuint = Number(uint);\n buf.push([\n major | 24,\n nuint\n ]);\n } else if (uint < uintBoundaries[2]) {\n const nuint = Number(uint);\n buf.push([\n major | 25,\n nuint >>> 8,\n nuint & 255\n ]);\n } else if (uint < uintBoundaries[3]) {\n const nuint = Number(uint);\n buf.push([\n major | 26,\n nuint >>> 24 & 255,\n nuint >>> 16 & 255,\n nuint >>> 8 & 255,\n nuint & 255\n ]);\n } else {\n const buint = BigInt(uint);\n if (buint < uintBoundaries[4]) {\n const set = [\n major | 27,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n let lo = Number(buint & BigInt(4294967295));\n let hi = Number(buint >> BigInt(32) & BigInt(4294967295));\n set[8] = lo & 255;\n lo = lo >> 8;\n set[7] = lo & 255;\n lo = lo >> 8;\n set[6] = lo & 255;\n lo = lo >> 8;\n set[5] = lo & 255;\n set[4] = hi & 255;\n hi = hi >> 8;\n set[3] = hi & 255;\n hi = hi >> 8;\n set[2] = hi & 255;\n hi = hi >> 8;\n set[1] = hi & 255;\n buf.push(set);\n } else {\n throw new Error(`${ decodeErrPrefix } encountered BigInt larger than allowable range`);\n }\n }\n}\nencodeUint.encodedSize = function encodedSize(token) {\n return encodeUintValue.encodedSize(token.value);\n};\nencodeUintValue.encodedSize = function encodedSize(uint) {\n if (uint < uintBoundaries[0]) {\n return 1;\n }\n if (uint < uintBoundaries[1]) {\n return 2;\n }\n if (uint < uintBoundaries[2]) {\n return 3;\n }\n if (uint < uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeUint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nexport function decodeNegint8(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeNegint16(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeNegint32(data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint32(data, pos + 1, options), 5);\n}\nconst neg1b = BigInt(-1);\nconst pos1b = BigInt(1);\nexport function decodeNegint64(data, pos, _minor, options) {\n const int = uint.readUint64(data, pos + 1, options);\n if (typeof int !== 'bigint') {\n const value = -1 - int;\n if (value >= Number.MIN_SAFE_INTEGER) {\n return new Token(Type.negint, value, 9);\n }\n }\n if (options.allowBigInt !== true) {\n throw new Error(`${ decodeErrPrefix } integers outside of the safe integer range are not supported`);\n }\n return new Token(Type.negint, neg1b - BigInt(int), 9);\n}\nexport function encodeNegint(buf, token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n uint.encodeUintValue(buf, token.type.majorEncoded, unsigned);\n}\nencodeNegint.encodedSize = function encodedSize(token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n if (unsigned < uint.uintBoundaries[0]) {\n return 1;\n }\n if (unsigned < uint.uintBoundaries[1]) {\n return 2;\n }\n if (unsigned < uint.uintBoundaries[2]) {\n return 3;\n }\n if (unsigned < uint.uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeNegint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? 1 : tok1.value > tok2.value ? -1 : 0;\n};", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport {\n compare,\n fromString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length) {\n assertEnoughData(data, pos, prefix + length);\n const buf = slice(data, pos + prefix, pos + prefix + length);\n return new Token(Type.bytes, buf, prefix + length);\n}\nexport function decodeBytesCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeBytes8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeBytes16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeBytes32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeBytes64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer bytes lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nfunction tokenBytes(token) {\n if (token.encodedBytes === undefined) {\n token.encodedBytes = token.type === Type.string ? fromString(token.value) : token.value;\n }\n return token.encodedBytes;\n}\nexport function encodeBytes(buf, token) {\n const bytes = tokenBytes(token);\n uint.encodeUintValue(buf, token.type.majorEncoded, bytes.length);\n buf.push(bytes);\n}\nencodeBytes.encodedSize = function encodedSize(token) {\n const bytes = tokenBytes(token);\n return uint.encodeUintValue.encodedSize(bytes.length) + bytes.length;\n};\nencodeBytes.compareTokens = function compareTokens(tok1, tok2) {\n return compareBytes(tokenBytes(tok1), tokenBytes(tok2));\n};\nexport function compareBytes(b1, b2) {\n return b1.length < b2.length ? -1 : b1.length > b2.length ? 1 : compare(b1, b2);\n}", "import {\n Token,\n Type\n} from './token.js';\nimport {\n assertEnoughData,\n decodeErrPrefix\n} from './common.js';\nimport * as uint from './0uint.js';\nimport { encodeBytes } from './2bytes.js';\nimport {\n toString,\n slice\n} from './byte-utils.js';\nfunction toToken(data, pos, prefix, length, options) {\n const totLength = prefix + length;\n assertEnoughData(data, pos, totLength);\n const tok = new Token(Type.string, toString(data, pos + prefix, pos + totLength), totLength);\n if (options.retainStringBytes === true) {\n tok.byteValue = slice(data, pos + prefix, pos + totLength);\n }\n return tok;\n}\nexport function decodeStringCompact(data, pos, minor, options) {\n return toToken(data, pos, 1, minor, options);\n}\nexport function decodeString8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options), options);\n}\nexport function decodeString16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options), options);\n}\nexport function decodeString32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options), options);\n}\nexport function decodeString64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer string lengths not supported`);\n }\n return toToken(data, pos, 9, l, options);\n}\nexport const encodeString = encodeBytes;", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.array, length, prefix);\n}\nexport function decodeArrayCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeArray8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeArray16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeArray32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeArray64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer array lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeArrayIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeArray(buf, token) {\n uint.encodeUintValue(buf, Type.array.majorEncoded, token.value);\n}\nencodeArray.compareTokens = uint.encodeUint.compareTokens;\nencodeArray.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport { decodeErrPrefix } from './common.js';\nfunction toToken(_data, _pos, prefix, length) {\n return new Token(Type.map, length, prefix);\n}\nexport function decodeMapCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nexport function decodeMap8(data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options));\n}\nexport function decodeMap16(data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options));\n}\nexport function decodeMap32(data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options));\n}\nexport function decodeMap64(data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ decodeErrPrefix } 64-bit integer map lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nexport function decodeMapIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nexport function encodeMap(buf, token) {\n uint.encodeUintValue(buf, Type.map.majorEncoded, token.value);\n}\nencodeMap.compareTokens = uint.encodeUint.compareTokens;\nencodeMap.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nexport function decodeTagCompact(_data, _pos, minor, _options) {\n return new Token(Type.tag, minor, 1);\n}\nexport function decodeTag8(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint8(data, pos + 1, options), 2);\n}\nexport function decodeTag16(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint16(data, pos + 1, options), 3);\n}\nexport function decodeTag32(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint32(data, pos + 1, options), 5);\n}\nexport function decodeTag64(data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint64(data, pos + 1, options), 9);\n}\nexport function encodeTag(buf, token) {\n uint.encodeUintValue(buf, Type.tag.majorEncoded, token.value);\n}\nencodeTag.compareTokens = uint.encodeUint.compareTokens;\nencodeTag.encodedSize = function encodedSize(token) {\n return uint.encodeUintValue.encodedSize(token.value);\n};", "import {\n Token,\n Type\n} from './token.js';\nimport { decodeErrPrefix } from './common.js';\nimport { encodeUint } from './0uint.js';\nconst MINOR_FALSE = 20;\nconst MINOR_TRUE = 21;\nconst MINOR_NULL = 22;\nconst MINOR_UNDEFINED = 23;\nexport function decodeUndefined(_data, _pos, _minor, options) {\n if (options.allowUndefined === false) {\n throw new Error(`${ decodeErrPrefix } undefined values are not supported`);\n } else if (options.coerceUndefinedToNull === true) {\n return new Token(Type.null, null, 1);\n }\n return new Token(Type.undefined, undefined, 1);\n}\nexport function decodeBreak(_data, _pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ decodeErrPrefix } indefinite length items not allowed`);\n }\n return new Token(Type.break, undefined, 1);\n}\nfunction createToken(value, bytes, options) {\n if (options) {\n if (options.allowNaN === false && Number.isNaN(value)) {\n throw new Error(`${ decodeErrPrefix } NaN values are not supported`);\n }\n if (options.allowInfinity === false && (value === Infinity || value === -Infinity)) {\n throw new Error(`${ decodeErrPrefix } Infinity values are not supported`);\n }\n }\n return new Token(Type.float, value, bytes);\n}\nexport function decodeFloat16(data, pos, _minor, options) {\n return createToken(readFloat16(data, pos + 1), 3, options);\n}\nexport function decodeFloat32(data, pos, _minor, options) {\n return createToken(readFloat32(data, pos + 1), 5, options);\n}\nexport function decodeFloat64(data, pos, _minor, options) {\n return createToken(readFloat64(data, pos + 1), 9, options);\n}\nexport function encodeFloat(buf, token, options) {\n const float = token.value;\n if (float === false) {\n buf.push([Type.float.majorEncoded | MINOR_FALSE]);\n } else if (float === true) {\n buf.push([Type.float.majorEncoded | MINOR_TRUE]);\n } else if (float === null) {\n buf.push([Type.float.majorEncoded | MINOR_NULL]);\n } else if (float === undefined) {\n buf.push([Type.float.majorEncoded | MINOR_UNDEFINED]);\n } else {\n let decoded;\n let success = false;\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n ui8a[0] = 249;\n buf.push(ui8a.slice(0, 3));\n success = true;\n } else {\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n ui8a[0] = 250;\n buf.push(ui8a.slice(0, 5));\n success = true;\n }\n }\n }\n if (!success) {\n encodeFloat64(float);\n decoded = readFloat64(ui8a, 1);\n ui8a[0] = 251;\n buf.push(ui8a.slice(0, 9));\n }\n }\n}\nencodeFloat.encodedSize = function encodedSize(token, options) {\n const float = token.value;\n if (float === false || float === true || float === null || float === undefined) {\n return 1;\n }\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n let decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n return 3;\n }\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n return 5;\n }\n }\n return 9;\n};\nconst buffer = new ArrayBuffer(9);\nconst dataView = new DataView(buffer, 1);\nconst ui8a = new Uint8Array(buffer, 0);\nfunction encodeFloat16(inp) {\n if (inp === Infinity) {\n dataView.setUint16(0, 31744, false);\n } else if (inp === -Infinity) {\n dataView.setUint16(0, 64512, false);\n } else if (Number.isNaN(inp)) {\n dataView.setUint16(0, 32256, false);\n } else {\n dataView.setFloat32(0, inp);\n const valu32 = dataView.getUint32(0);\n const exponent = (valu32 & 2139095040) >> 23;\n const mantissa = valu32 & 8388607;\n if (exponent === 255) {\n dataView.setUint16(0, 31744, false);\n } else if (exponent === 0) {\n dataView.setUint16(0, (inp & 2147483648) >> 16 | mantissa >> 13, false);\n } else {\n const logicalExponent = exponent - 127;\n if (logicalExponent < -24) {\n dataView.setUint16(0, 0);\n } else if (logicalExponent < -14) {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | 1 << 24 + logicalExponent, false);\n } else {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | logicalExponent + 15 << 10 | mantissa >> 13, false);\n }\n }\n }\n}\nfunction readFloat16(ui8a, pos) {\n if (ui8a.length - pos < 2) {\n throw new Error(`${ decodeErrPrefix } not enough data for float16`);\n }\n const half = (ui8a[pos] << 8) + ui8a[pos + 1];\n if (half === 31744) {\n return Infinity;\n }\n if (half === 64512) {\n return -Infinity;\n }\n if (half === 32256) {\n return NaN;\n }\n const exp = half >> 10 & 31;\n const mant = half & 1023;\n let val;\n if (exp === 0) {\n val = mant * 2 ** -24;\n } else if (exp !== 31) {\n val = (mant + 1024) * 2 ** (exp - 25);\n } else {\n val = mant === 0 ? Infinity : NaN;\n }\n return half & 32768 ? -val : val;\n}\nfunction encodeFloat32(inp) {\n dataView.setFloat32(0, inp, false);\n}\nfunction readFloat32(ui8a, pos) {\n if (ui8a.length - pos < 4) {\n throw new Error(`${ decodeErrPrefix } not enough data for float32`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 4).getFloat32(0, false);\n}\nfunction encodeFloat64(inp) {\n dataView.setFloat64(0, inp, false);\n}\nfunction readFloat64(ui8a, pos) {\n if (ui8a.length - pos < 8) {\n throw new Error(`${ decodeErrPrefix } not enough data for float64`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 8).getFloat64(0, false);\n}\nencodeFloat.compareTokens = encodeUint.compareTokens;", "import {\n Token,\n Type\n} from './token.js';\nimport * as uint from './0uint.js';\nimport * as negint from './1negint.js';\nimport * as bytes from './2bytes.js';\nimport * as string from './3string.js';\nimport * as array from './4array.js';\nimport * as map from './5map.js';\nimport * as tag from './6tag.js';\nimport * as float from './7float.js';\nimport { decodeErrPrefix } from './common.js';\nimport { fromArray } from './byte-utils.js';\nfunction invalidMinor(data, pos, minor) {\n throw new Error(`${ decodeErrPrefix } encountered invalid minor (${ minor }) for major ${ data[pos] >>> 5 }`);\n}\nfunction errorer(msg) {\n return () => {\n throw new Error(`${ decodeErrPrefix } ${ msg }`);\n };\n}\nexport const jump = [];\nfor (let i = 0; i <= 23; i++) {\n jump[i] = invalidMinor;\n}\njump[24] = uint.decodeUint8;\njump[25] = uint.decodeUint16;\njump[26] = uint.decodeUint32;\njump[27] = uint.decodeUint64;\njump[28] = invalidMinor;\njump[29] = invalidMinor;\njump[30] = invalidMinor;\njump[31] = invalidMinor;\nfor (let i = 32; i <= 55; i++) {\n jump[i] = invalidMinor;\n}\njump[56] = negint.decodeNegint8;\njump[57] = negint.decodeNegint16;\njump[58] = negint.decodeNegint32;\njump[59] = negint.decodeNegint64;\njump[60] = invalidMinor;\njump[61] = invalidMinor;\njump[62] = invalidMinor;\njump[63] = invalidMinor;\nfor (let i = 64; i <= 87; i++) {\n jump[i] = bytes.decodeBytesCompact;\n}\njump[88] = bytes.decodeBytes8;\njump[89] = bytes.decodeBytes16;\njump[90] = bytes.decodeBytes32;\njump[91] = bytes.decodeBytes64;\njump[92] = invalidMinor;\njump[93] = invalidMinor;\njump[94] = invalidMinor;\njump[95] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 96; i <= 119; i++) {\n jump[i] = string.decodeStringCompact;\n}\njump[120] = string.decodeString8;\njump[121] = string.decodeString16;\njump[122] = string.decodeString32;\njump[123] = string.decodeString64;\njump[124] = invalidMinor;\njump[125] = invalidMinor;\njump[126] = invalidMinor;\njump[127] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 128; i <= 151; i++) {\n jump[i] = array.decodeArrayCompact;\n}\njump[152] = array.decodeArray8;\njump[153] = array.decodeArray16;\njump[154] = array.decodeArray32;\njump[155] = array.decodeArray64;\njump[156] = invalidMinor;\njump[157] = invalidMinor;\njump[158] = invalidMinor;\njump[159] = array.decodeArrayIndefinite;\nfor (let i = 160; i <= 183; i++) {\n jump[i] = map.decodeMapCompact;\n}\njump[184] = map.decodeMap8;\njump[185] = map.decodeMap16;\njump[186] = map.decodeMap32;\njump[187] = map.decodeMap64;\njump[188] = invalidMinor;\njump[189] = invalidMinor;\njump[190] = invalidMinor;\njump[191] = map.decodeMapIndefinite;\nfor (let i = 192; i <= 215; i++) {\n jump[i] = tag.decodeTagCompact;\n}\njump[216] = tag.decodeTag8;\njump[217] = tag.decodeTag16;\njump[218] = tag.decodeTag32;\njump[219] = tag.decodeTag64;\njump[220] = invalidMinor;\njump[221] = invalidMinor;\njump[222] = invalidMinor;\njump[223] = invalidMinor;\nfor (let i = 224; i <= 243; i++) {\n jump[i] = errorer('simple values are not supported');\n}\njump[244] = invalidMinor;\njump[245] = invalidMinor;\njump[246] = invalidMinor;\njump[247] = float.decodeUndefined;\njump[248] = errorer('simple values are not supported');\njump[249] = float.decodeFloat16;\njump[250] = float.decodeFloat32;\njump[251] = float.decodeFloat64;\njump[252] = invalidMinor;\njump[253] = invalidMinor;\njump[254] = invalidMinor;\njump[255] = float.decodeBreak;\nexport const quick = [];\nfor (let i = 0; i < 24; i++) {\n quick[i] = new Token(Type.uint, i, 1);\n}\nfor (let i = -1; i >= -24; i--) {\n quick[31 - i] = new Token(Type.negint, i, 1);\n}\nquick[64] = new Token(Type.bytes, new Uint8Array(0), 1);\nquick[96] = new Token(Type.string, '', 1);\nquick[128] = new Token(Type.array, 0, 1);\nquick[160] = new Token(Type.map, 0, 1);\nquick[244] = new Token(Type.false, false, 1);\nquick[245] = new Token(Type.true, true, 1);\nquick[246] = new Token(Type.null, null, 1);\nexport function quickEncodeToken(token) {\n switch (token.type) {\n case Type.false:\n return fromArray([244]);\n case Type.true:\n return fromArray([245]);\n case Type.null:\n return fromArray([246]);\n case Type.bytes:\n if (!token.value.length) {\n return fromArray([64]);\n }\n return;\n case Type.string:\n if (token.value === '') {\n return fromArray([96]);\n }\n return;\n case Type.array:\n if (token.value === 0) {\n return fromArray([128]);\n }\n return;\n case Type.map:\n if (token.value === 0) {\n return fromArray([160]);\n }\n return;\n case Type.uint:\n if (token.value < 24) {\n return fromArray([Number(token.value)]);\n }\n return;\n case Type.negint:\n if (token.value >= -24) {\n return fromArray([31 - Number(token.value)]);\n }\n }\n}", "import { is } from './is.js';\nimport {\n Token,\n Type\n} from './token.js';\nimport { Bl } from './bl.js';\nimport { encodeErrPrefix } from './common.js';\nimport { quickEncodeToken } from './jump.js';\nimport { asU8A } from './byte-utils.js';\nimport { encodeUint } from './0uint.js';\nimport { encodeNegint } from './1negint.js';\nimport { encodeBytes } from './2bytes.js';\nimport { encodeString } from './3string.js';\nimport { encodeArray } from './4array.js';\nimport { encodeMap } from './5map.js';\nimport { encodeTag } from './6tag.js';\nimport { encodeFloat } from './7float.js';\nconst defaultEncodeOptions = {\n float64: false,\n mapSorter,\n quickEncodeToken\n};\nexport function makeCborEncoders() {\n const encoders = [];\n encoders[Type.uint.major] = encodeUint;\n encoders[Type.negint.major] = encodeNegint;\n encoders[Type.bytes.major] = encodeBytes;\n encoders[Type.string.major] = encodeString;\n encoders[Type.array.major] = encodeArray;\n encoders[Type.map.major] = encodeMap;\n encoders[Type.tag.major] = encodeTag;\n encoders[Type.float.major] = encodeFloat;\n return encoders;\n}\nconst cborEncoders = makeCborEncoders();\nconst buf = new Bl();\nclass Ref {\n constructor(obj, parent) {\n this.obj = obj;\n this.parent = parent;\n }\n includes(obj) {\n let p = this;\n do {\n if (p.obj === obj) {\n return true;\n }\n } while (p = p.parent);\n return false;\n }\n static createCheck(stack, obj) {\n if (stack && stack.includes(obj)) {\n throw new Error(`${ encodeErrPrefix } object contains circular references`);\n }\n return new Ref(obj, stack);\n }\n}\nconst simpleTokens = {\n null: new Token(Type.null, null),\n undefined: new Token(Type.undefined, undefined),\n true: new Token(Type.true, true),\n false: new Token(Type.false, false),\n emptyArray: new Token(Type.array, 0),\n emptyMap: new Token(Type.map, 0)\n};\nconst typeEncoders = {\n number(obj, _typ, _options, _refStack) {\n if (!Number.isInteger(obj) || !Number.isSafeInteger(obj)) {\n return new Token(Type.float, obj);\n } else if (obj >= 0) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n bigint(obj, _typ, _options, _refStack) {\n if (obj >= BigInt(0)) {\n return new Token(Type.uint, obj);\n } else {\n return new Token(Type.negint, obj);\n }\n },\n Uint8Array(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, obj);\n },\n string(obj, _typ, _options, _refStack) {\n return new Token(Type.string, obj);\n },\n boolean(obj, _typ, _options, _refStack) {\n return obj ? simpleTokens.true : simpleTokens.false;\n },\n null(_obj, _typ, _options, _refStack) {\n return simpleTokens.null;\n },\n undefined(_obj, _typ, _options, _refStack) {\n return simpleTokens.undefined;\n },\n ArrayBuffer(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj));\n },\n DataView(obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength));\n },\n Array(obj, _typ, options, refStack) {\n if (!obj.length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyArray,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyArray;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const e of obj) {\n entries[i++] = objectToTokens(e, options, refStack);\n }\n if (options.addBreakTokens) {\n return [\n new Token(Type.array, obj.length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.array, obj.length),\n entries\n ];\n },\n Object(obj, typ, options, refStack) {\n const isMap = typ !== 'Object';\n const keys = isMap ? obj.keys() : Object.keys(obj);\n const length = isMap ? obj.size : keys.length;\n if (!length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyMap,\n new Token(Type.break)\n ];\n }\n return simpleTokens.emptyMap;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const key of keys) {\n entries[i++] = [\n objectToTokens(key, options, refStack),\n objectToTokens(isMap ? obj.get(key) : obj[key], options, refStack)\n ];\n }\n sortMapEntries(entries, options);\n if (options.addBreakTokens) {\n return [\n new Token(Type.map, length),\n entries,\n new Token(Type.break)\n ];\n }\n return [\n new Token(Type.map, length),\n entries\n ];\n }\n};\ntypeEncoders.Map = typeEncoders.Object;\ntypeEncoders.Buffer = typeEncoders.Uint8Array;\nfor (const typ of 'Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64'.split(' ')) {\n typeEncoders[`${ typ }Array`] = typeEncoders.DataView;\n}\nfunction objectToTokens(obj, options = {}, refStack) {\n const typ = is(obj);\n const customTypeEncoder = options && options.typeEncoders && options.typeEncoders[typ] || typeEncoders[typ];\n if (typeof customTypeEncoder === 'function') {\n const tokens = customTypeEncoder(obj, typ, options, refStack);\n if (tokens != null) {\n return tokens;\n }\n }\n const typeEncoder = typeEncoders[typ];\n if (!typeEncoder) {\n throw new Error(`${ encodeErrPrefix } unsupported type: ${ typ }`);\n }\n return typeEncoder(obj, typ, options, refStack);\n}\nfunction sortMapEntries(entries, options) {\n if (options.mapSorter) {\n entries.sort(options.mapSorter);\n }\n}\nfunction mapSorter(e1, e2) {\n const keyToken1 = Array.isArray(e1[0]) ? e1[0][0] : e1[0];\n const keyToken2 = Array.isArray(e2[0]) ? e2[0][0] : e2[0];\n if (keyToken1.type !== keyToken2.type) {\n return keyToken1.type.compare(keyToken2.type);\n }\n const major = keyToken1.type.major;\n const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2);\n if (tcmp === 0) {\n console.warn('WARNING: complex key types used, CBOR key sorting guarantees are gone');\n }\n return tcmp;\n}\nfunction tokensToEncoded(buf, tokens, encoders, options) {\n if (Array.isArray(tokens)) {\n for (const token of tokens) {\n tokensToEncoded(buf, token, encoders, options);\n }\n } else {\n encoders[tokens.type.major](buf, tokens, options);\n }\n}\nfunction encodeCustom(data, encoders, options) {\n const tokens = objectToTokens(data, options);\n if (!Array.isArray(tokens) && options.quickEncodeToken) {\n const quickBytes = options.quickEncodeToken(tokens);\n if (quickBytes) {\n return quickBytes;\n }\n const encoder = encoders[tokens.type.major];\n if (encoder.encodedSize) {\n const size = encoder.encodedSize(tokens, options);\n const buf = new Bl(size);\n encoder(buf, tokens, options);\n if (buf.chunks.length !== 1) {\n throw new Error(`Unexpected error: pre-calculated length for ${ tokens } was wrong`);\n }\n return asU8A(buf.chunks[0]);\n }\n }\n buf.reset();\n tokensToEncoded(buf, tokens, encoders, options);\n return buf.toBytes(true);\n}\nfunction encode(data, options) {\n options = Object.assign({}, defaultEncodeOptions, options);\n return encodeCustom(data, cborEncoders, options);\n}\nexport {\n objectToTokens,\n encode,\n encodeCustom,\n Ref\n};", "import { decodeErrPrefix } from './common.js';\nimport { Type } from './token.js';\nimport {\n jump,\n quick\n} from './jump.js';\nconst defaultDecodeOptions = {\n strict: false,\n allowIndefinite: true,\n allowUndefined: true,\n allowBigInt: true\n};\nclass Tokeniser {\n constructor(data, options = {}) {\n this.pos = 0;\n this.data = data;\n this.options = options;\n }\n done() {\n return this.pos >= this.data.length;\n }\n next() {\n const byt = this.data[this.pos];\n let token = quick[byt];\n if (token === undefined) {\n const decoder = jump[byt];\n if (!decoder) {\n throw new Error(`${ decodeErrPrefix } no decoder for major type ${ byt >>> 5 } (byte 0x${ byt.toString(16).padStart(2, '0') })`);\n }\n const minor = byt & 31;\n token = decoder(this.data, this.pos, minor, this.options);\n }\n this.pos += token.encodedLength;\n return token;\n }\n}\nconst DONE = Symbol.for('DONE');\nconst BREAK = Symbol.for('BREAK');\nfunction tokenToArray(token, tokeniser, options) {\n const arr = [];\n for (let i = 0; i < token.value; i++) {\n const value = tokensToObject(tokeniser, options);\n if (value === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed array`);\n }\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found array but not enough entries (got ${ i }, expected ${ token.value })`);\n }\n arr[i] = value;\n }\n return arr;\n}\nfunction tokenToMap(token, tokeniser, options) {\n const useMaps = options.useMaps === true;\n const obj = useMaps ? undefined : {};\n const m = useMaps ? new Map() : undefined;\n for (let i = 0; i < token.value; i++) {\n const key = tokensToObject(tokeniser, options);\n if (key === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ decodeErrPrefix } got unexpected break to lengthed map`);\n }\n if (key === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no key], expected ${ token.value })`);\n }\n if (useMaps !== true && typeof key !== 'string') {\n throw new Error(`${ decodeErrPrefix } non-string keys not supported (got ${ typeof key })`);\n }\n if (options.rejectDuplicateMapKeys === true) {\n if (useMaps && m.has(key) || !useMaps && key in obj) {\n throw new Error(`${ decodeErrPrefix } found repeat map key \"${ key }\"`);\n }\n }\n const value = tokensToObject(tokeniser, options);\n if (value === DONE) {\n throw new Error(`${ decodeErrPrefix } found map but not enough entries (got ${ i } [no value], expected ${ token.value })`);\n }\n if (useMaps) {\n m.set(key, value);\n } else {\n obj[key] = value;\n }\n }\n return useMaps ? m : obj;\n}\nfunction tokensToObject(tokeniser, options) {\n if (tokeniser.done()) {\n return DONE;\n }\n const token = tokeniser.next();\n if (token.type === Type.break) {\n return BREAK;\n }\n if (token.type.terminal) {\n return token.value;\n }\n if (token.type === Type.array) {\n return tokenToArray(token, tokeniser, options);\n }\n if (token.type === Type.map) {\n return tokenToMap(token, tokeniser, options);\n }\n if (token.type === Type.tag) {\n if (options.tags && typeof options.tags[token.value] === 'function') {\n const tagged = tokensToObject(tokeniser, options);\n return options.tags[token.value](tagged);\n }\n throw new Error(`${ decodeErrPrefix } tag not supported (${ token.value })`);\n }\n throw new Error('unsupported');\n}\nfunction decode(data, options) {\n if (!(data instanceof Uint8Array)) {\n throw new Error(`${ decodeErrPrefix } data to decode must be a Uint8Array`);\n }\n options = Object.assign({}, defaultDecodeOptions, options);\n const tokeniser = options.tokenizer || new Tokeniser(data, options);\n const decoded = tokensToObject(tokeniser, options);\n if (decoded === DONE) {\n throw new Error(`${ decodeErrPrefix } did not find any content to decode`);\n }\n if (decoded === BREAK) {\n throw new Error(`${ decodeErrPrefix } got unexpected break`);\n }\n if (!tokeniser.done()) {\n throw new Error(`${ decodeErrPrefix } too many terminals, data makes no sense`);\n }\n return decoded;\n}\nexport {\n Tokeniser,\n tokensToObject,\n decode\n};", "/*!\n * Copyright (c) 2020 Digital Bazaar, Inc. All rights reserved.\n */\nexport class CborldError extends Error {\n constructor(value, message) {\n super();\n this.message = message;\n this.value = value;\n this.stack = (new Error(`${value}: ${message}`)).stack;\n this.name = this.constructor.name;\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport class CborldDecoder {\n // eslint-disable-next-line no-unused-vars\n decode({value} = {}) {\n throw new Error('Must be implemented by derived class.');\n }\n\n // eslint-disable-next-line no-unused-vars\n static createDecoder({value, transformer} = {}) {\n throw new Error('Must be implemented by derived class.');\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\n// known CBOR-LD registry values\nexport const ID_TO_URL = new Map();\nexport const URL_TO_ID = new Map();\n\n/**\n * @see https://digitalbazaar.github.io/cbor-ld-spec/#term-codec-registry\n */\n_addRegistration(0x10, 'https://www.w3.org/ns/activitystreams');\n_addRegistration(0x11, 'https://www.w3.org/2018/credentials/v1');\n_addRegistration(0x12, 'https://www.w3.org/ns/did/v1');\n_addRegistration(0x13, 'https://w3id.org/security/suites/ed25519-2018/v1');\n_addRegistration(0x14, 'https://w3id.org/security/suites/ed25519-2020/v1');\n_addRegistration(0x15, 'https://w3id.org/cit/v1');\n_addRegistration(0x16, 'https://w3id.org/age/v1');\n_addRegistration(0x17, 'https://w3id.org/security/suites/x25519-2020/v1');\n_addRegistration(0x18, 'https://w3id.org/veres-one/v1');\n_addRegistration(0x19, 'https://w3id.org/webkms/v1');\n_addRegistration(0x1A, 'https://w3id.org/zcap/v1');\n_addRegistration(0x1B, 'https://w3id.org/security/suites/hmac-2019/v1');\n_addRegistration(0x1C, 'https://w3id.org/security/suites/aes-2019/v1');\n_addRegistration(0x1D, 'https://w3id.org/vaccination/v1');\n_addRegistration(0x1E, 'https://w3id.org/vc-revocation-list-2020/v1');\n_addRegistration(0x1F, 'https://w3id.org/dcc/v1c');\n_addRegistration(0x20, 'https://w3id.org/vc/status-list/v1');\n\nfunction _addRegistration(id, url) {\n URL_TO_ID.set(url, id);\n ID_TO_URL.set(id, url);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {CborldError} from '../CborldError.js';\nimport {ID_TO_URL} from './registeredContexts.js';\n\nexport class ContextDecoder extends CborldDecoder {\n constructor({reverseAppContextMap} = {}) {\n super();\n this.reverseAppContextMap = reverseAppContextMap;\n }\n\n decode({value} = {}) {\n // handle uncompressed context\n if(typeof value !== 'number') {\n return _mapToObject(value);\n }\n\n // handle compressed context\n const url = ID_TO_URL.get(value) || this.reverseAppContextMap.get(value);\n if(url === undefined) {\n throw new CborldError(\n 'ERR_UNDEFINED_COMPRESSED_CONTEXT',\n `Undefined compressed context \"${value}\".`);\n }\n return url;\n }\n\n static createDecoder({transformer} = {}) {\n const {reverseAppContextMap} = transformer;\n return new ContextDecoder({reverseAppContextMap});\n }\n}\n\nfunction _mapToObject(map) {\n if(Array.isArray(map)) {\n return map.map(_mapToObject);\n }\n if(!(map instanceof Map)) {\n return map;\n }\n\n const obj = {};\n for(const [key, value] of map) {\n obj[key] = _mapToObject(value);\n }\n return obj;\n}\n", "/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.5';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasatob = typeof atob === 'function';\nconst _hasbtoa = typeof btoa === 'function';\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = _hasbtoa ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 \u00A75\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 \u00A75.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = _hasatob ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins,\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n", "/**\n * Base-N/Base-X encoding/decoding functions.\n *\n * Original implementation from base-x:\n * https://github.com/cryptocoinjs/base-x\n *\n * Which is MIT licensed:\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n */\n// baseN alphabet indexes\nconst _reverseAlphabets = {};\n\n/**\n * BaseN-encodes a Uint8Array using the given alphabet.\n *\n * @param {Uint8Array} input - The bytes to encode in a Uint8Array.\n * @param {string} alphabet - The alphabet to use for encoding.\n * @param {number} maxline - The maximum number of encoded characters per line\n * to use, defaults to none.\n *\n * @returns {string} The baseN-encoded output string.\n */\nexport function encode(input, alphabet, maxline) {\n if(!(input instanceof Uint8Array)) {\n throw new TypeError('\"input\" must be a Uint8Array.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(maxline !== undefined && typeof maxline !== 'number') {\n throw new TypeError('\"maxline\" must be a number.');\n }\n if(input.length === 0) {\n return '';\n }\n\n let output = '';\n\n let i = 0;\n const base = alphabet.length;\n const first = alphabet.charAt(0);\n const digits = [0];\n for(i = 0; i < input.length; ++i) {\n let carry = input[i];\n for(let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n // deal with leading zeros\n for(i = 0; input[i] === 0 && i < input.length - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n\n if(maxline) {\n const regex = new RegExp('.{1,' + maxline + '}', 'g');\n output = output.match(regex).join('\\r\\n');\n }\n\n return output;\n}\n\n/**\n * Decodes a baseN-encoded (using the given alphabet) string to a\n * Uint8Array.\n *\n * @param {string} input - The baseN-encoded input string.\n * @param {string} alphabet - The alphabet to use for decoding.\n *\n * @returns {Uint8Array} The decoded bytes in a Uint8Array.\n */\nexport function decode(input, alphabet) {\n if(typeof input !== 'string') {\n throw new TypeError('\"input\" must be a string.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(input.length === 0) {\n return new Uint8Array();\n }\n\n let table = _reverseAlphabets[alphabet];\n if(!table) {\n // compute reverse alphabet\n table = _reverseAlphabets[alphabet] = [];\n for(let i = 0; i < alphabet.length; ++i) {\n table[alphabet.charCodeAt(i)] = i;\n }\n }\n\n // remove whitespace characters\n input = input.replace(/\\s/g, '');\n\n const base = alphabet.length;\n const first = alphabet.charAt(0);\n const bytes = [0];\n for(let i = 0; i < input.length; i++) {\n const value = table[input.charCodeAt(i)];\n if(value === undefined) {\n return;\n }\n\n let carry = value;\n for(let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while(carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for(let k = 0; input[k] === first && k < input.length - 1; ++k) {\n bytes.push(0);\n }\n\n return new Uint8Array(bytes.reverse());\n}\n", "/*!\n * Copyright (c) 2019-2022 Digital Bazaar, Inc. All rights reserved.\n */\nimport {\n encode as _encode,\n decode as _decode\n} from './baseN.js';\n\n// base58 characters (Bitcoin alphabet)\nconst alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\nexport function encode(input, maxline) {\n return _encode(input, alphabet, maxline);\n}\n\nexport function decode(input) {\n return _decode(input, alphabet);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {Base64} from 'js-base64';\nimport {encode as encodeBase58} from 'base58-universal';\n\n// this class is used to encode a multibase encoded value in CBOR-LD, which\n// actually means transforming bytes to a multibase-encoded string\nexport class MultibaseDecoder extends CborldDecoder {\n decode({value} = {}) {\n const {buffer, byteOffset, length} = value;\n const suffix = new Uint8Array(buffer, byteOffset + 1, length - 1);\n if(value[0] === 0x7a) {\n // 0x7a === 'z' (multibase code for base58btc)\n return `z${encodeBase58(suffix)}`;\n }\n if(value[0] === 0x4d) {\n // 0x4d === 'M' (multibase code for base64pad)\n return `M${Base64.fromUint8Array(suffix)}`;\n }\n return value;\n }\n\n static createDecoder({value} = {}) {\n if(!(value instanceof Uint8Array)) {\n return false;\n }\n // supported multibase encodings:\n // 0x7a === 'z' (multibase code for base58btc)\n // 0x4d === 'M' (multibase code for base64pad)\n if(value[0] === 0x7a || value[0] === 0x4d) {\n return new MultibaseDecoder();\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport const KEYWORDS = new Map([\n // ordered is important, do not change\n ['@context', 0],\n ['@type', 2],\n ['@id', 4],\n ['@value', 6],\n // alphabetized after `@context`, `@type`, `@id`, `@value`\n // IDs <= 24 represented with 1 byte, IDs > 24 use 2+ bytes\n ['@direction', 8],\n ['@graph', 10],\n ['@included', 12],\n ['@index', 14],\n ['@json', 16],\n ['@language', 18],\n ['@list', 20],\n ['@nest', 22],\n ['@reverse', 24],\n // TODO: remove these? these only appear in frames and contexts\n ['@base', 26],\n ['@container', 28],\n ['@default', 30],\n ['@embed', 32],\n ['@explicit', 34],\n ['@none', 36],\n ['@omitDefault', 38],\n ['@prefix', 40],\n ['@preserve', 42],\n ['@protected', 44],\n ['@requireAll', 46],\n ['@set', 48],\n ['@version', 50],\n ['@vocab', 52]\n]);\nexport const FIRST_CUSTOM_TERM_ID = 100;\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldError} from './CborldError.js';\nimport {KEYWORDS} from './keywords.js';\n\nexport class Transformer {\n /**\n * Creates a new Transformer for transforming CBOR-LD <=> JSON-LD.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {documentLoaderFunction} options.documentLoader -The document\n * loader to use when resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767\n * (0x7FFF)).\n */\n constructor({appContextMap, documentLoader} = {}) {\n this.appContextMap = appContextMap;\n this.documentLoader = documentLoader;\n }\n\n // default no-op hook functions\n _beforeObjectContexts() {}\n _afterObjectContexts() {}\n _beforeTypeScopedContexts() {}\n\n async _transform({obj, transformMap, contextStack = []}) {\n // hook before object contexts are applied\n this._beforeObjectContexts({obj, transformMap});\n\n // apply embedded contexts in the object\n let activeCtx = await this._applyEmbeddedContexts({obj, contextStack});\n\n // hook after object contexts are applied\n this._afterObjectContexts({obj, transformMap});\n\n // TODO: support `@propagate: true` on type-scoped contexts; until then\n // throw an error if it is set\n\n // preserve context stack before applying type-scoped contexts\n const childContextStack = contextStack.slice();\n\n // hook before type-scoped contexts are applied\n this._beforeTypeScopedContexts({activeCtx, obj, transformMap});\n\n // apply type-scoped contexts\n activeCtx = await this._applyTypeScopedContexts({obj, contextStack});\n\n // walk term entries to transform\n const {aliases, scopedContextMap, termMap} = activeCtx;\n const termEntries = this._getEntries(\n {obj, transformMap, transformer: this, termMap});\n for(const [termInfo, value] of termEntries) {\n const {term} = termInfo;\n\n // transform `@id`\n if(term === '@id' || aliases.id.has(term)) {\n this._transformObjectId({obj, transformMap, termInfo, value});\n continue;\n }\n\n // transform `@type`\n if(term === '@type' || aliases.type.has(term)) {\n this._transformObjectType({obj, transformMap, termInfo, value});\n continue;\n }\n\n // use `childContextStack` when processing properties as it will remove\n // type-scoped contexts unless a property-scoped context is applied\n let propertyContextStack = childContextStack;\n\n // apply any property-scoped context\n let newActiveCtx;\n const propertyScopedContext = scopedContextMap.get(term);\n if(propertyScopedContext) {\n // TODO: support `@propagate: false` on property-scoped contexts; until\n // then throw an error if it is set\n newActiveCtx = await this._applyEmbeddedContexts({\n obj: {'@context': propertyScopedContext},\n contextStack\n });\n propertyContextStack = contextStack.slice();\n }\n\n // iterate through all values for the current transform entry\n const {plural, def} = termInfo;\n const termType = this._getTermType(\n {activeCtx: newActiveCtx || activeCtx, def});\n const values = plural ? value : [value];\n const entries = [];\n for(const value of values) {\n // `null` is never transformed\n if(value === null) {\n entries.push(null);\n continue;\n }\n\n // try to transform typed value\n if(this._transformTypedValue({entries, termType, value, termInfo})) {\n continue;\n }\n\n if(typeof value !== 'object') {\n // value not transformed and cannot recurse, so do not transform\n entries.push(value);\n continue;\n }\n\n // transform array\n if(Array.isArray(value)) {\n await this._transformArray(\n {entries, contextStack: propertyContextStack, value});\n continue;\n }\n\n // transform object\n await this._transformObject({\n entries, contextStack: propertyContextStack, value});\n }\n\n // revert property-scoped active context if one was created\n if(newActiveCtx) {\n newActiveCtx.revert();\n }\n\n this._assignEntries({entries, obj, transformMap, termInfo});\n }\n\n // revert active context for this object\n activeCtx.revert();\n }\n\n /**\n * Apply the embedded contexts in the given object to produce an\n * active context.\n *\n * @param {object} options - The options to use.\n * @param {object} options.obj - The object to get the active context for.\n * @param {Array} [options.contextStack] - The stack of active contexts.\n *\n * @returns {Promise<object>} - The active context instance.\n */\n async _applyEmbeddedContexts({obj, contextStack}) {\n const stackTop = contextStack.length;\n\n // push any local embedded contexts onto the context stack\n const localContexts = obj['@context'];\n await this._updateContextStack({contextStack, contexts: localContexts});\n\n // get `id` and `type` aliases for the active context\n let active = contextStack[contextStack.length - 1];\n if(!active) {\n // empty initial context\n active = {\n aliases: {\n id: new Set(),\n type: new Set()\n },\n context: {},\n scopedContextMap: new Map(),\n termMap: new Map()\n };\n }\n\n return {\n ...active,\n revert() {\n contextStack.length = stackTop;\n }\n };\n }\n\n async _applyTypeScopedContexts({obj, contextStack}) {\n const stackTop = contextStack.length;\n\n // get `id` and `type` aliases for the active context\n let active = contextStack[contextStack.length - 1];\n if(!active) {\n // empty initial context\n active = {\n aliases: {\n id: new Set(),\n type: new Set()\n },\n context: {},\n scopedContextMap: new Map(),\n termMap: new Map()\n };\n }\n const {aliases} = active;\n\n // get unique object type(s)\n let totalTypes = [];\n const typeTerms = ['@type', ...aliases.type];\n for(const term of typeTerms) {\n const types = obj[term];\n if(Array.isArray(types)) {\n totalTypes.push(...types);\n } else {\n totalTypes.push(types);\n }\n }\n // apply types in lexicographically sorted order (per JSON-LD spec)\n totalTypes = [...new Set(totalTypes)].sort();\n\n // apply any type-scoped contexts\n let {scopedContextMap} = active;\n for(const type of totalTypes) {\n const contexts = scopedContextMap.get(type);\n if(contexts) {\n await this._updateContextStack({contextStack, contexts});\n active = contextStack[contextStack.length - 1];\n ({scopedContextMap} = active);\n }\n }\n\n return {\n ...active,\n revert() {\n contextStack.length = stackTop;\n }\n };\n }\n\n async _updateContextStack({contextStack, contexts, transformer}) {\n // push any localized contexts onto the context stack\n if(!contexts) {\n return;\n }\n if(!Array.isArray(contexts)) {\n contexts = [contexts];\n }\n\n const {contextMap} = this;\n for(const context of contexts) {\n let entry = contextMap.get(context);\n if(!entry) {\n let ctx = context;\n let contextUrl;\n if(typeof context === 'string') {\n // fetch context\n contextUrl = context;\n ({'@context': ctx} = await this._getDocument({url: contextUrl}));\n }\n // FIXME: validate `ctx` to ensure its a valid JSON-LD context value\n // add context\n entry = await this._addContext({context: ctx, contextUrl, transformer});\n }\n\n // clone entry to create new active context entry for context stack\n const newActive = {\n aliases: {\n id: new Set(entry.aliases.id),\n type: new Set(entry.aliases.type)\n },\n context,\n scopedContextMap: new Map(entry.scopedContextMap),\n termMap: new Map(entry.termMap)\n };\n\n // push new active context and get old one\n const oldActive = contextStack[contextStack.length - 1];\n contextStack.push(newActive);\n if(!oldActive) {\n continue;\n }\n\n // compute `id` and `type` aliases by including any previous aliases that\n // have not been replaced by the new context\n const {aliases, termMap} = newActive;\n for(const key of ['id', 'type']) {\n for(const alias of oldActive.aliases[key]) {\n if(!(context[alias] === null || newActive.termMap.has(alias))) {\n aliases[key].add(alias);\n }\n }\n }\n\n // compute scoped context map by including any scoped contexts that have\n // not been replaced by the new context\n const {scopedContextMap} = newActive;\n for(const [key, value] of oldActive.scopedContextMap) {\n if(!(context[key] === null || scopedContextMap.has(key))) {\n scopedContextMap.set(key, value);\n }\n }\n\n // compute new terms map\n for(const [key, value] of oldActive.termMap) {\n if(!(context[key] === null || termMap.has(key))) {\n termMap.set(key, value);\n }\n }\n }\n }\n\n async _addContext({context, contextUrl}) {\n const {contextMap, termToId, idToTerm} = this;\n\n // handle `@import`\n const importUrl = context['@import'];\n if(importUrl) {\n let importEntry = contextMap.get(importUrl);\n if(!importEntry) {\n const {'@context': importCtx} = await this._getDocument(\n {url: importUrl});\n importEntry = await this._addContext(\n {context: importCtx, contextUrl: importUrl});\n }\n context = {...importEntry.context, ...context};\n }\n\n // precompute any `@id` and `@type` aliases, scoped contexts, and terms\n const scopedContextMap = new Map();\n const termMap = new Map();\n const entry = {\n aliases: {id: new Set(), type: new Set()},\n context,\n scopedContextMap,\n termMap\n };\n\n // process context keys in sorted order to ensure term IDs are assigned\n // consistently\n const keys = Object.keys(context).sort();\n for(const key of keys) {\n const def = context[key];\n if(!def) {\n continue;\n }\n if(def === '@id' || def.id === '@id') {\n entry.aliases.id.add(key);\n } else if(def === '@type' || def.id === '@type') {\n entry.aliases.type.add(key);\n }\n if(KEYWORDS.has(key)) {\n // skip keywords\n continue;\n }\n // ensure the term has been assigned an ID\n if(!termToId.has(key)) {\n const id = this.nextTermId;\n this.nextTermId += 2;\n termToId.set(key, id);\n if(idToTerm) {\n idToTerm.set(id, key);\n }\n }\n termMap.set(key, def);\n const scopedContext = def['@context'];\n if(scopedContext) {\n scopedContextMap.set(key, scopedContext);\n }\n }\n\n // add entry for context URL or context object\n contextMap.set(contextUrl || context, entry);\n\n return entry;\n }\n\n async _getDocument({url}) {\n const {document} = await this.documentLoader(url);\n if(typeof document === 'string') {\n return JSON.parse(document);\n }\n return document;\n }\n\n _getTermType({activeCtx, def}) {\n const {'@type': type} = def;\n if(!type) {\n // no term type\n return;\n }\n\n // check for potential CURIE value\n const [prefix, ...suffix] = type.split(':');\n const prefixDef = activeCtx.termMap.get(prefix);\n if(prefixDef === undefined) {\n // no CURIE\n return type;\n }\n\n // handle CURIE\n if(typeof prefixDef === 'string') {\n return prefixDef + suffix.join(':');\n }\n\n // prefix definition must be an object\n if(!(typeof prefixDef === 'object' &&\n typeof prefixDef['@id'] === 'string')) {\n throw new CborldError(\n 'ERR_INVALID_TERM_DEFINITION',\n 'JSON-LD term definitions must be strings or objects with \"@id\".');\n }\n return prefixDef['@id'] + suffix.join(':');\n }\n\n _getIdForTerm({term, plural}) {\n const id = this.termToId.get(term);\n if(id === undefined) {\n throw new CborldError(\n 'ERR_UNDEFINED_TERM',\n 'CBOR-LD compression requires all terms to be defined in a JSON-LD ' +\n 'context.');\n }\n return plural ? id + 1 : id;\n }\n\n _getTermForId({id}) {\n const plural = (id & 1) === 1;\n const term = this.idToTerm.get(plural ? id - 1 : id);\n return {term, plural};\n }\n}\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {encode as encodeBase58} from 'base58-universal';\n\nconst ID_TO_SCHEME = new Map([\n // Note: only v1 mainnet is supported\n [1024, 'did:v1:nym:'],\n [1025, 'did:key:']\n]);\n\nexport class Base58DidUrlDecoder extends CborldDecoder {\n decode({value} = {}) {\n let url = ID_TO_SCHEME.get(value[0]);\n if(typeof value[1] === 'string') {\n url += value[1];\n } else {\n url += `z${encodeBase58(value[1])}`;\n }\n if(value.length > 2) {\n if(typeof value[2] === 'string') {\n url += `#${value[2]}`;\n } else {\n url += `#z${encodeBase58(value[2])}`;\n }\n }\n return url;\n }\n\n static createDecoder({value} = {}) {\n if(!(Array.isArray(value) && value.length > 1 && value.length <= 3)) {\n return false;\n }\n if(!ID_TO_SCHEME.has(value[0])) {\n return false;\n }\n return new Base58DidUrlDecoder();\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\n\nexport class HttpUrlDecoder extends CborldDecoder {\n constructor({secure} = {}) {\n super();\n this.secure = secure;\n }\n\n decode({value} = {}) {\n const scheme = this.secure ? 'https://' : 'http://';\n return `${scheme}${value[1]}`;\n }\n\n static createDecoder({value} = {}) {\n if(!(value.length === 2 && typeof value[1] === 'string')) {\n return false;\n }\n return new HttpUrlDecoder({secure: value[0] === 2});\n }\n}\n", "export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;", "import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {stringify} from 'uuid';\n\nexport class UuidUrnDecoder extends CborldDecoder {\n decode({value} = {}) {\n const uuid = typeof value[1] === 'string' ?\n value[1] : stringify(value[1]);\n return `urn:uuid:${uuid}`;\n }\n\n static createDecoder({value} = {}) {\n if(value.length === 2 &&\n (typeof value[1] === 'string' || value[1] instanceof Uint8Array)) {\n return new UuidUrnDecoder();\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {Base58DidUrlDecoder} from './Base58DidUrlDecoder.js';\nimport {HttpUrlDecoder} from './HttpUrlDecoder.js';\nimport {UuidUrnDecoder} from './UuidUrnDecoder.js';\n\nconst SCHEME_ID_TO_DECODER = new Map([\n [1, HttpUrlDecoder],\n [2, HttpUrlDecoder],\n [3, UuidUrnDecoder],\n [1024, Base58DidUrlDecoder],\n [1025, Base58DidUrlDecoder]\n]);\n\nexport class UriDecoder extends CborldDecoder {\n static createDecoder({value} = {}) {\n if(!(Array.isArray(value) || value.length > 1)) {\n return false;\n }\n\n const DecoderClass = SCHEME_ID_TO_DECODER.get(value[0]);\n return DecoderClass && DecoderClass.createDecoder({value});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\nimport {UriDecoder} from './UriDecoder.js';\n\nexport class VocabTermDecoder extends CborldDecoder {\n constructor({term} = {}) {\n super();\n this.term = term;\n }\n\n decode() {\n return this.term;\n }\n\n static createDecoder({value, transformer} = {}) {\n if(Array.isArray(value)) {\n return UriDecoder.createDecoder({value, transformer});\n }\n const term = transformer.idToTerm.get(value);\n if(term !== undefined) {\n return new VocabTermDecoder({term});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\n\nexport class XsdDateDecoder extends CborldDecoder {\n decode({value} = {}) {\n const dateString = new Date(value * 1000).toISOString();\n return dateString.substring(0, dateString.indexOf('T'));\n }\n\n static createDecoder({value} = {}) {\n if(typeof value === 'number') {\n return new XsdDateDecoder();\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldDecoder} from './CborldDecoder.js';\n\nexport class XsdDateTimeDecoder extends CborldDecoder {\n constructor({value} = {}) {\n super();\n this.value = value;\n }\n\n decode({value} = {}) {\n if(typeof value === 'number') {\n return new Date(value * 1000).toISOString().replace('.000Z', 'Z');\n }\n return new Date(value[0] * 1000 + value[1]).toISOString();\n }\n\n static createDecoder({value} = {}) {\n if(typeof value === 'number') {\n return new XsdDateTimeDecoder();\n }\n if(Array.isArray(value) && value.length === 2 &&\n (typeof value[0] === 'number' || typeof value[1] === 'number')) {\n return new XsdDateTimeDecoder();\n }\n }\n}\n", "// browser support\n/* eslint-env browser */\n/* eslint-disable-next-line no-unused-vars */\nexport function inspect(data, options) {\n return JSON.stringify(data, null, 2);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {CborldError} from './CborldError.js';\nimport {ContextDecoder} from './codecs/ContextDecoder.js';\nimport {MultibaseDecoder} from './codecs/MultibaseDecoder.js';\nimport {Transformer} from './Transformer.js';\nimport {UriDecoder} from './codecs/UriDecoder.js';\nimport {VocabTermDecoder} from './codecs/VocabTermDecoder.js';\nimport {XsdDateDecoder} from './codecs/XsdDateDecoder.js';\nimport {XsdDateTimeDecoder} from './codecs/XsdDateTimeDecoder.js';\nimport {inspect} from './util.js';\nimport {FIRST_CUSTOM_TERM_ID, KEYWORDS} from './keywords.js';\n\nexport const TYPE_DECODERS = new Map([\n ['@id', UriDecoder],\n ['@vocab', VocabTermDecoder],\n ['https://w3id.org/security#multibase', MultibaseDecoder],\n ['http://www.w3.org/2001/XMLSchema#date', XsdDateDecoder],\n ['http://www.w3.org/2001/XMLSchema#dateTime', XsdDateTimeDecoder]\n]);\n\nconst CONTEXT_TERM_ID = KEYWORDS.get('@context');\nconst CONTEXT_TERM_ID_PLURAL = CONTEXT_TERM_ID + 1;\n\nexport class Decompressor extends Transformer {\n /**\n * Creates a new Decompressor for generating a JSON-LD document from\n * compressed CBOR-LD. The created instance may only be used on a single\n * CBOR-LD input at a time.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {documentLoaderFunction} options.documentLoader - The document\n * loader to use when resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767\n * (0x7FFF)).\n */\n constructor({documentLoader, appContextMap} = {}) {\n super({documentLoader, appContextMap});\n this.reverseAppContextMap = new Map();\n // build reverse contxt map\n if(appContextMap) {\n for(const [k, v] of appContextMap) {\n this.reverseAppContextMap.set(v, k);\n }\n }\n }\n\n /**\n * Decompresses the given CBOR-LD byte array to a JSON-LD document.\n *\n * @param {object} options - The options to use.\n * @param {Uint8Array} options.compressedBytes - The CBOR-LD compressed\n * bytes that follow the compressed CBOR-LD CBOR tag.\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<object>} - The JSON-LD document.\n */\n async decompress({compressedBytes, diagnose} = {}) {\n this.contextMap = new Map();\n this.termToId = new Map(KEYWORDS);\n this.nextTermId = FIRST_CUSTOM_TERM_ID;\n this.idToTerm = new Map();\n for(const [term, id] of this.termToId) {\n this.idToTerm.set(id, term);\n }\n\n // decoded output could be one or more transform maps\n const transformMap = cborg.decode(compressedBytes, {useMaps: true});\n if(diagnose) {\n diagnose('Diagnostic CBOR-LD decompression transform map(s):');\n diagnose(inspect(transformMap, {depth: null, colors: true}));\n }\n\n // handle single or multiple JSON-LD docs\n const results = [];\n const isArray = Array.isArray(transformMap);\n const transformMaps = isArray ? transformMap : [transformMap];\n for(const transformMap of transformMaps) {\n const obj = {};\n await this._transform({obj, transformMap});\n results.push(obj);\n }\n return isArray ? results : results[0];\n }\n\n _beforeObjectContexts({obj, transformMap}) {\n // decode `@context` for `transformMap`, if any\n const encodedContext = transformMap.get(CONTEXT_TERM_ID);\n if(encodedContext) {\n const decoder = ContextDecoder.createDecoder(\n {value: encodedContext, transformer: this});\n obj['@context'] = decoder ?\n decoder.decode({value: encodedContext}) : encodedContext;\n }\n const encodedContexts = transformMap.get(CONTEXT_TERM_ID_PLURAL);\n if(encodedContexts) {\n if(encodedContext) {\n // can't use *both* the singular and plural context term ID\n throw new CborldError(\n 'ERR_INVALID_ENCODED_CONTEXT',\n 'Both singular and plural context IDs were found in the ' +\n 'CBOR-LD input.');\n }\n if(!Array.isArray(encodedContexts)) {\n // `encodedContexts` must be an array\n throw new CborldError(\n 'ERR_INVALID_ENCODED_CONTEXT',\n 'Encoded plural context value must be an array.');\n }\n const entries = [];\n for(const value of encodedContexts) {\n const decoder = ContextDecoder.createDecoder(\n {value, transformer: this});\n entries.push(decoder ? decoder.decode({value}) : value);\n }\n obj['@context'] = entries;\n }\n }\n\n _beforeTypeScopedContexts({activeCtx, obj, transformMap}) {\n // decode object types\n const {termToId} = this;\n const typeTerms = ['@type', ...activeCtx.aliases.type];\n for(const term of typeTerms) {\n // check both singular and plural term IDs\n const termId = termToId.get(term);\n let value = transformMap.get(termId);\n if(value === undefined) {\n value = transformMap.get(termId + 1);\n }\n if(value !== undefined) {\n if(Array.isArray(value)) {\n obj[term] = value.map(value => {\n const decoder = VocabTermDecoder.createDecoder(\n {value, transformer: this});\n return decoder ? decoder.decode({value}) : value;\n });\n } else {\n const decoder = VocabTermDecoder.createDecoder(\n {value, transformer: this});\n obj[term] = decoder ? decoder.decode({value}) : value;\n }\n }\n }\n }\n\n _getEntries({transformMap, termMap}) {\n // get term entries to be transformed and sort by *term* to ensure term\n // IDs will be assigned in the same order that the compressor assigned them\n const entries = [];\n for(const [key, value] of transformMap) {\n // skip `@context`; not a term entry\n if(key === CONTEXT_TERM_ID || key === CONTEXT_TERM_ID_PLURAL) {\n continue;\n }\n\n // check for undefined term IDs\n const {term, plural} = this._getTermForId({id: key});\n if(term === undefined) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM_ID',\n `Unknown term ID '${key}' was detected in the CBOR-LD input.`);\n }\n\n // check for undefined term\n const def = termMap.get(term);\n if(def === undefined && !(term.startsWith('@') && KEYWORDS.has(term))) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM',\n `Unknown term \"${term}\" was detected in the CBOR-LD input.`);\n }\n\n entries.push([{term, termId: key, plural, def}, value]);\n }\n return entries.sort(_sortEntriesByTerm);\n }\n\n _getTermInfo({termMap, key}) {\n // check for undefined term IDs\n const {term, plural} = this._getTermForId({id: key});\n if(term === undefined) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM_ID',\n `Unknown term ID '${key}' was detected in the CBOR-LD input.`);\n }\n\n // check for undefined term\n const def = termMap.get(term);\n if(def === undefined && !(term.startsWith('@') && KEYWORDS.has(term))) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM',\n `Unknown term \"${term}\" was detected in the CBOR-LD input.`);\n }\n\n return {term, termId: key, plural, def};\n }\n\n _transformObjectId({obj, termInfo, value}) {\n const decoder = UriDecoder.createDecoder({value});\n obj[termInfo.term] = decoder ? decoder.decode({value}) : value;\n }\n\n _transformObjectType({obj, termInfo, value}) {\n const {term, plural} = termInfo;\n const values = plural ? value : [value];\n const entries = [];\n for(const value of values) {\n const decoder = VocabTermDecoder.createDecoder(\n {value, transformer: this});\n entries.push(decoder ? decoder.decode({value}) : value);\n }\n obj[term] = plural ? entries : entries[0];\n }\n\n _transformTypedValue({entries, termType, value}) {\n const DecoderClass = TYPE_DECODERS.get(termType);\n const decoder = DecoderClass && DecoderClass.createDecoder(\n {value, transformer: this});\n if(decoder) {\n entries.push(decoder.decode({value}));\n return true;\n }\n }\n\n async _transformArray({entries, contextStack, value}) {\n // recurse into array\n const children = [];\n for(const transformMap of value) {\n const obj = {};\n children.push(obj);\n await this._transform({obj, transformMap, contextStack});\n }\n entries.push(children);\n }\n\n async _transformObject({entries, contextStack, value}) {\n // recurse into object\n const child = {};\n entries.push(child);\n return this._transform({obj: child, transformMap: value, contextStack});\n }\n\n _assignEntries({entries, obj, termInfo}) {\n const {term, plural} = termInfo;\n obj[term] = plural ? entries : entries[0];\n }\n}\n\nfunction _sortEntriesByTerm([{term: t1}], [{term: t2}]) {\n return t1 < t2 ? -1 : t1 > t2 ? 1 : 0;\n}\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n", "/*!\n * Copyright (c) 2020-2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {CborldError} from './CborldError.js';\nimport {Decompressor} from './Decompressor.js';\nimport {inspect} from './util.js';\n\n/**\n * Decodes a CBOR-LD byte array into a JSON-LD document.\n *\n * @param {object} options - The options to use when decoding CBOR-LD.\n * @param {Uint8Array} options.cborldBytes - The encoded CBOR-LD bytes to\n * decode.\n * @param {Function} options.documentLoader -The document loader to use when\n * resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their associated CBOR-LD values. The values must be greater than\n * 32767 (0x7FFF)).\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<object>} - The decoded JSON-LD Document.\n */\nexport async function decode({\n cborldBytes, documentLoader, appContextMap = new Map(), diagnose}) {\n if(!(cborldBytes instanceof Uint8Array)) {\n throw new TypeError('\"cborldBytes\" must be a Uint8Array.');\n }\n\n // 0xd9 == 11011001\n // 110 = CBOR major type 6\n // 11001 = 25, 16-bit tag size (65536 possible values)\n let index = 0;\n if(cborldBytes[index++] !== 0xd9) {\n throw new CborldError(\n 'ERR_NOT_CBORLD',\n 'CBOR-LD must start with a CBOR major type \"Tag\" header of `0xd9`.');\n }\n\n // ensure `cborldBytes` represent CBOR-LD\n if(cborldBytes[index++] !== 0x05) {\n throw new CborldError(\n 'ERR_NOT_CBORLD', 'CBOR-LD 16-bit tag must start with `0x05`.');\n }\n\n const compressionMode = cborldBytes[index];\n if(compressionMode === undefined) {\n throw new CborldError(\n 'ERR_NOT_CBORLD', 'Truncated CBOR-LD 16-bit tag.');\n }\n\n if(!(compressionMode === 0 || compressionMode === 1)) {\n throw new CborldError(\n 'ERR_NOT_CBORLD',\n `Unsupported CBOR-LD compression mode \"${compressionMode}\".`);\n }\n\n index++;\n const {buffer, byteOffset, length} = cborldBytes;\n const suffix = new Uint8Array(buffer, byteOffset + index, length - index);\n\n // handle uncompressed CBOR-LD\n if(compressionMode === 0) {\n return cborg.decode(suffix, {useMaps: false});\n }\n\n // decompress CBOR-LD\n const decompressor = new Decompressor({documentLoader, appContextMap});\n const result = await decompressor.decompress(\n {compressedBytes: suffix, diagnose});\n\n if(diagnose) {\n diagnose('Diagnostic JSON-LD result:');\n diagnose(inspect(result, {depth: null, colors: true}));\n }\n\n return result;\n}\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport class CborldEncoder {\n encode() {\n throw new Error('Must be implemented by derived class.');\n }\n\n // eslint-disable-next-line no-unused-vars\n static createEncoder({value} = {}) {\n throw new Error('Must be implemented by derived class.');\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {URL_TO_ID} from './registeredContexts.js';\nimport {Token, Type} from 'cborg';\n\nexport class ContextEncoder extends CborldEncoder {\n constructor({context, appContextMap} = {}) {\n super();\n this.context = context;\n this.appContextMap = appContextMap;\n }\n\n encode() {\n const {context} = this;\n const id = URL_TO_ID.get(context) || this.appContextMap.get(context);\n if(id === undefined) {\n return new Token(Type.string, context);\n }\n return new Token(Type.uint, id);\n }\n\n static createEncoder({value, transformer} = {}) {\n if(typeof value !== 'string') {\n return false;\n }\n const {appContextMap} = transformer;\n return new ContextEncoder({context: value, appContextMap});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {Base64} from 'js-base64';\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {decode as decodeBase58} from 'base58-universal';\nimport {Token, Type} from 'cborg';\n\n// this class is used to encode a multibase encoded value in CBOR-LD, which\n// actually means transforming a multibase-encoded string to bytes\nexport class MultibaseEncoder extends CborldEncoder {\n constructor({value} = {}) {\n super();\n this.value = value;\n }\n\n encode() {\n const {value} = this;\n\n let prefix;\n let suffix;\n if(value[0] === 'z') {\n // 0x7a === 'z' (multibase code for base58btc)\n prefix = 0x7a;\n suffix = decodeBase58(value.substr(1));\n } else if(value[0] === 'M') {\n // 0x4d === 'M' (multibase code for base64pad)\n prefix = 0x4d;\n suffix = Base64.toUint8Array(value.substr(1));\n }\n\n const bytes = new Uint8Array(1 + suffix.length);\n bytes[0] = prefix;\n bytes.set(suffix, 1);\n return new Token(Type.bytes, bytes);\n }\n\n static createEncoder({value} = {}) {\n if(typeof value !== 'string') {\n return false;\n }\n // supported multibase encodings:\n // 0x7a === 'z' (multibase code for base58btc)\n // 0x4d === 'M' (multibase code for base64pad)\n if(value[0] === 'z' || value[0] === 'M') {\n return new MultibaseEncoder({value});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\nimport {decode as decodeBase58} from 'base58-universal';\n\nconst SCHEME_TO_ID = new Map([\n ['did:v1:nym:', 1024],\n ['did:key:', 1025]\n]);\n\nexport class Base58DidUrlEncoder extends CborldEncoder {\n constructor({value, scheme} = {}) {\n super();\n this.value = value;\n this.scheme = scheme;\n }\n\n encode() {\n const {value, scheme} = this;\n const suffix = value.substr(scheme.length);\n const [authority, fragment] = suffix.split('#');\n const entries = [\n new Token(Type.uint, SCHEME_TO_ID.get(scheme)),\n _multibase58ToToken(authority)\n ];\n if(fragment !== undefined) {\n entries.push(_multibase58ToToken(fragment));\n }\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n const keys = [...SCHEME_TO_ID.keys()];\n for(const key of keys) {\n if(value.startsWith(key)) {\n return new Base58DidUrlEncoder({value, scheme: key});\n }\n }\n }\n}\n\nfunction _multibase58ToToken(str) {\n if(str.startsWith('z')) {\n const decoded = decodeBase58(str.substr(1));\n if(decoded) {\n return new Token(Type.bytes, decoded);\n }\n }\n // cannot compress\n return new Token(Type.string, str);\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\n\nexport class HttpUrlEncoder extends CborldEncoder {\n constructor({value, secure} = {}) {\n super();\n this.value = value;\n this.secure = secure;\n }\n\n encode() {\n const {value, secure} = this;\n const length = secure ? 'https://'.length : 'http://'.length;\n const entries = [\n new Token(Type.uint, secure ? 2 : 1),\n new Token(Type.string, value.substr(length))\n ];\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n // presume HTTPS is more common, check for it first\n if(value.startsWith('https://')) {\n return new HttpUrlEncoder({value, secure: true});\n }\n if(value.startsWith('http://')) {\n return new HttpUrlEncoder({value, secure: false});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\nimport {parse} from 'uuid';\n\nexport class UuidUrnEncoder extends CborldEncoder {\n constructor({value} = {}) {\n super();\n this.value = value;\n }\n\n encode() {\n const {value} = this;\n const rest = value.substr('urn:uuid:'.length);\n const entries = [new Token(Type.uint, 3)];\n if(rest.toLowerCase() === rest) {\n const uuidBytes = parse(rest);\n entries.push(new Token(Type.bytes, uuidBytes));\n } else {\n // cannot compress\n entries.push(new Token(Type.string, rest));\n }\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n if(value.startsWith('urn:uuid:')) {\n return new UuidUrnEncoder({value});\n }\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Base58DidUrlEncoder} from './Base58DidUrlEncoder.js';\nimport {HttpUrlEncoder} from './HttpUrlEncoder.js';\nimport {UuidUrnEncoder} from './UuidUrnEncoder.js';\n\nconst SCHEME_TO_ENCODER = new Map([\n ['http', HttpUrlEncoder],\n ['https', HttpUrlEncoder],\n ['urn:uuid', UuidUrnEncoder],\n ['did:v1:nym', Base58DidUrlEncoder],\n ['did:key', Base58DidUrlEncoder]\n]);\n\nexport class UriEncoder extends CborldEncoder {\n static createEncoder({value} = {}) {\n if(typeof value !== 'string') {\n return false;\n }\n\n // get full colon-delimited prefix\n let scheme;\n try {\n // this handles URIs both with authority followed by `//` and without\n const {protocol, pathname} = new URL(value);\n scheme = protocol;\n if(pathname.includes(':')) {\n scheme += pathname;\n }\n const split = value.split(':');\n split.pop();\n scheme = split.join(':');\n } catch(e) {\n return false;\n }\n\n const EncoderClass = SCHEME_TO_ENCODER.get(scheme);\n return EncoderClass && EncoderClass.createEncoder({value});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\nimport {UriEncoder} from './UriEncoder.js';\n\nexport class VocabTermEncoder extends CborldEncoder {\n constructor({termId} = {}) {\n super();\n this.termId = termId;\n }\n\n encode() {\n return new Token(Type.uint, this.termId);\n }\n\n static createEncoder({value, transformer} = {}) {\n const {termToId} = transformer;\n const termId = termToId.get(value);\n if(termId !== undefined) {\n return new VocabTermEncoder({termId});\n }\n return UriEncoder.createEncoder({value});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\n\nexport class XsdDateEncoder extends CborldEncoder {\n constructor({value, parsed} = {}) {\n super();\n this.value = value;\n this.parsed = parsed;\n }\n\n encode() {\n const {value, parsed} = this;\n const secondsSinceEpoch = Math.floor(parsed / 1000);\n const dateString = new Date(secondsSinceEpoch * 1000).toISOString();\n const expectedDate = dateString.substring(0, dateString.indexOf('T'));\n if(value !== expectedDate) {\n // compression would be lossy, do not compress\n return new Token(Type.string, value);\n }\n return new Token(Type.uint, secondsSinceEpoch);\n }\n\n static createEncoder({value} = {}) {\n if(value.includes('T')) {\n // time included, cannot compress\n return false;\n }\n const parsed = Date.parse(value);\n if(isNaN(parsed)) {\n // no date parsed, cannot compress\n return false;\n }\n\n return new XsdDateEncoder({value, parsed});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport {CborldEncoder} from './CborldEncoder.js';\nimport {Token, Type} from 'cborg';\n\nexport class XsdDateTimeEncoder extends CborldEncoder {\n constructor({value, parsed} = {}) {\n super();\n this.value = value;\n this.parsed = parsed;\n }\n\n encode() {\n const {value, parsed} = this;\n const secondsSinceEpoch = Math.floor(parsed / 1000);\n const secondsToken = new Token(Type.uint, secondsSinceEpoch);\n const millisecondIndex = value.indexOf('.');\n if(millisecondIndex === -1) {\n const expectedDate = new Date(\n secondsSinceEpoch * 1000).toISOString().replace('.000Z', 'Z');\n if(value !== expectedDate) {\n // compression would be lossy, do not compress\n return new Token(Type.string, value);\n }\n // compress with second precision\n return secondsToken;\n }\n\n const milliseconds = parseInt(value.substr(millisecondIndex + 1), 10);\n const expectedDate = new Date(\n secondsSinceEpoch * 1000 + milliseconds).toISOString();\n if(value !== expectedDate) {\n // compress would be lossy, do not compress\n return new Token(Type.string, value);\n }\n\n // compress with subsecond precision\n const entries = [\n secondsToken,\n new Token(Type.uint, milliseconds)\n ];\n return [new Token(Type.array, entries.length), entries];\n }\n\n static createEncoder({value} = {}) {\n if(!value.includes('T')) {\n // no time included, cannot compress\n return false;\n }\n const parsed = Date.parse(value);\n if(isNaN(parsed)) {\n // no date parsed, cannot compress\n return false;\n }\n\n return new XsdDateTimeEncoder({value, parsed});\n }\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {CborldError} from './CborldError.js';\nimport {CborldEncoder} from './codecs/CborldEncoder.js';\nimport {ContextEncoder} from './codecs/ContextEncoder.js';\nimport {MultibaseEncoder} from './codecs/MultibaseEncoder.js';\nimport {Transformer} from './Transformer.js';\nimport {UriEncoder} from './codecs/UriEncoder.js';\nimport {VocabTermEncoder} from './codecs/VocabTermEncoder.js';\nimport {XsdDateEncoder} from './codecs/XsdDateEncoder.js';\nimport {XsdDateTimeEncoder} from './codecs/XsdDateTimeEncoder.js';\nimport {inspect} from './util.js';\nimport {FIRST_CUSTOM_TERM_ID, KEYWORDS} from './keywords.js';\n\nexport const TYPE_ENCODERS = new Map([\n ['@id', UriEncoder],\n ['@vocab', VocabTermEncoder],\n ['https://w3id.org/security#multibase', MultibaseEncoder],\n ['http://www.w3.org/2001/XMLSchema#date', XsdDateEncoder],\n ['http://www.w3.org/2001/XMLSchema#dateTime', XsdDateTimeEncoder]\n]);\n\nconst CONTEXT_TERM_ID = KEYWORDS.get('@context');\nconst CONTEXT_TERM_ID_PLURAL = CONTEXT_TERM_ID + 1;\n\n// override cborg object encoder to use cborld encoders\nconst typeEncoders = {\n Object(obj) {\n if(obj instanceof CborldEncoder) {\n return obj.encode({obj});\n }\n }\n};\n\nexport class Compressor extends Transformer {\n /**\n * Creates a new Compressor for generating compressed CBOR-LD from a\n * JSON-LD document. The created instance may only be used on a single\n * JSON-LD document at a time.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {documentLoaderFunction} options.documentLoader -The document\n * loader to use when resolving JSON-LD Context URLs.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767\n * (0x7FFF)).\n */\n constructor({documentLoader, appContextMap} = {}) {\n super({documentLoader, appContextMap});\n }\n\n /**\n * Compresses the given JSON-LD document into a CBOR-LD byte array of\n * compressed bytes that should follow the compressed CBOR-LD CBOR tag.\n *\n * @param {object} options - The options to use.\n * @param {object} options.jsonldDocument - The JSON-LD Document to convert\n * to CBOR-LD bytes.\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<Uint8Array>} - The compressed CBOR-LD bytes.\n */\n async compress({jsonldDocument, diagnose} = {}) {\n const transformMaps = await this._createTransformMaps({jsonldDocument});\n if(diagnose) {\n diagnose('Diagnostic CBOR-LD compression transform map(s):');\n diagnose(inspect(transformMaps, {depth: null, colors: true}));\n }\n return cborg.encode(transformMaps, {typeEncoders});\n }\n\n async _createTransformMaps({jsonldDocument}) {\n // initialize state\n this.contextMap = new Map();\n this.termToId = new Map(KEYWORDS);\n this.nextTermId = FIRST_CUSTOM_TERM_ID;\n\n // handle single or multiple JSON-LD docs\n const transformMaps = [];\n const isArray = Array.isArray(jsonldDocument);\n const docs = isArray ? jsonldDocument : [jsonldDocument];\n for(const obj of docs) {\n const transformMap = new Map();\n await this._transform({obj, transformMap});\n transformMaps.push(transformMap);\n }\n\n return isArray ? transformMaps : transformMaps[0];\n }\n\n _afterObjectContexts({obj, transformMap}) {\n // if `@context` is present in the object, encode it\n const context = obj['@context'];\n if(!context) {\n return;\n }\n\n const entries = [];\n const isArray = Array.isArray(context);\n const contexts = isArray ? context : [context];\n for(const value of contexts) {\n const encoder = ContextEncoder.createEncoder(\n {value, transformer: this});\n entries.push(encoder || value);\n }\n const id = isArray ? CONTEXT_TERM_ID_PLURAL : CONTEXT_TERM_ID;\n transformMap.set(id, isArray ? entries : entries[0]);\n }\n\n _getEntries({obj, termMap}) {\n // get term entries to be transformed and sort by *term* to ensure term\n // IDs will be assigned in the same order that the decompressor will\n const entries = [];\n const keys = Object.keys(obj).sort();\n for(const key of keys) {\n // skip `@context`; not a term entry\n if(key === '@context') {\n continue;\n }\n\n // check for undefined terms\n const def = termMap.get(key);\n if(def === undefined && !(key.startsWith('@') && KEYWORDS.has(key))) {\n throw new CborldError(\n 'ERR_UNKNOWN_CBORLD_TERM',\n `Unknown term '${key}' was detected in the JSON-LD input.`);\n }\n\n const value = obj[key];\n const plural = Array.isArray(value);\n const termId = this._getIdForTerm({term: key, plural});\n entries.push([{term: key, termId, plural, def}, value]);\n }\n return entries;\n }\n\n _transformObjectId({transformMap, termInfo, value}) {\n const {termId} = termInfo;\n const encoder = UriEncoder.createEncoder(\n {value, transformer: this, termInfo});\n transformMap.set(termId, encoder || value);\n }\n\n _transformObjectType({transformMap, termInfo, value}) {\n const {termId, plural} = termInfo;\n const values = plural ? value : [value];\n const entries = [];\n for(const value of values) {\n const encoder = VocabTermEncoder.createEncoder(\n {value, transformer: this, termInfo});\n entries.push(encoder || value);\n }\n transformMap.set(termId, plural ? entries : entries[0]);\n }\n\n _transformTypedValue({entries, termType, value, termInfo}) {\n const EncoderClass = TYPE_ENCODERS.get(termType);\n const encoder = EncoderClass && EncoderClass.createEncoder(\n {value, transformer: this, termInfo});\n if(encoder) {\n entries.push(encoder);\n return true;\n }\n }\n\n async _transformArray({entries, contextStack, value}) {\n // recurse into array\n const children = [];\n for(const obj of value) {\n const childMap = new Map();\n children.push(childMap);\n await this._transform({obj, transformMap: childMap, contextStack});\n }\n entries.push(children);\n }\n\n async _transformObject({entries, contextStack, value}) {\n // recurse into object\n const transformMap = new Map();\n entries.push(transformMap);\n await this._transform({obj: value, transformMap, contextStack});\n }\n\n _assignEntries({entries, transformMap, termInfo}) {\n const {termId, plural} = termInfo;\n transformMap.set(termId, plural ? entries : entries[0]);\n }\n}\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n", "/*!\n * Copyright (c) 2020-2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborg from 'cborg';\nimport {inspect} from './util.js';\nimport {Compressor} from './Compressor.js';\n\n/**\n * Encodes a given JSON-LD document into a CBOR-LD byte array.\n *\n * @param {object} options - The options to use when encoding to CBOR-LD.\n * @param {object} options.jsonldDocument - The JSON-LD Document to convert to\n * CBOR-LD bytes.\n * @param {documentLoaderFunction} options.documentLoader -The document loader\n * to use when resolving JSON-LD Context URLs.\n * @param {boolean} [options.compressionMode=1] - `1` to use compression mode\n * version 1, `0` to use no compression.\n * @param {Map} [options.appContextMap] - A map of JSON-LD Context URLs and\n * their encoded CBOR-LD values (must be values greater than 32767 (0x7FFF)).\n * @param {diagnosticFunction} [options.diagnose] - A function that, if\n * provided, is called with diagnostic information.\n *\n * @returns {Promise<Uint8Array>} - The encoded CBOR-LD bytes.\n */\nexport async function encode({\n jsonldDocument, documentLoader, appContextMap = new Map(),\n compressionMode = 1, diagnose\n} = {}) {\n if(!(compressionMode === 0 || compressionMode === 1)) {\n throw new TypeError(\n '\"compressionMode\" must be \"0\" (no compression) or \"1\" ' +\n 'for compression mode version 1.');\n }\n\n // 0xd9 == 11011001\n // 110 = CBOR major type 6\n // 11001 = 25, 16-bit tag size (65536 possible values)\n // 0x05 = always the first 8-bits of a CBOR-LD tag\n // compressionMode = last 8-bits of a CBOR-LD tag indicating compression type\n const prefix = new Uint8Array([0xd9, 0x05, compressionMode]);\n let suffix;\n\n if(compressionMode === 0) {\n // handle uncompressed CBOR-LD\n suffix = cborg.encode(jsonldDocument);\n } else {\n // compress CBOR-LD\n const compressor = new Compressor({documentLoader, appContextMap});\n suffix = await compressor.compress({jsonldDocument, diagnose});\n }\n\n // concatenate prefix and suffix\n const length = prefix.length + suffix.length;\n const bytes = new Uint8Array(length);\n bytes.set(prefix);\n bytes.set(suffix, prefix.length);\n\n if(diagnose) {\n diagnose('Diagnostic CBOR-LD result:');\n diagnose(inspect(bytes, {depth: null, colors: true}));\n }\n\n return bytes;\n}\n\n/**\n * A diagnostic function that is called with diagnostic information. Typically\n * set to `console.log` when debugging.\n *\n * @callback diagnosticFunction\n * @param {string} message - The diagnostic message.\n */\n\n/**\n * Fetches a resource given a URL and returns it as a string.\n *\n * @callback documentLoaderFunction\n * @param {string} url - The URL to retrieve.\n *\n * @returns {string} The resource associated with the URL as a string.\n */\n", "/*!\n * Copyright (c) 2020-2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport {decode} from './decode.js';\nexport {encode} from './encode.js';\n", "export default function toDataView (data) {\n if (data instanceof Int8Array || data instanceof Uint8Array || data instanceof Uint8ClampedArray) {\n return new DataView(data.buffer, data.byteOffset, data.byteLength)\n }\n\n if (data instanceof ArrayBuffer) {\n return new DataView(data)\n }\n\n throw new TypeError('Expected `data` to be an ArrayBuffer, Buffer, Int8Array, Uint8Array or Uint8ClampedArray')\n}\n", "import toDataView from 'to-data-view'\n\nconst RFC4648 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'\nconst RFC4648_HEX = '0123456789ABCDEFGHIJKLMNOPQRSTUV'\nconst CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'\n\nexport default function base32Encode (data, variant, options) {\n options = options || {}\n let alphabet, defaultPadding\n\n switch (variant) {\n case 'RFC3548':\n case 'RFC4648':\n alphabet = RFC4648\n defaultPadding = true\n break\n case 'RFC4648-HEX':\n alphabet = RFC4648_HEX\n defaultPadding = true\n break\n case 'Crockford':\n alphabet = CROCKFORD\n defaultPadding = false\n break\n default:\n throw new Error('Unknown base32 variant: ' + variant)\n }\n\n const padding = (options.padding !== undefined ? options.padding : defaultPadding)\n const view = toDataView(data)\n\n let bits = 0\n let value = 0\n let output = ''\n\n for (let i = 0; i < view.byteLength; i++) {\n value = (value << 8) | view.getUint8(i)\n bits += 8\n\n while (bits >= 5) {\n output += alphabet[(value >>> (bits - 5)) & 31]\n bits -= 5\n }\n }\n\n if (bits > 0) {\n output += alphabet[(value << (5 - bits)) & 31]\n }\n\n if (padding) {\n while ((output.length % 8) !== 0) {\n output += '='\n }\n }\n\n return output\n}\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nimport * as cborld from '@digitalbazaar/cborld';\n\nimport base32Encode from 'base32-encode';\nimport base32Decode from 'base32-decode';\n\nimport {\n Encoder,\n // QRByte,\n QRAlphanumeric,\n // ErrorCorrectionLevel\n} from '@nuintun/qrcode';\n\nconst VP_QR_VERSION = 'VP1';\nconst BASE_32_UPPERCASE_MULTIBASE_PREFIX = 'B';\n\nfunction _bytesToQrCodeDataUrl({bytes, size}) {\n const qrcode = new Encoder();\n qrcode.setEncodingHint(true);\n // qrcode.setErrorCorrectionLevel(ErrorCorrectionLevel.M);\n const encoded = base32Encode(bytes, 'RFC4648', {padding: false});\n\n const vpPayload =\n `${VP_QR_VERSION}-${BASE_32_UPPERCASE_MULTIBASE_PREFIX}${encoded}`;\n\n qrcode.write(new QRAlphanumeric(vpPayload));\n\n qrcode.make();\n\n return {\n payload: vpPayload,\n encodedCborld: encoded,\n version: qrcode.getVersion(),\n imageDataUrl: qrcode.toDataURL(size)\n };\n}\n\nexport async function toQrCode({\n vp, documentLoader, size, diagnose\n} = {}) {\n const cborldBytes = await cborld.encode({\n jsonldDocument: vp,\n documentLoader,\n // to debug, set diagnose: console.log\n diagnose\n });\n\n const {\n payload,\n imageDataUrl,\n encodedCborld,\n version\n } = _bytesToQrCodeDataUrl({\n bytes: cborldBytes, size\n });\n\n return {\n payload,\n imageDataUrl,\n encodedCborld,\n rawCborldBytes: cborldBytes,\n version\n };\n}\n\nexport async function fromQrCode({\n text, documentLoader, diagnose\n} = {}) {\n const header = VP_QR_VERSION + '-';\n if(!(text && text.startsWith(header))) {\n throw TypeError('Unsupported VP QR format.');\n }\n\n const multibasePayload = text.slice(header.length);\n\n if(!multibasePayload.startsWith(BASE_32_UPPERCASE_MULTIBASE_PREFIX)) {\n throw TypeError('Payload must be multibase base32 (RFC4648) encoded.');\n }\n\n const cborldArrayBuffer = base32Decode(multibasePayload.slice(1), 'RFC4648');\n const cborldBytes = new Uint8Array(cborldArrayBuffer);\n\n const vp = await cborld.decode({\n cborldBytes,\n documentLoader,\n // to debug, set diagnose: console.log\n diagnose\n });\n\n return {vp};\n}\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module Mode\n * @author nuintun\n * @author Cosmo Wolfe\n * @author Kazuhiko Arase\n */\n/**\n * @readonly\n */\nvar Mode;\n(function (Mode) {\n Mode[(Mode['Terminator'] = 0)] = 'Terminator';\n Mode[(Mode['Numeric'] = 1)] = 'Numeric';\n Mode[(Mode['Alphanumeric'] = 2)] = 'Alphanumeric';\n Mode[(Mode['StructuredAppend'] = 3)] = 'StructuredAppend';\n Mode[(Mode['Byte'] = 4)] = 'Byte';\n Mode[(Mode['Kanji'] = 8)] = 'Kanji';\n Mode[(Mode['ECI'] = 7)] = 'ECI';\n // FNC1FirstPosition = 0x5,\n // FNC1SecondPosition = 0x9\n})(Mode || (Mode = {}));\n\nexport { Mode };\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n};\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { Mode } from '../common/Mode.js';\n\n/**\n * @module QRData\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar QRData = /*#__PURE__*/ (function () {\n function QRData(mode, data) {\n this.bytes = [];\n this.mode = mode;\n this.data = data;\n }\n QRData.prototype.getLength = function () {\n return this.bytes.length;\n };\n QRData.prototype.getLengthInBits = function (version) {\n var mode = this.mode;\n var error = new Error('illegal mode: '.concat(mode));\n if (1 <= version && version < 10) {\n // 1 - 9\n switch (mode) {\n case Mode.Numeric:\n return 10;\n case Mode.Alphanumeric:\n return 9;\n case Mode.Byte:\n return 8;\n case Mode.Kanji:\n return 8;\n default:\n throw error;\n }\n } else if (version < 27) {\n // 10 - 26\n switch (mode) {\n case Mode.Numeric:\n return 12;\n case Mode.Alphanumeric:\n return 11;\n case Mode.Byte:\n return 16;\n case Mode.Kanji:\n return 10;\n default:\n throw error;\n }\n } else if (version < 41) {\n // 27 - 40\n switch (mode) {\n case Mode.Numeric:\n return 14;\n case Mode.Alphanumeric:\n return 13;\n case Mode.Byte:\n return 16;\n case Mode.Kanji:\n return 12;\n default:\n throw error;\n }\n } else {\n throw new Error('illegal version: '.concat(version));\n }\n };\n return QRData;\n})();\n\nexport { QRData };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module UTF8\n * @author nuintun\n */\n/**\n * @function encode\n * @param {string} text\n * @returns {number[]}\n * @see https://github.com/google/closure-library/blob/master/closure/goog/crypt/crypt.js\n */\nfunction encode(text) {\n var pos = 0;\n var length = text.length;\n var bytes = [];\n for (var i = 0; i < length; i++) {\n var code = text.charCodeAt(i);\n if (code < 128) {\n bytes[pos++] = code;\n } else if (code < 2048) {\n bytes[pos++] = (code >> 6) | 192;\n bytes[pos++] = (code & 63) | 128;\n } else if ((code & 0xfc00) === 0xd800 && i + 1 < length && (text.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n // Surrogate Pair\n code = 0x10000 + ((code & 0x03ff) << 10) + (text.charCodeAt(++i) & 0x03ff);\n bytes[pos++] = (code >> 18) | 240;\n bytes[pos++] = ((code >> 12) & 63) | 128;\n bytes[pos++] = ((code >> 6) & 63) | 128;\n bytes[pos++] = (code & 63) | 128;\n } else {\n bytes[pos++] = (code >> 12) | 224;\n bytes[pos++] = ((code >> 6) & 63) | 128;\n bytes[pos++] = (code & 63) | 128;\n }\n }\n return bytes;\n}\n/**\n * @function decode\n * @param {number[]} bytes\n * @returns {string}\n * @see https://github.com/google/closure-library/blob/master/closure/goog/crypt/crypt.js\n */\nfunction decode(bytes) {\n var pos = 0;\n var output = '';\n var length = bytes.length;\n var fromCharCode = String.fromCharCode;\n while (pos < length) {\n var c1 = bytes[pos++];\n if (c1 < 128) {\n output += fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n var c2 = bytes[pos++];\n output += fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n var c4 = bytes[pos++];\n var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) - 0x10000;\n output += fromCharCode(0xd800 + (u >> 10));\n output += fromCharCode(0xdc00 + (u & 1023));\n } else {\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n output += fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n }\n }\n return output;\n}\n\nexport { decode, encode };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { QRData } from './QRData.js';\nimport { Mode } from '../common/Mode.js';\nimport { encode } from '../../encoding/UTF8.js';\n\n/**\n * @module QR8BitByte\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar QRByte = /*#__PURE__*/ (function (_super) {\n __extends(QRByte, _super);\n /**\n * @constructor\n * @param {string} data\n */\n function QRByte(data, encode$1) {\n var _this = _super.call(this, Mode.Byte, data) || this;\n _this.encoding = -1;\n if (typeof encode$1 === 'function') {\n var _a = encode$1(data),\n encoding = _a.encoding,\n bytes = _a.bytes;\n _this.bytes = bytes;\n _this.encoding = encoding;\n } else {\n _this.bytes = encode(data);\n _this.encoding = 26 /* EncodingHint.UTF8 */;\n }\n return _this;\n }\n /**\n * @public\n * @method writeTo\n * @param {BitBuffer} buffer\n */\n QRByte.prototype.writeTo = function (buffer) {\n var bytes = this.bytes;\n for (var _i = 0, bytes_1 = bytes; _i < bytes_1.length; _i++) {\n var byte = bytes_1[_i];\n buffer.put(byte, 8);\n }\n };\n return QRByte;\n})(QRData);\n\nexport { QRByte };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module QRMath\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar EXP_TABLE = [];\nvar LOG_TABLE = [];\nfor (var i = 0; i < 256; i++) {\n LOG_TABLE[i] = 0;\n EXP_TABLE[i] = i < 8 ? 1 << i : EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n LOG_TABLE[EXP_TABLE[i]] = i;\n}\nfunction glog(n) {\n if (n < 1) {\n throw new Error('illegal log: '.concat(n));\n }\n return LOG_TABLE[n];\n}\nfunction gexp(n) {\n while (n < 0) {\n n += 255;\n }\n while (n >= 256) {\n n -= 255;\n }\n return EXP_TABLE[n];\n}\n\nexport { gexp, glog };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { gexp, glog } from './QRMath.js';\n\n/**\n * @module Polynomial\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar Polynomial = /*#__PURE__*/ (function () {\n function Polynomial(num, shift) {\n if (shift === void 0) {\n shift = 0;\n }\n var offset = 0;\n var length = num.length;\n while (offset < length && num[offset] === 0) {\n offset++;\n }\n length -= offset;\n var numbers = [];\n for (var i = 0; i < length; i++) {\n numbers.push(num[offset + i]);\n }\n for (var i = 0; i < shift; i++) {\n numbers.push(0);\n }\n this.num = numbers;\n }\n Polynomial.prototype.getAt = function (index) {\n return this.num[index];\n };\n Polynomial.prototype.getLength = function () {\n return this.num.length;\n };\n Polynomial.prototype.multiply = function (e) {\n var num = [];\n var eLength = e.getLength();\n var tLength = this.getLength();\n var dLength = tLength + eLength - 1;\n for (var i = 0; i < dLength; i++) {\n num.push(0);\n }\n for (var i = 0; i < tLength; i++) {\n for (var j = 0; j < eLength; j++) {\n num[i + j] ^= gexp(glog(this.getAt(i)) + glog(e.getAt(j)));\n }\n }\n return new Polynomial(num);\n };\n Polynomial.prototype.mod = function (e) {\n var eLength = e.getLength();\n var tLength = this.getLength();\n if (tLength - eLength < 0) {\n return this;\n }\n var ratio = glog(this.getAt(0)) - glog(e.getAt(0));\n // Create copy\n var num = [];\n for (var i = 0; i < tLength; i++) {\n num.push(this.getAt(i));\n }\n // Subtract and calc rest.\n for (var i = 0; i < eLength; i++) {\n num[i] ^= gexp(glog(e.getAt(i)) + ratio);\n }\n // Call recursively\n return new Polynomial(num).mod(e);\n };\n return Polynomial;\n})();\n\nexport { Polynomial };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { gexp } from './QRMath.js';\nimport { Polynomial } from './Polynomial.js';\n\n/**\n * @module QRUtil\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar N1 = 3;\nvar N2 = 3;\nvar N3 = 40;\nvar N4 = 10;\nvar ALIGNMENT_PATTERN_TABLE = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n];\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\nfunction getAlignmentPattern(version) {\n return ALIGNMENT_PATTERN_TABLE[version - 1];\n}\nfunction getErrorCorrectionPolynomial(errorCorrectionLength) {\n var e = new Polynomial([1]);\n for (var i = 0; i < errorCorrectionLength; i++) {\n e = e.multiply(new Polynomial([1, gexp(i)]));\n }\n return e;\n}\nfunction getBCHDigit(data) {\n var digit = 0;\n while (data !== 0) {\n digit++;\n data >>>= 1;\n }\n return digit;\n}\nvar G18_BCH = getBCHDigit(G18);\nfunction getBCHVersion(data) {\n var offset = data << 12;\n while (getBCHDigit(offset) - G18_BCH >= 0) {\n offset ^= G18 << (getBCHDigit(offset) - G18_BCH);\n }\n return (data << 12) | offset;\n}\nvar G15_BCH = getBCHDigit(G15);\nfunction getBCHVersionInfo(data) {\n var offset = data << 10;\n while (getBCHDigit(offset) - G15_BCH >= 0) {\n offset ^= G15 << (getBCHDigit(offset) - G15_BCH);\n }\n return ((data << 10) | offset) ^ G15_MASK;\n}\nfunction applyMaskPenaltyRule1Internal(qrcode, isHorizontal) {\n var matrixSize = qrcode.getMatrixSize();\n var penalty = 0;\n for (var i = 0; i < matrixSize; i++) {\n var prevBit = false;\n var numSameBitCells = 0;\n for (var j = 0; j < matrixSize; j++) {\n var bit = isHorizontal ? qrcode.isDark(i, j) : qrcode.isDark(j, i);\n if (bit === prevBit) {\n numSameBitCells++;\n if (numSameBitCells === 5) {\n penalty += N1;\n } else if (numSameBitCells > 5) {\n penalty++;\n }\n } else {\n // set prev bit\n prevBit = bit;\n // include the cell itself\n numSameBitCells = 1;\n }\n }\n }\n return penalty;\n}\nfunction applyMaskPenaltyRule1(qrcode) {\n return applyMaskPenaltyRule1Internal(qrcode, true) + applyMaskPenaltyRule1Internal(qrcode, false);\n}\nfunction applyMaskPenaltyRule2(qrcode) {\n var matrixSize = qrcode.getMatrixSize();\n var penalty = 0;\n for (var y = 0; y < matrixSize - 1; y++) {\n for (var x = 0; x < matrixSize - 1; x++) {\n var value = qrcode.isDark(y, x);\n if (value === qrcode.isDark(y, x + 1) && value === qrcode.isDark(y + 1, x) && value === qrcode.isDark(y + 1, x + 1)) {\n penalty += N2;\n }\n }\n }\n return penalty;\n}\nfunction isFourWhite(qrcode, rangeIndex, from, to, isHorizontal) {\n from = Math.max(from, 0);\n to = Math.min(to, qrcode.getMatrixSize());\n for (var i = from; i < to; i++) {\n var value = isHorizontal ? qrcode.isDark(rangeIndex, i) : qrcode.isDark(i, rangeIndex);\n if (value) {\n return false;\n }\n }\n return true;\n}\nfunction applyMaskPenaltyRule3(qrcode) {\n var matrixSize = qrcode.getMatrixSize();\n var penalty = 0;\n for (var y = 0; y < matrixSize; y++) {\n for (var x = 0; x < matrixSize; x++) {\n if (\n x + 6 < matrixSize &&\n qrcode.isDark(y, x) &&\n !qrcode.isDark(y, x + 1) &&\n qrcode.isDark(y, x + 2) &&\n qrcode.isDark(y, x + 3) &&\n qrcode.isDark(y, x + 4) &&\n !qrcode.isDark(y, x + 5) &&\n qrcode.isDark(y, x + 6) &&\n (isFourWhite(qrcode, y, x - 4, x, true) || isFourWhite(qrcode, y, x + 7, x + 11, true))\n ) {\n penalty += N3;\n }\n if (\n y + 6 < matrixSize &&\n qrcode.isDark(y, x) &&\n !qrcode.isDark(y + 1, x) &&\n qrcode.isDark(y + 2, x) &&\n qrcode.isDark(y + 3, x) &&\n qrcode.isDark(y + 4, x) &&\n !qrcode.isDark(y + 5, x) &&\n qrcode.isDark(y + 6, x) &&\n (isFourWhite(qrcode, x, y - 4, y, false) || isFourWhite(qrcode, x, y + 7, y + 11, false))\n ) {\n penalty += N3;\n }\n }\n }\n return penalty;\n}\nfunction applyMaskPenaltyRule4(qrcode) {\n var matrixSize = qrcode.getMatrixSize();\n var numDarkCells = 0;\n for (var y = 0; y < matrixSize; y++) {\n for (var x = 0; x < matrixSize; x++) {\n if (qrcode.isDark(y, x)) {\n numDarkCells++;\n }\n }\n }\n var numTotalCells = matrixSize * matrixSize;\n var fivePercentVariances = Math.floor(Math.abs(numDarkCells * 20 - numTotalCells * 10) / numTotalCells);\n return fivePercentVariances * N4;\n}\n/**\n * @function calculateMaskPenalty\n * @param {Encoder} qrcode\n * @see https://www.thonky.com/qr-code-tutorial/data-masking\n * @see https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java\n */\nfunction calculateMaskPenalty(qrcode) {\n return (\n applyMaskPenaltyRule1(qrcode) +\n applyMaskPenaltyRule2(qrcode) +\n applyMaskPenaltyRule3(qrcode) +\n applyMaskPenaltyRule4(qrcode)\n );\n}\n\nexport { calculateMaskPenalty, getAlignmentPattern, getBCHVersion, getBCHVersionInfo, getErrorCorrectionPolynomial };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module ErrorCorrectionLevel\n * @author nuintun\n * @author Cosmo Wolfe\n * @author Kazuhiko Arase\n */\n/**\n * @readonly\n */\nvar ErrorCorrectionLevel;\n(function (ErrorCorrectionLevel) {\n // 7%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['L'] = 1)] = 'L';\n // 15%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['M'] = 0)] = 'M';\n // 25%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['Q'] = 3)] = 'Q';\n // 30%\n ErrorCorrectionLevel[(ErrorCorrectionLevel['H'] = 2)] = 'H';\n})(ErrorCorrectionLevel || (ErrorCorrectionLevel = {}));\n\nexport { ErrorCorrectionLevel };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { ErrorCorrectionLevel } from '../common/ErrorCorrectionLevel.js';\n\n/**\n * @module RSBlock\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar RSBlock = /*#__PURE__*/ (function () {\n function RSBlock(totalCount, dataCount) {\n this.dataCount = dataCount;\n this.totalCount = totalCount;\n }\n RSBlock.prototype.getDataCount = function () {\n return this.dataCount;\n };\n RSBlock.prototype.getTotalCount = function () {\n return this.totalCount;\n };\n RSBlock.getRSBlocks = function (version, errorCorrectionLevel) {\n var rsBlocks = [];\n var rsBlock = RSBlock.getRSBlockTable(version, errorCorrectionLevel);\n var length = rsBlock.length / 3;\n for (var i = 0; i < length; i++) {\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n for (var j = 0; j < count; j++) {\n rsBlocks.push(new RSBlock(totalCount, dataCount));\n }\n }\n return rsBlocks;\n };\n RSBlock.getRSBlockTable = function (version, errorCorrectionLevel) {\n switch (errorCorrectionLevel) {\n case ErrorCorrectionLevel.L:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 0];\n case ErrorCorrectionLevel.M:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 1];\n case ErrorCorrectionLevel.Q:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 2];\n case ErrorCorrectionLevel.H:\n return RSBlock.RS_BLOCK_TABLE[(version - 1) * 4 + 3];\n default:\n throw new Error('illegal error correction level: '.concat(errorCorrectionLevel));\n }\n };\n RSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12, 7, 37, 13],\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ];\n return RSBlock;\n})();\n\nexport { RSBlock };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module BitBuffer\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar BitBuffer = /*#__PURE__*/ (function () {\n function BitBuffer() {\n this.length = 0;\n this.buffer = [];\n }\n BitBuffer.prototype.getBuffer = function () {\n return this.buffer;\n };\n BitBuffer.prototype.getLengthInBits = function () {\n return this.length;\n };\n BitBuffer.prototype.getBit = function (index) {\n return ((this.buffer[(index / 8) >> 0] >>> (7 - (index % 8))) & 1) === 1;\n };\n BitBuffer.prototype.put = function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1);\n }\n };\n BitBuffer.prototype.putBit = function (bit) {\n var buffer = this.buffer;\n if (this.length === buffer.length * 8) {\n buffer.push(0);\n }\n if (bit) {\n buffer[(this.length / 8) >> 0] |= 0x80 >>> this.length % 8;\n }\n this.length++;\n };\n return BitBuffer;\n})();\n\nexport { BitBuffer };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module OutputStream\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar OutputStream = /*#__PURE__*/ (function () {\n function OutputStream() {}\n OutputStream.prototype.writeBytes = function (bytes, offset, length) {\n if (offset === void 0) {\n offset = 0;\n }\n if (length === void 0) {\n length = bytes.length;\n }\n for (var i = 0; i < length; i++) {\n this.writeByte(bytes[i + offset]);\n }\n };\n OutputStream.prototype.flush = function () {\n // The flush method\n };\n OutputStream.prototype.close = function () {\n this.flush();\n };\n return OutputStream;\n})();\n\nexport { OutputStream };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { OutputStream } from './OutputStream.js';\n\n/**\n * @module ByteArrayOutputStream\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar ByteArrayOutputStream = /*#__PURE__*/ (function (_super) {\n __extends(ByteArrayOutputStream, _super);\n function ByteArrayOutputStream() {\n var _this = (_super !== null && _super.apply(this, arguments)) || this;\n _this.bytes = [];\n return _this;\n }\n ByteArrayOutputStream.prototype.writeByte = function (byte) {\n this.bytes.push(byte);\n };\n ByteArrayOutputStream.prototype.writeInt16 = function (byte) {\n this.bytes.push(byte, byte >>> 8);\n };\n ByteArrayOutputStream.prototype.toByteArray = function () {\n return this.bytes;\n };\n return ByteArrayOutputStream;\n})(OutputStream);\n\nexport { ByteArrayOutputStream };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { OutputStream } from './OutputStream.js';\n\n/**\n * @module Base64EncodeOutputStream\n * @author nuintun\n * @author Kazuhiko Arase\n */\nfunction encode(ch) {\n if (ch >= 0) {\n if (ch < 26) {\n // A\n return 0x41 + ch;\n } else if (ch < 52) {\n // a\n return 0x61 + (ch - 26);\n } else if (ch < 62) {\n // 0\n return 0x30 + (ch - 52);\n } else if (ch === 62) {\n // +\n return 0x2b;\n } else if (ch === 63) {\n // /\n return 0x2f;\n }\n }\n throw new Error('illegal char: '.concat(String.fromCharCode(ch)));\n}\nvar Base64EncodeOutputStream = /*#__PURE__*/ (function (_super) {\n __extends(Base64EncodeOutputStream, _super);\n function Base64EncodeOutputStream(stream) {\n var _this = _super.call(this) || this;\n _this.buffer = 0;\n _this.length = 0;\n _this.bufLength = 0;\n _this.stream = stream;\n return _this;\n }\n Base64EncodeOutputStream.prototype.writeByte = function (byte) {\n this.buffer = (this.buffer << 8) | (byte & 0xff);\n this.bufLength += 8;\n this.length++;\n while (this.bufLength >= 6) {\n this.writeEncoded(this.buffer >>> (this.bufLength - 6));\n this.bufLength -= 6;\n }\n };\n /**\n * @override\n */\n Base64EncodeOutputStream.prototype.flush = function () {\n if (this.bufLength > 0) {\n this.writeEncoded(this.buffer << (6 - this.bufLength));\n this.buffer = 0;\n this.bufLength = 0;\n }\n var stream = this.stream;\n if (this.length % 3 != 0) {\n // Padding\n var pad = 3 - (this.length % 3);\n for (var i = 0; i < pad; i++) {\n // =\n stream.writeByte(0x3d);\n }\n }\n };\n Base64EncodeOutputStream.prototype.writeEncoded = function (byte) {\n this.stream.writeByte(encode(byte & 0x3f));\n };\n return Base64EncodeOutputStream;\n})(OutputStream);\n\nexport { Base64EncodeOutputStream };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { ByteArrayOutputStream } from '../io/ByteArrayOutputStream.js';\nimport { Base64EncodeOutputStream } from '../io/Base64EncodeOutputStream.js';\n\n/**\n * @module GIF Image (B/W)\n * @author nuintun\n * @author Kazuhiko Arase\n */\nfunction encodeToBase64(data) {\n var output = new ByteArrayOutputStream();\n var stream = new Base64EncodeOutputStream(output);\n stream.writeBytes(data);\n stream.close();\n output.close();\n return output.toByteArray();\n}\nvar LZWTable = /*#__PURE__*/ (function () {\n function LZWTable() {\n this.size = 0;\n this.map = {};\n }\n LZWTable.prototype.add = function (key) {\n if (!this.contains(key)) {\n this.map[key] = this.size++;\n }\n };\n LZWTable.prototype.getSize = function () {\n return this.size;\n };\n LZWTable.prototype.indexOf = function (key) {\n return this.map[key];\n };\n LZWTable.prototype.contains = function (key) {\n return this.map[key] >= 0;\n };\n return LZWTable;\n})();\nvar BitOutputStream = /*#__PURE__*/ (function () {\n function BitOutputStream(output) {\n this.output = output;\n this.bitLength = 0;\n this.bitBuffer = 0;\n }\n BitOutputStream.prototype.write = function (data, length) {\n if (data >>> length !== 0) {\n throw new Error('length overflow');\n }\n var output = this.output;\n while (this.bitLength + length >= 8) {\n output.writeByte(0xff & ((data << this.bitLength) | this.bitBuffer));\n length -= 8 - this.bitLength;\n data >>>= 8 - this.bitLength;\n this.bitBuffer = 0;\n this.bitLength = 0;\n }\n this.bitBuffer = (data << this.bitLength) | this.bitBuffer;\n this.bitLength = this.bitLength + length;\n };\n BitOutputStream.prototype.flush = function () {\n var output = this.output;\n if (this.bitLength > 0) {\n output.writeByte(this.bitBuffer);\n }\n output.flush();\n };\n BitOutputStream.prototype.close = function () {\n this.flush();\n this.output.close();\n };\n return BitOutputStream;\n})();\nvar GIFImage = /*#__PURE__*/ (function () {\n function GIFImage(width, height) {\n this.data = [];\n this.width = width;\n this.height = height;\n var size = width * height;\n for (var i = 0; i < size; i++) {\n this.data[i] = 0;\n }\n }\n GIFImage.prototype.getLZWRaster = function (lzwMinCodeSize) {\n // Setup LZWTable\n var table = new LZWTable();\n var fromCharCode = String.fromCharCode;\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n for (var i = 0; i < clearCode; i++) {\n table.add(fromCharCode(i));\n }\n table.add(fromCharCode(clearCode));\n table.add(fromCharCode(endCode));\n var bitLength = lzwMinCodeSize + 1;\n var byteOutput = new ByteArrayOutputStream();\n var bitOutput = new BitOutputStream(byteOutput);\n try {\n var data = this.data;\n var length_1 = data.length;\n var fromCharCode_1 = String.fromCharCode;\n // Clear code\n bitOutput.write(clearCode, bitLength);\n var dataIndex = 0;\n var words = fromCharCode_1(data[dataIndex++]);\n while (dataIndex < length_1) {\n var char = fromCharCode_1(data[dataIndex++]);\n if (table.contains(words + char)) {\n words += char;\n } else {\n bitOutput.write(table.indexOf(words), bitLength);\n if (table.getSize() < 0xfff) {\n if (table.getSize() === 1 << bitLength) {\n bitLength++;\n }\n table.add(words + char);\n }\n words = char;\n }\n }\n bitOutput.write(table.indexOf(words), bitLength);\n // End code\n bitOutput.write(endCode, bitLength);\n } finally {\n bitOutput.close();\n }\n return byteOutput.toByteArray();\n };\n GIFImage.prototype.setPixel = function (x, y, pixel) {\n var _a = this,\n width = _a.width,\n height = _a.height;\n if (x < 0 || width <= x) throw new Error('illegal x axis: '.concat(x));\n if (y < 0 || height <= y) throw new Error('illegal y axis: '.concat(y));\n this.data[y * width + x] = pixel;\n };\n GIFImage.prototype.getPixel = function (x, y) {\n var _a = this,\n width = _a.width,\n height = _a.height;\n if (x < 0 || width <= x) throw new Error('illegal x axis: '.concat(x));\n if (y < 0 || height <= y) throw new Error('illegal y axis: '.concat(y));\n return this.data[y * width + x];\n };\n GIFImage.prototype.write = function (output) {\n var _a = this,\n width = _a.width,\n height = _a.height;\n // GIF Signature\n output.writeByte(0x47); // G\n output.writeByte(0x49); // I\n output.writeByte(0x46); // F\n output.writeByte(0x38); // 8\n output.writeByte(0x37); // 7\n output.writeByte(0x61); // a\n // Screen Descriptor\n output.writeInt16(width);\n output.writeInt16(height);\n output.writeByte(0x80); // 2bit\n output.writeByte(0);\n output.writeByte(0);\n // Global Color Map\n // Black\n output.writeByte(0x00);\n output.writeByte(0x00);\n output.writeByte(0x00);\n // White\n output.writeByte(0xff);\n output.writeByte(0xff);\n output.writeByte(0xff);\n // Image Descriptor\n output.writeByte(0x2c); // ,\n output.writeInt16(0);\n output.writeInt16(0);\n output.writeInt16(width);\n output.writeInt16(height);\n output.writeByte(0);\n // Local Color Map\n // Raster Data\n var lzwMinCodeSize = 2;\n var raster = this.getLZWRaster(lzwMinCodeSize);\n var raLength = raster.length;\n output.writeByte(lzwMinCodeSize);\n var offset = 0;\n while (raLength - offset > 255) {\n output.writeByte(255);\n output.writeBytes(raster, offset, 255);\n offset += 255;\n }\n var length = raLength - offset;\n output.writeByte(length);\n output.writeBytes(raster, offset, length);\n output.writeByte(0x00);\n // GIF Terminator\n output.writeByte(0x3b); // ;\n };\n GIFImage.prototype.toDataURL = function () {\n var output = new ByteArrayOutputStream();\n this.write(output);\n var bytes = encodeToBase64(output.toByteArray());\n output.close();\n var length = bytes.length;\n var fromCharCode = String.fromCharCode;\n var url = 'data:image/gif;base64,';\n for (var i = 0; i < length; i++) {\n url += fromCharCode(bytes[i]);\n }\n return url;\n };\n return GIFImage;\n})();\n\nexport { GIFImage };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module MaskPattern\n * @author nuintun\n * @author Cosmo Wolfe\n * @author Kazuhiko Arase\n */\nfunction getMaskFunc(maskPattern) {\n switch (maskPattern) {\n case 0 /* MaskPattern.PATTERN000 */:\n return function (x, y) {\n return ((x + y) & 0x1) === 0;\n };\n case 1 /* MaskPattern.PATTERN001 */:\n return function (_x, y) {\n return (y & 0x1) === 0;\n };\n case 2 /* MaskPattern.PATTERN010 */:\n return function (x, _y) {\n return x % 3 === 0;\n };\n case 3 /* MaskPattern.PATTERN011 */:\n return function (x, y) {\n return (x + y) % 3 === 0;\n };\n case 4 /* MaskPattern.PATTERN100 */:\n return function (x, y) {\n return ((((x / 3) >> 0) + ((y / 2) >> 0)) & 0x1) === 0;\n };\n case 5 /* MaskPattern.PATTERN101 */:\n return function (x, y) {\n return ((x * y) & 0x1) + ((x * y) % 3) === 0;\n };\n case 6 /* MaskPattern.PATTERN110 */:\n return function (x, y) {\n return ((((x * y) & 0x1) + ((x * y) % 3)) & 0x1) === 0;\n };\n case 7 /* MaskPattern.PATTERN111 */:\n return function (x, y) {\n return ((((x * y) % 3) + ((x + y) & 0x1)) & 0x1) === 0;\n };\n default:\n throw new Error('illegal mask: '.concat(maskPattern));\n }\n}\n\nexport { getMaskFunc };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { QRByte } from './QRByte.js';\nimport { QRData } from './QRData.js';\nimport {\n getAlignmentPattern,\n getBCHVersion,\n calculateMaskPenalty,\n getErrorCorrectionPolynomial,\n getBCHVersionInfo\n} from './QRUtil.js';\nimport { RSBlock } from './RSBlock.js';\nimport { Mode } from '../common/Mode.js';\nimport { BitBuffer } from './BitBuffer.js';\nimport { Polynomial } from './Polynomial.js';\nimport { GIFImage } from '../../image/GIFImage.js';\nimport { getMaskFunc } from '../common/MaskPattern.js';\nimport { ErrorCorrectionLevel } from '../common/ErrorCorrectionLevel.js';\n\n/**\n * @module QRCode\n * @author nuintun\n * @author Kazuhiko Arase\n */\nvar PAD0 = 0xec;\nvar PAD1 = 0x11;\nvar toString = Object.prototype.toString;\n/**\n * @function appendECI\n * @param {number} encoding\n * @param {BitBuffer} buffer\n * @see https://github.com/nayuki/QR-Code-generator/blob/master/typescript-javascript/qrcodegen.ts\n * @see https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/qrcode/encoder/Encoder.java\n */\nfunction appendECI(encoding, buffer) {\n if (encoding < 0 || encoding >= 1000000) {\n throw new Error('byte mode encoding hint out of range');\n }\n buffer.put(Mode.ECI, 4);\n if (encoding < 1 << 7) {\n buffer.put(encoding, 8);\n } else if (encoding < 1 << 14) {\n buffer.put(2, 2);\n buffer.put(encoding, 14);\n } else {\n buffer.put(6, 3);\n buffer.put(encoding, 21);\n }\n}\nfunction prepareData(version, errorCorrectionLevel, encodingHint, chunks) {\n var buffer = new BitBuffer();\n var rsBlocks = RSBlock.getRSBlocks(version, errorCorrectionLevel);\n for (var _i = 0, chunks_1 = chunks; _i < chunks_1.length; _i++) {\n var data = chunks_1[_i];\n var mode = data.mode;\n // Default set encoding UTF-8 when has encoding hint\n if (encodingHint && mode === Mode.Byte) {\n appendECI(data.encoding, buffer);\n }\n buffer.put(mode, 4);\n buffer.put(data.getLength(), data.getLengthInBits(version));\n data.writeTo(buffer);\n }\n // Calc max data count\n var maxDataCount = 0;\n for (var _a = 0, rsBlocks_1 = rsBlocks; _a < rsBlocks_1.length; _a++) {\n var rsBlock = rsBlocks_1[_a];\n maxDataCount += rsBlock.getDataCount();\n }\n maxDataCount *= 8;\n return [buffer, rsBlocks, maxDataCount];\n}\nfunction createBytes(buffer, rsBlocks) {\n var offset = 0;\n var maxDcCount = 0;\n var maxEcCount = 0;\n var dcData = [];\n var ecData = [];\n var rsLength = rsBlocks.length;\n var bufferData = buffer.getBuffer();\n for (var r = 0; r < rsLength; r++) {\n var rsBlock = rsBlocks[r];\n var dcCount = rsBlock.getDataCount();\n var ecCount = rsBlock.getTotalCount() - dcCount;\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n dcData[r] = [];\n for (var i = 0; i < dcCount; i++) {\n dcData[r][i] = 0xff & bufferData[i + offset];\n }\n offset += dcCount;\n var rsPoly = getErrorCorrectionPolynomial(ecCount);\n var ecLength = rsPoly.getLength() - 1;\n var rawPoly = new Polynomial(dcData[r], ecLength);\n var modPoly = rawPoly.mod(rsPoly);\n var mpLength = modPoly.getLength();\n ecData[r] = [];\n for (var i = 0; i < ecLength; i++) {\n var modIndex = i + mpLength - ecLength;\n ecData[r][i] = modIndex >= 0 ? modPoly.getAt(modIndex) : 0;\n }\n }\n buffer = new BitBuffer();\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsLength; r++) {\n if (i < dcData[r].length) {\n buffer.put(dcData[r][i], 8);\n }\n }\n }\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsLength; r++) {\n if (i < ecData[r].length) {\n buffer.put(ecData[r][i], 8);\n }\n }\n }\n return buffer;\n}\nfunction createData(buffer, rsBlocks, maxDataCount) {\n // End\n if (buffer.getLengthInBits() + 4 <= maxDataCount) {\n buffer.put(0, 4);\n }\n // Padding\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(false);\n }\n // Padding\n while (true) {\n if (buffer.getLengthInBits() >= maxDataCount) {\n break;\n }\n buffer.put(PAD0, 8);\n if (buffer.getLengthInBits() >= maxDataCount) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n return createBytes(buffer, rsBlocks);\n}\nvar Encoder = /*#__PURE__*/ (function () {\n function Encoder(options) {\n if (options === void 0) {\n options = {};\n }\n this.matrixSize = 0;\n this.chunks = [];\n this.matrix = [];\n var _a = options.version,\n version = _a === void 0 ? 0 : _a,\n _b = options.encodingHint,\n encodingHint = _b === void 0 ? false : _b,\n _c = options.errorCorrectionLevel,\n errorCorrectionLevel = _c === void 0 ? ErrorCorrectionLevel.L : _c;\n this.setVersion(version);\n this.setEncodingHint(encodingHint);\n this.setErrorCorrectionLevel(errorCorrectionLevel);\n }\n /**\n * @public\n * @method getMatrix\n * @returns {boolean[][]}\n */\n Encoder.prototype.getMatrix = function () {\n return this.matrix;\n };\n /**\n * @public\n * @method getMatrixSize\n * @returns {number}\n */\n Encoder.prototype.getMatrixSize = function () {\n return this.matrixSize;\n };\n /**\n * @public\n * @method getVersion\n * @returns {number}\n */\n Encoder.prototype.getVersion = function () {\n return this.version;\n };\n /**\n * @public\n * @method setVersion\n * @param {number} version\n * @returns {Encoder}\n */\n Encoder.prototype.setVersion = function (version) {\n this.version = Math.min(40, Math.max(0, version >> 0));\n this.auto = this.version === 0;\n return this;\n };\n /**\n * @public\n * @method getErrorCorrectionLevel\n * @returns {ErrorCorrectionLevel}\n */\n Encoder.prototype.getErrorCorrectionLevel = function () {\n return this.errorCorrectionLevel;\n };\n /**\n * @public\n * @method setErrorCorrectionLevel\n * @param {ErrorCorrectionLevel} errorCorrectionLevel\n */\n Encoder.prototype.setErrorCorrectionLevel = function (errorCorrectionLevel) {\n switch (errorCorrectionLevel) {\n case ErrorCorrectionLevel.L:\n case ErrorCorrectionLevel.M:\n case ErrorCorrectionLevel.Q:\n case ErrorCorrectionLevel.H:\n this.errorCorrectionLevel = errorCorrectionLevel;\n }\n return this;\n };\n /**\n * @public\n * @method getEncodingHint\n * @returns {boolean}\n */\n Encoder.prototype.getEncodingHint = function () {\n return this.encodingHint;\n };\n /**\n * @public\n * @method setEncodingHint\n * @param {boolean} encodingHint\n * @returns {Encoder}\n */\n Encoder.prototype.setEncodingHint = function (encodingHint) {\n this.encodingHint = encodingHint;\n return this;\n };\n /**\n * @public\n * @method write\n * @param {QRData} data\n * @returns {Encoder}\n */\n Encoder.prototype.write = function (data) {\n var chunks = this.chunks;\n if (data instanceof QRData) {\n chunks.push(data);\n } else {\n var type = toString.call(data);\n if (type === '[object String]') {\n chunks.push(new QRByte(data));\n } else {\n throw new Error('illegal data: '.concat(data));\n }\n }\n return this;\n };\n /**\n * @public\n * @method isDark\n * @param {number} row\n * @param {number} col\n * @returns {boolean}\n */\n Encoder.prototype.isDark = function (row, col) {\n return this.matrix[row][col] === true;\n };\n Encoder.prototype.setupFinderPattern = function (row, col) {\n var matrix = this.matrix;\n var matrixSize = this.matrixSize;\n for (var r = -1; r <= 7; r++) {\n for (var c = -1; c <= 7; c++) {\n if (row + r <= -1 || matrixSize <= row + r || col + c <= -1 || matrixSize <= col + c) {\n continue;\n }\n if (\n (0 <= r && r <= 6 && (c === 0 || c === 6)) ||\n (0 <= c && c <= 6 && (r === 0 || r === 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n matrix[row + r][col + c] = true;\n } else {\n matrix[row + r][col + c] = false;\n }\n }\n }\n };\n Encoder.prototype.setupAlignmentPattern = function () {\n var matrix = this.matrix;\n var pos = getAlignmentPattern(this.version);\n var length = pos.length;\n for (var i = 0; i < length; i++) {\n for (var j = 0; j < length; j++) {\n var row = pos[i];\n var col = pos[j];\n if (matrix[row][col] !== null) {\n continue;\n }\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 || (r === 0 && c === 0)) {\n matrix[row + r][col + c] = true;\n } else {\n matrix[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n Encoder.prototype.setupTimingPattern = function () {\n var matrix = this.matrix;\n var count = this.matrixSize - 8;\n for (var i = 8; i < count; i++) {\n var bit = i % 2 === 0;\n // vertical\n if (matrix[i][6] === null) {\n matrix[i][6] = bit;\n }\n // horizontal\n if (matrix[6][i] === null) {\n matrix[6][i] = bit;\n }\n }\n };\n Encoder.prototype.setupFormatInfo = function (maskPattern) {\n var matrix = this.matrix;\n var data = (this.errorCorrectionLevel << 3) | maskPattern;\n var bits = getBCHVersionInfo(data);\n var matrixSize = this.matrixSize;\n for (var i = 0; i < 15; i++) {\n var bit = ((bits >> i) & 1) === 1;\n // Vertical\n if (i < 6) {\n matrix[i][8] = bit;\n } else if (i < 8) {\n matrix[i + 1][8] = bit;\n } else {\n matrix[matrixSize - 15 + i][8] = bit;\n }\n // Horizontal\n if (i < 8) {\n matrix[8][matrixSize - i - 1] = bit;\n } else if (i < 9) {\n matrix[8][15 - i - 1 + 1] = bit;\n } else {\n matrix[8][15 - i - 1] = bit;\n }\n }\n // Fixed point\n matrix[matrixSize - 8][8] = true;\n };\n Encoder.prototype.setupVersionInfo = function () {\n if (this.version >= 7) {\n var matrix = this.matrix;\n var matrixSize = this.matrixSize;\n var bits = getBCHVersion(this.version);\n for (var i = 0; i < 18; i++) {\n var bit = ((bits >> i) & 1) === 1;\n matrix[(i / 3) >> 0][(i % 3) + matrixSize - 8 - 3] = bit;\n matrix[(i % 3) + matrixSize - 8 - 3][(i / 3) >> 0] = bit;\n }\n }\n };\n Encoder.prototype.setupCodewords = function (data, maskPattern) {\n var matrix = this.matrix;\n var matrixSize = this.matrixSize;\n var bitLength = data.getLengthInBits();\n var maskFunc = getMaskFunc(maskPattern);\n // Bit index into the data\n var bitIndex = 0;\n // Do the funny zigzag scan\n for (var right = matrixSize - 1; right >= 1; right -= 2) {\n // Index of right column in each column pair\n if (right === 6) {\n right = 5;\n }\n for (var vert = 0; vert < matrixSize; vert++) {\n // Vertical counter\n for (var j = 0; j < 2; j++) {\n // Actual x coordinate\n var x = right - j;\n var upward = ((right + 1) & 2) === 0;\n // Actual y coordinate\n var y = upward ? matrixSize - 1 - vert : vert;\n if (matrix[y][x] !== null) {\n continue;\n }\n var bit = false;\n if (bitIndex < bitLength) {\n bit = data.getBit(bitIndex++);\n }\n var invert = maskFunc(x, y);\n if (invert) {\n bit = !bit;\n }\n matrix[y][x] = bit;\n }\n }\n }\n };\n Encoder.prototype.buildMatrix = function (data, maskPattern) {\n // Initialize matrix\n var matrix = [];\n var matrixSize = this.matrixSize;\n for (var row = 0; row < matrixSize; row++) {\n matrix[row] = [];\n for (var col = 0; col < matrixSize; col++) {\n matrix[row][col] = null;\n }\n }\n this.matrix = matrix;\n // Setup finder pattern\n this.setupFinderPattern(0, 0);\n this.setupFinderPattern(matrixSize - 7, 0);\n this.setupFinderPattern(0, matrixSize - 7);\n // Setup alignment pattern\n this.setupAlignmentPattern();\n // Setup timing pattern\n this.setupTimingPattern();\n // Setup format info\n this.setupFormatInfo(maskPattern);\n // Setup version info\n this.setupVersionInfo();\n // Setup codewords\n this.setupCodewords(data, maskPattern);\n };\n /**\n * @public\n * @method make\n * @returns {Encoder}\n */\n Encoder.prototype.make = function () {\n var _a, _b;\n var buffer;\n var rsBlocks;\n var maxDataCount;\n var _c = this,\n chunks = _c.chunks,\n errorCorrectionLevel = _c.errorCorrectionLevel;\n if (this.auto) {\n var version = 1;\n for (; version <= 40; version++) {\n (_a = prepareData(version, errorCorrectionLevel, this.encodingHint, chunks)),\n (buffer = _a[0]),\n (rsBlocks = _a[1]),\n (maxDataCount = _a[2]);\n if (buffer.getLengthInBits() <= maxDataCount) break;\n }\n var dataLengthInBits = buffer.getLengthInBits();\n if (dataLengthInBits > maxDataCount) {\n throw new Error('data overflow: '.concat(dataLengthInBits, ' > ').concat(maxDataCount));\n }\n this.version = version;\n } else {\n (_b = prepareData(this.version, errorCorrectionLevel, this.encodingHint, chunks)),\n (buffer = _b[0]),\n (rsBlocks = _b[1]),\n (maxDataCount = _b[2]);\n }\n // Calc module count\n this.matrixSize = this.version * 4 + 17;\n var matrices = [];\n var data = createData(buffer, rsBlocks, maxDataCount);\n var bestMaskPattern = -1;\n var minPenalty = Number.MAX_VALUE;\n // Choose best mask pattern\n for (var maskPattern = 0; maskPattern < 8; maskPattern++) {\n this.buildMatrix(data, maskPattern);\n matrices.push(this.matrix);\n var penalty = calculateMaskPenalty(this);\n if (penalty < minPenalty) {\n minPenalty = penalty;\n bestMaskPattern = maskPattern;\n }\n }\n this.matrix = matrices[bestMaskPattern];\n return this;\n };\n /**\n * @public\n * @method toDataURL\n * @param {number} moduleSize\n * @param {number} margin\n * @returns {string}\n */\n Encoder.prototype.toDataURL = function (moduleSize, margin) {\n if (moduleSize === void 0) {\n moduleSize = 2;\n }\n if (margin === void 0) {\n margin = moduleSize * 4;\n }\n moduleSize = Math.max(1, moduleSize >> 0);\n margin = Math.max(0, margin >> 0);\n var matrixSize = this.matrixSize;\n var size = moduleSize * matrixSize + margin * 2;\n var min = margin;\n var max = size - margin;\n var gif = new GIFImage(size, size);\n for (var y = 0; y < size; y++) {\n for (var x = 0; x < size; x++) {\n if (min <= x && x < max && min <= y && y < max) {\n var row = ((y - min) / moduleSize) >> 0;\n var col = ((x - min) / moduleSize) >> 0;\n gif.setPixel(x, y, this.isDark(row, col) ? 0 : 1);\n } else {\n gif.setPixel(x, y, 1);\n }\n }\n }\n return gif.toDataURL();\n };\n /**\n * @public\n * @method clear\n */\n Encoder.prototype.clear = function () {\n this.chunks = [];\n };\n return Encoder;\n})();\n\nexport { Encoder };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\n/**\n * @module UTF16\n * @author nuintun\n */\n/**\n * @function encode\n * @param {string} text\n * @returns {number[]}\n */\nfunction encode(text) {\n var length = text.length;\n var bytes = [];\n for (var i = 0; i < length; i++) {\n bytes.push(text.charCodeAt(i));\n }\n return bytes;\n}\n\nexport { encode };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nimport { __extends } from 'tslib';\nimport { QRData } from './QRData.js';\nimport { Mode } from '../common/Mode.js';\nimport { encode } from '../../encoding/UTF16.js';\n\n/**\n * @module QRAlphanumeric\n * @author nuintun\n * @author Kazuhiko Arase\n */\nfunction getByte(byte) {\n if (0x30 <= byte && byte <= 0x39) {\n // 0 - 9\n return byte - 0x30;\n } else if (0x41 <= byte && byte <= 0x5a) {\n // A - Z\n return byte - 0x41 + 10;\n } else {\n switch (byte) {\n // space\n case 0x20:\n return 36;\n // $\n case 0x24:\n return 37;\n // %\n case 0x25:\n return 38;\n // *\n case 0x2a:\n return 39;\n // +\n case 0x2b:\n return 40;\n // -\n case 0x2d:\n return 41;\n // .\n case 0x2e:\n return 42;\n // /\n case 0x2f:\n return 43;\n // :\n case 0x3a:\n return 44;\n default:\n throw new Error('illegal char: '.concat(String.fromCharCode(byte)));\n }\n }\n}\nvar QRAlphanumeric = /*#__PURE__*/ (function (_super) {\n __extends(QRAlphanumeric, _super);\n /**\n * @constructor\n * @param {string} data\n */\n function QRAlphanumeric(data) {\n var _this = _super.call(this, Mode.Alphanumeric, data) || this;\n _this.bytes = encode(data);\n return _this;\n }\n /**\n * @public\n * @method writeTo\n * @param {BitBuffer} buffer\n */\n QRAlphanumeric.prototype.writeTo = function (buffer) {\n var i = 0;\n var bytes = this.bytes;\n var length = bytes.length;\n while (i + 1 < length) {\n buffer.put(getByte(bytes[i]) * 45 + getByte(bytes[i + 1]), 11);\n i += 2;\n }\n if (i < length) {\n buffer.put(getByte(bytes[i]), 6);\n }\n };\n return QRAlphanumeric;\n})(QRData);\n\nexport { QRAlphanumeric };\n", "/**\n * @module QRCode\n * @package @nuintun/qrcode\n * @license MIT\n * @version 3.3.5\n * @author nuintun <nuintun@qq.com>\n * @description A pure JavaScript QRCode encode and decode library.\n * @see https://github.com/nuintun/qrcode#readme\n */\n\nexport { Mode } from './qrcode/common/Mode.js';\nexport { QRByte } from './qrcode/encoder/QRByte.js';\nexport { Encoder } from './qrcode/encoder/Writer.js';\nexport { Decoder } from './qrcode/decoder/Reader.js';\nexport { QRKanji } from './qrcode/encoder/QRKanji.js';\nexport { QRNumeric } from './qrcode/encoder/QRNumeric.js';\nexport { QRAlphanumeric } from './qrcode/encoder/QRAlphanumeric.js';\nexport { ErrorCorrectionLevel } from './qrcode/common/ErrorCorrectionLevel.js';\n", "/*!\n * Copyright (c) 2021 Digital Bazaar, Inc. All rights reserved.\n */\nexport {toQrCode, fromQrCode} from './vpqr.js';\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }