{"version":3,"file":"2406.js","mappings":"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A,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACD,CAMKC,EAAc,EAAE,CACtBC,oEAJwFtiC,KAAK,CAAC,IAIlFlR,OAAO,CAAC,IAClBuz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AKryB,EAAGypC,GAAG,CACTpX,EAAM,MACN,KACF,MAAKryB,EAAGurC,GAAG,CACTlZ,EAAM,MACN,KACF,MAAKryB,EAAGwrC,GAAG,CACTnZ,EAAM,MACN,KACF,MAAKryB,EAAGyrC,GAAG,CACTpZ,EAAM,MACN,KACF,MAAKryB,EAAG0rC,GAAG,CACTrZ,EAAM,MACN,KACF,MAAKryB,EAAG0pC,GAAG,CACTrX,EAAM,MACN,KACF,MAAKryB,EAAGmsC,GAAG,CACT9Z,EAAM,MACN,KACF,MAAKryB,EAAGksC,GAAG,CACT7Z,EAAM,MACN,KACF,MAAKryB,EAAGgsC,GAAG,CACT3Z,EAAM,MACN,KACF,MAAKryB,EAAG6rC,GAAG,CACTxZ,EAAM,MACN,KACF,MAAKryB,EAAG2rC,GAAG,CACTtZ,EAAM,MACN,KACF,MAAKryB,EAAG4rC,GAAG,CACTvZ,EAAM,MACN,KACF,MAAKryB,EAAG8rC,GAAG,CACTzZ,EAAM,MACN,KACF,MAAKryB,EAAG+rC,GAAG,CACT1Z,EAAM,MACN,KACF,SACE,MAAM,MAAU,sBACpB,CACA,OAAOA,CACT,EAEAr0B,EAAQ4rD,aAAa,CAAG,SAAU7oD,CAAK,EACrC,IAAIsxB,EAAM,UACV,OAAQtxB,GACN,KAAKf,EAAGo0C,MAAM,CACZ/hB,EAAM,SACN,KACF,MAAKryB,EAAGu0C,KAAK,CACXliB,EAAM,QACN,KACF,MAAKryB,EAAGq0C,KAAK,CACXhiB,EAAM,QACN,KACF,MAAKryB,EAAGs0C,OAAO,CACbjiB,EAAM,UACN,KACF,SACE,MAAM,MAAU,qBACpB,CACA,OAAOA,CACT,EAEAr0B,EAAQotD,UAAU,CAAG,CACnB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,KACA,KACA,KACA,KACA,SACA,IACA,QACA,IACA,IACA,IACA,QACA,QACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,QACA,IACA,QACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,QACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACD,CAEDptD,EAAQulC,SAAS,CAAG,SAAUa,CAAI,EAChC,IAAIf,EAAKe,EAAKh6B,QAAQ,CAAC,IAAI+tC,WAAW,GACtC,OAAQ9U,EAAG3lC,MAAM,EACf,KAAK,EACL,KAAK,EACL,KAAK,EACH2lC,EAAK,CAAC,CAAC,EAAEA,EAAG,CAAC,CACb,KACF,MAAK,EACL,KAAK,EACHA,EAAK,CAAC,EAAE,EAAEA,EAAG,CAAC,CACd,KACF,MAAK,EACH,KACF,MAAK,EACHA,EAAK,CAAC,GAAG,EAAEA,EAAG,CAAC,CACf,KACF,SACE,MAAM,MAAU,sBACpB,CACA,OAAOA,CACT,EAEArlC,EAAQk/C,UAAU,CAAG,SAAUvd,CAAK,CAAEiD,CAAG,CAAE/K,CAAG,EAC5C,IAAIxF,EAAM,GACV,GAAI,CAACxpB,MAAMC,OAAO,CAAC62B,GACjB,MAAM,MAAU,CAAC,EAAEuC,EAAa,8CAA8C,CAAC,EAEjF,IAAM8qB,EAASL,EAAUhtB,EAAMjiC,MAAM,CAAEklC,EAAK/K,GAC5C,GAAIm1B,EAAOnqB,GAAG,CAAGmqB,EAAOpqB,GAAG,CAAE,CAC3BvQ,GAAOsN,CAAK,CAACqtB,EAAOpqB,GAAG,CAAC,CACxB,IAAK,IAAInlC,EAAIuvD,EAAOpqB,GAAG,CAAG,EAAGnlC,EAAIuvD,EAAOnqB,GAAG,CAAEplC,GAAK,EAChD40B,GAAO,CAAC,CAAC,EAAEsN,CAAK,CAAC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","sources":["webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/CoinbaseWalletProvider.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/CoinbaseWalletSDK.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/assets/wallet-logo.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/communicator/Communicator.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/communicator/util.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/constants.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/error/constants.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/error/errors.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/error/index.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/error/serialize.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/error/utils.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/provider/method.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/type/index.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/core/type/util.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/index.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/scw/SCWKeyManager.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/scw/SCWSigner.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/scw/SCWStateManager.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/util.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/WalletLinkSigner.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/RelayEventManager.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/WalletLinkRelay.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkCipher.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkConnection.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkHTTP.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkWebSocket.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/constants.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/type/WalletLinkSession.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/type/Web3Response.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/WLMobileRelayUI.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/WalletLinkRelayUI.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/RedirectDialog/RedirectDialog-css.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/RedirectDialog/RedirectDialog.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/Snackbar/Snackbar-css.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/Snackbar/Snackbar.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/cssReset/cssReset-css.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/cssReset/cssReset.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/util.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/util/ScopedLocalStorage.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/util/cipher.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/util/provider.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/abi.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/index.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/util.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/dist/version.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/node_modules/eventemitter3/index.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/node_modules/preact/dist/preact.module.js","webpack://new_ui/./node_modules/@coinbase/wallet-sdk/node_modules/preact/hooks/dist/hooks.module.js","webpack://new_ui/./node_modules/@spruceid/siwe-parser/dist/abnf.js","webpack://new_ui/./node_modules/@spruceid/siwe-parser/dist/parsers.js","webpack://new_ui/./node_modules/@spruceid/siwe-parser/dist/regex.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/api.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/attributes.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/parser.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/rule-attributes.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/rule-dependencies.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/sabnf-grammar.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/scanner-callbacks.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/scanner-grammar.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/scanner.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/semantic-callbacks.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/show-rules.js","webpack://new_ui/./node_modules/apg-js/src/apg-api/syntax-callbacks.js","webpack://new_ui/./node_modules/apg-js/src/apg-conv-api/converter.js","webpack://new_ui/./node_modules/apg-js/src/apg-conv-api/transformers.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/ast.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/circular-buffer.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/emitcss.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/identifiers.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/node-exports.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/parser.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/stats.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/style.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/trace.js","webpack://new_ui/./node_modules/apg-js/src/apg-lib/utilities.js","webpack://new_ui/./node_modules/clsx/dist/clsx.m.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/_version.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/formatter.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/base-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/ws.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/websocket-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/ankr-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/fallback-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/ipc-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/infura-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/pocket-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/web3-provider.js","webpack://new_ui/./node_modules/@ethersproject/providers/lib.esm/index.js","webpack://new_ui/./node_modules/ethers/lib.esm/_version.js","webpack://new_ui/./node_modules/ethers/lib.esm/ethers.js","webpack://new_ui/./node_modules/ethers/lib.esm/index.js","webpack://new_ui/./node_modules/siwe/dist/client.js","webpack://new_ui/./node_modules/siwe/dist/siwe.js"],"sourcesContent":["\"use strict\";\nvar __rest = (this && this.__rest) || function (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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletProvider = void 0;\nconst eventemitter3_1 = __importDefault(require(\"eventemitter3\"));\nconst error_1 = require(\"./core/error\");\nconst serialize_1 = require(\"./core/error/serialize\");\nconst type_1 = require(\"./core/type\");\nconst util_1 = require(\"./core/type/util\");\nconst util_2 = require(\"./sign/util\");\nconst provider_1 = require(\"./util/provider\");\nconst Communicator_1 = require(\"./core/communicator/Communicator\");\nconst method_1 = require(\"./core/provider/method\");\nconst ScopedLocalStorage_1 = require(\"./util/ScopedLocalStorage\");\nclass CoinbaseWalletProvider extends eventemitter3_1.default {\n constructor(_a) {\n var _b, _c;\n var { metadata } = _a, _d = _a.preference, { keysUrl } = _d, preference = __rest(_d, [\"keysUrl\"]);\n super();\n this.accounts = [];\n this.handlers = {\n // eth_requestAccounts\n handshake: async (_) => {\n try {\n if (this.connected) {\n this.emit('connect', { chainId: (0, util_1.hexStringFromIntNumber)((0, type_1.IntNumber)(this.chain.id)) });\n return this.accounts;\n }\n const signerType = await this.requestSignerSelection();\n const signer = this.initSigner(signerType);\n const accounts = await signer.handshake();\n this.signer = signer;\n (0, util_2.storeSignerType)(signerType);\n this.emit('connect', { chainId: (0, util_1.hexStringFromIntNumber)((0, type_1.IntNumber)(this.chain.id)) });\n return accounts;\n }\n catch (error) {\n this.handleUnauthorizedError(error);\n throw error;\n }\n },\n sign: async (request) => {\n if (!this.connected || !this.signer) {\n throw error_1.standardErrors.provider.unauthorized(\"Must call 'eth_requestAccounts' before other methods\");\n }\n try {\n return await this.signer.request(request);\n }\n catch (error) {\n this.handleUnauthorizedError(error);\n throw error;\n }\n },\n fetch: (request) => (0, provider_1.fetchRPCRequest)(request, this.chain),\n state: (request) => {\n const getConnectedAccounts = () => {\n if (this.connected)\n return this.accounts;\n throw error_1.standardErrors.provider.unauthorized(\"Must call 'eth_requestAccounts' before other methods\");\n };\n switch (request.method) {\n case 'eth_chainId':\n return (0, util_1.hexStringFromIntNumber)((0, type_1.IntNumber)(this.chain.id));\n case 'net_version':\n return this.chain.id;\n case 'eth_accounts':\n return getConnectedAccounts();\n case 'eth_coinbase':\n return getConnectedAccounts()[0];\n default:\n return this.handlers.unsupported(request);\n }\n },\n deprecated: ({ method }) => {\n throw error_1.standardErrors.rpc.methodNotSupported(`Method ${method} is deprecated.`);\n },\n unsupported: ({ method }) => {\n throw error_1.standardErrors.rpc.methodNotSupported(`Method ${method} is not supported.`);\n },\n };\n this.isCoinbaseWallet = true;\n this.updateListener = {\n onAccountsUpdate: ({ accounts, source }) => {\n if ((0, util_1.areAddressArraysEqual)(this.accounts, accounts))\n return;\n this.accounts = accounts;\n if (source === 'storage')\n return;\n this.emit('accountsChanged', this.accounts);\n },\n onChainUpdate: ({ chain, source }) => {\n if (chain.id === this.chain.id && chain.rpcUrl === this.chain.rpcUrl)\n return;\n this.chain = chain;\n if (source === 'storage')\n return;\n this.emit('chainChanged', (0, util_1.hexStringFromIntNumber)((0, type_1.IntNumber)(chain.id)));\n },\n };\n this.metadata = metadata;\n this.preference = preference;\n this.communicator = new Communicator_1.Communicator(keysUrl);\n this.chain = {\n id: (_c = (_b = metadata.appChainIds) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : 1,\n };\n // Load states from storage\n const signerType = (0, util_2.loadSignerType)();\n this.signer = signerType ? this.initSigner(signerType) : null;\n }\n get connected() {\n return this.accounts.length > 0;\n }\n async request(args) {\n var _a;\n try {\n const invalidArgsError = (0, provider_1.checkErrorForInvalidRequestArgs)(args);\n if (invalidArgsError)\n throw invalidArgsError;\n // unrecognized methods are treated as fetch requests\n const category = (_a = (0, method_1.determineMethodCategory)(args.method)) !== null && _a !== void 0 ? _a : 'fetch';\n return this.handlers[category](args);\n }\n catch (error) {\n return Promise.reject((0, serialize_1.serializeError)(error, args.method));\n }\n }\n handleUnauthorizedError(error) {\n const e = error;\n if (e.code === error_1.standardErrorCodes.provider.unauthorized)\n this.disconnect();\n }\n /** @deprecated Use `.request({ method: 'eth_requestAccounts' })` instead. */\n async enable() {\n console.warn(`.enable() has been deprecated. Please use .request({ method: \"eth_requestAccounts\" }) instead.`);\n return await this.request({\n method: 'eth_requestAccounts',\n });\n }\n async disconnect() {\n this.accounts = [];\n this.chain = { id: 1 };\n ScopedLocalStorage_1.ScopedLocalStorage.clearAll();\n this.emit('disconnect', error_1.standardErrors.provider.disconnected('User initiated disconnection'));\n }\n requestSignerSelection() {\n return (0, util_2.fetchSignerType)({\n communicator: this.communicator,\n preference: this.preference,\n metadata: this.metadata,\n });\n }\n initSigner(signerType) {\n return (0, util_2.createSigner)({\n signerType,\n metadata: this.metadata,\n communicator: this.communicator,\n updateListener: this.updateListener,\n });\n }\n}\nexports.CoinbaseWalletProvider = CoinbaseWalletProvider;\n","\"use strict\";\n// Copyright (c) 2018-2024 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletSDK = void 0;\nconst wallet_logo_1 = require(\"./assets/wallet-logo\");\nconst CoinbaseWalletProvider_1 = require(\"./CoinbaseWalletProvider\");\nconst ScopedLocalStorage_1 = require(\"./util/ScopedLocalStorage\");\nconst version_1 = require(\"./version\");\nconst util_1 = require(\"./core/type/util\");\nconst provider_1 = require(\"./util/provider\");\nclass CoinbaseWalletSDK {\n constructor(metadata) {\n this.metadata = {\n appName: metadata.appName || 'Dapp',\n appLogoUrl: metadata.appLogoUrl || (0, util_1.getFavicon)(),\n appChainIds: metadata.appChainIds || [],\n };\n this.storeLatestVersion();\n }\n makeWeb3Provider(preference = { options: 'all' }) {\n var _a;\n const params = { metadata: this.metadata, preference };\n return (_a = (0, provider_1.getCoinbaseInjectedProvider)(params)) !== null && _a !== void 0 ? _a : new CoinbaseWalletProvider_1.CoinbaseWalletProvider(params);\n }\n /**\n * Official Coinbase Wallet logo for developers to use on their frontend\n * @param type Type of wallet logo: \"standard\" | \"circle\" | \"text\" | \"textWithLogo\" | \"textLight\" | \"textWithLogoLight\"\n * @param width Width of the logo (Optional)\n * @returns SVG Data URI\n */\n getCoinbaseWalletLogo(type, width = 240) {\n return (0, wallet_logo_1.walletLogo)(type, width);\n }\n storeLatestVersion() {\n const versionStorage = new ScopedLocalStorage_1.ScopedLocalStorage('CBWSDK');\n versionStorage.setItem('VERSION', version_1.LIB_VERSION);\n }\n}\nexports.CoinbaseWalletSDK = CoinbaseWalletSDK;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.walletLogo = void 0;\nconst walletLogo = (type, width) => {\n let height;\n switch (type) {\n case 'standard':\n height = width;\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `;\n case 'circle':\n height = width;\n return `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${width}' height='${height}' viewBox='0 0 999.81 999.81'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052fe;%7D.cls-2%7Bfill:%23fefefe;%7D.cls-3%7Bfill:%230152fe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M655-115.9h56c.83,1.59,2.36.88,3.56,1a478,478,0,0,1,75.06,10.42C891.4-81.76,978.33-32.58,1049.19,44q116.7,126,131.94,297.61c.38,4.14-.34,8.53,1.78,12.45v59c-1.58.84-.91,2.35-1,3.56a482.05,482.05,0,0,1-10.38,74.05c-24,106.72-76.64,196.76-158.83,268.93s-178.18,112.82-287.2,122.6c-4.83.43-9.86-.25-14.51,1.77H654c-1-1.68-2.69-.91-4.06-1a496.89,496.89,0,0,1-105.9-18.59c-93.54-27.42-172.78-77.59-236.91-150.94Q199.34,590.1,184.87,426.58c-.47-5.19.25-10.56-1.77-15.59V355c1.68-1,.91-2.7,1-4.06a498.12,498.12,0,0,1,18.58-105.9c26-88.75,72.64-164.9,140.6-227.57q126-116.27,297.21-131.61C645.32-114.57,650.35-113.88,655-115.9Zm377.92,500c0-192.44-156.31-349.49-347.56-350.15-194.13-.68-350.94,155.13-352.29,347.42-1.37,194.55,155.51,352.1,348.56,352.47C876.15,734.23,1032.93,577.84,1032.93,384.11Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-2' d='M1032.93,384.11c0,193.73-156.78,350.12-351.29,349.74-193-.37-349.93-157.92-348.56-352.47C334.43,189.09,491.24,33.28,685.37,34,876.62,34.62,1032.94,191.67,1032.93,384.11ZM683,496.81q43.74,0,87.48,0c15.55,0,25.32-9.72,25.33-25.21q0-87.48,0-175c0-15.83-9.68-25.46-25.59-25.46H595.77c-15.88,0-25.57,9.64-25.58,25.46q0,87.23,0,174.45c0,16.18,9.59,25.7,25.84,25.71Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-3' d='M683,496.81H596c-16.25,0-25.84-9.53-25.84-25.71q0-87.23,0-174.45c0-15.82,9.7-25.46,25.58-25.46H770.22c15.91,0,25.59,9.63,25.59,25.46q0,87.47,0,175c0,15.49-9.78,25.2-25.33,25.21Q726.74,496.84,683,496.81Z' transform='translate(-183.1 115.9)'/%3E%3C/svg%3E`;\n case 'text':\n height = (0.1 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;\n case 'textWithLogo':\n height = (0.25 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;\n case 'textLight':\n height = (0.1 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;\n case 'textWithLogoLight':\n height = (0.25 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;\n default:\n height = width;\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `;\n }\n};\nexports.walletLogo = walletLogo;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Communicator = void 0;\nconst version_1 = require(\"../../version\");\nconst util_1 = require(\"./util\");\nconst constants_1 = require(\"../constants\");\nconst error_1 = require(\"../error\");\n/**\n * Communicates with a popup window for Coinbase keys.coinbase.com (or another url)\n * to send and receive messages.\n *\n * This class is responsible for opening a popup window, posting messages to it,\n * and listening for responses.\n *\n * It also handles cleanup of event listeners and the popup window itself when necessary.\n */\nclass Communicator {\n constructor(url = constants_1.CB_KEYS_URL) {\n this.popup = null;\n this.listeners = new Map();\n /**\n * Posts a message to the popup window\n */\n this.postMessage = async (message) => {\n const popup = await this.waitForPopupLoaded();\n popup.postMessage(message, this.url.origin);\n };\n /**\n * Posts a request to the popup window and waits for a response\n */\n this.postRequestAndWaitForResponse = async (request) => {\n const responsePromise = this.onMessage(({ requestId }) => requestId === request.id);\n this.postMessage(request);\n return await responsePromise;\n };\n /**\n * Listens for messages from the popup window that match a given predicate.\n */\n this.onMessage = async (predicate) => {\n return new Promise((resolve, reject) => {\n const listener = (event) => {\n if (event.origin !== this.url.origin)\n return; // origin validation\n const message = event.data;\n if (predicate(message)) {\n resolve(message);\n window.removeEventListener('message', listener);\n this.listeners.delete(listener);\n }\n };\n window.addEventListener('message', listener);\n this.listeners.set(listener, { reject });\n });\n };\n /**\n * Closes the popup, rejects all requests and clears the listeners\n */\n this.disconnect = () => {\n (0, util_1.closePopup)(this.popup);\n this.popup = null;\n this.listeners.forEach(({ reject }, listener) => {\n reject(error_1.standardErrors.provider.userRejectedRequest('Request rejected'));\n window.removeEventListener('message', listener);\n });\n this.listeners.clear();\n };\n /**\n * Waits for the popup window to fully load and then sends a version message.\n */\n this.waitForPopupLoaded = async () => {\n if (this.popup && !this.popup.closed)\n return this.popup;\n this.popup = (0, util_1.openPopup)(this.url);\n this.onMessage(({ event }) => event === 'PopupUnload')\n .then(this.disconnect)\n .catch(() => { });\n return this.onMessage(({ event }) => event === 'PopupLoaded')\n .then((message) => {\n this.postMessage({\n requestId: message.id,\n data: { version: version_1.LIB_VERSION },\n });\n })\n .then(() => {\n if (!this.popup)\n throw error_1.standardErrors.rpc.internal();\n return this.popup;\n });\n };\n this.url = new URL(url);\n }\n}\nexports.Communicator = Communicator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.closePopup = exports.openPopup = void 0;\nconst error_1 = require(\"../error\");\nconst POPUP_WIDTH = 420;\nconst POPUP_HEIGHT = 540;\n// Window Management\nfunction openPopup(url) {\n const left = (window.innerWidth - POPUP_WIDTH) / 2 + window.screenX;\n const top = (window.innerHeight - POPUP_HEIGHT) / 2 + window.screenY;\n const popup = window.open(url, 'Smart Wallet', `width=${POPUP_WIDTH}, height=${POPUP_HEIGHT}, left=${left}, top=${top}`);\n popup === null || popup === void 0 ? void 0 : popup.focus();\n if (!popup) {\n throw error_1.standardErrors.rpc.internal('Pop up window failed to open');\n }\n return popup;\n}\nexports.openPopup = openPopup;\nfunction closePopup(popup) {\n if (popup && !popup.closed) {\n popup.close();\n }\n}\nexports.closePopup = closePopup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CBW_MOBILE_DEEPLINK_URL = exports.WALLETLINK_URL = exports.CB_KEYS_URL = void 0;\nexports.CB_KEYS_URL = 'https://keys.coinbase.com/connect';\nexports.WALLETLINK_URL = 'https://www.walletlink.org';\nexports.CBW_MOBILE_DEEPLINK_URL = 'https://go.cb-w.com/walletlink';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorValues = exports.standardErrorCodes = void 0;\nexports.standardErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n unsupportedChain: 4902,\n },\n};\nexports.errorValues = {\n '-32700': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n },\n '-32600': {\n standard: 'JSON RPC 2.0',\n message: 'The JSON sent is not a valid Request object.',\n },\n '-32601': {\n standard: 'JSON RPC 2.0',\n message: 'The method does not exist / is not available.',\n },\n '-32602': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid method parameter(s).',\n },\n '-32603': {\n standard: 'JSON RPC 2.0',\n message: 'Internal JSON-RPC error.',\n },\n '-32000': {\n standard: 'EIP-1474',\n message: 'Invalid input.',\n },\n '-32001': {\n standard: 'EIP-1474',\n message: 'Resource not found.',\n },\n '-32002': {\n standard: 'EIP-1474',\n message: 'Resource unavailable.',\n },\n '-32003': {\n standard: 'EIP-1474',\n message: 'Transaction rejected.',\n },\n '-32004': {\n standard: 'EIP-1474',\n message: 'Method not supported.',\n },\n '-32005': {\n standard: 'EIP-1474',\n message: 'Request limit exceeded.',\n },\n '4001': {\n standard: 'EIP-1193',\n message: 'User rejected the request.',\n },\n '4100': {\n standard: 'EIP-1193',\n message: 'The requested account and/or method has not been authorized by the user.',\n },\n '4200': {\n standard: 'EIP-1193',\n message: 'The requested method is not supported by this Ethereum provider.',\n },\n '4900': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from all chains.',\n },\n '4901': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from the specified chain.',\n },\n '4902': {\n standard: 'EIP-3085',\n message: 'Unrecognized chain ID.',\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.standardErrors = void 0;\nconst constants_1 = require(\"./constants\");\nconst utils_1 = require(\"./utils\");\nexports.standardErrors = {\n rpc: {\n parse: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.parse, arg),\n invalidRequest: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.invalidRequest, arg),\n invalidParams: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.invalidParams, arg),\n methodNotFound: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.methodNotFound, arg),\n internal: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.internal, arg),\n server: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum RPC Server errors must provide single object argument.');\n }\n const { code } = opts;\n if (!Number.isInteger(code) || code > -32005 || code < -32099) {\n throw new Error('\"code\" must be an integer such that: -32099 <= code <= -32005');\n }\n return getEthJsonRpcError(code, opts);\n },\n invalidInput: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.invalidInput, arg),\n resourceNotFound: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.resourceNotFound, arg),\n resourceUnavailable: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.resourceUnavailable, arg),\n transactionRejected: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.transactionRejected, arg),\n methodNotSupported: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.methodNotSupported, arg),\n limitExceeded: (arg) => getEthJsonRpcError(constants_1.standardErrorCodes.rpc.limitExceeded, arg),\n },\n provider: {\n userRejectedRequest: (arg) => {\n return getEthProviderError(constants_1.standardErrorCodes.provider.userRejectedRequest, arg);\n },\n unauthorized: (arg) => {\n return getEthProviderError(constants_1.standardErrorCodes.provider.unauthorized, arg);\n },\n unsupportedMethod: (arg) => {\n return getEthProviderError(constants_1.standardErrorCodes.provider.unsupportedMethod, arg);\n },\n disconnected: (arg) => {\n return getEthProviderError(constants_1.standardErrorCodes.provider.disconnected, arg);\n },\n chainDisconnected: (arg) => {\n return getEthProviderError(constants_1.standardErrorCodes.provider.chainDisconnected, arg);\n },\n unsupportedChain: (arg) => {\n return getEthProviderError(constants_1.standardErrorCodes.provider.unsupportedChain, arg);\n },\n custom: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum Provider custom errors must provide single object argument.');\n }\n const { code, message, data } = opts;\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string');\n }\n return new EthereumProviderError(code, message, data);\n },\n },\n};\n// Internal\nfunction getEthJsonRpcError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new EthereumRpcError(code, message || (0, utils_1.getMessageFromCode)(code), data);\n}\nfunction getEthProviderError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new EthereumProviderError(code, message || (0, utils_1.getMessageFromCode)(code), data);\n}\nfunction parseOpts(arg) {\n if (arg) {\n if (typeof arg === 'string') {\n return [arg];\n }\n else if (typeof arg === 'object' && !Array.isArray(arg)) {\n const { message, data } = arg;\n if (message && typeof message !== 'string') {\n throw new Error('Must specify string message.');\n }\n return [message || undefined, data];\n }\n }\n return [];\n}\nclass EthereumRpcError extends Error {\n constructor(code, message, data) {\n if (!Number.isInteger(code)) {\n throw new Error('\"code\" must be an integer.');\n }\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string.');\n }\n super(message);\n this.code = code;\n if (data !== undefined) {\n this.data = data;\n }\n }\n}\nclass EthereumProviderError extends EthereumRpcError {\n /**\n * Create an Ethereum Provider JSON-RPC error.\n * `code` must be an integer in the 1000 <= 4999 range.\n */\n constructor(code, message, data) {\n if (!isValidEthProviderCode(code)) {\n throw new Error('\"code\" must be an integer such that: 1000 <= code <= 4999');\n }\n super(code, message, data);\n }\n}\nfunction isValidEthProviderCode(code) {\n return Number.isInteger(code) && code >= 1000 && code <= 4999;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.standardErrors = exports.standardErrorCodes = void 0;\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"standardErrorCodes\", { enumerable: true, get: function () { return constants_1.standardErrorCodes; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"standardErrors\", { enumerable: true, get: function () { return errors_1.standardErrors; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeError = void 0;\n// TODO: error should not depend on walletlink. revisit this.\nconst Web3Response_1 = require(\"../../sign/walletlink/relay/type/Web3Response\");\nconst version_1 = require(\"../../version\");\nconst constants_1 = require(\"./constants\");\nconst utils_1 = require(\"./utils\");\n/**\n * Serializes an error to a format that is compatible with the Ethereum JSON RPC error format.\n * See https://docs.cloud.coinbase.com/wallet-sdk/docs/errors\n * for more information.\n */\nfunction serializeError(error, requestOrMethod) {\n const serialized = (0, utils_1.serialize)(getErrorObject(error), {\n shouldIncludeStack: true,\n });\n const docUrl = new URL('https://docs.cloud.coinbase.com/wallet-sdk/docs/errors');\n docUrl.searchParams.set('version', version_1.LIB_VERSION);\n docUrl.searchParams.set('code', serialized.code.toString());\n const method = getMethod(serialized.data, requestOrMethod);\n if (method) {\n docUrl.searchParams.set('method', method);\n }\n docUrl.searchParams.set('message', serialized.message);\n return Object.assign(Object.assign({}, serialized), { docUrl: docUrl.href });\n}\nexports.serializeError = serializeError;\n/**\n * Converts an error to a serializable object.\n */\nfunction getErrorObject(error) {\n if (typeof error === 'string') {\n return {\n message: error,\n code: constants_1.standardErrorCodes.rpc.internal,\n };\n }\n else if ((0, Web3Response_1.isErrorResponse)(error)) {\n return Object.assign(Object.assign({}, error), { message: error.errorMessage, code: error.errorCode, data: { method: error.method } });\n }\n return error;\n}\n/**\n * Gets the method name from the serialized data or the request.\n */\nfunction getMethod(serializedData, request) {\n const methodInData = serializedData === null || serializedData === void 0 ? void 0 : serializedData.method;\n if (methodInData) {\n return methodInData;\n }\n if (request === undefined) {\n return undefined;\n }\n else if (typeof request === 'string') {\n return request;\n }\n else if (!Array.isArray(request)) {\n return request.method;\n }\n else if (request.length > 0) {\n return request[0].method;\n }\n return undefined;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serialize = exports.getErrorCode = exports.isValidCode = exports.getMessageFromCode = exports.JSON_RPC_SERVER_ERROR_MESSAGE = void 0;\nconst constants_1 = require(\"./constants\");\nconst FALLBACK_MESSAGE = 'Unspecified error message.';\nexports.JSON_RPC_SERVER_ERROR_MESSAGE = 'Unspecified server error.';\n/**\n * Gets the message for a given code, or a fallback message if the code has\n * no corresponding message.\n */\nfunction getMessageFromCode(code, fallbackMessage = FALLBACK_MESSAGE) {\n if (code && Number.isInteger(code)) {\n const codeString = code.toString();\n if (hasKey(constants_1.errorValues, codeString)) {\n return constants_1.errorValues[codeString].message;\n }\n if (isJsonRpcServerError(code)) {\n return exports.JSON_RPC_SERVER_ERROR_MESSAGE;\n }\n }\n return fallbackMessage;\n}\nexports.getMessageFromCode = getMessageFromCode;\n/**\n * Returns whether the given code is valid.\n * A code is only valid if it has a message.\n */\nfunction isValidCode(code) {\n if (!Number.isInteger(code)) {\n return false;\n }\n const codeString = code.toString();\n if (constants_1.errorValues[codeString]) {\n return true;\n }\n if (isJsonRpcServerError(code)) {\n return true;\n }\n return false;\n}\nexports.isValidCode = isValidCode;\n/**\n * Returns the error code from an error object.\n */\nfunction getErrorCode(error) {\n var _a;\n if (typeof error === 'number') {\n return error;\n }\n else if (isErrorWithCode(error)) {\n return (_a = error.code) !== null && _a !== void 0 ? _a : error.errorCode;\n }\n return undefined;\n}\nexports.getErrorCode = getErrorCode;\nfunction isErrorWithCode(error) {\n return (typeof error === 'object' &&\n error !== null &&\n (typeof error.code === 'number' ||\n typeof error.errorCode === 'number'));\n}\nfunction serialize(error, { shouldIncludeStack = false } = {}) {\n const serialized = {};\n if (error &&\n typeof error === 'object' &&\n !Array.isArray(error) &&\n hasKey(error, 'code') &&\n isValidCode(error.code)) {\n const _error = error;\n serialized.code = _error.code;\n if (_error.message && typeof _error.message === 'string') {\n serialized.message = _error.message;\n if (hasKey(_error, 'data')) {\n serialized.data = _error.data;\n }\n }\n else {\n serialized.message = getMessageFromCode(serialized.code);\n serialized.data = { originalError: assignOriginalError(error) };\n }\n }\n else {\n serialized.code = constants_1.standardErrorCodes.rpc.internal;\n serialized.message = hasStringProperty(error, 'message') ? error.message : FALLBACK_MESSAGE;\n serialized.data = { originalError: assignOriginalError(error) };\n }\n if (shouldIncludeStack) {\n serialized.stack = hasStringProperty(error, 'stack') ? error.stack : undefined;\n }\n return serialized;\n}\nexports.serialize = serialize;\n// Internal\nfunction isJsonRpcServerError(code) {\n return code >= -32099 && code <= -32000;\n}\nfunction assignOriginalError(error) {\n if (error && typeof error === 'object' && !Array.isArray(error)) {\n return Object.assign({}, error);\n }\n return error;\n}\nfunction hasKey(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nfunction hasStringProperty(obj, prop) {\n return (typeof obj === 'object' && obj !== null && prop in obj && typeof obj[prop] === 'string');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.determineMethodCategory = void 0;\nconst mapping = {\n handshake: ['eth_requestAccounts'],\n sign: [\n 'eth_ecRecover',\n 'personal_sign',\n 'personal_ecRecover',\n 'eth_signTransaction',\n 'eth_sendTransaction',\n 'eth_signTypedData_v1',\n 'eth_signTypedData_v3',\n 'eth_signTypedData_v4',\n 'eth_signTypedData',\n 'wallet_addEthereumChain',\n 'wallet_switchEthereumChain',\n 'wallet_watchAsset',\n 'wallet_getCapabilities',\n 'wallet_sendCalls',\n 'wallet_showCallsStatus',\n ],\n state: [\n // internal state\n 'eth_chainId',\n 'eth_accounts',\n 'eth_coinbase',\n 'net_version',\n ],\n deprecated: ['eth_sign', 'eth_signTypedData_v2'],\n unsupported: ['eth_subscribe', 'eth_unsubscribe'],\n fetch: [],\n};\nfunction determineMethodCategory(method) {\n for (const c in mapping) {\n const category = c;\n if (mapping[category].includes(method)) {\n return category;\n }\n }\n return undefined;\n}\nexports.determineMethodCategory = determineMethodCategory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegExpString = exports.IntNumber = exports.BigIntString = exports.AddressString = exports.HexString = exports.OpaqueType = void 0;\nfunction OpaqueType() {\n return (value) => value;\n}\nexports.OpaqueType = OpaqueType;\nexports.HexString = OpaqueType();\nexports.AddressString = OpaqueType();\nexports.BigIntString = OpaqueType();\nfunction IntNumber(num) {\n return Math.floor(num);\n}\nexports.IntNumber = IntNumber;\nexports.RegExpString = OpaqueType();\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// Copyright (c) 2018-2023 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.areAddressArraysEqual = exports.getFavicon = exports.range = exports.isBigNumber = exports.ensureParsedJSONObject = exports.ensureBigInt = exports.ensureRegExpString = exports.ensureIntNumber = exports.ensureBuffer = exports.ensureAddressString = exports.ensureEvenLengthHexString = exports.ensureHexString = exports.isHexString = exports.prepend0x = exports.strip0x = exports.has0xPrefix = exports.hexStringFromIntNumber = exports.intNumberFromHexString = exports.bigIntStringFromBigInt = exports.hexStringFromBuffer = exports.hexStringToUint8Array = exports.uint8ArrayToHex = exports.randomBytesHex = void 0;\nconst error_1 = require(\"../error\");\nconst _1 = require(\".\");\nconst INT_STRING_REGEX = /^[0-9]*$/;\nconst HEXADECIMAL_STRING_REGEX = /^[a-f0-9]*$/;\n/**\n * @param length number of bytes\n */\nfunction randomBytesHex(length) {\n return uint8ArrayToHex(crypto.getRandomValues(new Uint8Array(length)));\n}\nexports.randomBytesHex = randomBytesHex;\nfunction uint8ArrayToHex(value) {\n return [...value].map((b) => b.toString(16).padStart(2, '0')).join('');\n}\nexports.uint8ArrayToHex = uint8ArrayToHex;\nfunction hexStringToUint8Array(hexString) {\n return new Uint8Array(hexString.match(/.{1,2}/g).map((byte) => parseInt(byte, 16)));\n}\nexports.hexStringToUint8Array = hexStringToUint8Array;\nfunction hexStringFromBuffer(buf, includePrefix = false) {\n const hex = buf.toString('hex');\n return (0, _1.HexString)(includePrefix ? `0x${hex}` : hex);\n}\nexports.hexStringFromBuffer = hexStringFromBuffer;\nfunction bigIntStringFromBigInt(bi) {\n return (0, _1.BigIntString)(bi.toString(10));\n}\nexports.bigIntStringFromBigInt = bigIntStringFromBigInt;\nfunction intNumberFromHexString(hex) {\n return (0, _1.IntNumber)(Number(BigInt(ensureEvenLengthHexString(hex, true))));\n}\nexports.intNumberFromHexString = intNumberFromHexString;\nfunction hexStringFromIntNumber(num) {\n return (0, _1.HexString)(`0x${BigInt(num).toString(16)}`);\n}\nexports.hexStringFromIntNumber = hexStringFromIntNumber;\nfunction has0xPrefix(str) {\n return str.startsWith('0x') || str.startsWith('0X');\n}\nexports.has0xPrefix = has0xPrefix;\nfunction strip0x(hex) {\n if (has0xPrefix(hex)) {\n return hex.slice(2);\n }\n return hex;\n}\nexports.strip0x = strip0x;\nfunction prepend0x(hex) {\n if (has0xPrefix(hex)) {\n return `0x${hex.slice(2)}`;\n }\n return `0x${hex}`;\n}\nexports.prepend0x = prepend0x;\nfunction isHexString(hex) {\n if (typeof hex !== 'string') {\n return false;\n }\n const s = strip0x(hex).toLowerCase();\n return HEXADECIMAL_STRING_REGEX.test(s);\n}\nexports.isHexString = isHexString;\nfunction ensureHexString(hex, includePrefix = false) {\n if (typeof hex === 'string') {\n const s = strip0x(hex).toLowerCase();\n if (HEXADECIMAL_STRING_REGEX.test(s)) {\n return (0, _1.HexString)(includePrefix ? `0x${s}` : s);\n }\n }\n throw error_1.standardErrors.rpc.invalidParams(`\"${String(hex)}\" is not a hexadecimal string`);\n}\nexports.ensureHexString = ensureHexString;\nfunction ensureEvenLengthHexString(hex, includePrefix = false) {\n let h = ensureHexString(hex, false);\n if (h.length % 2 === 1) {\n h = (0, _1.HexString)(`0${h}`);\n }\n return includePrefix ? (0, _1.HexString)(`0x${h}`) : h;\n}\nexports.ensureEvenLengthHexString = ensureEvenLengthHexString;\nfunction ensureAddressString(str) {\n if (typeof str === 'string') {\n const s = strip0x(str).toLowerCase();\n if (isHexString(s) && s.length === 40) {\n return (0, _1.AddressString)(prepend0x(s));\n }\n }\n throw error_1.standardErrors.rpc.invalidParams(`Invalid Ethereum address: ${String(str)}`);\n}\nexports.ensureAddressString = ensureAddressString;\nfunction ensureBuffer(str) {\n if (Buffer.isBuffer(str)) {\n return str;\n }\n if (typeof str === 'string') {\n if (isHexString(str)) {\n const s = ensureEvenLengthHexString(str, false);\n return Buffer.from(s, 'hex');\n }\n return Buffer.from(str, 'utf8');\n }\n throw error_1.standardErrors.rpc.invalidParams(`Not binary data: ${String(str)}`);\n}\nexports.ensureBuffer = ensureBuffer;\nfunction ensureIntNumber(num) {\n if (typeof num === 'number' && Number.isInteger(num)) {\n return (0, _1.IntNumber)(num);\n }\n if (typeof num === 'string') {\n if (INT_STRING_REGEX.test(num)) {\n return (0, _1.IntNumber)(Number(num));\n }\n if (isHexString(num)) {\n return (0, _1.IntNumber)(Number(BigInt(ensureEvenLengthHexString(num, true))));\n }\n }\n throw error_1.standardErrors.rpc.invalidParams(`Not an integer: ${String(num)}`);\n}\nexports.ensureIntNumber = ensureIntNumber;\nfunction ensureRegExpString(regExp) {\n if (regExp instanceof RegExp) {\n return (0, _1.RegExpString)(regExp.toString());\n }\n throw error_1.standardErrors.rpc.invalidParams(`Not a RegExp: ${String(regExp)}`);\n}\nexports.ensureRegExpString = ensureRegExpString;\nfunction ensureBigInt(val) {\n if (val !== null && (typeof val === 'bigint' || isBigNumber(val))) {\n return BigInt(val.toString(10));\n }\n if (typeof val === 'number') {\n return BigInt(ensureIntNumber(val));\n }\n if (typeof val === 'string') {\n if (INT_STRING_REGEX.test(val)) {\n return BigInt(val);\n }\n if (isHexString(val)) {\n return BigInt(ensureEvenLengthHexString(val, true));\n }\n }\n throw error_1.standardErrors.rpc.invalidParams(`Not an integer: ${String(val)}`);\n}\nexports.ensureBigInt = ensureBigInt;\nfunction ensureParsedJSONObject(val) {\n if (typeof val === 'string') {\n return JSON.parse(val);\n }\n if (typeof val === 'object') {\n return val;\n }\n throw error_1.standardErrors.rpc.invalidParams(`Not a JSON string or an object: ${String(val)}`);\n}\nexports.ensureParsedJSONObject = ensureParsedJSONObject;\nfunction isBigNumber(val) {\n if (val == null || typeof val.constructor !== 'function') {\n return false;\n }\n const { constructor } = val;\n return typeof constructor.config === 'function' && typeof constructor.EUCLID === 'number';\n}\nexports.isBigNumber = isBigNumber;\nfunction range(start, stop) {\n return Array.from({ length: stop - start }, (_, i) => start + i);\n}\nexports.range = range;\nfunction getFavicon() {\n const el = document.querySelector('link[sizes=\"192x192\"]') ||\n document.querySelector('link[sizes=\"180x180\"]') ||\n document.querySelector('link[rel=\"icon\"]') ||\n document.querySelector('link[rel=\"shortcut icon\"]');\n const { protocol, host } = document.location;\n const href = el ? el.getAttribute('href') : null;\n if (!href || href.startsWith('javascript:') || href.startsWith('vbscript:')) {\n return null;\n }\n if (href.startsWith('http://') || href.startsWith('https://') || href.startsWith('data:')) {\n return href;\n }\n if (href.startsWith('//')) {\n return protocol + href;\n }\n return `${protocol}//${host}${href}`;\n}\nexports.getFavicon = getFavicon;\nfunction areAddressArraysEqual(arr1, arr2) {\n return arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]);\n}\nexports.areAddressArraysEqual = areAddressArraysEqual;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletSDK = void 0;\n// Copyright (c) 2018-2024 Coinbase, Inc. \nconst CoinbaseWalletSDK_1 = require(\"./CoinbaseWalletSDK\");\nexports.default = CoinbaseWalletSDK_1.CoinbaseWalletSDK;\nvar CoinbaseWalletSDK_2 = require(\"./CoinbaseWalletSDK\");\nObject.defineProperty(exports, \"CoinbaseWalletSDK\", { enumerable: true, get: function () { return CoinbaseWalletSDK_2.CoinbaseWalletSDK; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCWKeyManager = void 0;\nconst cipher_1 = require(\"../../util/cipher\");\nconst ScopedLocalStorage_1 = require(\"../../util/ScopedLocalStorage\");\nconst OWN_PRIVATE_KEY = {\n storageKey: 'ownPrivateKey',\n keyType: 'private',\n};\nconst OWN_PUBLIC_KEY = {\n storageKey: 'ownPublicKey',\n keyType: 'public',\n};\nconst PEER_PUBLIC_KEY = {\n storageKey: 'peerPublicKey',\n keyType: 'public',\n};\nclass SCWKeyManager {\n constructor() {\n this.storage = new ScopedLocalStorage_1.ScopedLocalStorage('CBWSDK', 'SCWKeyManager');\n this.ownPrivateKey = null;\n this.ownPublicKey = null;\n this.peerPublicKey = null;\n this.sharedSecret = null;\n }\n async getOwnPublicKey() {\n await this.loadKeysIfNeeded();\n return this.ownPublicKey;\n }\n // returns null if the shared secret is not yet derived\n async getSharedSecret() {\n await this.loadKeysIfNeeded();\n return this.sharedSecret;\n }\n async setPeerPublicKey(key) {\n this.sharedSecret = null;\n this.peerPublicKey = key;\n await this.storeKey(PEER_PUBLIC_KEY, key);\n await this.loadKeysIfNeeded();\n }\n async clear() {\n this.ownPrivateKey = null;\n this.ownPublicKey = null;\n this.peerPublicKey = null;\n this.sharedSecret = null;\n this.storage.removeItem(OWN_PUBLIC_KEY.storageKey);\n this.storage.removeItem(OWN_PRIVATE_KEY.storageKey);\n this.storage.removeItem(PEER_PUBLIC_KEY.storageKey);\n }\n async generateKeyPair() {\n const newKeyPair = await (0, cipher_1.generateKeyPair)();\n this.ownPrivateKey = newKeyPair.privateKey;\n this.ownPublicKey = newKeyPair.publicKey;\n await this.storeKey(OWN_PRIVATE_KEY, newKeyPair.privateKey);\n await this.storeKey(OWN_PUBLIC_KEY, newKeyPair.publicKey);\n }\n async loadKeysIfNeeded() {\n if (this.ownPrivateKey === null) {\n this.ownPrivateKey = await this.loadKey(OWN_PRIVATE_KEY);\n }\n if (this.ownPublicKey === null) {\n this.ownPublicKey = await this.loadKey(OWN_PUBLIC_KEY);\n }\n if (this.ownPrivateKey === null || this.ownPublicKey === null) {\n await this.generateKeyPair();\n }\n if (this.peerPublicKey === null) {\n this.peerPublicKey = await this.loadKey(PEER_PUBLIC_KEY);\n }\n if (this.sharedSecret === null) {\n if (this.ownPrivateKey === null || this.peerPublicKey === null)\n return;\n this.sharedSecret = await (0, cipher_1.deriveSharedSecret)(this.ownPrivateKey, this.peerPublicKey);\n }\n }\n // storage methods\n async loadKey(item) {\n const key = this.storage.getItem(item.storageKey);\n if (!key)\n return null;\n return (0, cipher_1.importKeyFromHexString)(item.keyType, key);\n }\n async storeKey(item, key) {\n const hexString = await (0, cipher_1.exportKeyToHexString)(item.keyType, key);\n this.storage.setItem(item.storageKey, hexString);\n }\n}\nexports.SCWKeyManager = SCWKeyManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCWSigner = void 0;\nconst SCWKeyManager_1 = require(\"./SCWKeyManager\");\nconst SCWStateManager_1 = require(\"./SCWStateManager\");\nconst error_1 = require(\"../../core/error\");\nconst util_1 = require(\"../../core/type/util\");\nconst cipher_1 = require(\"../../util/cipher\");\nclass SCWSigner {\n constructor(params) {\n this.metadata = params.metadata;\n this.communicator = params.communicator;\n this.keyManager = new SCWKeyManager_1.SCWKeyManager();\n this.stateManager = new SCWStateManager_1.SCWStateManager({\n appChainIds: this.metadata.appChainIds,\n updateListener: params.updateListener,\n });\n this.handshake = this.handshake.bind(this);\n this.request = this.request.bind(this);\n this.createRequestMessage = this.createRequestMessage.bind(this);\n this.decryptResponseMessage = this.decryptResponseMessage.bind(this);\n }\n async handshake() {\n const handshakeMessage = await this.createRequestMessage({\n handshake: {\n method: 'eth_requestAccounts',\n params: this.metadata,\n },\n });\n const response = await this.communicator.postRequestAndWaitForResponse(handshakeMessage);\n // store peer's public key\n if ('failure' in response.content)\n throw response.content.failure;\n const peerPublicKey = await (0, cipher_1.importKeyFromHexString)('public', response.sender);\n await this.keyManager.setPeerPublicKey(peerPublicKey);\n const decrypted = await this.decryptResponseMessage(response);\n this.updateInternalState({ method: 'eth_requestAccounts' }, decrypted);\n const result = decrypted.result;\n if ('error' in result)\n throw result.error;\n return this.stateManager.accounts;\n }\n async request(request) {\n const localResult = this.tryLocalHandling(request);\n if (localResult !== undefined) {\n if (localResult instanceof Error)\n throw localResult;\n return localResult;\n }\n // Open the popup before constructing the request message.\n // This is to ensure that the popup is not blocked by some browsers (i.e. Safari)\n await this.communicator.waitForPopupLoaded();\n const response = await this.sendEncryptedRequest(request);\n const decrypted = await this.decryptResponseMessage(response);\n this.updateInternalState(request, decrypted);\n const result = decrypted.result;\n if ('error' in result)\n throw result.error;\n return result.value;\n }\n async disconnect() {\n this.stateManager.clear();\n await this.keyManager.clear();\n }\n tryLocalHandling(request) {\n var _a;\n switch (request.method) {\n case 'wallet_switchEthereumChain': {\n const params = request.params;\n if (!params || !((_a = params[0]) === null || _a === void 0 ? void 0 : _a.chainId)) {\n throw error_1.standardErrors.rpc.invalidParams();\n }\n const chainId = (0, util_1.ensureIntNumber)(params[0].chainId);\n const switched = this.stateManager.switchChain(chainId);\n // \"return null if the request was successful\"\n // https://eips.ethereum.org/EIPS/eip-3326#wallet_switchethereumchain\n return switched ? null : undefined;\n }\n case 'wallet_getCapabilities': {\n const walletCapabilities = this.stateManager.walletCapabilities;\n if (!walletCapabilities) {\n // This should never be the case for scw connections as capabilities are set during handshake\n throw error_1.standardErrors.provider.unauthorized('No wallet capabilities found, please disconnect and reconnect');\n }\n return walletCapabilities;\n }\n default:\n return undefined;\n }\n }\n async sendEncryptedRequest(request) {\n const sharedSecret = await this.keyManager.getSharedSecret();\n if (!sharedSecret) {\n throw error_1.standardErrors.provider.unauthorized('No valid session found, try requestAccounts before other methods');\n }\n const encrypted = await (0, cipher_1.encryptContent)({\n action: request,\n chainId: this.stateManager.activeChain.id,\n }, sharedSecret);\n const message = await this.createRequestMessage({ encrypted });\n return this.communicator.postRequestAndWaitForResponse(message);\n }\n async createRequestMessage(content) {\n const publicKey = await (0, cipher_1.exportKeyToHexString)('public', await this.keyManager.getOwnPublicKey());\n return {\n id: crypto.randomUUID(),\n sender: publicKey,\n content,\n timestamp: new Date(),\n };\n }\n async decryptResponseMessage(message) {\n const content = message.content;\n // throw protocol level error\n if ('failure' in content) {\n throw content.failure;\n }\n const sharedSecret = await this.keyManager.getSharedSecret();\n if (!sharedSecret) {\n throw error_1.standardErrors.provider.unauthorized('Invalid session');\n }\n return (0, cipher_1.decryptContent)(content.encrypted, sharedSecret);\n }\n updateInternalState(request, response) {\n var _a, _b;\n const availableChains = (_a = response.data) === null || _a === void 0 ? void 0 : _a.chains;\n if (availableChains) {\n this.stateManager.updateAvailableChains(availableChains);\n }\n const walletCapabilities = (_b = response.data) === null || _b === void 0 ? void 0 : _b.capabilities;\n if (walletCapabilities) {\n this.stateManager.updateWalletCapabilities(walletCapabilities);\n }\n const result = response.result;\n if ('error' in result)\n return;\n switch (request.method) {\n case 'eth_requestAccounts': {\n const accounts = result.value;\n this.stateManager.updateAccounts(accounts);\n break;\n }\n case 'wallet_switchEthereumChain': {\n // \"return null if the request was successful\"\n // https://eips.ethereum.org/EIPS/eip-3326#wallet_switchethereumchain\n if (result.value !== null)\n return;\n const params = request.params;\n const chainId = (0, util_1.ensureIntNumber)(params[0].chainId);\n this.stateManager.switchChain(chainId);\n break;\n }\n default:\n break;\n }\n }\n}\nexports.SCWSigner = SCWSigner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCWStateManager = void 0;\nconst ScopedLocalStorage_1 = require(\"../../util/ScopedLocalStorage\");\nconst ACCOUNTS_KEY = 'accounts';\nconst ACTIVE_CHAIN_STORAGE_KEY = 'activeChain';\nconst AVAILABLE_CHAINS_STORAGE_KEY = 'availableChains';\nconst WALLET_CAPABILITIES_STORAGE_KEY = 'walletCapabilities';\nclass SCWStateManager {\n get accounts() {\n return this._accounts;\n }\n get activeChain() {\n return this._activeChain;\n }\n get walletCapabilities() {\n return this._walletCapabilities;\n }\n constructor(params) {\n var _a, _b;\n this.storage = new ScopedLocalStorage_1.ScopedLocalStorage('CBWSDK', 'SCWStateManager');\n this.updateListener = params.updateListener;\n this.availableChains = this.loadItemFromStorage(AVAILABLE_CHAINS_STORAGE_KEY);\n this._walletCapabilities = this.loadItemFromStorage(WALLET_CAPABILITIES_STORAGE_KEY);\n const accounts = this.loadItemFromStorage(ACCOUNTS_KEY);\n const chain = this.loadItemFromStorage(ACTIVE_CHAIN_STORAGE_KEY);\n if (accounts) {\n this.updateListener.onAccountsUpdate({\n accounts,\n source: 'storage',\n });\n }\n if (chain) {\n this.updateListener.onChainUpdate({\n chain,\n source: 'storage',\n });\n }\n this._accounts = accounts || [];\n this._activeChain = chain || { id: (_b = (_a = params.appChainIds) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 1 };\n }\n updateAccounts(accounts) {\n this._accounts = accounts;\n this.storeItemToStorage(ACCOUNTS_KEY, accounts);\n this.updateListener.onAccountsUpdate({\n accounts,\n source: 'wallet',\n });\n }\n switchChain(chainId) {\n var _a;\n const chain = (_a = this.availableChains) === null || _a === void 0 ? void 0 : _a.find((chain) => chain.id === chainId);\n if (!chain)\n return false;\n if (chain === this._activeChain)\n return true;\n this._activeChain = chain;\n this.storeItemToStorage(ACTIVE_CHAIN_STORAGE_KEY, chain);\n this.updateListener.onChainUpdate({\n chain,\n source: 'wallet',\n });\n return true;\n }\n updateAvailableChains(rawChains) {\n if (!rawChains || Object.keys(rawChains).length === 0)\n return;\n const chains = Object.entries(rawChains).map(([id, rpcUrl]) => ({ id: Number(id), rpcUrl }));\n this.availableChains = chains;\n this.storeItemToStorage(AVAILABLE_CHAINS_STORAGE_KEY, chains);\n this.switchChain(this._activeChain.id);\n }\n updateWalletCapabilities(capabilities) {\n this._walletCapabilities = capabilities;\n this.storeItemToStorage(WALLET_CAPABILITIES_STORAGE_KEY, capabilities);\n }\n storeItemToStorage(key, item) {\n this.storage.setItem(key, JSON.stringify(item));\n }\n loadItemFromStorage(key) {\n const item = this.storage.getItem(key);\n return item ? JSON.parse(item) : undefined;\n }\n clear() {\n this.storage.clear();\n }\n}\nexports.SCWStateManager = SCWStateManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSigner = exports.fetchSignerType = exports.storeSignerType = exports.loadSignerType = void 0;\nconst SCWSigner_1 = require(\"./scw/SCWSigner\");\nconst WalletLinkSigner_1 = require(\"./walletlink/WalletLinkSigner\");\nconst error_1 = require(\"../core/error\");\nconst provider_1 = require(\"../util/provider\");\nconst ScopedLocalStorage_1 = require(\"../util/ScopedLocalStorage\");\nconst SIGNER_TYPE_KEY = 'SignerType';\nconst storage = new ScopedLocalStorage_1.ScopedLocalStorage('CBWSDK', 'SignerConfigurator');\nfunction loadSignerType() {\n return storage.getItem(SIGNER_TYPE_KEY);\n}\nexports.loadSignerType = loadSignerType;\nfunction storeSignerType(signerType) {\n storage.setItem(SIGNER_TYPE_KEY, signerType);\n}\nexports.storeSignerType = storeSignerType;\nasync function fetchSignerType(params) {\n const { communicator, metadata } = params;\n listenForWalletLinkSessionRequest(communicator, metadata).catch(() => { });\n const request = {\n id: crypto.randomUUID(),\n event: 'selectSignerType',\n data: params.preference,\n };\n const { data } = await communicator.postRequestAndWaitForResponse(request);\n return data;\n}\nexports.fetchSignerType = fetchSignerType;\nfunction createSigner(params) {\n const { signerType, metadata, communicator, updateListener } = params;\n switch (signerType) {\n case 'scw':\n return new SCWSigner_1.SCWSigner({\n metadata,\n updateListener,\n communicator,\n });\n case 'walletlink':\n return new WalletLinkSigner_1.WalletLinkSigner({\n metadata,\n updateListener,\n });\n case 'extension': {\n const injectedSigner = (0, provider_1.getCoinbaseInjectedSigner)();\n if (!injectedSigner) {\n throw error_1.standardErrors.rpc.internal('injected signer not found');\n }\n return injectedSigner;\n }\n }\n}\nexports.createSigner = createSigner;\nasync function listenForWalletLinkSessionRequest(communicator, metadata) {\n await communicator.onMessage(({ event }) => event === 'WalletLinkSessionRequest');\n // temporary walletlink signer instance to handle WalletLinkSessionRequest\n // will revisit this when refactoring the walletlink signer\n const walletlink = new WalletLinkSigner_1.WalletLinkSigner({\n metadata,\n });\n // send wallet link session to popup\n communicator.postMessage({\n event: 'WalletLinkUpdate',\n data: { session: walletlink.getSession() },\n });\n // wait for handshake to complete\n await walletlink.handshake();\n // send connected status to popup\n communicator.postMessage({\n event: 'WalletLinkUpdate',\n data: { connected: true },\n });\n}\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkSigner = void 0;\n// Copyright (c) 2018-2024 Coinbase, Inc. \nconst eth_eip712_util_1 = __importDefault(require(\"../../vendor-js/eth-eip712-util\"));\nconst constants_1 = require(\"./relay/constants\");\nconst RelayEventManager_1 = require(\"./relay/RelayEventManager\");\nconst Web3Response_1 = require(\"./relay/type/Web3Response\");\nconst WalletLinkRelay_1 = require(\"./relay/WalletLinkRelay\");\nconst constants_2 = require(\"../../core/constants\");\nconst error_1 = require(\"../../core/error\");\nconst util_1 = require(\"../../core/type/util\");\nconst ScopedLocalStorage_1 = require(\"../../util/ScopedLocalStorage\");\nconst DEFAULT_CHAIN_ID_KEY = 'DefaultChainId';\nconst DEFAULT_JSON_RPC_URL = 'DefaultJsonRpcUrl';\n// original source: https://github.com/coinbase/coinbase-wallet-sdk/blob/v3.7.1/packages/wallet-sdk/src/provider/CoinbaseWalletProvider.ts\nclass WalletLinkSigner {\n constructor(options) {\n var _a, _b;\n this._relay = null;\n this._addresses = [];\n this.hasMadeFirstChainChangedEmission = false;\n const { appName, appLogoUrl } = options.metadata;\n this._appName = appName;\n this._appLogoUrl = appLogoUrl;\n this._storage = new ScopedLocalStorage_1.ScopedLocalStorage('walletlink', constants_2.WALLETLINK_URL);\n this.updateListener = options.updateListener;\n this._relayEventManager = new RelayEventManager_1.RelayEventManager();\n this._jsonRpcUrlFromOpts = '';\n const cachedAddresses = this._storage.getItem(constants_1.LOCAL_STORAGE_ADDRESSES_KEY);\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(' ');\n if (addresses[0] !== '') {\n this._addresses = addresses.map((address) => (0, util_1.ensureAddressString)(address));\n (_a = this.updateListener) === null || _a === void 0 ? void 0 : _a.onAccountsUpdate({\n accounts: this._addresses,\n source: 'storage',\n });\n }\n }\n const cachedChainId = this._storage.getItem(DEFAULT_CHAIN_ID_KEY);\n if (cachedChainId) {\n (_b = this.updateListener) === null || _b === void 0 ? void 0 : _b.onChainUpdate({\n chain: {\n id: this.getChainId(),\n rpcUrl: this.jsonRpcUrl,\n },\n source: 'storage',\n });\n this.hasMadeFirstChainChangedEmission = true;\n }\n this.initializeRelay();\n }\n getSession() {\n const relay = this.initializeRelay();\n const { id, secret } = relay.getWalletLinkSession();\n return { id, secret };\n }\n async handshake() {\n const ethAddresses = await this.request({ method: 'eth_requestAccounts' });\n return ethAddresses;\n }\n get selectedAddress() {\n return this._addresses[0] || undefined;\n }\n get jsonRpcUrl() {\n var _a;\n return (_a = this._storage.getItem(DEFAULT_JSON_RPC_URL)) !== null && _a !== void 0 ? _a : this._jsonRpcUrlFromOpts;\n }\n set jsonRpcUrl(value) {\n this._storage.setItem(DEFAULT_JSON_RPC_URL, value);\n }\n updateProviderInfo(jsonRpcUrl, chainId) {\n var _a;\n this.jsonRpcUrl = jsonRpcUrl;\n // emit chainChanged event if necessary\n const originalChainId = this.getChainId();\n this._storage.setItem(DEFAULT_CHAIN_ID_KEY, chainId.toString(10));\n const chainChanged = (0, util_1.ensureIntNumber)(chainId) !== originalChainId;\n if (chainChanged || !this.hasMadeFirstChainChangedEmission) {\n (_a = this.updateListener) === null || _a === void 0 ? void 0 : _a.onChainUpdate({\n chain: { id: chainId, rpcUrl: jsonRpcUrl },\n source: 'wallet',\n });\n this.hasMadeFirstChainChangedEmission = true;\n }\n }\n async watchAsset(type, address, symbol, decimals, image, chainId) {\n const relay = this.initializeRelay();\n const result = await relay.watchAsset(type, address, symbol, decimals, image, chainId === null || chainId === void 0 ? void 0 : chainId.toString());\n if ((0, Web3Response_1.isErrorResponse)(result))\n return false;\n return !!result.result;\n }\n async addEthereumChain(chainId, rpcUrls, blockExplorerUrls, chainName, iconUrls, nativeCurrency) {\n var _a, _b;\n if ((0, util_1.ensureIntNumber)(chainId) === this.getChainId()) {\n return false;\n }\n const relay = this.initializeRelay();\n if (!this._isAuthorized()) {\n await relay.requestEthereumAccounts();\n }\n const res = await relay.addEthereumChain(chainId.toString(), rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency);\n if ((0, Web3Response_1.isErrorResponse)(res))\n return false;\n if (((_a = res.result) === null || _a === void 0 ? void 0 : _a.isApproved) === true) {\n this.updateProviderInfo(rpcUrls[0], chainId);\n }\n return ((_b = res.result) === null || _b === void 0 ? void 0 : _b.isApproved) === true;\n }\n async switchEthereumChain(chainId) {\n const relay = this.initializeRelay();\n const res = await relay.switchEthereumChain(chainId.toString(10), this.selectedAddress || undefined);\n // backward compatibility\n if ((0, Web3Response_1.isErrorResponse)(res)) {\n if (!res.errorCode)\n return;\n if (res.errorCode === error_1.standardErrorCodes.provider.unsupportedChain) {\n throw error_1.standardErrors.provider.unsupportedChain();\n }\n else {\n throw error_1.standardErrors.provider.custom({\n message: res.errorMessage,\n code: res.errorCode,\n });\n }\n }\n const switchResponse = res.result;\n if (switchResponse.isApproved && switchResponse.rpcUrl.length > 0) {\n this.updateProviderInfo(switchResponse.rpcUrl, chainId);\n }\n }\n async disconnect() {\n if (this._relay) {\n this._relay.resetAndReload();\n }\n this._storage.clear();\n }\n async request(args) {\n try {\n return this._request(args).catch((error) => {\n throw error;\n });\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async _request(args) {\n if (!args || typeof args !== 'object' || Array.isArray(args)) {\n throw error_1.standardErrors.rpc.invalidRequest({\n message: 'Expected a single, non-array, object argument.',\n data: args,\n });\n }\n const { method, params } = args;\n if (typeof method !== 'string' || method.length === 0) {\n throw error_1.standardErrors.rpc.invalidRequest({\n message: \"'args.method' must be a non-empty string.\",\n data: args,\n });\n }\n if (params !== undefined &&\n !Array.isArray(params) &&\n (typeof params !== 'object' || params === null)) {\n throw error_1.standardErrors.rpc.invalidRequest({\n message: \"'args.params' must be an object or array if provided.\",\n data: args,\n });\n }\n const newParams = params === undefined ? [] : params;\n // Coinbase Wallet Requests\n const id = this._relayEventManager.makeRequestId();\n const result = await this._sendRequestAsync({\n method,\n params: newParams,\n jsonrpc: '2.0',\n id,\n });\n return result.result;\n }\n _setAddresses(addresses, _) {\n var _a;\n if (!Array.isArray(addresses)) {\n throw new Error('addresses is not an array');\n }\n const newAddresses = addresses.map((address) => (0, util_1.ensureAddressString)(address));\n if (JSON.stringify(newAddresses) === JSON.stringify(this._addresses)) {\n return;\n }\n this._addresses = newAddresses;\n (_a = this.updateListener) === null || _a === void 0 ? void 0 : _a.onAccountsUpdate({\n accounts: newAddresses,\n source: 'wallet',\n });\n this._storage.setItem(constants_1.LOCAL_STORAGE_ADDRESSES_KEY, newAddresses.join(' '));\n }\n _sendRequestAsync(request) {\n return new Promise((resolve, reject) => {\n try {\n const syncResult = this._handleSynchronousMethods(request);\n if (syncResult !== undefined) {\n return resolve({\n jsonrpc: '2.0',\n id: request.id,\n result: syncResult,\n });\n }\n }\n catch (err) {\n return reject(err);\n }\n this._handleAsynchronousMethods(request)\n .then((res) => res && resolve(Object.assign(Object.assign({}, res), { id: request.id })))\n .catch((err) => reject(err));\n });\n }\n _handleSynchronousMethods(request) {\n const { method } = request;\n switch (method) {\n case 'eth_accounts':\n return this._eth_accounts();\n case 'eth_coinbase':\n return this._eth_coinbase();\n case 'net_version':\n return this._net_version();\n case 'eth_chainId':\n return this._eth_chainId();\n default:\n return undefined;\n }\n }\n async _handleAsynchronousMethods(request) {\n const { method } = request;\n const params = request.params || [];\n switch (method) {\n case 'eth_requestAccounts':\n return this._eth_requestAccounts();\n case 'eth_sign':\n return this._eth_sign(params);\n case 'eth_ecRecover':\n return this._eth_ecRecover(params);\n case 'personal_sign':\n return this._personal_sign(params);\n case 'personal_ecRecover':\n return this._personal_ecRecover(params);\n case 'eth_signTransaction':\n return this._eth_signTransaction(params);\n case 'eth_sendRawTransaction':\n return this._eth_sendRawTransaction(params);\n case 'eth_sendTransaction':\n return this._eth_sendTransaction(params);\n case 'eth_signTypedData_v1':\n return this._eth_signTypedData_v1(params);\n case 'eth_signTypedData_v2':\n return this._throwUnsupportedMethodError();\n case 'eth_signTypedData_v3':\n return this._eth_signTypedData_v3(params);\n case 'eth_signTypedData_v4':\n case 'eth_signTypedData':\n return this._eth_signTypedData_v4(params);\n case 'wallet_addEthereumChain':\n return this._wallet_addEthereumChain(params);\n case 'wallet_switchEthereumChain':\n return this._wallet_switchEthereumChain(params);\n case 'wallet_watchAsset':\n return this._wallet_watchAsset(params);\n default:\n return this._throwUnsupportedMethodError();\n }\n }\n _isKnownAddress(addressString) {\n try {\n const addressStr = (0, util_1.ensureAddressString)(addressString);\n const lowercaseAddresses = this._addresses.map((address) => (0, util_1.ensureAddressString)(address));\n return lowercaseAddresses.includes(addressStr);\n }\n catch (_a) {\n // noop\n }\n return false;\n }\n _ensureKnownAddress(addressString) {\n if (!this._isKnownAddress(addressString)) {\n throw new Error('Unknown Ethereum address');\n }\n }\n _prepareTransactionParams(tx) {\n const fromAddress = tx.from ? (0, util_1.ensureAddressString)(tx.from) : this.selectedAddress;\n if (!fromAddress) {\n throw new Error('Ethereum address is unavailable');\n }\n this._ensureKnownAddress(fromAddress);\n const toAddress = tx.to ? (0, util_1.ensureAddressString)(tx.to) : null;\n const weiValue = tx.value != null ? (0, util_1.ensureBigInt)(tx.value) : BigInt(0);\n const data = tx.data ? (0, util_1.ensureBuffer)(tx.data) : Buffer.alloc(0);\n const nonce = tx.nonce != null ? (0, util_1.ensureIntNumber)(tx.nonce) : null;\n const gasPriceInWei = tx.gasPrice != null ? (0, util_1.ensureBigInt)(tx.gasPrice) : null;\n const maxFeePerGas = tx.maxFeePerGas != null ? (0, util_1.ensureBigInt)(tx.maxFeePerGas) : null;\n const maxPriorityFeePerGas = tx.maxPriorityFeePerGas != null ? (0, util_1.ensureBigInt)(tx.maxPriorityFeePerGas) : null;\n const gasLimit = tx.gas != null ? (0, util_1.ensureBigInt)(tx.gas) : null;\n const chainId = tx.chainId ? (0, util_1.ensureIntNumber)(tx.chainId) : this.getChainId();\n return {\n fromAddress,\n toAddress,\n weiValue,\n data,\n nonce,\n gasPriceInWei,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasLimit,\n chainId,\n };\n }\n _isAuthorized() {\n return this._addresses.length > 0;\n }\n _requireAuthorization() {\n if (!this._isAuthorized()) {\n throw error_1.standardErrors.provider.unauthorized({});\n }\n }\n _throwUnsupportedMethodError() {\n throw error_1.standardErrors.provider.unsupportedMethod({});\n }\n async _signEthereumMessage(message, address, addPrefix, typedDataJson) {\n this._ensureKnownAddress(address);\n try {\n const relay = this.initializeRelay();\n const res = await relay.signEthereumMessage(message, address, addPrefix, typedDataJson);\n if ((0, Web3Response_1.isErrorResponse)(res)) {\n throw new Error(res.errorMessage);\n }\n return { jsonrpc: '2.0', id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === 'string' && err.message.match(/(denied|rejected)/i)) {\n throw error_1.standardErrors.provider.userRejectedRequest('User denied message signature');\n }\n throw err;\n }\n }\n async _ethereumAddressFromSignedMessage(message, signature, addPrefix) {\n const relay = this.initializeRelay();\n const res = await relay.ethereumAddressFromSignedMessage(message, signature, addPrefix);\n if ((0, Web3Response_1.isErrorResponse)(res)) {\n throw new Error(res.errorMessage);\n }\n return { jsonrpc: '2.0', id: 0, result: res.result };\n }\n _eth_accounts() {\n return [...this._addresses];\n }\n _eth_coinbase() {\n return this.selectedAddress || null;\n }\n _net_version() {\n return this.getChainId().toString(10);\n }\n _eth_chainId() {\n return (0, util_1.hexStringFromIntNumber)(this.getChainId());\n }\n getChainId() {\n const chainIdStr = this._storage.getItem(DEFAULT_CHAIN_ID_KEY);\n if (!chainIdStr) {\n return (0, util_1.ensureIntNumber)(1); // default to mainnet\n }\n const chainId = parseInt(chainIdStr, 10);\n return (0, util_1.ensureIntNumber)(chainId);\n }\n async _eth_requestAccounts() {\n if (this._isAuthorized()) {\n return Promise.resolve({\n jsonrpc: '2.0',\n id: 0,\n result: this._addresses,\n });\n }\n let res;\n try {\n const relay = this.initializeRelay();\n res = await relay.requestEthereumAccounts();\n if ((0, Web3Response_1.isErrorResponse)(res)) {\n throw new Error(res.errorMessage);\n }\n }\n catch (err) {\n if (typeof err.message === 'string' && err.message.match(/(denied|rejected)/i)) {\n throw error_1.standardErrors.provider.userRejectedRequest('User denied account authorization');\n }\n throw err;\n }\n if (!res.result) {\n throw new Error('accounts received is empty');\n }\n this._setAddresses(res.result);\n return { jsonrpc: '2.0', id: 0, result: this._addresses };\n }\n _eth_sign(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const message = (0, util_1.ensureBuffer)(params[1]);\n return this._signEthereumMessage(message, address, false);\n }\n _eth_ecRecover(params) {\n const message = (0, util_1.ensureBuffer)(params[0]);\n const signature = (0, util_1.ensureBuffer)(params[1]);\n return this._ethereumAddressFromSignedMessage(message, signature, false);\n }\n _personal_sign(params) {\n this._requireAuthorization();\n const message = (0, util_1.ensureBuffer)(params[0]);\n const address = (0, util_1.ensureAddressString)(params[1]);\n return this._signEthereumMessage(message, address, true);\n }\n _personal_ecRecover(params) {\n const message = (0, util_1.ensureBuffer)(params[0]);\n const signature = (0, util_1.ensureBuffer)(params[1]);\n return this._ethereumAddressFromSignedMessage(message, signature, true);\n }\n async _eth_signTransaction(params) {\n this._requireAuthorization();\n const tx = this._prepareTransactionParams(params[0] || {});\n try {\n const relay = this.initializeRelay();\n const res = await relay.signEthereumTransaction(tx);\n if ((0, Web3Response_1.isErrorResponse)(res)) {\n throw new Error(res.errorMessage);\n }\n return { jsonrpc: '2.0', id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === 'string' && err.message.match(/(denied|rejected)/i)) {\n throw error_1.standardErrors.provider.userRejectedRequest('User denied transaction signature');\n }\n throw err;\n }\n }\n async _eth_sendRawTransaction(params) {\n const signedTransaction = (0, util_1.ensureBuffer)(params[0]);\n const relay = this.initializeRelay();\n const res = await relay.submitEthereumTransaction(signedTransaction, this.getChainId());\n if ((0, Web3Response_1.isErrorResponse)(res)) {\n throw new Error(res.errorMessage);\n }\n return { jsonrpc: '2.0', id: 0, result: res.result };\n }\n async _eth_sendTransaction(params) {\n this._requireAuthorization();\n const tx = this._prepareTransactionParams(params[0] || {});\n try {\n const relay = this.initializeRelay();\n const res = await relay.signAndSubmitEthereumTransaction(tx);\n if ((0, Web3Response_1.isErrorResponse)(res)) {\n throw new Error(res.errorMessage);\n }\n return { jsonrpc: '2.0', id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === 'string' && err.message.match(/(denied|rejected)/i)) {\n throw error_1.standardErrors.provider.userRejectedRequest('User denied transaction signature');\n }\n throw err;\n }\n }\n async _eth_signTypedData_v1(params) {\n this._requireAuthorization();\n const typedData = (0, util_1.ensureParsedJSONObject)(params[0]);\n const address = (0, util_1.ensureAddressString)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedDataLegacy({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n async _eth_signTypedData_v3(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const typedData = (0, util_1.ensureParsedJSONObject)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedData_v3({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n async _eth_signTypedData_v4(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const typedData = (0, util_1.ensureParsedJSONObject)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedData_v4({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n async _wallet_addEthereumChain(params) {\n var _a, _b, _c, _d;\n const request = params[0];\n if (((_a = request.rpcUrls) === null || _a === void 0 ? void 0 : _a.length) === 0) {\n return {\n jsonrpc: '2.0',\n id: 0,\n error: { code: 2, message: `please pass in at least 1 rpcUrl` },\n };\n }\n if (!request.chainName || request.chainName.trim() === '') {\n throw error_1.standardErrors.rpc.invalidParams('chainName is a required field');\n }\n if (!request.nativeCurrency) {\n throw error_1.standardErrors.rpc.invalidParams('nativeCurrency is a required field');\n }\n const chainIdNumber = parseInt(request.chainId, 16);\n const success = await this.addEthereumChain(chainIdNumber, (_b = request.rpcUrls) !== null && _b !== void 0 ? _b : [], (_c = request.blockExplorerUrls) !== null && _c !== void 0 ? _c : [], request.chainName, (_d = request.iconUrls) !== null && _d !== void 0 ? _d : [], request.nativeCurrency);\n if (success) {\n return { jsonrpc: '2.0', id: 0, result: null };\n }\n return {\n jsonrpc: '2.0',\n id: 0,\n error: { code: 2, message: `unable to add ethereum chain` },\n };\n }\n async _wallet_switchEthereumChain(params) {\n const request = params[0];\n await this.switchEthereumChain(parseInt(request.chainId, 16));\n return { jsonrpc: '2.0', id: 0, result: null };\n }\n async _wallet_watchAsset(params) {\n const request = (Array.isArray(params) ? params[0] : params);\n if (!request.type) {\n throw error_1.standardErrors.rpc.invalidParams('Type is required');\n }\n if ((request === null || request === void 0 ? void 0 : request.type) !== 'ERC20') {\n throw error_1.standardErrors.rpc.invalidParams(`Asset of type '${request.type}' is not supported`);\n }\n if (!(request === null || request === void 0 ? void 0 : request.options)) {\n throw error_1.standardErrors.rpc.invalidParams('Options are required');\n }\n if (!(request === null || request === void 0 ? void 0 : request.options.address)) {\n throw error_1.standardErrors.rpc.invalidParams('Address is required');\n }\n const chainId = this.getChainId();\n const { address, symbol, image, decimals } = request.options;\n const res = await this.watchAsset(request.type, address, symbol, decimals, image, chainId);\n return { jsonrpc: '2.0', id: 0, result: res };\n }\n initializeRelay() {\n if (!this._relay) {\n const relay = new WalletLinkRelay_1.WalletLinkRelay({\n linkAPIUrl: constants_2.WALLETLINK_URL,\n storage: this._storage,\n });\n relay.setAppInfo(this._appName, this._appLogoUrl);\n relay.attachUI();\n relay.setAccountsCallback((accounts, isDisconnect) => this._setAddresses(accounts, isDisconnect));\n relay.setChainCallback((chainId, jsonRpcUrl) => {\n this.updateProviderInfo(jsonRpcUrl, parseInt(chainId, 10));\n });\n this._relay = relay;\n }\n return this._relay;\n }\n}\nexports.WalletLinkSigner = WalletLinkSigner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RelayEventManager = void 0;\nconst util_1 = require(\"../../../core/type/util\");\nclass RelayEventManager {\n constructor() {\n this._nextRequestId = 0;\n this.callbacks = new Map();\n }\n makeRequestId() {\n // max nextId == max int32 for compatibility with mobile\n this._nextRequestId = (this._nextRequestId + 1) % 0x7fffffff;\n const id = this._nextRequestId;\n const idStr = (0, util_1.prepend0x)(id.toString(16));\n // unlikely that this will ever be an issue, but just to be safe\n const callback = this.callbacks.get(idStr);\n if (callback) {\n this.callbacks.delete(idStr);\n }\n return id;\n }\n}\nexports.RelayEventManager = RelayEventManager;\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkRelay = void 0;\nconst WalletLinkConnection_1 = require(\"./connection/WalletLinkConnection\");\nconst constants_1 = require(\"./constants\");\nconst RelayEventManager_1 = require(\"./RelayEventManager\");\nconst WalletLinkSession_1 = require(\"./type/WalletLinkSession\");\nconst Web3Response_1 = require(\"./type/Web3Response\");\nconst util_1 = require(\"./ui/components/util\");\nconst WalletLinkRelayUI_1 = require(\"./ui/WalletLinkRelayUI\");\nconst WLMobileRelayUI_1 = require(\"./ui/WLMobileRelayUI\");\nconst error_1 = require(\"../../../core/error\");\nconst util_2 = require(\"../../../core/type/util\");\nconst ScopedLocalStorage_1 = require(\"../../../util/ScopedLocalStorage\");\nclass WalletLinkRelay {\n constructor(options) {\n this.accountsCallback = null;\n this.chainCallbackParams = { chainId: '', jsonRpcUrl: '' }; // to implement distinctUntilChanged\n this.chainCallback = null;\n this.dappDefaultChain = 1;\n this.isMobileWeb = (0, util_1.isMobileWeb)();\n this.appName = '';\n this.appLogoUrl = null;\n this.linkedUpdated = (linked) => {\n this.isLinked = linked;\n const cachedAddresses = this.storage.getItem(constants_1.LOCAL_STORAGE_ADDRESSES_KEY);\n if (linked) {\n // Only set linked session variable one way\n this._session.linked = linked;\n }\n this.isUnlinkedErrorState = false;\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(' ');\n const wasConnectedViaStandalone = this.storage.getItem('IsStandaloneSigning') === 'true';\n if (addresses[0] !== '' && !linked && this._session.linked && !wasConnectedViaStandalone) {\n this.isUnlinkedErrorState = true;\n }\n }\n };\n this.metadataUpdated = (key, value) => {\n this.storage.setItem(key, value);\n };\n this.chainUpdated = (chainId, jsonRpcUrl) => {\n if (this.chainCallbackParams.chainId === chainId &&\n this.chainCallbackParams.jsonRpcUrl === jsonRpcUrl) {\n return;\n }\n this.chainCallbackParams = {\n chainId,\n jsonRpcUrl,\n };\n if (this.chainCallback) {\n this.chainCallback(chainId, jsonRpcUrl);\n }\n };\n this.accountUpdated = (selectedAddress) => {\n if (this.accountsCallback) {\n this.accountsCallback([selectedAddress]);\n }\n if (WalletLinkRelay.accountRequestCallbackIds.size > 0) {\n // We get the ethereum address from the metadata. If for whatever\n // reason we don't get a response via an explicit web3 message\n // we can still fulfill the eip1102 request.\n Array.from(WalletLinkRelay.accountRequestCallbackIds.values()).forEach((id) => {\n const message = {\n type: 'WEB3_RESPONSE',\n id,\n response: {\n method: 'requestEthereumAccounts',\n result: [selectedAddress],\n },\n };\n this.invokeCallback(Object.assign(Object.assign({}, message), { id }));\n });\n WalletLinkRelay.accountRequestCallbackIds.clear();\n }\n };\n this.resetAndReload = this.resetAndReload.bind(this);\n this.linkAPIUrl = options.linkAPIUrl;\n this.storage = options.storage;\n const { session, ui, connection } = this.subscribe();\n this._session = session;\n this.connection = connection;\n this.relayEventManager = new RelayEventManager_1.RelayEventManager();\n this.ui = ui;\n }\n subscribe() {\n const session = WalletLinkSession_1.WalletLinkSession.load(this.storage) || new WalletLinkSession_1.WalletLinkSession(this.storage).save();\n const { linkAPIUrl } = this;\n const connection = new WalletLinkConnection_1.WalletLinkConnection({\n session,\n linkAPIUrl,\n listener: this,\n });\n const ui = this.isMobileWeb ? new WLMobileRelayUI_1.WLMobileRelayUI() : new WalletLinkRelayUI_1.WalletLinkRelayUI();\n connection.connect();\n return { session, ui, connection };\n }\n attachUI() {\n this.ui.attach();\n }\n resetAndReload() {\n Promise.race([\n this.connection.setSessionMetadata('__destroyed', '1'),\n new Promise((resolve) => setTimeout(() => resolve(null), 1000)),\n ])\n .then(() => {\n this.connection.destroy();\n /**\n * Only clear storage if the session id we have in memory matches the one on disk\n * Otherwise, in the case where we have 2 tabs, another tab might have cleared\n * storage already. In that case if we clear storage again, the user will be in\n * a state where the first tab allows the user to connect but the session that\n * was used isn't persisted. This leaves the user in a state where they aren't\n * connected to the mobile app.\n */\n const storedSession = WalletLinkSession_1.WalletLinkSession.load(this.storage);\n if ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) === this._session.id) {\n ScopedLocalStorage_1.ScopedLocalStorage.clearAll();\n }\n document.location.reload();\n })\n .catch((_) => { });\n }\n setAppInfo(appName, appLogoUrl) {\n this.appName = appName;\n this.appLogoUrl = appLogoUrl;\n }\n getStorageItem(key) {\n return this.storage.getItem(key);\n }\n setStorageItem(key, value) {\n this.storage.setItem(key, value);\n }\n signEthereumMessage(message, address, addPrefix, typedDataJson) {\n return this.sendRequest({\n method: 'signEthereumMessage',\n params: {\n message: (0, util_2.hexStringFromBuffer)(message, true),\n address,\n addPrefix,\n typedDataJson: typedDataJson || null,\n },\n });\n }\n ethereumAddressFromSignedMessage(message, signature, addPrefix) {\n return this.sendRequest({\n method: 'ethereumAddressFromSignedMessage',\n params: {\n message: (0, util_2.hexStringFromBuffer)(message, true),\n signature: (0, util_2.hexStringFromBuffer)(signature, true),\n addPrefix,\n },\n });\n }\n signEthereumTransaction(params) {\n return this.sendRequest({\n method: 'signEthereumTransaction',\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_2.bigIntStringFromBigInt)(params.weiValue),\n data: (0, util_2.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei ? (0, util_2.bigIntStringFromBigInt)(params.gasPriceInWei) : null,\n maxFeePerGas: params.gasPriceInWei ? (0, util_2.bigIntStringFromBigInt)(params.gasPriceInWei) : null,\n maxPriorityFeePerGas: params.gasPriceInWei\n ? (0, util_2.bigIntStringFromBigInt)(params.gasPriceInWei)\n : null,\n gasLimit: params.gasLimit ? (0, util_2.bigIntStringFromBigInt)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: false,\n },\n });\n }\n signAndSubmitEthereumTransaction(params) {\n return this.sendRequest({\n method: 'signEthereumTransaction',\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_2.bigIntStringFromBigInt)(params.weiValue),\n data: (0, util_2.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei ? (0, util_2.bigIntStringFromBigInt)(params.gasPriceInWei) : null,\n maxFeePerGas: params.maxFeePerGas ? (0, util_2.bigIntStringFromBigInt)(params.maxFeePerGas) : null,\n maxPriorityFeePerGas: params.maxPriorityFeePerGas\n ? (0, util_2.bigIntStringFromBigInt)(params.maxPriorityFeePerGas)\n : null,\n gasLimit: params.gasLimit ? (0, util_2.bigIntStringFromBigInt)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: true,\n },\n });\n }\n submitEthereumTransaction(signedTransaction, chainId) {\n return this.sendRequest({\n method: 'submitEthereumTransaction',\n params: {\n signedTransaction: (0, util_2.hexStringFromBuffer)(signedTransaction, true),\n chainId,\n },\n });\n }\n scanQRCode(regExp) {\n return this.sendRequest({\n method: 'scanQRCode',\n params: {\n regExp,\n },\n });\n }\n getWalletLinkSession() {\n return this._session;\n }\n genericRequest(data, action) {\n return this.sendRequest({\n method: 'generic',\n params: {\n action,\n data,\n },\n });\n }\n sendGenericMessage(request) {\n return this.sendRequest(request);\n }\n sendRequest(request) {\n let hideSnackbarItem = null;\n const id = (0, util_2.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n return new Promise((resolve, reject) => {\n {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n this.relayEventManager.callbacks.set(id, (response) => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if ((0, Web3Response_1.isErrorResponse)(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n setAccountsCallback(accountsCallback) {\n this.accountsCallback = accountsCallback;\n }\n setChainCallback(chainCallback) {\n this.chainCallback = chainCallback;\n }\n setDappDefaultChainCallback(chainId) {\n this.dappDefaultChain = chainId;\n }\n publishWeb3RequestEvent(id, request) {\n const message = { type: 'WEB3_REQUEST', id, request };\n this.publishEvent('Web3Request', message, true)\n .then((_) => { })\n .catch((err) => {\n this.handleWeb3ResponseMessage({\n type: 'WEB3_RESPONSE',\n id: message.id,\n response: {\n method: request.method,\n errorMessage: err.message,\n },\n });\n });\n if (this.isMobileWeb) {\n this.openCoinbaseWalletDeeplink(request.method);\n }\n }\n // copied from MobileRelay\n openCoinbaseWalletDeeplink(method) {\n if (!(this.ui instanceof WLMobileRelayUI_1.WLMobileRelayUI))\n return;\n // For mobile relay requests, open the Coinbase Wallet app\n switch (method) {\n case 'requestEthereumAccounts': // requestEthereumAccounts is handled via popup\n case 'switchEthereumChain': // switchEthereumChain doesn't need to open the app\n return;\n default:\n window.addEventListener('blur', () => {\n window.addEventListener('focus', () => {\n this.connection.checkUnseenEvents();\n }, { once: true });\n }, { once: true });\n this.ui.openCoinbaseWalletDeeplink();\n break;\n }\n }\n publishWeb3RequestCanceledEvent(id) {\n const message = {\n type: 'WEB3_REQUEST_CANCELED',\n id,\n };\n this.publishEvent('Web3RequestCanceled', message, false).then();\n }\n publishEvent(event, message, callWebhook) {\n return this.connection.publishEvent(event, message, callWebhook);\n }\n handleWeb3ResponseMessage(message) {\n const { response } = message;\n if (response.method === 'requestEthereumAccounts') {\n WalletLinkRelay.accountRequestCallbackIds.forEach((id) => this.invokeCallback(Object.assign(Object.assign({}, message), { id })));\n WalletLinkRelay.accountRequestCallbackIds.clear();\n return;\n }\n this.invokeCallback(message);\n }\n handleErrorResponse(id, method, error) {\n var _a;\n const errorMessage = (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : 'Unspecified error message.';\n this.handleWeb3ResponseMessage({\n type: 'WEB3_RESPONSE',\n id,\n response: {\n method,\n errorMessage,\n },\n });\n }\n invokeCallback(message) {\n const callback = this.relayEventManager.callbacks.get(message.id);\n if (callback) {\n callback(message.response);\n this.relayEventManager.callbacks.delete(message.id);\n }\n }\n requestEthereumAccounts() {\n const request = {\n method: 'requestEthereumAccounts',\n params: {\n appName: this.appName,\n appLogoUrl: this.appLogoUrl || null,\n },\n };\n const hideSnackbarItem = null;\n const id = (0, util_2.randomBytesHex)(8);\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if ((0, Web3Response_1.isErrorResponse)(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n WalletLinkRelay.accountRequestCallbackIds.add(id);\n this.publishWeb3RequestEvent(id, request);\n });\n }\n watchAsset(type, address, symbol, decimals, image, chainId) {\n const request = {\n method: 'watchAsset',\n params: {\n type,\n options: {\n address,\n symbol,\n decimals,\n image,\n },\n chainId,\n },\n };\n let hideSnackbarItem = null;\n const id = (0, util_2.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if ((0, Web3Response_1.isErrorResponse)(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n addEthereumChain(chainId, rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency) {\n const request = {\n method: 'addEthereumChain',\n params: {\n chainId,\n rpcUrls,\n blockExplorerUrls,\n chainName,\n iconUrls,\n nativeCurrency,\n },\n };\n let hideSnackbarItem = null;\n const id = (0, util_2.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if ((0, Web3Response_1.isErrorResponse)(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n switchEthereumChain(chainId, address) {\n const request = {\n method: 'switchEthereumChain',\n params: Object.assign({ chainId }, { address }),\n };\n const id = (0, util_2.randomBytesHex)(8);\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n if ((0, Web3Response_1.isErrorResponse)(response) && response.errorCode) {\n return reject(error_1.standardErrors.provider.custom({\n code: response.errorCode,\n message: `Unrecognized chain ID. Try adding the chain using addEthereumChain first.`,\n }));\n }\n else if ((0, Web3Response_1.isErrorResponse)(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n}\nexports.WalletLinkRelay = WalletLinkRelay;\nWalletLinkRelay.accountRequestCallbackIds = new Set();\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkCipher = void 0;\nconst util_1 = require(\"../../../../core/type/util\");\nclass WalletLinkCipher {\n // @param secret hex representation of 32-byte secret\n constructor(secret) {\n this.secret = secret;\n }\n /**\n *\n * @param plainText string to be encrypted\n * returns hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes. Remaining bytes are the\n * encrypted plainText.\n */\n async encrypt(plainText) {\n const secret = this.secret;\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n const ivBytes = crypto.getRandomValues(new Uint8Array(12));\n const secretKey = await crypto.subtle.importKey('raw', (0, util_1.hexStringToUint8Array)(secret), { name: 'aes-gcm' }, false, ['encrypt', 'decrypt']);\n const enc = new TextEncoder();\n // Will return encrypted plainText with auth tag (ie MAC or checksum) appended at the end\n const encryptedResult = await window.crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv: ivBytes,\n }, secretKey, enc.encode(plainText));\n const tagLength = 16;\n const authTag = encryptedResult.slice(encryptedResult.byteLength - tagLength);\n const encryptedPlaintext = encryptedResult.slice(0, encryptedResult.byteLength - tagLength);\n const authTagBytes = new Uint8Array(authTag);\n const encryptedPlaintextBytes = new Uint8Array(encryptedPlaintext);\n const concatted = new Uint8Array([...ivBytes, ...authTagBytes, ...encryptedPlaintextBytes]);\n return (0, util_1.uint8ArrayToHex)(concatted);\n }\n /**\n *\n * @param cipherText hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes.\n */\n async decrypt(cipherText) {\n const secret = this.secret;\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n return new Promise((resolve, reject) => {\n void (async function () {\n const secretKey = await crypto.subtle.importKey('raw', (0, util_1.hexStringToUint8Array)(secret), { name: 'aes-gcm' }, false, ['encrypt', 'decrypt']);\n const encrypted = (0, util_1.hexStringToUint8Array)(cipherText);\n const ivBytes = encrypted.slice(0, 12);\n const authTagBytes = encrypted.slice(12, 28);\n const encryptedPlaintextBytes = encrypted.slice(28);\n const concattedBytes = new Uint8Array([...encryptedPlaintextBytes, ...authTagBytes]);\n const algo = {\n name: 'AES-GCM',\n iv: new Uint8Array(ivBytes),\n };\n try {\n const decrypted = await window.crypto.subtle.decrypt(algo, secretKey, concattedBytes);\n const decoder = new TextDecoder();\n resolve(decoder.decode(decrypted));\n }\n catch (err) {\n reject(err);\n }\n })();\n });\n }\n}\nexports.WalletLinkCipher = WalletLinkCipher;\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkConnection = void 0;\nconst constants_1 = require(\"../constants\");\nconst WalletLinkCipher_1 = require(\"./WalletLinkCipher\");\nconst WalletLinkHTTP_1 = require(\"./WalletLinkHTTP\");\nconst WalletLinkWebSocket_1 = require(\"./WalletLinkWebSocket\");\nconst type_1 = require(\"../../../../core/type\");\nconst HEARTBEAT_INTERVAL = 10000;\nconst REQUEST_TIMEOUT = 60000;\n/**\n * Coinbase Wallet Connection\n */\nclass WalletLinkConnection {\n /**\n * Constructor\n * @param session Session\n * @param linkAPIUrl Coinbase Wallet link server URL\n * @param listener WalletLinkConnectionUpdateListener\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor({ session, linkAPIUrl, listener, WebSocketClass = WebSocket, }) {\n this.destroyed = false;\n this.lastHeartbeatResponse = 0;\n this.nextReqId = (0, type_1.IntNumber)(1);\n /**\n * true if connected and authenticated, else false\n * runs listener when connected status changes\n */\n this._connected = false;\n /**\n * true if linked (a guest has joined before)\n * runs listener when linked status changes\n */\n this._linked = false;\n this.shouldFetchUnseenEventsOnConnect = false;\n this.requestResolutions = new Map();\n this.handleSessionMetadataUpdated = (metadata) => {\n if (!metadata)\n return;\n // Map of metadata key to handler function\n const handlers = new Map([\n ['__destroyed', this.handleDestroyed],\n ['EthereumAddress', this.handleAccountUpdated],\n ['WalletUsername', this.handleWalletUsernameUpdated],\n ['AppVersion', this.handleAppVersionUpdated],\n [\n 'ChainId',\n (v) => metadata.JsonRpcUrl && this.handleChainUpdated(v, metadata.JsonRpcUrl),\n ],\n ]);\n // call handler for each metadata key if value is defined\n handlers.forEach((handler, key) => {\n const value = metadata[key];\n if (value === undefined)\n return;\n handler(value);\n });\n };\n this.handleDestroyed = (__destroyed) => {\n var _a;\n if (__destroyed !== '1')\n return;\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.resetAndReload();\n };\n this.handleAccountUpdated = async (encryptedEthereumAddress) => {\n var _a;\n {\n const address = await this.cipher.decrypt(encryptedEthereumAddress);\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.accountUpdated(address);\n }\n };\n this.handleMetadataUpdated = async (key, encryptedMetadataValue) => {\n var _a;\n {\n const decryptedValue = await this.cipher.decrypt(encryptedMetadataValue);\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.metadataUpdated(key, decryptedValue);\n }\n };\n this.handleWalletUsernameUpdated = async (walletUsername) => {\n this.handleMetadataUpdated(constants_1.WALLET_USER_NAME_KEY, walletUsername);\n };\n this.handleAppVersionUpdated = async (appVersion) => {\n this.handleMetadataUpdated(constants_1.APP_VERSION_KEY, appVersion);\n };\n this.handleChainUpdated = async (encryptedChainId, encryptedJsonRpcUrl) => {\n var _a;\n {\n const chainId = await this.cipher.decrypt(encryptedChainId);\n const jsonRpcUrl = await this.cipher.decrypt(encryptedJsonRpcUrl);\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.chainUpdated(chainId, jsonRpcUrl);\n }\n };\n this.session = session;\n this.cipher = new WalletLinkCipher_1.WalletLinkCipher(session.secret);\n this.listener = listener;\n const ws = new WalletLinkWebSocket_1.WalletLinkWebSocket(`${linkAPIUrl}/rpc`, WebSocketClass);\n ws.setConnectionStateListener(async (state) => {\n // attempt to reconnect every 5 seconds when disconnected\n let connected = false;\n switch (state) {\n case WalletLinkWebSocket_1.ConnectionState.DISCONNECTED:\n // if DISCONNECTED and not destroyed\n if (!this.destroyed) {\n const connect = async () => {\n // wait 5 seconds\n await new Promise((resolve) => setTimeout(resolve, 5000));\n // check whether it's destroyed again\n if (!this.destroyed) {\n // reconnect\n ws.connect().catch(() => {\n connect();\n });\n }\n };\n connect();\n }\n break;\n case WalletLinkWebSocket_1.ConnectionState.CONNECTED:\n // perform authentication upon connection\n try {\n // if CONNECTED, authenticate, and then check link status\n await this.authenticate();\n this.sendIsLinked();\n this.sendGetSessionConfig();\n connected = true;\n }\n catch (_a) {\n /* empty */\n }\n // send heartbeat every n seconds while connected\n // if CONNECTED, start the heartbeat timer\n // first timer event updates lastHeartbeat timestamp\n // subsequent calls send heartbeat message\n this.updateLastHeartbeat();\n setInterval(() => {\n this.heartbeat();\n }, HEARTBEAT_INTERVAL);\n // check for unseen events\n if (this.shouldFetchUnseenEventsOnConnect) {\n this.fetchUnseenEventsAPI();\n }\n break;\n case WalletLinkWebSocket_1.ConnectionState.CONNECTING:\n break;\n }\n // distinctUntilChanged\n if (this.connected !== connected) {\n this.connected = connected;\n }\n });\n ws.setIncomingDataListener((m) => {\n var _a;\n switch (m.type) {\n // handle server's heartbeat responses\n case 'Heartbeat':\n this.updateLastHeartbeat();\n return;\n // handle link status updates\n case 'IsLinkedOK':\n case 'Linked': {\n const linked = m.type === 'IsLinkedOK' ? m.linked : undefined;\n this.linked = linked || m.onlineGuests > 0;\n break;\n }\n // handle session config updates\n case 'GetSessionConfigOK':\n case 'SessionConfigUpdated': {\n this.handleSessionMetadataUpdated(m.metadata);\n break;\n }\n case 'Event': {\n this.handleIncomingEvent(m);\n break;\n }\n }\n // resolve request promises\n if (m.id !== undefined) {\n (_a = this.requestResolutions.get(m.id)) === null || _a === void 0 ? void 0 : _a(m);\n }\n });\n this.ws = ws;\n this.http = new WalletLinkHTTP_1.WalletLinkHTTP(linkAPIUrl, session.id, session.key);\n }\n /**\n * Make a connection to the server\n */\n connect() {\n if (this.destroyed) {\n throw new Error('instance is destroyed');\n }\n this.ws.connect();\n }\n /**\n * Terminate connection, and mark as destroyed. To reconnect, create a new\n * instance of WalletSDKConnection\n */\n destroy() {\n this.destroyed = true;\n this.ws.disconnect();\n this.listener = undefined;\n }\n get isDestroyed() {\n return this.destroyed;\n }\n get connected() {\n return this._connected;\n }\n set connected(connected) {\n var _a;\n this._connected = connected;\n if (connected)\n (_a = this.onceConnected) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n setOnceConnected(callback) {\n return new Promise((resolve) => {\n if (this.connected) {\n callback().then(resolve);\n }\n else {\n this.onceConnected = () => {\n callback().then(resolve);\n this.onceConnected = undefined;\n };\n }\n });\n }\n get linked() {\n return this._linked;\n }\n set linked(linked) {\n var _a, _b;\n this._linked = linked;\n if (linked)\n (_a = this.onceLinked) === null || _a === void 0 ? void 0 : _a.call(this);\n (_b = this.listener) === null || _b === void 0 ? void 0 : _b.linkedUpdated(linked);\n }\n setOnceLinked(callback) {\n return new Promise((resolve) => {\n if (this.linked) {\n callback().then(resolve);\n }\n else {\n this.onceLinked = () => {\n callback().then(resolve);\n this.onceLinked = undefined;\n };\n }\n });\n }\n async handleIncomingEvent(m) {\n var _a;\n if (m.type !== 'Event' || m.event !== 'Web3Response') {\n return;\n }\n {\n const decryptedData = await this.cipher.decrypt(m.data);\n const message = JSON.parse(decryptedData);\n if (message.type !== 'WEB3_RESPONSE')\n return;\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.handleWeb3ResponseMessage(message);\n }\n }\n async checkUnseenEvents() {\n if (!this.connected) {\n this.shouldFetchUnseenEventsOnConnect = true;\n return;\n }\n await new Promise((resolve) => setTimeout(resolve, 250));\n try {\n await this.fetchUnseenEventsAPI();\n }\n catch (e) {\n console.error('Unable to check for unseen events', e);\n }\n }\n async fetchUnseenEventsAPI() {\n this.shouldFetchUnseenEventsOnConnect = false;\n const responseEvents = await this.http.fetchUnseenEvents();\n responseEvents.forEach((e) => this.handleIncomingEvent(e));\n }\n /**\n * Set session metadata in SessionConfig object\n * @param key\n * @param value\n * @returns a Promise that completes when successful\n */\n async setSessionMetadata(key, value) {\n const message = {\n type: 'SetSessionConfig',\n id: (0, type_1.IntNumber)(this.nextReqId++),\n sessionId: this.session.id,\n metadata: { [key]: value },\n };\n return this.setOnceConnected(async () => {\n const res = await this.makeRequest(message);\n if (res.type === 'Fail') {\n throw new Error(res.error || 'failed to set session metadata');\n }\n });\n }\n /**\n * Publish an event and emit event ID when successful\n * @param event event name\n * @param unencryptedData unencrypted event data\n * @param callWebhook whether the webhook should be invoked\n * @returns a Promise that emits event ID when successful\n */\n async publishEvent(event, unencryptedData, callWebhook = false) {\n const data = await this.cipher.encrypt(JSON.stringify(Object.assign(Object.assign({}, unencryptedData), { origin: location.origin, relaySource: 'coinbaseWalletExtension' in window && window.coinbaseWalletExtension\n ? 'injected_sdk'\n : 'sdk' })));\n const message = {\n type: 'PublishEvent',\n id: (0, type_1.IntNumber)(this.nextReqId++),\n sessionId: this.session.id,\n event,\n data,\n callWebhook,\n };\n return this.setOnceLinked(async () => {\n const res = await this.makeRequest(message);\n if (res.type === 'Fail') {\n throw new Error(res.error || 'failed to publish event');\n }\n return res.eventId;\n });\n }\n sendData(message) {\n this.ws.sendData(JSON.stringify(message));\n }\n updateLastHeartbeat() {\n this.lastHeartbeatResponse = Date.now();\n }\n heartbeat() {\n if (Date.now() - this.lastHeartbeatResponse > HEARTBEAT_INTERVAL * 2) {\n this.ws.disconnect();\n return;\n }\n try {\n this.ws.sendData('h');\n }\n catch (_a) {\n // noop\n }\n }\n async makeRequest(message, timeout = REQUEST_TIMEOUT) {\n const reqId = message.id;\n this.sendData(message);\n // await server message with corresponding id\n let timeoutId;\n return Promise.race([\n new Promise((_, reject) => {\n timeoutId = window.setTimeout(() => {\n reject(new Error(`request ${reqId} timed out`));\n }, timeout);\n }),\n new Promise((resolve) => {\n this.requestResolutions.set(reqId, (m) => {\n clearTimeout(timeoutId); // clear the timeout\n resolve(m);\n this.requestResolutions.delete(reqId);\n });\n }),\n ]);\n }\n async authenticate() {\n const m = {\n type: 'HostSession',\n id: (0, type_1.IntNumber)(this.nextReqId++),\n sessionId: this.session.id,\n sessionKey: this.session.key,\n };\n const res = await this.makeRequest(m);\n if (res.type === 'Fail') {\n throw new Error(res.error || 'failed to authenticate');\n }\n }\n sendIsLinked() {\n const m = {\n type: 'IsLinked',\n id: (0, type_1.IntNumber)(this.nextReqId++),\n sessionId: this.session.id,\n };\n this.sendData(m);\n }\n sendGetSessionConfig() {\n const m = {\n type: 'GetSessionConfig',\n id: (0, type_1.IntNumber)(this.nextReqId++),\n sessionId: this.session.id,\n };\n this.sendData(m);\n }\n}\nexports.WalletLinkConnection = WalletLinkConnection;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkHTTP = void 0;\nclass WalletLinkHTTP {\n constructor(linkAPIUrl, sessionId, sessionKey) {\n this.linkAPIUrl = linkAPIUrl;\n this.sessionId = sessionId;\n const credentials = `${sessionId}:${sessionKey}`;\n this.auth = `Basic ${btoa(credentials)}`;\n }\n // mark unseen events as seen\n async markUnseenEventsAsSeen(events) {\n return Promise.all(events.map((e) => fetch(`${this.linkAPIUrl}/events/${e.eventId}/seen`, {\n method: 'POST',\n headers: {\n Authorization: this.auth,\n },\n }))).catch((error) => console.error('Unabled to mark event as failed:', error));\n }\n async fetchUnseenEvents() {\n var _a;\n const response = await fetch(`${this.linkAPIUrl}/events?unseen=true`, {\n headers: {\n Authorization: this.auth,\n },\n });\n if (response.ok) {\n const { events, error } = (await response.json());\n if (error) {\n throw new Error(`Check unseen events failed: ${error}`);\n }\n const responseEvents = (_a = events === null || events === void 0 ? void 0 : events.filter((e) => e.event === 'Web3Response').map((e) => ({\n type: 'Event',\n sessionId: this.sessionId,\n eventId: e.id,\n event: e.event,\n data: e.data,\n }))) !== null && _a !== void 0 ? _a : [];\n this.markUnseenEventsAsSeen(responseEvents);\n return responseEvents;\n }\n throw new Error(`Check unseen events failed: ${response.status}`);\n }\n}\nexports.WalletLinkHTTP = WalletLinkHTTP;\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkWebSocket = exports.ConnectionState = void 0;\nvar ConnectionState;\n(function (ConnectionState) {\n ConnectionState[ConnectionState[\"DISCONNECTED\"] = 0] = \"DISCONNECTED\";\n ConnectionState[ConnectionState[\"CONNECTING\"] = 1] = \"CONNECTING\";\n ConnectionState[ConnectionState[\"CONNECTED\"] = 2] = \"CONNECTED\";\n})(ConnectionState || (exports.ConnectionState = ConnectionState = {}));\nclass WalletLinkWebSocket {\n setConnectionStateListener(listener) {\n this.connectionStateListener = listener;\n }\n setIncomingDataListener(listener) {\n this.incomingDataListener = listener;\n }\n /**\n * Constructor\n * @param url WebSocket server URL\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor(url, WebSocketClass = WebSocket) {\n this.WebSocketClass = WebSocketClass;\n this.webSocket = null;\n this.pendingData = [];\n this.url = url.replace(/^http/, 'ws');\n }\n /**\n * Make a websocket connection\n * @returns a Promise that resolves when connected\n */\n async connect() {\n if (this.webSocket) {\n throw new Error('webSocket object is not null');\n }\n return new Promise((resolve, reject) => {\n var _a;\n let webSocket;\n try {\n this.webSocket = webSocket = new this.WebSocketClass(this.url);\n }\n catch (err) {\n reject(err);\n return;\n }\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.CONNECTING);\n webSocket.onclose = (evt) => {\n var _a;\n this.clearWebSocket();\n reject(new Error(`websocket error ${evt.code}: ${evt.reason}`));\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.DISCONNECTED);\n };\n webSocket.onopen = (_) => {\n var _a;\n resolve();\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.CONNECTED);\n if (this.pendingData.length > 0) {\n const pending = [...this.pendingData];\n pending.forEach((data) => this.sendData(data));\n this.pendingData = [];\n }\n };\n webSocket.onmessage = (evt) => {\n var _a, _b;\n if (evt.data === 'h') {\n (_a = this.incomingDataListener) === null || _a === void 0 ? void 0 : _a.call(this, {\n type: 'Heartbeat',\n });\n }\n else {\n try {\n const message = JSON.parse(evt.data);\n (_b = this.incomingDataListener) === null || _b === void 0 ? void 0 : _b.call(this, message);\n }\n catch (_c) {\n /* empty */\n }\n }\n };\n });\n }\n /**\n * Disconnect from server\n */\n disconnect() {\n var _a;\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.clearWebSocket();\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.DISCONNECTED);\n this.connectionStateListener = undefined;\n this.incomingDataListener = undefined;\n try {\n webSocket.close();\n }\n catch (_b) {\n // noop\n }\n }\n /**\n * Send data to server\n * @param data text to send\n */\n sendData(data) {\n const { webSocket } = this;\n if (!webSocket) {\n this.pendingData.push(data);\n this.connect();\n return;\n }\n webSocket.send(data);\n }\n clearWebSocket() {\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.webSocket = null;\n webSocket.onclose = null;\n webSocket.onerror = null;\n webSocket.onmessage = null;\n webSocket.onopen = null;\n }\n}\nexports.WalletLinkWebSocket = WalletLinkWebSocket;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.APP_VERSION_KEY = exports.LOCAL_STORAGE_ADDRESSES_KEY = exports.WALLET_USER_NAME_KEY = void 0;\nexports.WALLET_USER_NAME_KEY = 'walletUsername';\nexports.LOCAL_STORAGE_ADDRESSES_KEY = 'Addresses';\nexports.APP_VERSION_KEY = 'AppVersion';\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkSession = void 0;\nconst sha_js_1 = require(\"sha.js\");\nconst util_1 = require(\"../../../../core/type/util\");\nconst STORAGE_KEY_SESSION_ID = 'session:id';\nconst STORAGE_KEY_SESSION_SECRET = 'session:secret';\nconst STORAGE_KEY_SESSION_LINKED = 'session:linked';\nclass WalletLinkSession {\n constructor(storage, id, secret, linked) {\n this._storage = storage;\n this._id = id || (0, util_1.randomBytesHex)(16);\n this._secret = secret || (0, util_1.randomBytesHex)(32);\n this._key = new sha_js_1.sha256()\n .update(`${this._id}, ${this._secret} WalletLink`) // ensure old sessions stay connected\n .digest('hex');\n this._linked = !!linked;\n }\n static load(storage) {\n const id = storage.getItem(STORAGE_KEY_SESSION_ID);\n const linked = storage.getItem(STORAGE_KEY_SESSION_LINKED);\n const secret = storage.getItem(STORAGE_KEY_SESSION_SECRET);\n if (id && secret) {\n return new WalletLinkSession(storage, id, secret, linked === '1');\n }\n return null;\n }\n get id() {\n return this._id;\n }\n get secret() {\n return this._secret;\n }\n get key() {\n return this._key;\n }\n get linked() {\n return this._linked;\n }\n set linked(val) {\n this._linked = val;\n this.persistLinked();\n }\n save() {\n this._storage.setItem(STORAGE_KEY_SESSION_ID, this._id);\n this._storage.setItem(STORAGE_KEY_SESSION_SECRET, this._secret);\n this.persistLinked();\n return this;\n }\n persistLinked() {\n this._storage.setItem(STORAGE_KEY_SESSION_LINKED, this._linked ? '1' : '0');\n }\n}\nexports.WalletLinkSession = WalletLinkSession;\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isErrorResponse = void 0;\nfunction isErrorResponse(response) {\n return response.errorMessage !== undefined;\n}\nexports.isErrorResponse = isErrorResponse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WLMobileRelayUI = void 0;\nconst RedirectDialog_1 = require(\"./components/RedirectDialog/RedirectDialog\");\nconst util_1 = require(\"./components/util\");\nconst constants_1 = require(\"../../../../core/constants\");\nclass WLMobileRelayUI {\n constructor() {\n this.attached = false;\n this.redirectDialog = new RedirectDialog_1.RedirectDialog();\n }\n attach() {\n if (this.attached) {\n throw new Error('Coinbase Wallet SDK UI is already attached');\n }\n this.redirectDialog.attach();\n this.attached = true;\n }\n redirectToCoinbaseWallet(walletLinkUrl) {\n const url = new URL(constants_1.CBW_MOBILE_DEEPLINK_URL);\n url.searchParams.append('redirect_url', (0, util_1.getLocation)().href);\n if (walletLinkUrl) {\n url.searchParams.append('wl_url', walletLinkUrl);\n }\n const anchorTag = document.createElement('a');\n anchorTag.target = 'cbw-opener';\n anchorTag.href = url.href;\n anchorTag.rel = 'noreferrer noopener';\n anchorTag.click();\n }\n openCoinbaseWalletDeeplink(walletLinkUrl) {\n this.redirectDialog.present({\n title: 'Redirecting to Coinbase Wallet...',\n buttonText: 'Open',\n onButtonClick: () => {\n this.redirectToCoinbaseWallet(walletLinkUrl);\n },\n });\n setTimeout(() => {\n this.redirectToCoinbaseWallet(walletLinkUrl);\n }, 99);\n }\n showConnecting(_options) {\n // it uses the return callback to clear the dialog\n return () => {\n this.redirectDialog.clear();\n };\n }\n}\nexports.WLMobileRelayUI = WLMobileRelayUI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletLinkRelayUI = void 0;\nconst cssReset_1 = require(\"./components/cssReset/cssReset\");\nconst Snackbar_1 = require(\"./components/Snackbar/Snackbar\");\nclass WalletLinkRelayUI {\n constructor() {\n this.attached = false;\n this.snackbar = new Snackbar_1.Snackbar();\n }\n attach() {\n if (this.attached) {\n throw new Error('Coinbase Wallet SDK UI is already attached');\n }\n const el = document.documentElement;\n const container = document.createElement('div');\n container.className = '-cbwsdk-css-reset';\n el.appendChild(container);\n this.snackbar.attach(container);\n this.attached = true;\n (0, cssReset_1.injectCssReset)();\n }\n showConnecting(options) {\n let snackbarProps;\n if (options.isUnlinkedErrorState) {\n snackbarProps = {\n autoExpand: true,\n message: 'Connection lost',\n menuItems: [\n {\n isRed: false,\n info: 'Reset connection',\n svgWidth: '10',\n svgHeight: '11',\n path: 'M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z',\n defaultFillRule: 'evenodd',\n defaultClipRule: 'evenodd',\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n else {\n snackbarProps = {\n message: 'Confirm on phone',\n menuItems: [\n {\n isRed: true,\n info: 'Cancel transaction',\n svgWidth: '11',\n svgHeight: '11',\n path: 'M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z',\n defaultFillRule: 'inherit',\n defaultClipRule: 'inherit',\n onClick: options.onCancel,\n },\n {\n isRed: false,\n info: 'Reset connection',\n svgWidth: '10',\n svgHeight: '11',\n path: 'M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z',\n defaultFillRule: 'evenodd',\n defaultClipRule: 'evenodd',\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n return this.snackbar.presentItem(snackbarProps);\n }\n}\nexports.WalletLinkRelayUI = WalletLinkRelayUI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = (() => `.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s;background-color:rgba(10,11,13,.5)}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:20px;border-radius:8px;background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box p{display:block;font-weight:400;font-size:14px;line-height:20px;padding-bottom:12px;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box button{appearance:none;border:none;background:none;color:#0052ff;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark{background-color:#0a0b0d;color:#fff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark button{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light{background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light button{color:#0052ff}`)();\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedirectDialog = void 0;\nconst clsx_1 = __importDefault(require(\"clsx\"));\nconst preact_1 = require(\"preact\");\nconst cssReset_1 = require(\"../cssReset/cssReset\");\nconst Snackbar_1 = require(\"../Snackbar/Snackbar\");\nconst util_1 = require(\"../util\");\nconst RedirectDialog_css_1 = __importDefault(require(\"./RedirectDialog-css\"));\nclass RedirectDialog {\n constructor() {\n this.root = null;\n this.darkMode = (0, util_1.isDarkMode)();\n }\n attach() {\n const el = document.documentElement;\n this.root = document.createElement('div');\n this.root.className = '-cbwsdk-css-reset';\n el.appendChild(this.root);\n (0, cssReset_1.injectCssReset)();\n }\n present(props) {\n this.render(props);\n }\n clear() {\n this.render(null);\n }\n render(props) {\n if (!this.root)\n return;\n (0, preact_1.render)(null, this.root);\n if (!props)\n return;\n (0, preact_1.render)((0, preact_1.h)(RedirectDialogContent, Object.assign({}, props, { onDismiss: () => {\n this.clear();\n }, darkMode: this.darkMode })), this.root);\n }\n}\nexports.RedirectDialog = RedirectDialog;\nconst RedirectDialogContent = ({ title, buttonText, darkMode, onButtonClick, onDismiss }) => {\n const theme = darkMode ? 'dark' : 'light';\n return ((0, preact_1.h)(Snackbar_1.SnackbarContainer, { darkMode: darkMode },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-redirect-dialog\" },\n (0, preact_1.h)(\"style\", null, RedirectDialog_css_1.default),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-redirect-dialog-backdrop\", onClick: onDismiss }),\n (0, preact_1.h)(\"div\", { class: (0, clsx_1.default)('-cbwsdk-redirect-dialog-box', theme) },\n (0, preact_1.h)(\"p\", null, title),\n (0, preact_1.h)(\"button\", { onClick: onButtonClick }, buttonText)))));\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = (() => `.-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}`)();\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SnackbarInstance = exports.SnackbarContainer = exports.Snackbar = void 0;\nconst clsx_1 = __importDefault(require(\"clsx\"));\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst util_1 = require(\"../util\");\nconst Snackbar_css_1 = __importDefault(require(\"./Snackbar-css\"));\nconst cblogo = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`;\nconst gearIcon = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=`;\nclass Snackbar {\n constructor() {\n this.items = new Map();\n this.nextItemKey = 0;\n this.root = null;\n this.darkMode = (0, util_1.isDarkMode)();\n }\n attach(el) {\n this.root = document.createElement('div');\n this.root.className = '-cbwsdk-snackbar-root';\n el.appendChild(this.root);\n this.render();\n }\n presentItem(itemProps) {\n const key = this.nextItemKey++;\n this.items.set(key, itemProps);\n this.render();\n return () => {\n this.items.delete(key);\n this.render();\n };\n }\n clear() {\n this.items.clear();\n this.render();\n }\n render() {\n if (!this.root) {\n return;\n }\n (0, preact_1.render)((0, preact_1.h)(\"div\", null,\n (0, preact_1.h)(exports.SnackbarContainer, { darkMode: this.darkMode }, Array.from(this.items.entries()).map(([key, itemProps]) => ((0, preact_1.h)(exports.SnackbarInstance, Object.assign({}, itemProps, { key: key })))))), this.root);\n }\n}\nexports.Snackbar = Snackbar;\nconst SnackbarContainer = (props) => ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)('-cbwsdk-snackbar-container') },\n (0, preact_1.h)(\"style\", null, Snackbar_css_1.default),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar\" }, props.children)));\nexports.SnackbarContainer = SnackbarContainer;\nconst SnackbarInstance = ({ autoExpand, message, menuItems, }) => {\n const [hidden, setHidden] = (0, hooks_1.useState)(true);\n const [expanded, setExpanded] = (0, hooks_1.useState)(autoExpand !== null && autoExpand !== void 0 ? autoExpand : false);\n (0, hooks_1.useEffect)(() => {\n const timers = [\n window.setTimeout(() => {\n setHidden(false);\n }, 1),\n window.setTimeout(() => {\n setExpanded(true);\n }, 10000),\n ];\n return () => {\n timers.forEach(window.clearTimeout);\n };\n });\n const toggleExpanded = () => {\n setExpanded(!expanded);\n };\n return ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)('-cbwsdk-snackbar-instance', hidden && '-cbwsdk-snackbar-instance-hidden', expanded && '-cbwsdk-snackbar-instance-expanded') },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-header\", onClick: toggleExpanded },\n (0, preact_1.h)(\"img\", { src: cblogo, class: \"-cbwsdk-snackbar-instance-header-cblogo\" }),\n ' ',\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-header-message\" }, message),\n (0, preact_1.h)(\"div\", { class: \"-gear-container\" },\n !expanded && ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"circle\", { cx: \"12\", cy: \"12\", r: \"12\", fill: \"#F5F7F8\" }))),\n (0, preact_1.h)(\"img\", { src: gearIcon, class: \"-gear-icon\", title: \"Expand\" }))),\n menuItems && menuItems.length > 0 && ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-menu\" }, menuItems.map((action, i) => ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)('-cbwsdk-snackbar-instance-menu-item', action.isRed && '-cbwsdk-snackbar-instance-menu-item-is-red'), onClick: action.onClick, key: i },\n (0, preact_1.h)(\"svg\", { width: action.svgWidth, height: action.svgHeight, viewBox: \"0 0 10 11\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": action.defaultFillRule, \"clip-rule\": action.defaultClipRule, d: action.path, fill: \"#AAAAAA\" })),\n (0, preact_1.h)(\"span\", { class: (0, clsx_1.default)('-cbwsdk-snackbar-instance-menu-item-info', action.isRed && '-cbwsdk-snackbar-instance-menu-item-info-is-red') }, action.info))))))));\n};\nexports.SnackbarInstance = SnackbarInstance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = (() => `@namespace svg \"http://www.w3.org/2000/svg\";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;counter-increment:none;counter-reset:none;direction:ltr;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\201C\" \"\\\\201D\" \"\\\\2018\" \"\\\\2019\";tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset strong{font-weight:bold}.-cbwsdk-css-reset *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}`)();\n","\"use strict\";\n// Copyright (c) 2018-2023 Coinbase, Inc. \nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectCssReset = void 0;\nconst cssReset_css_1 = __importDefault(require(\"./cssReset-css\"));\nfunction injectCssReset() {\n const styleEl = document.createElement('style');\n styleEl.type = 'text/css';\n styleEl.appendChild(document.createTextNode(cssReset_css_1.default));\n document.documentElement.appendChild(styleEl);\n}\nexports.injectCssReset = injectCssReset;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isDarkMode = exports.isMobileWeb = exports.getLocation = exports.createQrUrl = void 0;\nfunction createQrUrl(sessionId, sessionSecret, serverUrl, isParentConnection, version, chainId) {\n const sessionIdKey = isParentConnection ? 'parent-id' : 'id';\n const query = new URLSearchParams({\n [sessionIdKey]: sessionId,\n secret: sessionSecret,\n server: serverUrl,\n v: version,\n chainId: chainId.toString(),\n }).toString();\n const qrUrl = `${serverUrl}/#/link?${query}`;\n return qrUrl;\n}\nexports.createQrUrl = createQrUrl;\nfunction isInIFrame() {\n try {\n return window.frameElement !== null;\n }\n catch (e) {\n return false;\n }\n}\nfunction getLocation() {\n try {\n if (isInIFrame() && window.top) {\n return window.top.location;\n }\n return window.location;\n }\n catch (e) {\n return window.location;\n }\n}\nexports.getLocation = getLocation;\nfunction isMobileWeb() {\n var _a;\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent);\n}\nexports.isMobileWeb = isMobileWeb;\nfunction isDarkMode() {\n var _a, _b;\n return (_b = (_a = window === null || window === void 0 ? void 0 : window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, '(prefers-color-scheme: dark)').matches) !== null && _b !== void 0 ? _b : false;\n}\nexports.isDarkMode = isDarkMode;\n","\"use strict\";\n// Copyright (c) 2018-2024 Coinbase, Inc. \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopedLocalStorage = void 0;\nclass ScopedLocalStorage {\n constructor(scope, module) {\n this.scope = scope;\n this.module = module;\n }\n setItem(key, value) {\n localStorage.setItem(this.scopedKey(key), value);\n }\n getItem(key) {\n return localStorage.getItem(this.scopedKey(key));\n }\n removeItem(key) {\n localStorage.removeItem(this.scopedKey(key));\n }\n clear() {\n const prefix = this.scopedKey('');\n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (typeof key === 'string' && key.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach((key) => localStorage.removeItem(key));\n }\n scopedKey(key) {\n return `-${this.scope}${this.module ? `:${this.module}` : ''}:${key}`;\n }\n static clearAll() {\n new ScopedLocalStorage('CBWSDK').clear();\n new ScopedLocalStorage('walletlink').clear();\n }\n}\nexports.ScopedLocalStorage = ScopedLocalStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decryptContent = exports.encryptContent = exports.importKeyFromHexString = exports.exportKeyToHexString = exports.decrypt = exports.encrypt = exports.deriveSharedSecret = exports.generateKeyPair = void 0;\nconst util_1 = require(\"../core/type/util\");\nasync function generateKeyPair() {\n return crypto.subtle.generateKey({\n name: 'ECDH',\n namedCurve: 'P-256',\n }, true, ['deriveKey']);\n}\nexports.generateKeyPair = generateKeyPair;\nasync function deriveSharedSecret(ownPrivateKey, peerPublicKey) {\n return crypto.subtle.deriveKey({\n name: 'ECDH',\n public: peerPublicKey,\n }, ownPrivateKey, {\n name: 'AES-GCM',\n length: 256,\n }, false, ['encrypt', 'decrypt']);\n}\nexports.deriveSharedSecret = deriveSharedSecret;\nasync function encrypt(sharedSecret, plainText) {\n const iv = crypto.getRandomValues(new Uint8Array(12));\n const cipherText = await crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv,\n }, sharedSecret, new TextEncoder().encode(plainText));\n return { iv, cipherText };\n}\nexports.encrypt = encrypt;\nasync function decrypt(sharedSecret, { iv, cipherText }) {\n const plainText = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n }, sharedSecret, cipherText);\n return new TextDecoder().decode(plainText);\n}\nexports.decrypt = decrypt;\nfunction getFormat(keyType) {\n switch (keyType) {\n case 'public':\n return 'spki';\n case 'private':\n return 'pkcs8';\n }\n}\nasync function exportKeyToHexString(type, key) {\n const format = getFormat(type);\n const exported = await crypto.subtle.exportKey(format, key);\n return (0, util_1.uint8ArrayToHex)(new Uint8Array(exported));\n}\nexports.exportKeyToHexString = exportKeyToHexString;\nasync function importKeyFromHexString(type, hexString) {\n const format = getFormat(type);\n const arrayBuffer = (0, util_1.hexStringToUint8Array)(hexString).buffer;\n return await crypto.subtle.importKey(format, arrayBuffer, {\n name: 'ECDH',\n namedCurve: 'P-256',\n }, true, type === 'private' ? ['deriveKey'] : []);\n}\nexports.importKeyFromHexString = importKeyFromHexString;\nasync function encryptContent(content, sharedSecret) {\n const serialized = JSON.stringify(content, (_, value) => {\n if (!(value instanceof Error))\n return value;\n const error = value;\n return Object.assign(Object.assign({}, (error.code ? { code: error.code } : {})), { message: error.message });\n });\n return encrypt(sharedSecret, serialized);\n}\nexports.encryptContent = encryptContent;\nasync function decryptContent(encryptedData, sharedSecret) {\n return JSON.parse(await decrypt(sharedSecret, encryptedData));\n}\nexports.decryptContent = decryptContent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkErrorForInvalidRequestArgs = exports.getCoinbaseInjectedProvider = exports.getCoinbaseInjectedSigner = exports.fetchRPCRequest = void 0;\nconst version_1 = require(\"../version\");\nconst error_1 = require(\"../core/error\");\nasync function fetchRPCRequest(request, chain) {\n if (!chain.rpcUrl)\n throw error_1.standardErrors.rpc.internal('No RPC URL set for chain');\n const requestBody = Object.assign(Object.assign({}, request), { jsonrpc: '2.0', id: crypto.randomUUID() });\n const res = await window.fetch(chain.rpcUrl, {\n method: 'POST',\n body: JSON.stringify(requestBody),\n mode: 'cors',\n headers: { 'Content-Type': 'application/json', 'X-Cbw-Sdk-Version': version_1.LIB_VERSION },\n });\n const response = await res.json();\n return response.result;\n}\nexports.fetchRPCRequest = fetchRPCRequest;\nfunction getCoinbaseInjectedSigner() {\n const window = globalThis;\n return window.coinbaseWalletSigner;\n}\nexports.getCoinbaseInjectedSigner = getCoinbaseInjectedSigner;\nfunction getCoinbaseInjectedProvider({ metadata, preference, }) {\n var _a, _b, _c;\n const window = globalThis;\n if (preference.options !== 'smartWalletOnly') {\n const signer = getCoinbaseInjectedSigner();\n if (signer)\n return undefined; // use signer instead\n const extension = window.coinbaseWalletExtension;\n if (extension) {\n const { appName, appLogoUrl, appChainIds } = metadata;\n (_a = extension.setAppInfo) === null || _a === void 0 ? void 0 : _a.call(extension, appName, appLogoUrl, appChainIds);\n return extension;\n }\n }\n const ethereum = (_b = window.ethereum) !== null && _b !== void 0 ? _b : (_c = window.top) === null || _c === void 0 ? void 0 : _c.ethereum;\n if (ethereum === null || ethereum === void 0 ? void 0 : ethereum.isCoinbaseBrowser) {\n return ethereum;\n }\n return undefined;\n}\nexports.getCoinbaseInjectedProvider = getCoinbaseInjectedProvider;\n/**\n * Validates the arguments for an invalid request and returns an error if any validation fails.\n * Valid request args are defined here: https://eips.ethereum.org/EIPS/eip-1193#request\n * @param args The request arguments to validate.\n * @returns An error object if the arguments are invalid, otherwise undefined.\n */\nfunction checkErrorForInvalidRequestArgs(args) {\n if (!args || typeof args !== 'object' || Array.isArray(args)) {\n return error_1.standardErrors.rpc.invalidParams({\n message: 'Expected a single, non-array, object argument.',\n data: args,\n });\n }\n const { method, params } = args;\n if (typeof method !== 'string' || method.length === 0) {\n return error_1.standardErrors.rpc.invalidParams({\n message: \"'args.method' must be a non-empty string.\",\n data: args,\n });\n }\n if (params !== undefined &&\n !Array.isArray(params) &&\n (typeof params !== 'object' || params === null)) {\n return error_1.standardErrors.rpc.invalidParams({\n message: \"'args.params' must be an object or array if provided.\",\n data: args,\n });\n }\n return undefined;\n}\nexports.checkErrorForInvalidRequestArgs = checkErrorForInvalidRequestArgs;\n","// Extracted from https://github.com/ethereumjs/ethereumjs-abi and stripped out irrelevant code\n// Original code licensed under the MIT License - Copyright (c) 2015 Alex Beregszaszi\n\n/* eslint-disable */\n//prettier-ignore\nconst util = require('./util')\n\n// Convert from short to canonical names\n// FIXME: optimise or make this nicer?\nfunction elementaryName (name) {\n if (name.startsWith('int[')) {\n return 'int256' + name.slice(3)\n } else if (name === 'int') {\n return 'int256'\n } else if (name.startsWith('uint[')) {\n return 'uint256' + name.slice(4)\n } else if (name === 'uint') {\n return 'uint256'\n } else if (name.startsWith('fixed[')) {\n return 'fixed128x128' + name.slice(5)\n } else if (name === 'fixed') {\n return 'fixed128x128'\n } else if (name.startsWith('ufixed[')) {\n return 'ufixed128x128' + name.slice(6)\n } else if (name === 'ufixed') {\n return 'ufixed128x128'\n }\n return name\n}\n\n// Parse N from type\nfunction parseTypeN (type) {\n return parseInt(/^\\D+(\\d+)$/.exec(type)[1], 10)\n}\n\n// Parse N,M from typex\nfunction parseTypeNxM (type) {\n var tmp = /^\\D+(\\d+)x(\\d+)$/.exec(type)\n return [ parseInt(tmp[1], 10), parseInt(tmp[2], 10) ]\n}\n\n// Parse N in type[] where \"type\" can itself be an array type.\nfunction parseTypeArray (type) {\n var tmp = type.match(/(.*)\\[(.*?)\\]$/)\n if (tmp) {\n return tmp[2] === '' ? 'dynamic' : parseInt(tmp[2], 10)\n }\n return null\n}\n\nfunction parseNumber (arg) {\n var type = typeof arg\n if (type === 'string' || type === 'number') {\n return BigInt(arg)\n } else if (type === 'bigint') {\n return arg\n } else {\n throw new Error('Argument is not a number')\n }\n}\n\n// Encodes a single item (can be dynamic array)\n// @returns: Buffer\nfunction encodeSingle (type, arg) {\n var size, num, ret, i\n\n if (type === 'address') {\n return encodeSingle('uint160', parseNumber(arg))\n } else if (type === 'bool') {\n return encodeSingle('uint8', arg ? 1 : 0)\n } else if (type === 'string') {\n return encodeSingle('bytes', new Buffer(arg, 'utf8'))\n } else if (isArray(type)) {\n // this part handles fixed-length ([2]) and variable length ([]) arrays\n // NOTE: we catch here all calls to arrays, that simplifies the rest\n if (typeof arg.length === 'undefined') {\n throw new Error('Not an array?')\n }\n size = parseTypeArray(type)\n if (size !== 'dynamic' && size !== 0 && arg.length > size) {\n throw new Error('Elements exceed array size: ' + size)\n }\n ret = []\n type = type.slice(0, type.lastIndexOf('['))\n if (typeof arg === 'string') {\n arg = JSON.parse(arg)\n }\n for (i in arg) {\n ret.push(encodeSingle(type, arg[i]))\n }\n if (size === 'dynamic') {\n var length = encodeSingle('uint256', arg.length)\n ret.unshift(length)\n }\n return Buffer.concat(ret)\n } else if (type === 'bytes') {\n arg = new Buffer(arg)\n\n ret = Buffer.concat([ encodeSingle('uint256', arg.length), arg ])\n\n if ((arg.length % 32) !== 0) {\n ret = Buffer.concat([ ret, util.zeros(32 - (arg.length % 32)) ])\n }\n\n return ret\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n return util.setLengthRight(arg, 32)\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(arg)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n if (num < 0) {\n throw new Error('Supplied uint is negative')\n }\n\n return util.bufferBEFromBigInt(num, 32);\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(arg)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n const twos = util.twosFromBigInt(num, 256);\n\n return util.bufferBEFromBigInt(twos, 32);\n } else if (type.startsWith('ufixed')) {\n size = parseTypeNxM(type)\n\n num = parseNumber(arg)\n\n if (num < 0) {\n throw new Error('Supplied ufixed is negative')\n }\n\n return encodeSingle('uint256', num * BigInt(2) ** BigInt(size[1]))\n } else if (type.startsWith('fixed')) {\n size = parseTypeNxM(type)\n\n return encodeSingle('int256', parseNumber(arg) * BigInt(2) ** BigInt(size[1]))\n }\n\n throw new Error('Unsupported or invalid type: ' + type)\n}\n\n// Is a type dynamic?\nfunction isDynamic (type) {\n // FIXME: handle all types? I don't think anything is missing now\n return (type === 'string') || (type === 'bytes') || (parseTypeArray(type) === 'dynamic')\n}\n\n// Is a type an array?\nfunction isArray (type) {\n return type.lastIndexOf(']') === type.length - 1\n}\n\n// Encode a method/event with arguments\n// @types an array of string type names\n// @args an array of the appropriate values\nfunction rawEncode (types, values) {\n var output = []\n var data = []\n\n var headLength = 32 * types.length\n\n for (var i in types) {\n var type = elementaryName(types[i])\n var value = values[i]\n var cur = encodeSingle(type, value)\n\n // Use the head/tail method for storing dynamic data\n if (isDynamic(type)) {\n output.push(encodeSingle('uint256', headLength))\n data.push(cur)\n headLength += cur.length\n } else {\n output.push(cur)\n }\n }\n\n return Buffer.concat(output.concat(data))\n}\n\nfunction solidityPack (types, values) {\n if (types.length !== values.length) {\n throw new Error('Number of types are not matching the values')\n }\n\n var size, num\n var ret = []\n\n for (var i = 0; i < types.length; i++) {\n var type = elementaryName(types[i])\n var value = values[i]\n\n if (type === 'bytes') {\n ret.push(value)\n } else if (type === 'string') {\n ret.push(new Buffer(value, 'utf8'))\n } else if (type === 'bool') {\n ret.push(new Buffer(value ? '01' : '00', 'hex'))\n } else if (type === 'address') {\n ret.push(util.setLength(value, 20))\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n ret.push(util.setLengthRight(value, size))\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(value)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n ret.push(util.bufferBEFromBigInt(num, size / 8))\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(value)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n const twos = util.twosFromBigInt(num, size);\n ret.push(util.bufferBEFromBigInt(twos, size / 8))\n } else {\n // FIXME: support all other types\n throw new Error('Unsupported or invalid type: ' + type)\n }\n }\n\n return Buffer.concat(ret)\n}\n\nfunction soliditySHA3 (types, values) {\n return util.keccak(solidityPack(types, values))\n}\n\nmodule.exports = {\n rawEncode,\n solidityPack,\n soliditySHA3\n}\n","const util = require('./util')\nconst abi = require('./abi')\n\nconst TYPED_MESSAGE_SCHEMA = {\n type: 'object',\n properties: {\n types: {\n type: 'object',\n additionalProperties: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: {type: 'string'},\n type: {type: 'string'},\n },\n required: ['name', 'type'],\n },\n },\n },\n primaryType: {type: 'string'},\n domain: {type: 'object'},\n message: {type: 'object'},\n },\n required: ['types', 'primaryType', 'domain', 'message'],\n}\n\n/**\n * A collection of utility functions used for signing typed data\n */\nconst TypedDataUtils = {\n /**\n * Encodes an object by encoding and concatenating each of its members\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of an object\n */\n encodeData (primaryType, data, types, useV4 = true) {\n const encodedTypes = ['bytes32']\n const encodedValues = [this.hashType(primaryType, types)]\n\n if(useV4) {\n const encodeField = (name, type, value) => {\n if (types[type] !== undefined) {\n return ['bytes32', value == null ?\n '0x0000000000000000000000000000000000000000000000000000000000000000' :\n util.keccak(this.encodeData(type, value, types, useV4))]\n }\n\n if(value === undefined)\n throw new Error(`missing value for field ${name} of type ${type}`)\n\n if (type === 'bytes') {\n return ['bytes32', util.keccak(value)]\n }\n\n if (type === 'string') {\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n return ['bytes32', util.keccak(value)]\n }\n\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['))\n const typeValuePairs = value.map(item =>\n encodeField(name, parsedType, item))\n return ['bytes32', util.keccak(abi.rawEncode(\n typeValuePairs.map(([type]) => type),\n typeValuePairs.map(([, value]) => value),\n ))]\n }\n\n return [type, value]\n }\n\n for (const field of types[primaryType]) {\n const [type, value] = encodeField(field.name, field.type, data[field.name])\n encodedTypes.push(type)\n encodedValues.push(value)\n }\n } else {\n for (const field of types[primaryType]) {\n let value = data[field.name]\n if (value !== undefined) {\n if (field.type === 'bytes') {\n encodedTypes.push('bytes32')\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (field.type === 'string') {\n encodedTypes.push('bytes32')\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (types[field.type] !== undefined) {\n encodedTypes.push('bytes32')\n value = util.keccak(this.encodeData(field.type, value, types, useV4))\n encodedValues.push(value)\n } else if (field.type.lastIndexOf(']') === field.type.length - 1) {\n throw new Error('Arrays currently unimplemented in encodeData')\n } else {\n encodedTypes.push(field.type)\n encodedValues.push(value)\n }\n }\n }\n }\n\n return abi.rawEncode(encodedTypes, encodedValues)\n },\n\n /**\n * Encodes the type of an object by encoding a comma delimited list of its members\n *\n * @param {string} primaryType - Root type to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of the type of an object\n */\n encodeType (primaryType, types) {\n let result = ''\n let deps = this.findTypeDependencies(primaryType, types).filter(dep => dep !== primaryType)\n deps = [primaryType].concat(deps.sort())\n for (const type of deps) {\n const children = types[type]\n if (!children) {\n throw new Error('No type definition specified: ' + type)\n }\n result += type + '(' + types[type].map(({ name, type }) => type + ' ' + name).join(',') + ')'\n }\n return result\n },\n\n /**\n * Finds all types within a type definition object\n *\n * @param {string} primaryType - Root type\n * @param {Object} types - Type definitions\n * @param {Array} results - current set of accumulated types\n * @returns {Array} - Set of all types found in the type definition\n */\n findTypeDependencies (primaryType, types, results = []) {\n primaryType = primaryType.match(/^\\w*/)[0]\n if (results.includes(primaryType) || types[primaryType] === undefined) { return results }\n results.push(primaryType)\n for (const field of types[primaryType]) {\n for (const dep of this.findTypeDependencies(field.type, types, results)) {\n !results.includes(dep) && results.push(dep)\n }\n }\n return results\n },\n\n /**\n * Hashes an object\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to hash\n * @param {Object} types - Type definitions\n * @returns {Buffer} - Hash of an object\n */\n hashStruct (primaryType, data, types, useV4 = true) {\n return util.keccak(this.encodeData(primaryType, data, types, useV4))\n },\n\n /**\n * Hashes the type of an object\n *\n * @param {string} primaryType - Root type to hash\n * @param {Object} types - Type definitions\n * @returns {string} - Hash of an object\n */\n hashType (primaryType, types) {\n return util.keccak(this.encodeType(primaryType, types))\n },\n\n /**\n * Removes properties from a message object that are not defined per EIP-712\n *\n * @param {Object} data - typed message object\n * @returns {Object} - typed message object with only allowed fields\n */\n sanitizeData (data) {\n const sanitizedData = {}\n for (const key in TYPED_MESSAGE_SCHEMA.properties) {\n data[key] && (sanitizedData[key] = data[key])\n }\n if (sanitizedData.types) {\n sanitizedData.types = Object.assign({ EIP712Domain: [] }, sanitizedData.types)\n }\n return sanitizedData\n },\n\n /**\n * Returns the hash of a typed message as per EIP-712 for signing\n *\n * @param {Object} typedData - Types message data to sign\n * @returns {string} - sha3 hash for signing\n */\n hash (typedData, useV4 = true) {\n const sanitizedData = this.sanitizeData(typedData)\n const parts = [Buffer.from('1901', 'hex')]\n parts.push(this.hashStruct('EIP712Domain', sanitizedData.domain, sanitizedData.types, useV4))\n if (sanitizedData.primaryType !== 'EIP712Domain') {\n parts.push(this.hashStruct(sanitizedData.primaryType, sanitizedData.message, sanitizedData.types, useV4))\n }\n return util.keccak(Buffer.concat(parts))\n },\n}\n\nmodule.exports = {\n TYPED_MESSAGE_SCHEMA,\n TypedDataUtils,\n\n hashForSignTypedDataLegacy: function (msgParams) {\n return typedSignatureHashLegacy(msgParams.data)\n },\n\n hashForSignTypedData_v3: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data, false)\n },\n\n hashForSignTypedData_v4: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data)\n },\n}\n\n/**\n * @param typedData - Array of data along with types, as per EIP712.\n * @returns Buffer\n */\nfunction typedSignatureHashLegacy(typedData) {\n const error = new Error('Expect argument to be non-empty array')\n if (typeof typedData !== 'object' || !typedData.length) throw error\n\n const data = typedData.map(function (e) {\n return e.type === 'bytes' ? util.toBuffer(e.value) : e.value\n })\n const types = typedData.map(function (e) { return e.type })\n const schema = typedData.map(function (e) {\n if (!e.name) throw error\n return e.type + ' ' + e.name\n })\n\n return abi.soliditySHA3(\n ['bytes32', 'bytes32'],\n [\n abi.soliditySHA3(new Array(typedData.length).fill('string'), schema),\n abi.soliditySHA3(types, data)\n ]\n )\n}\n","// Extracted from https://github.com/ethereumjs/ethereumjs-util and stripped out irrelevant code\n// Original code licensed under the Mozilla Public License Version 2.0\n\n/* eslint-disable */\n//prettier-ignore\nconst createKeccakHash = require('keccak/js')\n\n/**\n * Returns a buffer filled with 0s\n * @method zeros\n * @param {Number} bytes the number of bytes the buffer should be\n * @return {Buffer}\n */\nfunction zeros (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0)\n}\n\nfunction bitLengthFromBigInt (num) {\n return num.toString(2).length\n}\n\nfunction bufferBEFromBigInt(num, length) {\n let hex = num.toString(16);\n // Ensure the hex string length is even\n if (hex.length % 2 !== 0) hex = '0' + hex;\n // Convert hex string to a byte array\n const byteArray = hex.match(/.{1,2}/g).map(byte => parseInt(byte, 16));\n // Ensure the byte array is of the specified length\n while (byteArray.length < length) {\n byteArray.unshift(0); // Prepend with zeroes if shorter than required length\n }\n\n return Buffer.from(byteArray);\n}\n\nfunction twosFromBigInt(value, width) {\n const isNegative = value < 0n;\n let result;\n if (isNegative) {\n // Prepare a mask for the specified width to perform NOT operation\n const mask = (1n << BigInt(width)) - 1n;\n // Invert bits (using NOT) and add one\n result = (~value & mask) + 1n;\n } else {\n result = value;\n }\n // Ensure the result fits in the specified width\n result &= (1n << BigInt(width)) - 1n;\n\n return result;\n}\n\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @method setLength\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @param {Boolean} [right=false] whether to start padding form the left or right\n * @return {Buffer|Array}\n */\nfunction setLength (msg, length, right) {\n const buf = zeros(length)\n msg = toBuffer(msg)\n if (right) {\n if (msg.length < length) {\n msg.copy(buf)\n return buf\n }\n return msg.slice(0, length)\n } else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length)\n return buf\n }\n return msg.slice(-length)\n }\n}\n\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @return {Buffer|Array}\n */\nfunction setLengthRight (msg, length) {\n return setLength(msg, length, true)\n}\n\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BIgInt` and other objects with a `toArray()` method.\n * @param {*} v the value\n */\nfunction toBuffer (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v)\n } else if (typeof v === 'string') {\n if (isHexString(v)) {\n v = Buffer.from(padToEven(stripHexPrefix(v)), 'hex')\n } else {\n v = Buffer.from(v)\n }\n } else if (typeof v === 'number') {\n v = intToBuffer(v)\n } else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0)\n } else if (typeof v === 'bigint') {\n v = bufferBEFromBigInt(v)\n } else if (v.toArray) {\n // TODO: bigint should be handled above, may remove this duplicate\n // converts a BigInt to a Buffer\n v = Buffer.from(v.toArray())\n } else {\n throw new Error('invalid type')\n }\n }\n return v\n}\n\n/**\n * Converts a `Buffer` into a hex `String`\n * @param {Buffer} buf\n * @return {String}\n */\nfunction bufferToHex (buf) {\n buf = toBuffer(buf)\n return '0x' + buf.toString('hex')\n}\n\n/**\n * Creates Keccak hash of the input\n * @param {Buffer|Array|String|Number} a the input data\n * @param {Number} [bits=256] the Keccak width\n * @return {Buffer}\n */\nfunction keccak (a, bits) {\n a = toBuffer(a)\n if (!bits) bits = 256\n\n return createKeccakHash('keccak' + bits).update(a).digest()\n}\n\nfunction padToEven (str) {\n return str.length % 2 ? '0' + str : str\n}\n\nfunction isHexString (str) {\n return typeof str === 'string' && str.match(/^0x[0-9A-Fa-f]*$/)\n}\n\nfunction stripHexPrefix (str) {\n if (typeof str === 'string' && str.startsWith('0x')) {\n return str.slice(2)\n }\n return str\n}\n\nmodule.exports = {\n zeros,\n setLength,\n setLengthRight,\n isHexString,\n stripHexPrefix,\n toBuffer,\n bufferToHex,\n keccak,\n bitLengthFromBigInt,\n bufferBEFromBigInt,\n twosFromBigInt\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LIB_VERSION = void 0;\nexports.LIB_VERSION = '4.0.3';\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","var n,l,u,t,i,o,r,f,e,c,s,a,h={},p=[],v=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){var l=n.parentNode;l&&l.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function k(n){return n.children}function b(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));P.__r=0}function S(n,l,u,t,i,o,r,f,e,c,s){var a,v,y,d,w,_=t&&t.__k||p,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=L(i,u,r,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:f(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=p.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},b.prototype.render=k,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,e=0,c=F(!1),s=F(!0),a=0;export{b as Component,k as Fragment,E as cloneElement,G as createContext,_ as createElement,m as createRef,_ as h,D as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n,a=e.__b,v=e.__r,l=e.diffed,m=e.__c,s=e.unmount,d=e.__;function h(n,t){e.__h&&e.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({__V:c}),u.__[n]}function p(n){return o=1,y(D,n)}function y(n,u,i){var o=h(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function _(n,u){var i=h(t++,3);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function A(n,u){var i=h(t++,4);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function F(n){return o=5,q(function(){return{current:n}},[])}function T(n,t,r){o=6,A(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function q(n,r){var u=h(t++,7);return C(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function x(n,t){return o=8,q(function(){return n},t)}function P(n){var u=r.context[n.__c],i=h(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function V(n,t){e.useDebugValue&&e.useDebugValue(t?t(n):n)}function b(n){var u=h(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=h(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],e.__e(t,n.__v)}}e.__b=function(n){r=null,a&&a(n)},e.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),d&&d(n,t)},e.__r=function(n){v&&v(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},e.diffed=function(n){l&&l(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===e.requestAnimationFrame||((i=e.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},e.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],e.__e(r,n.__v)}}),m&&m(n,t)},e.unmount=function(n){s&&s(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&e.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{x as useCallback,P as useContext,V as useDebugValue,_ as useEffect,b as useErrorBoundary,g as useId,T as useImperativeHandle,A as useLayoutEffect,q as useMemo,y as useReducer,F as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsedMessage = void 0;\nconst api_1 = __importDefault(require(\"apg-js/src/apg-api/api\"));\nconst node_exports_1 = __importDefault(require(\"apg-js/src/apg-lib/node-exports\"));\nconst GRAMMAR = `\nsign-in-with-ethereum =\n domain %s\" wants you to sign in with your Ethereum account:\" LF\n address LF\n LF\n [ statement LF ]\n LF\n %s\"URI: \" URI LF\n %s\"Version: \" version LF\n %s\"Chain ID: \" chain-id LF\n %s\"Nonce: \" nonce LF\n %s\"Issued At: \" issued-at\n [ LF %s\"Expiration Time: \" expiration-time ]\n [ LF %s\"Not Before: \" not-before ]\n [ LF %s\"Request ID: \" request-id ]\n [ LF %s\"Resources:\"\n resources ]\n\ndomain = authority\n\naddress = \"0x\" 40*40HEXDIG\n ; Must also conform to captilization\n ; checksum encoding specified in EIP-55\n ; where applicable (EOAs).\n\nstatement = 1*( reserved / unreserved / \" \" )\n ; The purpose is to exclude LF (line breaks).\n\nversion = \"1\"\n\nnonce = 8*( ALPHA / DIGIT )\n\nissued-at = date-time\nexpiration-time = date-time\nnot-before = date-time\n\nrequest-id = *pchar\n\nchain-id = 1*DIGIT\n ; See EIP-155 for valid CHAIN_IDs.\n\nresources = *( LF resource )\n\nresource = \"- \" URI\n\n; ------------------------------------------------------------------------------\n; RFC 3986\n\nURI = scheme \":\" hier-part [ \"?\" query ] [ \"#\" fragment ]\n\nhier-part = \"//\" authority path-abempty\n / path-absolute\n / path-rootless\n / path-empty\n\nscheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n\nauthority = [ userinfo \"@\" ] host [ \":\" port ]\nuserinfo = *( unreserved / pct-encoded / sub-delims / \":\" )\nhost = IP-literal / IPv4address / reg-name\nport = *DIGIT\n\nIP-literal = \"[\" ( IPv6address / IPvFuture ) \"]\"\n\nIPvFuture = \"v\" 1*HEXDIG \".\" 1*( unreserved / sub-delims / \":\" )\n\nIPv6address = 6( h16 \":\" ) ls32\n / \"::\" 5( h16 \":\" ) ls32\n / [ h16 ] \"::\" 4( h16 \":\" ) ls32\n / [ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n / [ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n / [ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n / [ *4( h16 \":\" ) h16 ] \"::\" ls32\n / [ *5( h16 \":\" ) h16 ] \"::\" h16\n / [ *6( h16 \":\" ) h16 ] \"::\"\n\nh16 = 1*4HEXDIG\nls32 = ( h16 \":\" h16 ) / IPv4address\nIPv4address = dec-octet \".\" dec-octet \".\" dec-octet \".\" dec-octet\ndec-octet = DIGIT ; 0-9\n / %x31-39 DIGIT ; 10-99\n / \"1\" 2DIGIT ; 100-199\n / \"2\" %x30-34 DIGIT ; 200-249\n / \"25\" %x30-35 ; 250-255\n\nreg-name = *( unreserved / pct-encoded / sub-delims )\n\npath-abempty = *( \"/\" segment )\npath-absolute = \"/\" [ segment-nz *( \"/\" segment ) ]\npath-rootless = segment-nz *( \"/\" segment )\npath-empty = 0pchar\n\nsegment = *pchar\nsegment-nz = 1*pchar\n\npchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n\nquery = *( pchar / \"/\" / \"?\" )\n\nfragment = *( pchar / \"/\" / \"?\" )\n\npct-encoded = \"%\" HEXDIG HEXDIG\n\nunreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\nreserved = gen-delims / sub-delims\ngen-delims = \":\" / \"/\" / \"?\" / \"#\" / \"[\" / \"]\" / \"@\"\nsub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\"\n / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n\n; ------------------------------------------------------------------------------\n; RFC 3339\n\ndate-fullyear = 4DIGIT\ndate-month = 2DIGIT ; 01-12\ndate-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on\n ; month/year\ntime-hour = 2DIGIT ; 00-23\ntime-minute = 2DIGIT ; 00-59\ntime-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second\n ; rules\ntime-secfrac = \".\" 1*DIGIT\ntime-numoffset = (\"+\" / \"-\") time-hour \":\" time-minute\ntime-offset = \"Z\" / time-numoffset\n\npartial-time = time-hour \":\" time-minute \":\" time-second\n [time-secfrac]\nfull-date = date-fullyear \"-\" date-month \"-\" date-mday\nfull-time = partial-time time-offset\n\ndate-time = full-date \"T\" full-time\n\n; ------------------------------------------------------------------------------\n; RFC 5234\n\nALPHA = %x41-5A / %x61-7A ; A-Z / a-z\nLF = %x0A\n ; linefeed\nDIGIT = %x30-39\n ; 0-9\nHEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n`;\nclass ParsedMessage {\n constructor(msg) {\n const api = new api_1.default(GRAMMAR);\n api.generate();\n if (api.errors.length) {\n console.error(api.errorsToAscii());\n console.error(api.linesToAscii());\n console.log(api.displayAttributeErrors());\n throw new Error(`ABNF grammar has errors`);\n }\n const grammarObj = api.toObject();\n const parser = new node_exports_1.default.parser();\n parser.ast = new node_exports_1.default.ast();\n const id = node_exports_1.default.ids;\n const domain = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.domain = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks.domain = domain;\n const address = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.address = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks.address = address;\n const statement = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.statement = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks.statement = statement;\n const uri = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n if (!data.uri) {\n data.uri = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n }\n return ret;\n };\n parser.ast.callbacks.uri = uri;\n const version = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.version = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks.version = version;\n const chainId = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.chainId = parseInt(node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength));\n }\n return ret;\n };\n parser.ast.callbacks['chain-id'] = chainId;\n const nonce = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.nonce = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks.nonce = nonce;\n const issuedAt = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.issuedAt = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks['issued-at'] = issuedAt;\n const expirationTime = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.expirationTime = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks['expiration-time'] = expirationTime;\n const notBefore = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.notBefore = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks['not-before'] = notBefore;\n const requestId = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.requestId = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);\n }\n return ret;\n };\n parser.ast.callbacks['request-id'] = requestId;\n const resources = function (state, chars, phraseIndex, phraseLength, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.resources = node_exports_1.default.utils\n .charsToString(chars, phraseIndex, phraseLength)\n .slice(3)\n .split('\\n- ');\n }\n return ret;\n };\n parser.ast.callbacks.resources = resources;\n const result = parser.parse(grammarObj, 'sign-in-with-ethereum', msg);\n if (!result.success) {\n throw new Error(`Invalid message: ${JSON.stringify(result)}`);\n }\n const elements = {};\n parser.ast.translate(elements);\n for (const [key, value] of Object.entries(elements)) {\n this[key] = value;\n }\n }\n}\nexports.ParsedMessage = ParsedMessage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsedMessageRegExp = exports.ParsedMessage = void 0;\nconst abnf_1 = require(\"./abnf\");\nObject.defineProperty(exports, \"ParsedMessage\", { enumerable: true, get: function () { return abnf_1.ParsedMessage; } });\nconst regex_1 = require(\"./regex\");\nObject.defineProperty(exports, \"ParsedMessageRegExp\", { enumerable: true, get: function () { return regex_1.ParsedMessage; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsedMessage = void 0;\nconst DOMAIN = '(?([^?#]*)) wants you to sign in with your Ethereum account:';\nconst ADDRESS = '\\\\n(?0x[a-zA-Z0-9]{40})\\\\n\\\\n';\nconst STATEMENT = '((?[^\\\\n]+)\\\\n)?';\nconst URI = '(([^:?#]+):)?(([^?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))';\nconst URI_LINE = `\\\\nURI: (?${URI}?)`;\nconst VERSION = '\\\\nVersion: (?1)';\nconst CHAIN_ID = '\\\\nChain ID: (?[0-9]+)';\nconst NONCE = '\\\\nNonce: (?[a-zA-Z0-9]{8,})';\nconst DATETIME = `([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(([Zz])|([\\+|\\-]([01][0-9]|2[0-3]):[0-5][0-9]))`;\nconst ISSUED_AT = `\\\\nIssued At: (?${DATETIME})`;\nconst EXPIRATION_TIME = `(\\\\nExpiration Time: (?${DATETIME}))?`;\nconst NOT_BEFORE = `(\\\\nNot Before: (?${DATETIME}))?`;\nconst REQUEST_ID = \"(\\\\nRequest ID: (?[-._~!$&'()*+,;=:@%a-zA-Z0-9]*))?\";\nconst RESOURCES = `(\\\\nResources:(?(\\\\n- ${URI}?)+))?`;\nconst MESSAGE = `^${DOMAIN}${ADDRESS}${STATEMENT}${URI_LINE}${VERSION}${CHAIN_ID}${NONCE}${ISSUED_AT}${EXPIRATION_TIME}${NOT_BEFORE}${REQUEST_ID}${RESOURCES}$`;\nclass ParsedMessage {\n constructor(msg) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n const REGEX = new RegExp(MESSAGE, 'g');\n let match = REGEX.exec(msg);\n if (!match) {\n throw new Error('Message did not match the regular expression.');\n }\n this.match = match;\n this.domain = (_a = match === null || match === void 0 ? void 0 : match.groups) === null || _a === void 0 ? void 0 : _a.domain;\n this.address = (_b = match === null || match === void 0 ? void 0 : match.groups) === null || _b === void 0 ? void 0 : _b.address;\n this.statement = (_c = match === null || match === void 0 ? void 0 : match.groups) === null || _c === void 0 ? void 0 : _c.statement;\n this.uri = (_d = match === null || match === void 0 ? void 0 : match.groups) === null || _d === void 0 ? void 0 : _d.uri;\n this.version = (_e = match === null || match === void 0 ? void 0 : match.groups) === null || _e === void 0 ? void 0 : _e.version;\n this.nonce = (_f = match === null || match === void 0 ? void 0 : match.groups) === null || _f === void 0 ? void 0 : _f.nonce;\n this.chainId = parseInt((_g = match === null || match === void 0 ? void 0 : match.groups) === null || _g === void 0 ? void 0 : _g.chainId);\n this.issuedAt = (_h = match === null || match === void 0 ? void 0 : match.groups) === null || _h === void 0 ? void 0 : _h.issuedAt;\n this.expirationTime = (_j = match === null || match === void 0 ? void 0 : match.groups) === null || _j === void 0 ? void 0 : _j.expirationTime;\n this.notBefore = (_k = match === null || match === void 0 ? void 0 : match.groups) === null || _k === void 0 ? void 0 : _k.notBefore;\n this.requestId = (_l = match === null || match === void 0 ? void 0 : match.groups) === null || _l === void 0 ? void 0 : _l.requestId;\n this.resources = (_o = (_m = match === null || match === void 0 ? void 0 : match.groups) === null || _m === void 0 ? void 0 : _m.resources) === null || _o === void 0 ? void 0 : _o.split('\\n- ').slice(1);\n }\n}\nexports.ParsedMessage = ParsedMessage;\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module is Application Programming Interface (API) for **APG** - the ABNF Parser Generator.\n//\n// *Note on teminology.*\n// APG is a parser generator.\n// However, it really only generates a \"grammar object\" (see below) from the defining SABNF grammar.\n// The generated parser is incomplete at this stage.\n// Remaining, it is the job of the user to develop the generated parser from the grammar object and the **APG** Library (**apg-lib**).\n//\n// The following terminology my help clear up any confusion between the idea of a \"generated parser\" versus a \"generated grammar object\".\n\n// - The generating parser: **APG** is an **APG** parser (yes, there is a circular dependence between **apg-api** and **apg-lib**). We'll call it the generating parser.\n// - The target parser: **APG**'s goal is to generate a parser. We'll call it the target parser.\n// - The target grammar: this is the (ASCII) SABNF grammar defining the target parser.\n// - The target grammar object: **APG** parses the SABNF grammar and generates the JavaScript source for a target grammar object constructor function\n// and/or an actual grammar object.\n// - The final target parser: The user then develops the final target parser using the generated target grammar\n// object and the **APG** parsing library, **apg-lib**.\n// Throws execeptions on fatal errors.\n//\n// src: the input SABNF grammar
\n// may be one of:\n// - Buffer of bytes\n// - JavaScript string\n// - Array of integer character codes\nmodule.exports = function api(src) {\n const thisFileName = 'api.js: ';\n const thisObject = this;\n\n /* PRIVATE PROPERTIES */\n const apglib = require('../apg-lib/node-exports');\n const converter = require('../apg-conv-api/converter');\n const scanner = require('./scanner');\n const parser = new (require('./parser'))();\n const { attributes, showAttributes, showAttributeErrors, showRuleDependencies } = require('./attributes');\n const showRules = require('./show-rules');\n\n /* PRIVATE MEMBERS (FUNCTIONS) */\n /* Convert a phrase (array of character codes) to HTML. */\n const abnfToHtml = function abnfToHtml(chars, beg, len) {\n const NORMAL = 0;\n const CONTROL = 1;\n const INVALID = 2;\n const CONTROL_BEG = ``;\n const CONTROL_END = '';\n const INVALID_BEG = ``;\n const INVALID_END = '';\n let end;\n let html = '';\n const TRUE = true;\n while (TRUE) {\n if (!Array.isArray(chars) || chars.length === 0) {\n break;\n }\n if (typeof beg !== 'number') {\n throw new Error('abnfToHtml: beg must be type number');\n }\n if (beg >= chars.length) {\n break;\n }\n if (typeof len !== 'number' || beg + len >= chars.length) {\n end = chars.length;\n } else {\n end = beg + len;\n }\n let state = NORMAL;\n for (let i = beg; i < end; i += 1) {\n const ch = chars[i];\n if (ch >= 32 && ch <= 126) {\n /* normal - printable ASCII characters */\n if (state === CONTROL) {\n html += CONTROL_END;\n state = NORMAL;\n } else if (state === INVALID) {\n html += INVALID_END;\n state = NORMAL;\n }\n /* handle reserved HTML entity characters */\n switch (ch) {\n case 32:\n html += ' ';\n break;\n case 60:\n html += '<';\n break;\n case 62:\n html += '>';\n break;\n case 38:\n html += '&';\n break;\n case 34:\n html += '"';\n break;\n case 39:\n html += ''';\n break;\n case 92:\n html += '\';\n break;\n default:\n html += String.fromCharCode(ch);\n break;\n }\n } else if (ch === 9 || ch === 10 || ch === 13) {\n /* control characters */\n if (state === NORMAL) {\n html += CONTROL_BEG;\n state = CONTROL;\n } else if (state === INVALID) {\n html += INVALID_END + CONTROL_BEG;\n state = CONTROL;\n }\n if (ch === 9) {\n html += 'TAB';\n }\n if (ch === 10) {\n html += 'LF';\n }\n if (ch === 13) {\n html += 'CR';\n }\n } else {\n /* invalid characters */\n if (state === NORMAL) {\n html += INVALID_BEG;\n state = INVALID;\n } else if (state === CONTROL) {\n html += CONTROL_END + INVALID_BEG;\n state = INVALID;\n }\n /* display character as hexadecimal value */\n html += `\\\\x${apglib.utils.charToHex(ch)}`;\n }\n }\n if (state === INVALID) {\n html += INVALID_END;\n }\n if (state === CONTROL) {\n html += CONTROL_END;\n }\n break;\n }\n return html;\n };\n /* Convert a phrase (array of character codes) to ASCII text. */\n const abnfToAscii = function abnfToAscii(chars, beg, len) {\n let str = '';\n for (let i = beg; i < beg + len; i += 1) {\n const ch = chars[i];\n if (ch >= 32 && ch <= 126) {\n str += String.fromCharCode(ch);\n } else {\n switch (ch) {\n case 9:\n str += '\\\\t';\n break;\n case 10:\n str += '\\\\n';\n break;\n case 13:\n str += '\\\\r';\n break;\n default:\n str += '\\\\unknown';\n break;\n }\n }\n }\n return str;\n };\n /* translate lines (SABNF grammar) to ASCII text */\n const linesToAscii = function linesToAscii(lines) {\n let str = 'Annotated Input Grammar';\n lines.forEach((val) => {\n str += '\\n';\n str += `line no: ${val.lineNo}`;\n str += ` : char index: ${val.beginChar}`;\n str += ` : length: ${val.length}`;\n str += ` : abnf: ${abnfToAscii(thisObject.chars, val.beginChar, val.length)}`;\n });\n str += '\\n';\n return str;\n };\n /* translate lines (SABNF grammar) to HTML */\n const linesToHtml = function linesToHtml(lines) {\n let html = '';\n html += `\\n`;\n const title = 'Annotated Input Grammar';\n html += `${title}\\n`;\n html += '';\n html += 'line no. | first char | length | text | ';\n html += '
\\n';\n lines.forEach((val) => {\n html += '';\n html += `${val.lineNo}`;\n html += ` | ${val.beginChar}`;\n html += ` | ${val.length}`;\n html += ` | ${abnfToHtml(thisObject.chars, val.beginChar, val.length)}`;\n html += ' | ';\n html += '
\\n';\n });\n\n html += '
\\n';\n return html;\n };\n /* Format the error messages to HTML, for page display. */\n const errorsToHtml = function errorsToHtml(errors, lines, chars, title) {\n const [style] = apglib;\n let html = '';\n const errorArrow = `»`;\n html += `\\n`;\n if (title && typeof title === 'string') {\n html += `${title}\\n`;\n }\n html += 'line no. | line offset | error offset | text |
\\n';\n errors.forEach((val) => {\n let line;\n let relchar;\n let beg;\n let end;\n let text;\n let prefix = '';\n let suffix = '';\n if (lines.length === 0) {\n text = errorArrow;\n relchar = 0;\n } else {\n line = lines[val.line];\n beg = line.beginChar;\n if (val.char > beg) {\n prefix = abnfToHtml(chars, beg, val.char - beg);\n }\n beg = val.char;\n end = line.beginChar + line.length;\n if (beg < end) {\n suffix = abnfToHtml(chars, beg, end - beg);\n }\n text = prefix + errorArrow + suffix;\n relchar = val.char - line.beginChar;\n html += '';\n html += `${val.line} | ${line.beginChar} | ${relchar} | ${text} | `;\n html += '
\\n';\n html += '';\n html += ` | ↑: ${apglib.utils.stringToAsciiHtml(val.msg)} | `;\n html += '
\\n';\n }\n });\n html += '
\\n';\n return html;\n };\n /* Display an array of errors in ASCII text */\n const errorsToAscii = function errorsToAscii(errors, lines, chars) {\n let str;\n let line;\n let beg;\n let len;\n str = '';\n errors.forEach((error) => {\n line = lines[error.line];\n str += `${line.lineNo}: `;\n str += `${line.beginChar}: `;\n str += `${error.char - line.beginChar}: `;\n beg = line.beginChar;\n len = error.char - line.beginChar;\n str += abnfToAscii(chars, beg, len);\n str += ' >> ';\n beg = error.char;\n len = line.beginChar + line.length - error.char;\n str += abnfToAscii(chars, beg, len);\n str += '\\n';\n str += `${line.lineNo}: `;\n str += `${line.beginChar}: `;\n str += `${error.char - line.beginChar}: `;\n str += 'error: ';\n str += error.msg;\n str += '\\n';\n });\n return str;\n };\n let isScanned = false;\n let isParsed = false;\n let isTranslated = false;\n let haveAttributes = false;\n let attributeErrors = 0;\n let lineMap;\n\n /* PUBLIC PROPERTIES */\n // The input SABNF grammar as a JavaScript string.\n // this.sabnf;\n // The input SABNF grammar as an array of character codes.\n // this.chars;\n // An array of line objects, defining each line of the input SABNF grammar\n // - lineNo : the zero-based line number\n // - beginChar : offset (into `this.chars`) of the first character in the line\n // - length : the number of characters in the line\n // - textLength : the number of characters of text in the line, excluding the line ending characters\n // - endType : \"CRLF\", \"LF\", \"CR\" or \"none\" if the last line has no line ending characters\n // - invalidChars : `true` if the line contains invalid characters, `false` otherwise\n // this.lines;\n // An array of rule names and data.\n // - name : the rule name\n // - lower : the rule name in lower case\n // - index : the index of the rule (ordered by appearance in SABNF grammar)\n // - isBkr : `true` if this rule has been back referenced, `false` otherwise\n // - opcodes : array of opcodes for this rule\n // - attrs : the rule attributes\n // - ctrl : system data\n // this.rules;\n // An array of UDT names and data.\n // this.udts;\n // An array of errors, if any.\n // - line : the line number containing the error\n // - char : the character offset of the error\n // - msg : the error message\n this.errors = [];\n\n /* CONSTRUCTOR */\n if (Buffer.isBuffer(src)) {\n this.chars = converter.decode('BINARY', src);\n } else if (Array.isArray(src)) {\n this.chars = src.slice();\n } else if (typeof src === 'string') {\n this.chars = converter.decode('STRING', src);\n } else {\n throw new Error(`${thisFileName}input source is not a string, byte Buffer or character array`);\n }\n this.sabnf = converter.encode('STRING', this.chars);\n\n /* PUBLIC MEMBERS (FUNCTIONS) */\n // Scan the input SABNF grammar for invalid characters and catalog the lines via `this.lines`.\n // - strict : (optional) if `true`, all lines, including the last must end with CRLF (\\r\\n),\n // if `false` (in any JavaScript sense) then line endings may be any mix of CRLF, LF, CR, or end-of-file.\n // - trace (*) : (optional) a parser trace object, which will trace the parser that does the scan\n this.scan = function scan(strict, trace) {\n this.lines = scanner(this.chars, this.errors, strict, trace);\n isScanned = true;\n };\n // Parse the input SABNF grammar for correct syntax.\n // - strict : (optional) if `true`, the input grammar must be strict ABNF, conforming to [RFC 5234](https://tools.ietf.org/html/rfc5234)\n // and [RFC 7405](https://tools.ietf.org/html/rfc7405). No superset features allowed.\n // - trace (\\*) : (optional) a parser trace object, which will trace the syntax parser\n //\n // (*)NOTE: the trace option was used primarily during development.\n // Error detection and reporting is now fairly robust and tracing should be unnecessary. Use at your own peril.\n this.parse = function parse(strict, trace) {\n if (!isScanned) {\n throw new Error(`${thisFileName}grammar not scanned`);\n }\n parser.syntax(this.chars, this.lines, this.errors, strict, trace);\n isParsed = true;\n };\n // Translate the SABNF grammar syntax into the opcodes that will guide the parser for this grammar.\n this.translate = function translate() {\n if (!isParsed) {\n throw new Error(`${thisFileName}grammar not scanned and parsed`);\n }\n const ret = parser.semantic(this.chars, this.lines, this.errors);\n if (this.errors.length === 0) {\n this.rules = ret.rules;\n this.udts = ret.udts;\n lineMap = ret.lineMap;\n isTranslated = true;\n }\n };\n // Compute the attributes of each rule.\n this.attributes = function attrs() {\n if (!isTranslated) {\n throw new Error(`${thisFileName}grammar not scanned, parsed and translated`);\n }\n attributeErrors = attributes(this.rules, this.udts, lineMap, this.errors);\n haveAttributes = true;\n return attributeErrors;\n };\n // This function will perform the full suite of steps required to generate a parser grammar object\n // from the input SABNF grammar.\n this.generate = function generate(strict) {\n this.lines = scanner(this.chars, this.errors, strict);\n if (this.errors.length) {\n return;\n }\n parser.syntax(this.chars, this.lines, this.errors, strict);\n if (this.errors.length) {\n return;\n }\n const ret = parser.semantic(this.chars, this.lines, this.errors);\n if (this.errors.length) {\n return;\n }\n this.rules = ret.rules;\n this.udts = ret.udts;\n lineMap = ret.lineMap;\n\n attributeErrors = attributes(this.rules, this.udts, lineMap, this.errors);\n haveAttributes = true;\n };\n // Display the rules.\n // Must scan, parse and translate before calling this function, otherwise there are no rules to display.\n // - order\n // - \"index\" or \"i\", index order (default)\n // - \"alpha\" or \"a\", alphabetical order\n // - none of above, index order (default)\n this.displayRules = function displayRules(order = 'index') {\n if (!isTranslated) {\n throw new Error(`${thisFileName}grammar not scanned, parsed and translated`);\n }\n return showRules(this.rules, this.udts, order);\n };\n // Display the rule dependencies.\n // Must scan, parse, translate and compute attributes before calling this function.\n // Otherwise the rule dependencies are not known.\n // - order\n // - \"index\" or \"i\", index order (default)\n // - \"alpha\" or \"a\", alphabetical order\n // - \"type\" or \"t\", ordered by type (alphabetical within each type/group)\n // - none of above, index order (default)\n this.displayRuleDependencies = function displayRuleDependencies(order = 'index') {\n if (!haveAttributes) {\n throw new Error(`${thisFileName}no attributes - must be preceeded by call to attributes()`);\n }\n return showRuleDependencies(order);\n };\n // Display the attributes.\n // Must scan, parse, translate and compute attributes before calling this function.\n // - order\n // - \"index\" or \"i\", index order (default)\n // - \"alpha\" or \"a\", alphabetical order\n // - \"type\" or \"t\", ordered by type (alphabetical within each type/group)\n // - none of above, type order (default)\n this.displayAttributes = function displayAttributes(order = 'index') {\n if (!haveAttributes) {\n throw new Error(`${thisFileName}no attributes - must be preceeded by call to attributes()`);\n }\n if (attributeErrors) {\n showAttributeErrors(order);\n }\n return showAttributes(order);\n };\n this.displayAttributeErrors = function displayAttributeErrors() {\n if (!haveAttributes) {\n throw new Error(`${thisFileName}no attributes - must be preceeded by call to attributes()`);\n }\n return showAttributeErrors();\n };\n // Returns a parser grammar object constructor function as a JavaScript string.\n // This object can then be used to construct a parser.\n this.toSource = function toSource(name) {\n if (!haveAttributes) {\n throw new Error(`${thisFileName}can't generate parser source - must be preceeded by call to attributes()`);\n }\n if (attributeErrors) {\n throw new Error(`${thisFileName}can't generate parser source - attributes have ${attributeErrors} errors`);\n }\n return parser.generateSource(this.chars, this.lines, this.rules, this.udts, name);\n };\n // Returns a parser grammar object.\n // This grammar object may be used by the application to construct a parser.\n this.toObject = function toObject() {\n if (!haveAttributes) {\n throw new Error(`${thisFileName}can't generate parser source - must be preceeded by call to attributes()`);\n }\n if (attributeErrors) {\n throw new Error(`${thisFileName}can't generate parser source - attributes have ${attributeErrors} errors`);\n }\n return parser.generateObject(this.sabnf, this.rules, this.udts);\n };\n // Display errors in text format, suitable for `console.log()`.\n this.errorsToAscii = function errorsToAsciiFunc() {\n return errorsToAscii(this.errors, this.lines, this.chars);\n };\n // Display errors in HTML format, suitable for web page display.\n // (`apg-lib.css` required for proper styling)\n this.errorsToHtml = function errorsToHtmlFunc(title) {\n return errorsToHtml(this.errors, this.lines, this.chars, title);\n };\n // Generate an annotated the SABNF grammar display in text format.\n this.linesToAscii = function linesToAsciiFunc() {\n return linesToAscii(this.lines);\n };\n // Generate an annotated the SABNF grammar display in HTML format.\n // (`apg-lib.css` required for proper styling)\n this.linesToHtml = function linesToHtmlFunc() {\n return linesToHtml(this.lines);\n };\n // This function was only used by apg.html which has been abandoned.\n /*\n this.getAttributesObject = function () {\n return null;\n };\n */\n};\n","/* eslint-disable class-methods-use-this */\n/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// Attributes Validation\n//\n// It is well known that recursive-descent parsers will fail if a rule is left recursive.\n// Besides left recursion, there are a couple of other fatal attributes that need to be disclosed as well.\n// There are several non-fatal attributes that are of interest also.\n// This module will determine six different attributes listed here with simple examples.\n//\n// **fatal attributes**
\n// left recursion
\n// S = S \"x\" / \"y\"\n//\n// cyclic
\n// S = S\n//\n// infinite
\n// S = \"y\" S\n//\n// **non-fatal attributes** (but nice to know)
\n// nested recursion
\n// S = \"a\" S \"b\" / \"y\"\n//\n// right recursion
\n// S = \"x\" S / \"y\"\n//\n// empty string
\n// S = \"x\" S / \"\"\n//\n// Note that these are “aggregate” attributes, in that if the attribute is true it only means that it can be true,\n// not that it will always be true for every input string.\n// In the simple examples above the attributes may be obvious and definite – always true or false.\n// However, for a large grammar with possibly hundreds of rules and parse tree branches,\n// it can be obscure which branches lead to which attributes.\n// Furthermore, different input strings will lead the parser down different branches.\n// One input string may parse perfectly while another will hit a left-recursive branch and bottom out the call stack.\n//\n// It is for this reason that the APG parser generator computes these attributes.\n// When using the API the attributes call is optional but generating a parser without checking the attributes - proceed at your own peril.\n//\n// Additionally, the attribute phase will identify rule dependencies and mutually-recursive groups. For example,\n//\n// S = \"a\" A \"b\" / \"y\"
\n// A = \"x\"\n//\n// S is dependent on A but A is not dependent on S.\n//\n// S = \"a\" A \"b\" / \"c\"
\n// A = \"x\" S \"y\" / \"z\"\n//\n// S and A are dependent on one another and are mutually recursive.\nmodule.exports = (function exportAttributes() {\n const id = require('../apg-lib/identifiers');\n const { ruleAttributes, showAttributes, showAttributeErrors } = require('./rule-attributes');\n const { ruleDependencies, showRuleDependencies } = require('./rule-dependencies');\n class State {\n constructor(rules, udts) {\n this.rules = rules;\n this.udts = udts;\n this.ruleCount = rules.length;\n this.udtCount = udts.length;\n this.startRule = 0;\n this.dependenciesComplete = false;\n this.attributesComplete = false;\n this.isMutuallyRecursive = false;\n this.ruleIndexes = this.indexArray(this.ruleCount);\n this.ruleAlphaIndexes = this.indexArray(this.ruleCount);\n this.ruleTypeIndexes = this.indexArray(this.ruleCount);\n this.udtIndexes = this.indexArray(this.udtCount);\n this.udtAlphaIndexes = this.indexArray(this.udtCount);\n this.attrsErrorCount = 0;\n this.attrs = [];\n this.attrsErrors = [];\n this.attrsWorking = [];\n this.ruleDeps = [];\n for (let i = 0; i < this.ruleCount; i += 1) {\n this.attrs.push(this.attrGen(this.rules[i]));\n this.attrsWorking.push(this.attrGen(this.rules[i]));\n this.ruleDeps.push(this.rdGen(rules[i], this.ruleCount, this.udtCount));\n }\n this.compRulesAlpha = this.compRulesAlpha.bind(this);\n this.compUdtsAlpha = this.compUdtsAlpha.bind(this);\n this.compRulesType = this.compRulesType.bind(this);\n this.compRulesGroup = this.compRulesGroup.bind(this);\n }\n\n // eslint-disable-next-line class-methods-use-this\n attrGen(rule) {\n return {\n left: false,\n nested: false,\n right: false,\n empty: false,\n finite: false,\n cyclic: false,\n leaf: false,\n isOpen: false,\n isComplete: false,\n rule,\n };\n }\n\n // eslint-disable-next-line class-methods-use-this\n attrInit(attr) {\n attr.left = false;\n attr.nested = false;\n attr.right = false;\n attr.empty = false;\n attr.finite = false;\n attr.cyclic = false;\n attr.leaf = false;\n attr.isOpen = false;\n attr.isComplete = false;\n }\n\n attrCopy(dst, src) {\n dst.left = src.left;\n dst.nested = src.nested;\n dst.right = src.right;\n dst.empty = src.empty;\n dst.finite = src.finite;\n dst.cyclic = src.cyclic;\n dst.leaf = src.leaf;\n dst.isOpen = src.isOpen;\n dst.isComplete = src.isComplete;\n dst.rule = src.rule;\n }\n\n rdGen(rule, ruleCount, udtCount) {\n const ret = {\n rule,\n recursiveType: id.ATTR_N,\n groupNumber: -1,\n refersTo: this.falseArray(ruleCount),\n refersToUdt: this.falseArray(udtCount),\n referencedBy: this.falseArray(ruleCount),\n };\n return ret;\n }\n\n typeToString(recursiveType) {\n switch (recursiveType) {\n case id.ATTR_N:\n return ' N';\n case id.ATTR_R:\n return ' R';\n case id.ATTR_MR:\n return 'MR';\n default:\n return 'UNKNOWN';\n }\n }\n\n falseArray(length) {\n const ret = [];\n if (length > 0) {\n for (let i = 0; i < length; i += 1) {\n ret.push(false);\n }\n }\n return ret;\n }\n\n falsifyArray(a) {\n for (let i = 0; i < a.length; i += 1) {\n a[i] = false;\n }\n }\n\n indexArray(length) {\n const ret = [];\n if (length > 0) {\n for (let i = 0; i < length; i += 1) {\n ret.push(i);\n }\n }\n return ret;\n }\n\n compRulesAlpha(left, right) {\n if (this.rules[left].lower < this.rules[right].lower) {\n return -1;\n }\n if (this.rules[left].lower > this.rules[right].lower) {\n return 1;\n }\n return 0;\n }\n\n compUdtsAlpha(left, right) {\n if (this.udts[left].lower < this.udts[right].lower) {\n return -1;\n }\n if (this.udts[left].lower > this.udts[right].lower) {\n return 1;\n }\n return 0;\n }\n\n compRulesType(left, right) {\n if (this.ruleDeps[left].recursiveType < this.ruleDeps[right].recursiveType) {\n return -1;\n }\n if (this.ruleDeps[left].recursiveType > this.ruleDeps[right].recursiveType) {\n return 1;\n }\n return 0;\n }\n\n compRulesGroup(left, right) {\n if (this.ruleDeps[left].recursiveType === id.ATTR_MR && this.ruleDeps[right].recursiveType === id.ATTR_MR) {\n if (this.ruleDeps[left].groupNumber < this.ruleDeps[right].groupNumber) {\n return -1;\n }\n if (this.ruleDeps[left].groupNumber > this.ruleDeps[right].groupNumber) {\n return 1;\n }\n }\n return 0;\n }\n }\n // eslint-disable-next-line no-unused-vars\n const attributes = function attributes(rules = [], udts = [], lineMap = [], errors = []) {\n // let i = 0;\n // Initialize the state. The state of the computation get passed around to multiple functions in multiple files.\n const state = new State(rules, udts);\n\n // Determine all rule dependencies\n // - which rules each rule refers to\n // - which rules reference each rule\n ruleDependencies(state);\n\n // Determine the attributes for each rule.\n ruleAttributes(state);\n if (state.attrsErrorCount) {\n errors.push({ line: 0, char: 0, msg: `${state.attrsErrorCount} attribute errors` });\n }\n\n // Return the number of attribute errors to the caller.\n return state.attrsErrorCount;\n };\n\n /* Destructuring assignment - see MDN Web Docs */\n return { attributes, showAttributes, showAttributeErrors, showRuleDependencies };\n})();\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module converts an input SABNF grammar text file into a\n// grammar object that can be used with `apg-lib` in an application parser.\n// **apg** is, in fact itself, an ABNF parser that generates an SABNF parser.\n// It is based on the grammar
\n// `./dist/abnf-for-sabnf-grammar.bnf`.
\n// In its syntax phase, **apg** analyzes the user's input SABNF grammar for correct syntax, generating an AST as it goes.\n// In its semantic phase, **apg** translates the AST to generate the parser for the input grammar.\nmodule.exports = function exportParser() {\n const thisFileName = 'parser: ';\n const ApgLib = require('../apg-lib/node-exports');\n const id = ApgLib.ids;\n const syn = new (require('./syntax-callbacks'))();\n const sem = new (require('./semantic-callbacks'))();\n const sabnfGrammar = new (require('./sabnf-grammar'))();\n // eslint-disable-next-line new-cap\n const parser = new ApgLib.parser();\n // eslint-disable-next-line new-cap\n parser.ast = new ApgLib.ast();\n parser.callbacks = syn.callbacks;\n parser.ast.callbacks = sem.callbacks;\n\n /* find the line containing the given character index */\n const findLine = function findLine(lines, charIndex, charLength) {\n if (charIndex < 0 || charIndex >= charLength) {\n /* return error if out of range */\n return -1;\n }\n for (let i = 0; i < lines.length; i += 1) {\n if (charIndex >= lines[i].beginChar && charIndex < lines[i].beginChar + lines[i].length) {\n return i;\n }\n }\n /* should never reach here */\n return -1;\n };\n const translateIndex = function translateIndex(map, index) {\n let ret = -1;\n if (index < map.length) {\n for (let i = index; i < map.length; i += 1) {\n if (map[i] !== null) {\n ret = map[i];\n break;\n }\n }\n }\n return ret;\n };\n /* helper function when removing redundant opcodes */\n const reduceOpcodes = function reduceOpcodes(rules) {\n rules.forEach((rule) => {\n const opcodes = [];\n const map = [];\n let reducedIndex = 0;\n rule.opcodes.forEach((op) => {\n if (op.type === id.ALT && op.children.length === 1) {\n map.push(null);\n } else if (op.type === id.CAT && op.children.length === 1) {\n map.push(null);\n } else if (op.type === id.REP && op.min === 1 && op.max === 1) {\n map.push(null);\n } else {\n map.push(reducedIndex);\n opcodes.push(op);\n reducedIndex += 1;\n }\n });\n map.push(reducedIndex);\n /* translate original opcode indexes to the reduced set. */\n opcodes.forEach((op) => {\n if (op.type === id.ALT || op.type === id.CAT) {\n for (let i = 0; i < op.children.length; i += 1) {\n op.children[i] = translateIndex(map, op.children[i]);\n }\n }\n });\n rule.opcodes = opcodes;\n });\n };\n /* Parse the grammar - the syntax phase. */\n /* SABNF grammar syntax errors are caught and reported here. */\n this.syntax = function syntax(chars, lines, errors, strict, trace) {\n if (trace) {\n if (trace.traceObject !== 'traceObject') {\n throw new TypeError(`${thisFileName}trace argument is not a trace object`);\n }\n parser.trace = trace;\n }\n const data = {};\n data.errors = errors;\n data.strict = !!strict;\n data.lines = lines;\n data.findLine = findLine;\n data.charsLength = chars.length;\n data.ruleCount = 0;\n const result = parser.parse(sabnfGrammar, 'file', chars, data);\n if (!result.success) {\n errors.push({\n line: 0,\n char: 0,\n msg: 'syntax analysis of input grammar failed',\n });\n }\n };\n /* Parse the grammar - the semantic phase, translates the AST. */\n /* SABNF grammar syntax errors are caught and reported here. */\n this.semantic = function semantic(chars, lines, errors) {\n const data = {};\n data.errors = errors;\n data.lines = lines;\n data.findLine = findLine;\n data.charsLength = chars.length;\n parser.ast.translate(data);\n if (errors.length) {\n return null;\n }\n /* Remove unneeded operators. */\n /* ALT operators with a single alternate */\n /* CAT operators with a single phrase to concatenate */\n /* REP(1,1) operators (`1*1RuleName` or `1RuleName` is the same as just `RuleName`.) */\n reduceOpcodes(data.rules);\n return {\n rules: data.rules,\n udts: data.udts,\n lineMap: data.rulesLineMap,\n };\n };\n // Generate a grammar constructor function.\n // An object instantiated from this constructor is used with the `apg-lib` `parser()` function.\n this.generateSource = function generateSource(chars, lines, rules, udts, name) {\n let source = '';\n let i;\n let bkrname;\n let bkrlower;\n let opcodeCount = 0;\n let charCodeMin = Infinity;\n let charCodeMax = 0;\n const ruleNames = [];\n const udtNames = [];\n let alt = 0;\n let cat = 0;\n let rnm = 0;\n let udt = 0;\n let rep = 0;\n let and = 0;\n let not = 0;\n let tls = 0;\n let tbs = 0;\n let trg = 0;\n let bkr = 0;\n let bka = 0;\n let bkn = 0;\n let abg = 0;\n let aen = 0;\n rules.forEach((rule) => {\n ruleNames.push(rule.lower);\n opcodeCount += rule.opcodes.length;\n rule.opcodes.forEach((op) => {\n switch (op.type) {\n case id.ALT:\n alt += 1;\n break;\n case id.CAT:\n cat += 1;\n break;\n case id.RNM:\n rnm += 1;\n break;\n case id.UDT:\n udt += 1;\n break;\n case id.REP:\n rep += 1;\n break;\n case id.AND:\n and += 1;\n break;\n case id.NOT:\n not += 1;\n break;\n case id.BKA:\n bka += 1;\n break;\n case id.BKN:\n bkn += 1;\n break;\n case id.BKR:\n bkr += 1;\n break;\n case id.ABG:\n abg += 1;\n break;\n case id.AEN:\n aen += 1;\n break;\n case id.TLS:\n tls += 1;\n for (i = 0; i < op.string.length; i += 1) {\n if (op.string[i] < charCodeMin) {\n charCodeMin = op.string[i];\n }\n if (op.string[i] > charCodeMax) {\n charCodeMax = op.string[i];\n }\n }\n break;\n case id.TBS:\n tbs += 1;\n for (i = 0; i < op.string.length; i += 1) {\n if (op.string[i] < charCodeMin) {\n charCodeMin = op.string[i];\n }\n if (op.string[i] > charCodeMax) {\n charCodeMax = op.string[i];\n }\n }\n break;\n case id.TRG:\n trg += 1;\n if (op.min < charCodeMin) {\n charCodeMin = op.min;\n }\n if (op.max > charCodeMax) {\n charCodeMax = op.max;\n }\n break;\n default:\n throw new Error('generateSource: unrecognized opcode');\n }\n });\n });\n ruleNames.sort();\n if (udts.length > 0) {\n udts.forEach((udtFunc) => {\n udtNames.push(udtFunc.lower);\n });\n udtNames.sort();\n }\n let funcname = 'module.exports';\n if (name && typeof name === 'string') {\n funcname = `let ${name}`;\n }\n source += '// copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved
\\n';\n source += '// license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)
\\n';\n source += '//\\n';\n source += '// Generated by apg-js, Version 4.0.0 [apg-js](https://github.com/ldthomas/apg-js)\\n';\n source += `${funcname} = function grammar(){\\n`;\n source += ' // ```\\n';\n source += ' // SUMMARY\\n';\n source += ` // rules = ${rules.length}\\n`;\n source += ` // udts = ${udts.length}\\n`;\n source += ` // opcodes = ${opcodeCount}\\n`;\n source += ' // --- ABNF original opcodes\\n';\n source += ` // ALT = ${alt}\\n`;\n source += ` // CAT = ${cat}\\n`;\n source += ` // REP = ${rep}\\n`;\n source += ` // RNM = ${rnm}\\n`;\n source += ` // TLS = ${tls}\\n`;\n source += ` // TBS = ${tbs}\\n`;\n source += ` // TRG = ${trg}\\n`;\n source += ' // --- SABNF superset opcodes\\n';\n source += ` // UDT = ${udt}\\n`;\n source += ` // AND = ${and}\\n`;\n source += ` // NOT = ${not}\\n`;\n source += ` // BKA = ${bka}\\n`;\n source += ` // BKN = ${bkn}\\n`;\n source += ` // BKR = ${bkr}\\n`;\n source += ` // ABG = ${abg}\\n`;\n source += ` // AEN = ${aen}\\n`;\n source += ' // characters = [';\n if (tls + tbs + trg === 0) {\n source += ' none defined ]';\n } else {\n source += `${charCodeMin} - ${charCodeMax}]`;\n }\n if (udt > 0) {\n source += ' + user defined';\n }\n source += '\\n';\n source += ' // ```\\n';\n source += ' /* OBJECT IDENTIFIER (for internal parser use) */\\n';\n source += \" this.grammarObject = 'grammarObject';\\n\";\n source += '\\n';\n source += ' /* RULES */\\n';\n source += ' this.rules = [];\\n';\n rules.forEach((rule, ii) => {\n let thisRule = ' this.rules[';\n thisRule += ii;\n thisRule += \"] = {name: '\";\n thisRule += rule.name;\n thisRule += \"', lower: '\";\n thisRule += rule.lower;\n thisRule += \"', index: \";\n thisRule += rule.index;\n thisRule += ', isBkr: ';\n thisRule += rule.isBkr;\n thisRule += '};\\n';\n source += thisRule;\n });\n source += '\\n';\n source += ' /* UDTS */\\n';\n source += ' this.udts = [];\\n';\n if (udts.length > 0) {\n udts.forEach((udtFunc, ii) => {\n let thisUdt = ' this.udts[';\n thisUdt += ii;\n thisUdt += \"] = {name: '\";\n thisUdt += udtFunc.name;\n thisUdt += \"', lower: '\";\n thisUdt += udtFunc.lower;\n thisUdt += \"', index: \";\n thisUdt += udtFunc.index;\n thisUdt += ', empty: ';\n thisUdt += udtFunc.empty;\n thisUdt += ', isBkr: ';\n thisUdt += udtFunc.isBkr;\n thisUdt += '};\\n';\n source += thisUdt;\n });\n }\n source += '\\n';\n source += ' /* OPCODES */\\n';\n rules.forEach((rule, ruleIndex) => {\n if (ruleIndex > 0) {\n source += '\\n';\n }\n source += ` /* ${rule.name} */\\n`;\n source += ` this.rules[${ruleIndex}].opcodes = [];\\n`;\n rule.opcodes.forEach((op, opIndex) => {\n let prefix;\n switch (op.type) {\n case id.ALT:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${\n op.type\n }, children: [${op.children.toString()}]};// ALT\\n`;\n break;\n case id.CAT:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${\n op.type\n }, children: [${op.children.toString()}]};// CAT\\n`;\n break;\n case id.RNM:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, index: ${op.index}};// RNM(${\n rules[op.index].name\n })\\n`;\n break;\n case id.BKR:\n if (op.index >= rules.length) {\n bkrname = udts[op.index - rules.length].name;\n bkrlower = udts[op.index - rules.length].lower;\n } else {\n bkrname = rules[op.index].name;\n bkrlower = rules[op.index].lower;\n }\n prefix = '%i';\n if (op.bkrCase === id.BKR_MODE_CS) {\n prefix = '%s';\n }\n if (op.bkrMode === id.BKR_MODE_UM) {\n prefix += '%u';\n } else {\n prefix += '%p';\n }\n bkrname = prefix + bkrname;\n source +=\n ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, index: ${op.index}, lower: '${bkrlower}'` +\n `, bkrCase: ${op.bkrCase}, bkrMode: ${op.bkrMode}};// BKR(\\\\${bkrname})\\n`;\n break;\n case id.UDT:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, empty: ${op.empty}, index: ${\n op.index\n }};// UDT(${udts[op.index].name})\\n`;\n break;\n case id.REP:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, min: ${op.min}, max: ${op.max}};// REP\\n`;\n break;\n case id.AND:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// AND\\n`;\n break;\n case id.NOT:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// NOT\\n`;\n break;\n case id.ABG:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// ABG(%^)\\n`;\n break;\n case id.AEN:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// AEN(%$)\\n`;\n break;\n case id.BKA:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// BKA\\n`;\n break;\n case id.BKN:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}};// BKN\\n`;\n break;\n case id.TLS:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${\n op.type\n }, string: [${op.string.toString()}]};// TLS\\n`;\n break;\n case id.TBS:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${\n op.type\n }, string: [${op.string.toString()}]};// TBS\\n`;\n break;\n case id.TRG:\n source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = {type: ${op.type}, min: ${op.min}, max: ${op.max}};// TRG\\n`;\n break;\n default:\n throw new Error('parser.js: ~143: unrecognized opcode');\n }\n });\n });\n source += '\\n';\n source += ' // The `toString()` function will display the original grammar file(s) that produced these opcodes.\\n';\n source += ' this.toString = function toString(){\\n';\n source += ' let str = \"\";\\n';\n let str;\n lines.forEach((line) => {\n const end = line.beginChar + line.length;\n str = '';\n source += ' str += \"';\n for (let ii = line.beginChar; ii < end; ii += 1) {\n switch (chars[ii]) {\n case 9:\n str = ' ';\n break;\n case 10:\n str = '\\\\n';\n break;\n case 13:\n str = '\\\\r';\n break;\n case 34:\n str = '\\\\\"';\n break;\n case 92:\n str = '\\\\\\\\';\n break;\n default:\n str = String.fromCharCode(chars[ii]);\n break;\n }\n source += str;\n }\n source += '\";\\n';\n });\n source += ' return str;\\n';\n source += ' }\\n';\n source += '}\\n';\n return source;\n };\n // Generate a grammar file object.\n // Returns the same object as instantiating the constructor function returned by
\n // `this.generateSource()`.
\n this.generateObject = function generateObject(stringArg, rules, udts) {\n const obj = {};\n const ruleNames = [];\n const udtNames = [];\n const string = stringArg.slice(0);\n obj.grammarObject = 'grammarObject';\n rules.forEach((rule) => {\n ruleNames.push(rule.lower);\n });\n ruleNames.sort();\n if (udts.length > 0) {\n udts.forEach((udtFunc) => {\n udtNames.push(udtFunc.lower);\n });\n udtNames.sort();\n }\n obj.callbacks = [];\n ruleNames.forEach((name) => {\n obj.callbacks[name] = false;\n });\n if (udts.length > 0) {\n udtNames.forEach((name) => {\n obj.callbacks[name] = false;\n });\n }\n obj.rules = rules;\n obj.udts = udts;\n obj.toString = function toStringFunc() {\n return string;\n };\n return obj;\n };\n};\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module does the heavy lifting for attribute generation.\nmodule.exports = (function exportRuleAttributes() {\n const id = require('../apg-lib/identifiers');\n const thisFile = 'rule-attributes.js';\n let state = null;\n function isEmptyOnly(attr) {\n if (attr.left || attr.nested || attr.right || attr.cyclic) {\n return false;\n }\n return attr.empty;\n }\n function isRecursive(attr) {\n if (attr.left || attr.nested || attr.right || attr.cyclic) {\n return true;\n }\n return false;\n }\n function isCatNested(attrs, count) {\n let i = 0;\n let j = 0;\n let k = 0;\n /* 1. if any child is nested, CAT is nested */\n for (i = 0; i < count; i += 1) {\n if (attrs[i].nested) {\n return true;\n }\n }\n /* 2.) the left-most right recursive child\n is followed by at least one non-empty child */\n for (i = 0; i < count; i += 1) {\n if (attrs[i].right && !attrs[i].leaf) {\n for (j = i + 1; j < count; j += 1) {\n if (!isEmptyOnly(attrs[j])) {\n return true;\n }\n }\n }\n }\n /* 3.) the right-most left recursive child\n is preceded by at least one non-empty child */\n for (i = count - 1; i >= 0; i -= 1) {\n if (attrs[i].left && !attrs[i].leaf) {\n for (j = i - 1; j >= 0; j -= 1) {\n if (!isEmptyOnly(attrs[j])) {\n return true;\n }\n }\n }\n }\n /* 4. there is at lease one recursive child between\n the left-most and right-most non-recursive, non-empty children */\n for (i = 0; i < count; i += 1) {\n if (!attrs[i].empty && !isRecursive(attrs[i])) {\n for (j = i + 1; j < count; j += 1) {\n if (isRecursive(attrs[j])) {\n for (k = j + 1; k < count; k += 1) {\n if (!attrs[k].empty && !isRecursive(attrs[k])) {\n return true;\n }\n }\n }\n }\n }\n }\n\n /* none of the above */\n return false;\n }\n function isCatCyclic(attrs, count) {\n /* if all children are cyclic, CAT is cyclic */\n for (let i = 0; i < count; i += 1) {\n if (!attrs[i].cyclic) {\n return false;\n }\n }\n return true;\n }\n function isCatLeft(attrs, count) {\n /* if the left-most non-empty is left, CAT is left */\n for (let i = 0; i < count; i += 1) {\n if (attrs[i].left) {\n return true;\n }\n if (!attrs[i].empty) {\n return false;\n }\n /* keep looking */\n }\n return false; /* all left-most are empty */\n }\n function isCatRight(attrs, count) {\n /* if the right-most non-empty is right, CAT is right */\n for (let i = count - 1; i >= 0; i -= 1) {\n if (attrs[i].right) {\n return true;\n }\n if (!attrs[i].empty) {\n return false;\n }\n /* keep looking */\n }\n return false;\n }\n function isCatEmpty(attrs, count) {\n /* if all children are empty, CAT is empty */\n for (let i = 0; i < count; i += 1) {\n if (!attrs[i].empty) {\n return false;\n }\n }\n return true;\n }\n function isCatFinite(attrs, count) {\n /* if all children are finite, CAT is finite */\n for (let i = 0; i < count; i += 1) {\n if (!attrs[i].finite) {\n return false;\n }\n }\n return true;\n }\n function cat(stateArg, opcodes, opIndex, iAttr) {\n let i = 0;\n const opCat = opcodes[opIndex];\n const count = opCat.children.length;\n\n /* generate an empty array of child attributes */\n const childAttrs = [];\n for (i = 0; i < count; i += 1) {\n childAttrs.push(stateArg.attrGen());\n }\n for (i = 0; i < count; i += 1) {\n // eslint-disable-next-line no-use-before-define\n opEval(stateArg, opcodes, opCat.children[i], childAttrs[i]);\n }\n iAttr.left = isCatLeft(childAttrs, count);\n iAttr.right = isCatRight(childAttrs, count);\n iAttr.nested = isCatNested(childAttrs, count);\n iAttr.empty = isCatEmpty(childAttrs, count);\n iAttr.finite = isCatFinite(childAttrs, count);\n iAttr.cyclic = isCatCyclic(childAttrs, count);\n }\n function alt(stateArg, opcodes, opIndex, iAttr) {\n let i = 0;\n const opAlt = opcodes[opIndex];\n const count = opAlt.children.length;\n\n /* generate an empty array of child attributes */\n const childAttrs = [];\n for (i = 0; i < count; i += 1) {\n childAttrs.push(stateArg.attrGen());\n }\n for (i = 0; i < count; i += 1) {\n // eslint-disable-next-line no-use-before-define\n opEval(stateArg, opcodes, opAlt.children[i], childAttrs[i]);\n }\n\n /* if any child attribute is true, ALT is true */\n iAttr.left = false;\n iAttr.right = false;\n iAttr.nested = false;\n iAttr.empty = false;\n iAttr.finite = false;\n iAttr.cyclic = false;\n for (i = 0; i < count; i += 1) {\n if (childAttrs[i].left) {\n iAttr.left = true;\n }\n if (childAttrs[i].nested) {\n iAttr.nested = true;\n }\n if (childAttrs[i].right) {\n iAttr.right = true;\n }\n if (childAttrs[i].empty) {\n iAttr.empty = true;\n }\n if (childAttrs[i].finite) {\n iAttr.finite = true;\n }\n if (childAttrs[i].cyclic) {\n iAttr.cyclic = true;\n }\n }\n }\n function bkr(stateArg, opcodes, opIndex, iAttr) {\n const opBkr = opcodes[opIndex];\n if (opBkr.index >= stateArg.ruleCount) {\n /* use UDT values */\n iAttr.empty = stateArg.udts[opBkr.index - stateArg.ruleCount].empty;\n iAttr.finite = true;\n } else {\n /* use the empty and finite values from the back referenced rule */\n // eslint-disable-next-line no-use-before-define\n ruleAttrsEval(stateArg, opBkr.index, iAttr);\n\n /* however, this is a terminal node like TLS */\n iAttr.left = false;\n iAttr.nested = false;\n iAttr.right = false;\n iAttr.cyclic = false;\n }\n }\n\n function opEval(stateArg, opcodes, opIndex, iAttr) {\n stateArg.attrInit(iAttr);\n const opi = opcodes[opIndex];\n switch (opi.type) {\n case id.ALT:\n alt(stateArg, opcodes, opIndex, iAttr);\n break;\n case id.CAT:\n cat(stateArg, opcodes, opIndex, iAttr);\n break;\n case id.REP:\n opEval(stateArg, opcodes, opIndex + 1, iAttr);\n if (opi.min === 0) {\n iAttr.empty = true;\n iAttr.finite = true;\n }\n break;\n case id.RNM:\n // eslint-disable-next-line no-use-before-define\n ruleAttrsEval(stateArg, opcodes[opIndex].index, iAttr);\n break;\n case id.BKR:\n bkr(stateArg, opcodes, opIndex, iAttr);\n break;\n case id.AND:\n case id.NOT:\n case id.BKA:\n case id.BKN:\n opEval(stateArg, opcodes, opIndex + 1, iAttr);\n iAttr.empty = true;\n break;\n case id.TLS:\n iAttr.empty = !opcodes[opIndex].string.length;\n iAttr.finite = true;\n iAttr.cyclic = false;\n break;\n case id.TBS:\n case id.TRG:\n iAttr.empty = false;\n iAttr.finite = true;\n iAttr.cyclic = false;\n break;\n case id.UDT:\n iAttr.empty = opi.empty;\n iAttr.finite = true;\n iAttr.cyclic = false;\n break;\n case id.ABG:\n case id.AEN:\n iAttr.empty = true;\n iAttr.finite = true;\n iAttr.cyclic = false;\n break;\n default:\n throw new Error(`unknown opcode type: ${opi}`);\n }\n }\n // The main logic for handling rules that:\n // - have already be evaluated\n // - have not been evaluated and is the first occurrence on this branch\n // - second occurrence on this branch for the start rule\n // - second occurrence on this branch for non-start rules\n function ruleAttrsEval(stateArg, ruleIndex, iAttr) {\n const attri = stateArg.attrsWorking[ruleIndex];\n if (attri.isComplete) {\n /* just use the completed values */\n stateArg.attrCopy(iAttr, attri);\n } else if (!attri.isOpen) {\n /* open the rule and traverse it */\n attri.isOpen = true;\n opEval(stateArg, attri.rule.opcodes, 0, iAttr);\n /* complete this rule's attributes */\n attri.left = iAttr.left;\n attri.right = iAttr.right;\n attri.nested = iAttr.nested;\n attri.empty = iAttr.empty;\n attri.finite = iAttr.finite;\n attri.cyclic = iAttr.cyclic;\n attri.leaf = false;\n attri.isOpen = false;\n attri.isComplete = true;\n } else if (ruleIndex === stateArg.startRule) {\n /* use recursive leaf values */\n if (ruleIndex === stateArg.startRule) {\n iAttr.left = true;\n iAttr.right = true;\n iAttr.cyclic = true;\n iAttr.leaf = true;\n }\n } else {\n /* non-start rule terminal leaf */\n iAttr.finite = true;\n }\n }\n // The main driver for the attribute generation.\n const ruleAttributes = (stateArg) => {\n state = stateArg;\n let i = 0;\n let j = 0;\n const iAttr = state.attrGen();\n for (i = 0; i < state.ruleCount; i += 1) {\n /* initialize working attributes */\n for (j = 0; j < state.ruleCount; j += 1) {\n state.attrInit(state.attrsWorking[j]);\n }\n state.startRule = i;\n ruleAttrsEval(state, i, iAttr);\n\n /* save off the working attributes for this rule */\n state.attrCopy(state.attrs[i], state.attrsWorking[i]);\n }\n state.attributesComplete = true;\n let attri = null;\n for (i = 0; i < state.ruleCount; i += 1) {\n attri = state.attrs[i];\n if (attri.left || !attri.finite || attri.cyclic) {\n const temp = state.attrGen(attri.rule);\n state.attrCopy(temp, attri);\n state.attrsErrors.push(temp);\n state.attrsErrorCount += 1;\n }\n }\n };\n const truth = (val) => (val ? 't' : 'f');\n const tError = (val) => (val ? 'e' : 'f');\n const fError = (val) => (val ? 't' : 'e');\n const showAttr = (seq, index, attr, dep) => {\n let str = `${seq}:${index}:`;\n str += `${tError(attr.left)} `;\n str += `${truth(attr.nested)} `;\n str += `${truth(attr.right)} `;\n str += `${tError(attr.cyclic)} `;\n str += `${fError(attr.finite)} `;\n str += `${truth(attr.empty)}:`;\n str += `${state.typeToString(dep.recursiveType)}:`;\n str += dep.recursiveType === id.ATTR_MR ? dep.groupNumber : '-';\n str += `:${attr.rule.name}\\n`;\n return str;\n };\n\n const showLegend = () => {\n let str = 'LEGEND - t=true, f=false, e=error\\n';\n str += 'sequence:rule index:left nested right cyclic finite empty:type:group number:rule name\\n';\n return str;\n };\n const showAttributeErrors = () => {\n let attri = null;\n let depi = null;\n let str = '';\n str += 'RULE ATTRIBUTES WITH ERRORS\\n';\n str += showLegend();\n if (state.attrsErrorCount) {\n for (let i = 0; i < state.attrsErrorCount; i += 1) {\n attri = state.attrsErrors[i];\n depi = state.ruleDeps[attri.rule.index];\n str += showAttr(i, attri.rule.index, attri, depi);\n }\n } else {\n str += '\\n';\n }\n return str;\n };\n\n const show = (type) => {\n let i = 0;\n let ii = 0;\n let attri = null;\n let depi = null;\n let str = '';\n let { ruleIndexes } = state;\n // let udtIndexes = state.udtIndexes;\n if (type === 97) {\n ruleIndexes = state.ruleAlphaIndexes;\n // udtIndexes = state.udtAlphaIndexes;\n } else if (type === 116) {\n ruleIndexes = state.ruleTypeIndexes;\n // udtIndexes = state.udtAlphaIndexes;\n }\n /* show all attributes */\n for (i = 0; i < state.ruleCount; i += 1) {\n ii = ruleIndexes[i];\n attri = state.attrs[ii];\n depi = state.ruleDeps[ii];\n str += showAttr(i, ii, attri, depi);\n }\n return str;\n };\n\n // Display the rule attributes.\n // - order\n // - \"index\" or \"i\", index order (default)\n // - \"alpha\" or \"a\", alphabetical order\n // - \"type\" or \"t\", ordered by type (alphabetical within each type/group)\n // - none of above, index order (default)\n const showAttributes = (order = 'index') => {\n if (!state.attributesComplete) {\n throw new Error(`${thisFile}:showAttributes: attributes not available`);\n }\n let str = '';\n const leader = 'RULE ATTRIBUTES\\n';\n if (order.charCodeAt(0) === 97) {\n str += 'alphabetical by rule name\\n';\n str += leader;\n str += showLegend();\n str += show(97);\n } else if (order.charCodeAt(0) === 116) {\n str += 'ordered by rule type\\n';\n str += leader;\n str += showLegend();\n str += show(116);\n } else {\n str += 'ordered by rule index\\n';\n str += leader;\n str += showLegend();\n str += show();\n }\n return str;\n };\n\n /* Destructuring assignment - see MDN Web Docs */\n return { ruleAttributes, showAttributes, showAttributeErrors };\n})();\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// Determine rule dependencies and types.\n// For each rule, determine which other rules it refers to\n// and which of the other rules refer back to it.\n//\n// Rule types are:\n// - non-recursive - the rule never refers to itself, even indirectly\n// - recursive - the rule refers to itself, possibly indirectly\n// - mutually-recursive - belongs to a group of two or more rules, each of which refers to every other rule in the group, including itself.\nmodule.exports = (() => {\n const id = require('../apg-lib/identifiers');\n let state = null; /* keep a global reference to the state for the show functions */\n\n /* scan the opcodes of the indexed rule and discover which rules it references and which rule refer back to it */\n const scan = (ruleCount, ruleDeps, index, isScanned) => {\n let i = 0;\n let j = 0;\n const rdi = ruleDeps[index];\n isScanned[index] = true;\n const op = rdi.rule.opcodes;\n for (i = 0; i < op.length; i += 1) {\n const opi = op[i];\n if (opi.type === id.RNM) {\n rdi.refersTo[opi.index] = true;\n if (!isScanned[opi.index]) {\n scan(ruleCount, ruleDeps, opi.index, isScanned);\n }\n for (j = 0; j < ruleCount; j += 1) {\n if (ruleDeps[opi.index].refersTo[j]) {\n rdi.refersTo[j] = true;\n }\n }\n } else if (opi.type === id.UDT) {\n rdi.refersToUdt[opi.index] = true;\n } else if (opi.type === id.BKR) {\n if (opi.index < ruleCount) {\n rdi.refersTo[opi.index] = true;\n if (!isScanned[opi.index]) {\n scan(ruleCount, ruleDeps, opi.index, isScanned);\n }\n } else {\n rdi.refersToUdt[ruleCount - opi.index] = true;\n }\n }\n }\n };\n // Determine the rule dependencies, types and mutually recursive groups.\n const ruleDependencies = (stateArg) => {\n state = stateArg; /* make it global */\n let i = 0;\n let j = 0;\n let groupCount = 0;\n let rdi = null;\n let rdj = null;\n let newGroup = false;\n state.dependenciesComplete = false;\n\n /* make a working array of rule scanned markers */\n const isScanned = state.falseArray(state.ruleCount);\n\n /* discover the rule dependencies */\n for (i = 0; i < state.ruleCount; i += 1) {\n state.falsifyArray(isScanned);\n scan(state.ruleCount, state.ruleDeps, i, isScanned);\n }\n /* discover all rules referencing each rule */\n for (i = 0; i < state.ruleCount; i += 1) {\n for (j = 0; j < state.ruleCount; j += 1) {\n if (i !== j) {\n if (state.ruleDeps[j].refersTo[i]) {\n state.ruleDeps[i].referencedBy[j] = true;\n }\n }\n }\n }\n /* find the non-recursive and recursive types */\n for (i = 0; i < state.ruleCount; i += 1) {\n state.ruleDeps[i].recursiveType = id.ATTR_N;\n if (state.ruleDeps[i].refersTo[i]) {\n state.ruleDeps[i].recursiveType = id.ATTR_R;\n }\n }\n\n /* find the mutually-recursive groups, if any */\n groupCount = -1;\n for (i = 0; i < state.ruleCount; i += 1) {\n rdi = state.ruleDeps[i];\n if (rdi.recursiveType === id.ATTR_R) {\n newGroup = true;\n for (j = 0; j < state.ruleCount; j += 1) {\n if (i !== j) {\n rdj = state.ruleDeps[j];\n if (rdj.recursiveType === id.ATTR_R) {\n if (rdi.refersTo[j] && rdj.refersTo[i]) {\n if (newGroup) {\n groupCount += 1;\n rdi.recursiveType = id.ATTR_MR;\n rdi.groupNumber = groupCount;\n newGroup = false;\n }\n rdj.recursiveType = id.ATTR_MR;\n rdj.groupNumber = groupCount;\n }\n }\n }\n }\n }\n }\n state.isMutuallyRecursive = groupCount > -1;\n\n /* sort the rules/UDTS */\n state.ruleAlphaIndexes.sort(state.compRulesAlpha);\n state.ruleTypeIndexes.sort(state.compRulesAlpha);\n state.ruleTypeIndexes.sort(state.compRulesType);\n if (state.isMutuallyRecursive) {\n state.ruleTypeIndexes.sort(state.compRulesGroup);\n }\n if (state.udtCount) {\n state.udtAlphaIndexes.sort(state.compUdtsAlpha);\n }\n\n state.dependenciesComplete = true;\n };\n const show = (type = null) => {\n let i = 0;\n let j = 0;\n let count = 0;\n let startSeg = 0;\n const maxRule = state.ruleCount - 1;\n const maxUdt = state.udtCount - 1;\n const lineLength = 100;\n let str = '';\n let pre = '';\n const toArrow = '=> ';\n const byArrow = '<= ';\n let first = false;\n let rdi = null;\n let { ruleIndexes } = state;\n let { udtIndexes } = state;\n if (type === 97) {\n ruleIndexes = state.ruleAlphaIndexes;\n udtIndexes = state.udtAlphaIndexes;\n } else if (type === 116) {\n ruleIndexes = state.ruleTypeIndexes;\n udtIndexes = state.udtAlphaIndexes;\n }\n for (i = 0; i < state.ruleCount; i += 1) {\n rdi = state.ruleDeps[ruleIndexes[i]];\n pre = `${ruleIndexes[i]}:${state.typeToString(rdi.recursiveType)}:`;\n if (state.isMutuallyRecursive) {\n pre += rdi.groupNumber > -1 ? rdi.groupNumber : '-';\n pre += ':';\n }\n pre += ' ';\n str += `${pre + state.rules[ruleIndexes[i]].name}\\n`;\n first = true;\n count = 0;\n startSeg = str.length;\n str += pre;\n for (j = 0; j < state.ruleCount; j += 1) {\n if (rdi.refersTo[ruleIndexes[j]]) {\n if (first) {\n str += toArrow;\n first = false;\n str += state.ruleDeps[ruleIndexes[j]].rule.name;\n } else {\n str += `, ${state.ruleDeps[ruleIndexes[j]].rule.name}`;\n }\n count += 1;\n }\n if (str.length - startSeg > lineLength && j !== maxRule) {\n str += `\\n${pre}${toArrow}`;\n startSeg = str.length;\n }\n }\n if (state.udtCount) {\n for (j = 0; j < state.udtCount; j += 1) {\n if (rdi.refersToUdt[udtIndexes[j]]) {\n if (first) {\n str += toArrow;\n first = false;\n str += state.udts[udtIndexes[j]].name;\n } else {\n str += `, ${state.udts[udtIndexes[j]].name}`;\n }\n count += 1;\n }\n if (str.length - startSeg > lineLength && j !== maxUdt) {\n str += `\\n${pre}${toArrow}`;\n startSeg = str.length;\n }\n }\n }\n if (count === 0) {\n str += '=> \\n';\n }\n if (first === false) {\n str += '\\n';\n }\n first = true;\n count = 0;\n startSeg = str.length;\n str += pre;\n for (j = 0; j < state.ruleCount; j += 1) {\n if (rdi.referencedBy[ruleIndexes[j]]) {\n if (first) {\n str += byArrow;\n first = false;\n str += state.ruleDeps[ruleIndexes[j]].rule.name;\n } else {\n str += `, ${state.ruleDeps[ruleIndexes[j]].rule.name}`;\n }\n count += 1;\n }\n if (str.length - startSeg > lineLength && j !== maxRule) {\n str += `\\n${pre}${toArrow}`;\n startSeg = str.length;\n }\n }\n if (count === 0) {\n str += '<= \\n';\n }\n if (first === false) {\n str += '\\n';\n }\n str += '\\n';\n }\n return str;\n };\n // Display the rule dependencies.\n // - order\n // - \"index\" or \"i\", index order (default)\n // - \"alpha\" or \"a\", alphabetical order\n // - \"type\" or \"t\", ordered by type (alphabetical within each type/group)\n // - none of above, index order (default)\n const showRuleDependencies = (order = 'index') => {\n let str = 'RULE DEPENDENCIES(index:type:[group number:])\\n';\n str += '=> refers to rule names\\n';\n str += '<= referenced by rule names\\n';\n if (!state.dependenciesComplete) {\n return str;\n }\n\n if (order.charCodeAt(0) === 97) {\n str += 'alphabetical by rule name\\n';\n str += show(97);\n } else if (order.charCodeAt(0) === 116) {\n str += 'ordered by rule type\\n';\n str += show(116);\n } else {\n str += 'ordered by rule index\\n';\n str += show(null);\n }\n return str;\n };\n\n /* Destructuring assignment - see MDN Web Docs */\n return { ruleDependencies, showRuleDependencies };\n})();\n","// copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved
\n// license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)
\n//\n// Generated by apg-js, Version 4.0.0 [apg-js](https://github.com/ldthomas/apg-js)\nmodule.exports = function grammar(){\n // ```\n // SUMMARY\n // rules = 95\n // udts = 0\n // opcodes = 372\n // --- ABNF original opcodes\n // ALT = 43\n // CAT = 48\n // REP = 34\n // RNM = 149\n // TLS = 2\n // TBS = 61\n // TRG = 35\n // --- SABNF superset opcodes\n // UDT = 0\n // AND = 0\n // NOT = 0\n // BKA = 0\n // BKN = 0\n // BKR = 0\n // ABG = 0\n // AEN = 0\n // characters = [9 - 126]\n // ```\n /* OBJECT IDENTIFIER (for internal parser use) */\n this.grammarObject = 'grammarObject';\n\n /* RULES */\n this.rules = [];\n this.rules[0] = {name: 'File', lower: 'file', index: 0, isBkr: false};\n this.rules[1] = {name: 'BlankLine', lower: 'blankline', index: 1, isBkr: false};\n this.rules[2] = {name: 'Rule', lower: 'rule', index: 2, isBkr: false};\n this.rules[3] = {name: 'RuleLookup', lower: 'rulelookup', index: 3, isBkr: false};\n this.rules[4] = {name: 'RuleNameTest', lower: 'rulenametest', index: 4, isBkr: false};\n this.rules[5] = {name: 'RuleName', lower: 'rulename', index: 5, isBkr: false};\n this.rules[6] = {name: 'RuleNameError', lower: 'rulenameerror', index: 6, isBkr: false};\n this.rules[7] = {name: 'DefinedAsTest', lower: 'definedastest', index: 7, isBkr: false};\n this.rules[8] = {name: 'DefinedAsError', lower: 'definedaserror', index: 8, isBkr: false};\n this.rules[9] = {name: 'DefinedAs', lower: 'definedas', index: 9, isBkr: false};\n this.rules[10] = {name: 'Defined', lower: 'defined', index: 10, isBkr: false};\n this.rules[11] = {name: 'IncAlt', lower: 'incalt', index: 11, isBkr: false};\n this.rules[12] = {name: 'RuleError', lower: 'ruleerror', index: 12, isBkr: false};\n this.rules[13] = {name: 'LineEndError', lower: 'lineenderror', index: 13, isBkr: false};\n this.rules[14] = {name: 'Alternation', lower: 'alternation', index: 14, isBkr: false};\n this.rules[15] = {name: 'Concatenation', lower: 'concatenation', index: 15, isBkr: false};\n this.rules[16] = {name: 'Repetition', lower: 'repetition', index: 16, isBkr: false};\n this.rules[17] = {name: 'Modifier', lower: 'modifier', index: 17, isBkr: false};\n this.rules[18] = {name: 'Predicate', lower: 'predicate', index: 18, isBkr: false};\n this.rules[19] = {name: 'BasicElement', lower: 'basicelement', index: 19, isBkr: false};\n this.rules[20] = {name: 'BasicElementErr', lower: 'basicelementerr', index: 20, isBkr: false};\n this.rules[21] = {name: 'Group', lower: 'group', index: 21, isBkr: false};\n this.rules[22] = {name: 'GroupError', lower: 'grouperror', index: 22, isBkr: false};\n this.rules[23] = {name: 'GroupOpen', lower: 'groupopen', index: 23, isBkr: false};\n this.rules[24] = {name: 'GroupClose', lower: 'groupclose', index: 24, isBkr: false};\n this.rules[25] = {name: 'Option', lower: 'option', index: 25, isBkr: false};\n this.rules[26] = {name: 'OptionError', lower: 'optionerror', index: 26, isBkr: false};\n this.rules[27] = {name: 'OptionOpen', lower: 'optionopen', index: 27, isBkr: false};\n this.rules[28] = {name: 'OptionClose', lower: 'optionclose', index: 28, isBkr: false};\n this.rules[29] = {name: 'RnmOp', lower: 'rnmop', index: 29, isBkr: false};\n this.rules[30] = {name: 'BkrOp', lower: 'bkrop', index: 30, isBkr: false};\n this.rules[31] = {name: 'bkrModifier', lower: 'bkrmodifier', index: 31, isBkr: false};\n this.rules[32] = {name: 'cs', lower: 'cs', index: 32, isBkr: false};\n this.rules[33] = {name: 'ci', lower: 'ci', index: 33, isBkr: false};\n this.rules[34] = {name: 'um', lower: 'um', index: 34, isBkr: false};\n this.rules[35] = {name: 'pm', lower: 'pm', index: 35, isBkr: false};\n this.rules[36] = {name: 'bkr-name', lower: 'bkr-name', index: 36, isBkr: false};\n this.rules[37] = {name: 'rname', lower: 'rname', index: 37, isBkr: false};\n this.rules[38] = {name: 'uname', lower: 'uname', index: 38, isBkr: false};\n this.rules[39] = {name: 'ename', lower: 'ename', index: 39, isBkr: false};\n this.rules[40] = {name: 'UdtOp', lower: 'udtop', index: 40, isBkr: false};\n this.rules[41] = {name: 'udt-non-empty', lower: 'udt-non-empty', index: 41, isBkr: false};\n this.rules[42] = {name: 'udt-empty', lower: 'udt-empty', index: 42, isBkr: false};\n this.rules[43] = {name: 'RepOp', lower: 'repop', index: 43, isBkr: false};\n this.rules[44] = {name: 'AltOp', lower: 'altop', index: 44, isBkr: false};\n this.rules[45] = {name: 'CatOp', lower: 'catop', index: 45, isBkr: false};\n this.rules[46] = {name: 'StarOp', lower: 'starop', index: 46, isBkr: false};\n this.rules[47] = {name: 'AndOp', lower: 'andop', index: 47, isBkr: false};\n this.rules[48] = {name: 'NotOp', lower: 'notop', index: 48, isBkr: false};\n this.rules[49] = {name: 'BkaOp', lower: 'bkaop', index: 49, isBkr: false};\n this.rules[50] = {name: 'BknOp', lower: 'bknop', index: 50, isBkr: false};\n this.rules[51] = {name: 'AbgOp', lower: 'abgop', index: 51, isBkr: false};\n this.rules[52] = {name: 'AenOp', lower: 'aenop', index: 52, isBkr: false};\n this.rules[53] = {name: 'TrgOp', lower: 'trgop', index: 53, isBkr: false};\n this.rules[54] = {name: 'TbsOp', lower: 'tbsop', index: 54, isBkr: false};\n this.rules[55] = {name: 'TlsOp', lower: 'tlsop', index: 55, isBkr: false};\n this.rules[56] = {name: 'TlsCase', lower: 'tlscase', index: 56, isBkr: false};\n this.rules[57] = {name: 'TlsOpen', lower: 'tlsopen', index: 57, isBkr: false};\n this.rules[58] = {name: 'TlsClose', lower: 'tlsclose', index: 58, isBkr: false};\n this.rules[59] = {name: 'TlsString', lower: 'tlsstring', index: 59, isBkr: false};\n this.rules[60] = {name: 'StringTab', lower: 'stringtab', index: 60, isBkr: false};\n this.rules[61] = {name: 'ClsOp', lower: 'clsop', index: 61, isBkr: false};\n this.rules[62] = {name: 'ClsOpen', lower: 'clsopen', index: 62, isBkr: false};\n this.rules[63] = {name: 'ClsClose', lower: 'clsclose', index: 63, isBkr: false};\n this.rules[64] = {name: 'ClsString', lower: 'clsstring', index: 64, isBkr: false};\n this.rules[65] = {name: 'ProsVal', lower: 'prosval', index: 65, isBkr: false};\n this.rules[66] = {name: 'ProsValOpen', lower: 'prosvalopen', index: 66, isBkr: false};\n this.rules[67] = {name: 'ProsValString', lower: 'prosvalstring', index: 67, isBkr: false};\n this.rules[68] = {name: 'ProsValClose', lower: 'prosvalclose', index: 68, isBkr: false};\n this.rules[69] = {name: 'rep-min', lower: 'rep-min', index: 69, isBkr: false};\n this.rules[70] = {name: 'rep-min-max', lower: 'rep-min-max', index: 70, isBkr: false};\n this.rules[71] = {name: 'rep-max', lower: 'rep-max', index: 71, isBkr: false};\n this.rules[72] = {name: 'rep-num', lower: 'rep-num', index: 72, isBkr: false};\n this.rules[73] = {name: 'dString', lower: 'dstring', index: 73, isBkr: false};\n this.rules[74] = {name: 'xString', lower: 'xstring', index: 74, isBkr: false};\n this.rules[75] = {name: 'bString', lower: 'bstring', index: 75, isBkr: false};\n this.rules[76] = {name: 'Dec', lower: 'dec', index: 76, isBkr: false};\n this.rules[77] = {name: 'Hex', lower: 'hex', index: 77, isBkr: false};\n this.rules[78] = {name: 'Bin', lower: 'bin', index: 78, isBkr: false};\n this.rules[79] = {name: 'dmin', lower: 'dmin', index: 79, isBkr: false};\n this.rules[80] = {name: 'dmax', lower: 'dmax', index: 80, isBkr: false};\n this.rules[81] = {name: 'bmin', lower: 'bmin', index: 81, isBkr: false};\n this.rules[82] = {name: 'bmax', lower: 'bmax', index: 82, isBkr: false};\n this.rules[83] = {name: 'xmin', lower: 'xmin', index: 83, isBkr: false};\n this.rules[84] = {name: 'xmax', lower: 'xmax', index: 84, isBkr: false};\n this.rules[85] = {name: 'dnum', lower: 'dnum', index: 85, isBkr: false};\n this.rules[86] = {name: 'bnum', lower: 'bnum', index: 86, isBkr: false};\n this.rules[87] = {name: 'xnum', lower: 'xnum', index: 87, isBkr: false};\n this.rules[88] = {name: 'alphanum', lower: 'alphanum', index: 88, isBkr: false};\n this.rules[89] = {name: 'owsp', lower: 'owsp', index: 89, isBkr: false};\n this.rules[90] = {name: 'wsp', lower: 'wsp', index: 90, isBkr: false};\n this.rules[91] = {name: 'space', lower: 'space', index: 91, isBkr: false};\n this.rules[92] = {name: 'comment', lower: 'comment', index: 92, isBkr: false};\n this.rules[93] = {name: 'LineEnd', lower: 'lineend', index: 93, isBkr: false};\n this.rules[94] = {name: 'LineContinue', lower: 'linecontinue', index: 94, isBkr: false};\n\n /* UDTS */\n this.udts = [];\n\n /* OPCODES */\n /* File */\n this.rules[0].opcodes = [];\n this.rules[0].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[0].opcodes[1] = {type: 1, children: [2,3,4]};// ALT\n this.rules[0].opcodes[2] = {type: 4, index: 1};// RNM(BlankLine)\n this.rules[0].opcodes[3] = {type: 4, index: 2};// RNM(Rule)\n this.rules[0].opcodes[4] = {type: 4, index: 12};// RNM(RuleError)\n\n /* BlankLine */\n this.rules[1].opcodes = [];\n this.rules[1].opcodes[0] = {type: 2, children: [1,5,7]};// CAT\n this.rules[1].opcodes[1] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[1].opcodes[2] = {type: 1, children: [3,4]};// ALT\n this.rules[1].opcodes[3] = {type: 6, string: [32]};// TBS\n this.rules[1].opcodes[4] = {type: 6, string: [9]};// TBS\n this.rules[1].opcodes[5] = {type: 3, min: 0, max: 1};// REP\n this.rules[1].opcodes[6] = {type: 4, index: 92};// RNM(comment)\n this.rules[1].opcodes[7] = {type: 4, index: 93};// RNM(LineEnd)\n\n /* Rule */\n this.rules[2].opcodes = [];\n this.rules[2].opcodes[0] = {type: 2, children: [1,2,3,4]};// CAT\n this.rules[2].opcodes[1] = {type: 4, index: 3};// RNM(RuleLookup)\n this.rules[2].opcodes[2] = {type: 4, index: 89};// RNM(owsp)\n this.rules[2].opcodes[3] = {type: 4, index: 14};// RNM(Alternation)\n this.rules[2].opcodes[4] = {type: 1, children: [5,8]};// ALT\n this.rules[2].opcodes[5] = {type: 2, children: [6,7]};// CAT\n this.rules[2].opcodes[6] = {type: 4, index: 89};// RNM(owsp)\n this.rules[2].opcodes[7] = {type: 4, index: 93};// RNM(LineEnd)\n this.rules[2].opcodes[8] = {type: 2, children: [9,10]};// CAT\n this.rules[2].opcodes[9] = {type: 4, index: 13};// RNM(LineEndError)\n this.rules[2].opcodes[10] = {type: 4, index: 93};// RNM(LineEnd)\n\n /* RuleLookup */\n this.rules[3].opcodes = [];\n this.rules[3].opcodes[0] = {type: 2, children: [1,2,3]};// CAT\n this.rules[3].opcodes[1] = {type: 4, index: 4};// RNM(RuleNameTest)\n this.rules[3].opcodes[2] = {type: 4, index: 89};// RNM(owsp)\n this.rules[3].opcodes[3] = {type: 4, index: 7};// RNM(DefinedAsTest)\n\n /* RuleNameTest */\n this.rules[4].opcodes = [];\n this.rules[4].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[4].opcodes[1] = {type: 4, index: 5};// RNM(RuleName)\n this.rules[4].opcodes[2] = {type: 4, index: 6};// RNM(RuleNameError)\n\n /* RuleName */\n this.rules[5].opcodes = [];\n this.rules[5].opcodes[0] = {type: 4, index: 88};// RNM(alphanum)\n\n /* RuleNameError */\n this.rules[6].opcodes = [];\n this.rules[6].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[6].opcodes[1] = {type: 1, children: [2,3]};// ALT\n this.rules[6].opcodes[2] = {type: 5, min: 33, max: 60};// TRG\n this.rules[6].opcodes[3] = {type: 5, min: 62, max: 126};// TRG\n\n /* DefinedAsTest */\n this.rules[7].opcodes = [];\n this.rules[7].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[7].opcodes[1] = {type: 4, index: 9};// RNM(DefinedAs)\n this.rules[7].opcodes[2] = {type: 4, index: 8};// RNM(DefinedAsError)\n\n /* DefinedAsError */\n this.rules[8].opcodes = [];\n this.rules[8].opcodes[0] = {type: 3, min: 1, max: 2};// REP\n this.rules[8].opcodes[1] = {type: 5, min: 33, max: 126};// TRG\n\n /* DefinedAs */\n this.rules[9].opcodes = [];\n this.rules[9].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[9].opcodes[1] = {type: 4, index: 11};// RNM(IncAlt)\n this.rules[9].opcodes[2] = {type: 4, index: 10};// RNM(Defined)\n\n /* Defined */\n this.rules[10].opcodes = [];\n this.rules[10].opcodes[0] = {type: 6, string: [61]};// TBS\n\n /* IncAlt */\n this.rules[11].opcodes = [];\n this.rules[11].opcodes[0] = {type: 6, string: [61,47]};// TBS\n\n /* RuleError */\n this.rules[12].opcodes = [];\n this.rules[12].opcodes[0] = {type: 2, children: [1,6]};// CAT\n this.rules[12].opcodes[1] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[12].opcodes[2] = {type: 1, children: [3,4,5]};// ALT\n this.rules[12].opcodes[3] = {type: 5, min: 32, max: 126};// TRG\n this.rules[12].opcodes[4] = {type: 6, string: [9]};// TBS\n this.rules[12].opcodes[5] = {type: 4, index: 94};// RNM(LineContinue)\n this.rules[12].opcodes[6] = {type: 4, index: 93};// RNM(LineEnd)\n\n /* LineEndError */\n this.rules[13].opcodes = [];\n this.rules[13].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[13].opcodes[1] = {type: 1, children: [2,3,4]};// ALT\n this.rules[13].opcodes[2] = {type: 5, min: 32, max: 126};// TRG\n this.rules[13].opcodes[3] = {type: 6, string: [9]};// TBS\n this.rules[13].opcodes[4] = {type: 4, index: 94};// RNM(LineContinue)\n\n /* Alternation */\n this.rules[14].opcodes = [];\n this.rules[14].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[14].opcodes[1] = {type: 4, index: 15};// RNM(Concatenation)\n this.rules[14].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[14].opcodes[3] = {type: 2, children: [4,5,6]};// CAT\n this.rules[14].opcodes[4] = {type: 4, index: 89};// RNM(owsp)\n this.rules[14].opcodes[5] = {type: 4, index: 44};// RNM(AltOp)\n this.rules[14].opcodes[6] = {type: 4, index: 15};// RNM(Concatenation)\n\n /* Concatenation */\n this.rules[15].opcodes = [];\n this.rules[15].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[15].opcodes[1] = {type: 4, index: 16};// RNM(Repetition)\n this.rules[15].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[15].opcodes[3] = {type: 2, children: [4,5]};// CAT\n this.rules[15].opcodes[4] = {type: 4, index: 45};// RNM(CatOp)\n this.rules[15].opcodes[5] = {type: 4, index: 16};// RNM(Repetition)\n\n /* Repetition */\n this.rules[16].opcodes = [];\n this.rules[16].opcodes[0] = {type: 2, children: [1,3]};// CAT\n this.rules[16].opcodes[1] = {type: 3, min: 0, max: 1};// REP\n this.rules[16].opcodes[2] = {type: 4, index: 17};// RNM(Modifier)\n this.rules[16].opcodes[3] = {type: 1, children: [4,5,6,7]};// ALT\n this.rules[16].opcodes[4] = {type: 4, index: 21};// RNM(Group)\n this.rules[16].opcodes[5] = {type: 4, index: 25};// RNM(Option)\n this.rules[16].opcodes[6] = {type: 4, index: 19};// RNM(BasicElement)\n this.rules[16].opcodes[7] = {type: 4, index: 20};// RNM(BasicElementErr)\n\n /* Modifier */\n this.rules[17].opcodes = [];\n this.rules[17].opcodes[0] = {type: 1, children: [1,5]};// ALT\n this.rules[17].opcodes[1] = {type: 2, children: [2,3]};// CAT\n this.rules[17].opcodes[2] = {type: 4, index: 18};// RNM(Predicate)\n this.rules[17].opcodes[3] = {type: 3, min: 0, max: 1};// REP\n this.rules[17].opcodes[4] = {type: 4, index: 43};// RNM(RepOp)\n this.rules[17].opcodes[5] = {type: 4, index: 43};// RNM(RepOp)\n\n /* Predicate */\n this.rules[18].opcodes = [];\n this.rules[18].opcodes[0] = {type: 1, children: [1,2,3,4]};// ALT\n this.rules[18].opcodes[1] = {type: 4, index: 49};// RNM(BkaOp)\n this.rules[18].opcodes[2] = {type: 4, index: 50};// RNM(BknOp)\n this.rules[18].opcodes[3] = {type: 4, index: 47};// RNM(AndOp)\n this.rules[18].opcodes[4] = {type: 4, index: 48};// RNM(NotOp)\n\n /* BasicElement */\n this.rules[19].opcodes = [];\n this.rules[19].opcodes[0] = {type: 1, children: [1,2,3,4,5,6,7,8,9,10]};// ALT\n this.rules[19].opcodes[1] = {type: 4, index: 40};// RNM(UdtOp)\n this.rules[19].opcodes[2] = {type: 4, index: 29};// RNM(RnmOp)\n this.rules[19].opcodes[3] = {type: 4, index: 53};// RNM(TrgOp)\n this.rules[19].opcodes[4] = {type: 4, index: 54};// RNM(TbsOp)\n this.rules[19].opcodes[5] = {type: 4, index: 55};// RNM(TlsOp)\n this.rules[19].opcodes[6] = {type: 4, index: 61};// RNM(ClsOp)\n this.rules[19].opcodes[7] = {type: 4, index: 30};// RNM(BkrOp)\n this.rules[19].opcodes[8] = {type: 4, index: 51};// RNM(AbgOp)\n this.rules[19].opcodes[9] = {type: 4, index: 52};// RNM(AenOp)\n this.rules[19].opcodes[10] = {type: 4, index: 65};// RNM(ProsVal)\n\n /* BasicElementErr */\n this.rules[20].opcodes = [];\n this.rules[20].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[20].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT\n this.rules[20].opcodes[2] = {type: 5, min: 33, max: 40};// TRG\n this.rules[20].opcodes[3] = {type: 5, min: 42, max: 46};// TRG\n this.rules[20].opcodes[4] = {type: 5, min: 48, max: 92};// TRG\n this.rules[20].opcodes[5] = {type: 5, min: 94, max: 126};// TRG\n\n /* Group */\n this.rules[21].opcodes = [];\n this.rules[21].opcodes[0] = {type: 2, children: [1,2,3]};// CAT\n this.rules[21].opcodes[1] = {type: 4, index: 23};// RNM(GroupOpen)\n this.rules[21].opcodes[2] = {type: 4, index: 14};// RNM(Alternation)\n this.rules[21].opcodes[3] = {type: 1, children: [4,5]};// ALT\n this.rules[21].opcodes[4] = {type: 4, index: 24};// RNM(GroupClose)\n this.rules[21].opcodes[5] = {type: 4, index: 22};// RNM(GroupError)\n\n /* GroupError */\n this.rules[22].opcodes = [];\n this.rules[22].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[22].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT\n this.rules[22].opcodes[2] = {type: 5, min: 33, max: 40};// TRG\n this.rules[22].opcodes[3] = {type: 5, min: 42, max: 46};// TRG\n this.rules[22].opcodes[4] = {type: 5, min: 48, max: 92};// TRG\n this.rules[22].opcodes[5] = {type: 5, min: 94, max: 126};// TRG\n\n /* GroupOpen */\n this.rules[23].opcodes = [];\n this.rules[23].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[23].opcodes[1] = {type: 6, string: [40]};// TBS\n this.rules[23].opcodes[2] = {type: 4, index: 89};// RNM(owsp)\n\n /* GroupClose */\n this.rules[24].opcodes = [];\n this.rules[24].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[24].opcodes[1] = {type: 4, index: 89};// RNM(owsp)\n this.rules[24].opcodes[2] = {type: 6, string: [41]};// TBS\n\n /* Option */\n this.rules[25].opcodes = [];\n this.rules[25].opcodes[0] = {type: 2, children: [1,2,3]};// CAT\n this.rules[25].opcodes[1] = {type: 4, index: 27};// RNM(OptionOpen)\n this.rules[25].opcodes[2] = {type: 4, index: 14};// RNM(Alternation)\n this.rules[25].opcodes[3] = {type: 1, children: [4,5]};// ALT\n this.rules[25].opcodes[4] = {type: 4, index: 28};// RNM(OptionClose)\n this.rules[25].opcodes[5] = {type: 4, index: 26};// RNM(OptionError)\n\n /* OptionError */\n this.rules[26].opcodes = [];\n this.rules[26].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[26].opcodes[1] = {type: 1, children: [2,3,4,5]};// ALT\n this.rules[26].opcodes[2] = {type: 5, min: 33, max: 40};// TRG\n this.rules[26].opcodes[3] = {type: 5, min: 42, max: 46};// TRG\n this.rules[26].opcodes[4] = {type: 5, min: 48, max: 92};// TRG\n this.rules[26].opcodes[5] = {type: 5, min: 94, max: 126};// TRG\n\n /* OptionOpen */\n this.rules[27].opcodes = [];\n this.rules[27].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[27].opcodes[1] = {type: 6, string: [91]};// TBS\n this.rules[27].opcodes[2] = {type: 4, index: 89};// RNM(owsp)\n\n /* OptionClose */\n this.rules[28].opcodes = [];\n this.rules[28].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[28].opcodes[1] = {type: 4, index: 89};// RNM(owsp)\n this.rules[28].opcodes[2] = {type: 6, string: [93]};// TBS\n\n /* RnmOp */\n this.rules[29].opcodes = [];\n this.rules[29].opcodes[0] = {type: 4, index: 88};// RNM(alphanum)\n\n /* BkrOp */\n this.rules[30].opcodes = [];\n this.rules[30].opcodes[0] = {type: 2, children: [1,2,4]};// CAT\n this.rules[30].opcodes[1] = {type: 6, string: [92]};// TBS\n this.rules[30].opcodes[2] = {type: 3, min: 0, max: 1};// REP\n this.rules[30].opcodes[3] = {type: 4, index: 31};// RNM(bkrModifier)\n this.rules[30].opcodes[4] = {type: 4, index: 36};// RNM(bkr-name)\n\n /* bkrModifier */\n this.rules[31].opcodes = [];\n this.rules[31].opcodes[0] = {type: 1, children: [1,7,13,19]};// ALT\n this.rules[31].opcodes[1] = {type: 2, children: [2,3]};// CAT\n this.rules[31].opcodes[2] = {type: 4, index: 32};// RNM(cs)\n this.rules[31].opcodes[3] = {type: 3, min: 0, max: 1};// REP\n this.rules[31].opcodes[4] = {type: 1, children: [5,6]};// ALT\n this.rules[31].opcodes[5] = {type: 4, index: 34};// RNM(um)\n this.rules[31].opcodes[6] = {type: 4, index: 35};// RNM(pm)\n this.rules[31].opcodes[7] = {type: 2, children: [8,9]};// CAT\n this.rules[31].opcodes[8] = {type: 4, index: 33};// RNM(ci)\n this.rules[31].opcodes[9] = {type: 3, min: 0, max: 1};// REP\n this.rules[31].opcodes[10] = {type: 1, children: [11,12]};// ALT\n this.rules[31].opcodes[11] = {type: 4, index: 34};// RNM(um)\n this.rules[31].opcodes[12] = {type: 4, index: 35};// RNM(pm)\n this.rules[31].opcodes[13] = {type: 2, children: [14,15]};// CAT\n this.rules[31].opcodes[14] = {type: 4, index: 34};// RNM(um)\n this.rules[31].opcodes[15] = {type: 3, min: 0, max: 1};// REP\n this.rules[31].opcodes[16] = {type: 1, children: [17,18]};// ALT\n this.rules[31].opcodes[17] = {type: 4, index: 32};// RNM(cs)\n this.rules[31].opcodes[18] = {type: 4, index: 33};// RNM(ci)\n this.rules[31].opcodes[19] = {type: 2, children: [20,21]};// CAT\n this.rules[31].opcodes[20] = {type: 4, index: 35};// RNM(pm)\n this.rules[31].opcodes[21] = {type: 3, min: 0, max: 1};// REP\n this.rules[31].opcodes[22] = {type: 1, children: [23,24]};// ALT\n this.rules[31].opcodes[23] = {type: 4, index: 32};// RNM(cs)\n this.rules[31].opcodes[24] = {type: 4, index: 33};// RNM(ci)\n\n /* cs */\n this.rules[32].opcodes = [];\n this.rules[32].opcodes[0] = {type: 6, string: [37,115]};// TBS\n\n /* ci */\n this.rules[33].opcodes = [];\n this.rules[33].opcodes[0] = {type: 6, string: [37,105]};// TBS\n\n /* um */\n this.rules[34].opcodes = [];\n this.rules[34].opcodes[0] = {type: 6, string: [37,117]};// TBS\n\n /* pm */\n this.rules[35].opcodes = [];\n this.rules[35].opcodes[0] = {type: 6, string: [37,112]};// TBS\n\n /* bkr-name */\n this.rules[36].opcodes = [];\n this.rules[36].opcodes[0] = {type: 1, children: [1,2,3]};// ALT\n this.rules[36].opcodes[1] = {type: 4, index: 38};// RNM(uname)\n this.rules[36].opcodes[2] = {type: 4, index: 39};// RNM(ename)\n this.rules[36].opcodes[3] = {type: 4, index: 37};// RNM(rname)\n\n /* rname */\n this.rules[37].opcodes = [];\n this.rules[37].opcodes[0] = {type: 4, index: 88};// RNM(alphanum)\n\n /* uname */\n this.rules[38].opcodes = [];\n this.rules[38].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[38].opcodes[1] = {type: 6, string: [117,95]};// TBS\n this.rules[38].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)\n\n /* ename */\n this.rules[39].opcodes = [];\n this.rules[39].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[39].opcodes[1] = {type: 6, string: [101,95]};// TBS\n this.rules[39].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)\n\n /* UdtOp */\n this.rules[40].opcodes = [];\n this.rules[40].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[40].opcodes[1] = {type: 4, index: 42};// RNM(udt-empty)\n this.rules[40].opcodes[2] = {type: 4, index: 41};// RNM(udt-non-empty)\n\n /* udt-non-empty */\n this.rules[41].opcodes = [];\n this.rules[41].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[41].opcodes[1] = {type: 6, string: [117,95]};// TBS\n this.rules[41].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)\n\n /* udt-empty */\n this.rules[42].opcodes = [];\n this.rules[42].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[42].opcodes[1] = {type: 6, string: [101,95]};// TBS\n this.rules[42].opcodes[2] = {type: 4, index: 88};// RNM(alphanum)\n\n /* RepOp */\n this.rules[43].opcodes = [];\n this.rules[43].opcodes[0] = {type: 1, children: [1,5,8,11,12]};// ALT\n this.rules[43].opcodes[1] = {type: 2, children: [2,3,4]};// CAT\n this.rules[43].opcodes[2] = {type: 4, index: 69};// RNM(rep-min)\n this.rules[43].opcodes[3] = {type: 4, index: 46};// RNM(StarOp)\n this.rules[43].opcodes[4] = {type: 4, index: 71};// RNM(rep-max)\n this.rules[43].opcodes[5] = {type: 2, children: [6,7]};// CAT\n this.rules[43].opcodes[6] = {type: 4, index: 69};// RNM(rep-min)\n this.rules[43].opcodes[7] = {type: 4, index: 46};// RNM(StarOp)\n this.rules[43].opcodes[8] = {type: 2, children: [9,10]};// CAT\n this.rules[43].opcodes[9] = {type: 4, index: 46};// RNM(StarOp)\n this.rules[43].opcodes[10] = {type: 4, index: 71};// RNM(rep-max)\n this.rules[43].opcodes[11] = {type: 4, index: 46};// RNM(StarOp)\n this.rules[43].opcodes[12] = {type: 4, index: 70};// RNM(rep-min-max)\n\n /* AltOp */\n this.rules[44].opcodes = [];\n this.rules[44].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[44].opcodes[1] = {type: 6, string: [47]};// TBS\n this.rules[44].opcodes[2] = {type: 4, index: 89};// RNM(owsp)\n\n /* CatOp */\n this.rules[45].opcodes = [];\n this.rules[45].opcodes[0] = {type: 4, index: 90};// RNM(wsp)\n\n /* StarOp */\n this.rules[46].opcodes = [];\n this.rules[46].opcodes[0] = {type: 6, string: [42]};// TBS\n\n /* AndOp */\n this.rules[47].opcodes = [];\n this.rules[47].opcodes[0] = {type: 6, string: [38]};// TBS\n\n /* NotOp */\n this.rules[48].opcodes = [];\n this.rules[48].opcodes[0] = {type: 6, string: [33]};// TBS\n\n /* BkaOp */\n this.rules[49].opcodes = [];\n this.rules[49].opcodes[0] = {type: 6, string: [38,38]};// TBS\n\n /* BknOp */\n this.rules[50].opcodes = [];\n this.rules[50].opcodes[0] = {type: 6, string: [33,33]};// TBS\n\n /* AbgOp */\n this.rules[51].opcodes = [];\n this.rules[51].opcodes[0] = {type: 6, string: [37,94]};// TBS\n\n /* AenOp */\n this.rules[52].opcodes = [];\n this.rules[52].opcodes[0] = {type: 6, string: [37,36]};// TBS\n\n /* TrgOp */\n this.rules[53].opcodes = [];\n this.rules[53].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[53].opcodes[1] = {type: 6, string: [37]};// TBS\n this.rules[53].opcodes[2] = {type: 1, children: [3,8,13]};// ALT\n this.rules[53].opcodes[3] = {type: 2, children: [4,5,6,7]};// CAT\n this.rules[53].opcodes[4] = {type: 4, index: 76};// RNM(Dec)\n this.rules[53].opcodes[5] = {type: 4, index: 79};// RNM(dmin)\n this.rules[53].opcodes[6] = {type: 6, string: [45]};// TBS\n this.rules[53].opcodes[7] = {type: 4, index: 80};// RNM(dmax)\n this.rules[53].opcodes[8] = {type: 2, children: [9,10,11,12]};// CAT\n this.rules[53].opcodes[9] = {type: 4, index: 77};// RNM(Hex)\n this.rules[53].opcodes[10] = {type: 4, index: 83};// RNM(xmin)\n this.rules[53].opcodes[11] = {type: 6, string: [45]};// TBS\n this.rules[53].opcodes[12] = {type: 4, index: 84};// RNM(xmax)\n this.rules[53].opcodes[13] = {type: 2, children: [14,15,16,17]};// CAT\n this.rules[53].opcodes[14] = {type: 4, index: 78};// RNM(Bin)\n this.rules[53].opcodes[15] = {type: 4, index: 81};// RNM(bmin)\n this.rules[53].opcodes[16] = {type: 6, string: [45]};// TBS\n this.rules[53].opcodes[17] = {type: 4, index: 82};// RNM(bmax)\n\n /* TbsOp */\n this.rules[54].opcodes = [];\n this.rules[54].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[54].opcodes[1] = {type: 6, string: [37]};// TBS\n this.rules[54].opcodes[2] = {type: 1, children: [3,10,17]};// ALT\n this.rules[54].opcodes[3] = {type: 2, children: [4,5,6]};// CAT\n this.rules[54].opcodes[4] = {type: 4, index: 76};// RNM(Dec)\n this.rules[54].opcodes[5] = {type: 4, index: 73};// RNM(dString)\n this.rules[54].opcodes[6] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[54].opcodes[7] = {type: 2, children: [8,9]};// CAT\n this.rules[54].opcodes[8] = {type: 6, string: [46]};// TBS\n this.rules[54].opcodes[9] = {type: 4, index: 73};// RNM(dString)\n this.rules[54].opcodes[10] = {type: 2, children: [11,12,13]};// CAT\n this.rules[54].opcodes[11] = {type: 4, index: 77};// RNM(Hex)\n this.rules[54].opcodes[12] = {type: 4, index: 74};// RNM(xString)\n this.rules[54].opcodes[13] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[54].opcodes[14] = {type: 2, children: [15,16]};// CAT\n this.rules[54].opcodes[15] = {type: 6, string: [46]};// TBS\n this.rules[54].opcodes[16] = {type: 4, index: 74};// RNM(xString)\n this.rules[54].opcodes[17] = {type: 2, children: [18,19,20]};// CAT\n this.rules[54].opcodes[18] = {type: 4, index: 78};// RNM(Bin)\n this.rules[54].opcodes[19] = {type: 4, index: 75};// RNM(bString)\n this.rules[54].opcodes[20] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[54].opcodes[21] = {type: 2, children: [22,23]};// CAT\n this.rules[54].opcodes[22] = {type: 6, string: [46]};// TBS\n this.rules[54].opcodes[23] = {type: 4, index: 75};// RNM(bString)\n\n /* TlsOp */\n this.rules[55].opcodes = [];\n this.rules[55].opcodes[0] = {type: 2, children: [1,2,3,4]};// CAT\n this.rules[55].opcodes[1] = {type: 4, index: 56};// RNM(TlsCase)\n this.rules[55].opcodes[2] = {type: 4, index: 57};// RNM(TlsOpen)\n this.rules[55].opcodes[3] = {type: 4, index: 59};// RNM(TlsString)\n this.rules[55].opcodes[4] = {type: 4, index: 58};// RNM(TlsClose)\n\n /* TlsCase */\n this.rules[56].opcodes = [];\n this.rules[56].opcodes[0] = {type: 3, min: 0, max: 1};// REP\n this.rules[56].opcodes[1] = {type: 1, children: [2,3]};// ALT\n this.rules[56].opcodes[2] = {type: 7, string: [37,105]};// TLS\n this.rules[56].opcodes[3] = {type: 7, string: [37,115]};// TLS\n\n /* TlsOpen */\n this.rules[57].opcodes = [];\n this.rules[57].opcodes[0] = {type: 6, string: [34]};// TBS\n\n /* TlsClose */\n this.rules[58].opcodes = [];\n this.rules[58].opcodes[0] = {type: 6, string: [34]};// TBS\n\n /* TlsString */\n this.rules[59].opcodes = [];\n this.rules[59].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[59].opcodes[1] = {type: 1, children: [2,3,4]};// ALT\n this.rules[59].opcodes[2] = {type: 5, min: 32, max: 33};// TRG\n this.rules[59].opcodes[3] = {type: 5, min: 35, max: 126};// TRG\n this.rules[59].opcodes[4] = {type: 4, index: 60};// RNM(StringTab)\n\n /* StringTab */\n this.rules[60].opcodes = [];\n this.rules[60].opcodes[0] = {type: 6, string: [9]};// TBS\n\n /* ClsOp */\n this.rules[61].opcodes = [];\n this.rules[61].opcodes[0] = {type: 2, children: [1,2,3]};// CAT\n this.rules[61].opcodes[1] = {type: 4, index: 62};// RNM(ClsOpen)\n this.rules[61].opcodes[2] = {type: 4, index: 64};// RNM(ClsString)\n this.rules[61].opcodes[3] = {type: 4, index: 63};// RNM(ClsClose)\n\n /* ClsOpen */\n this.rules[62].opcodes = [];\n this.rules[62].opcodes[0] = {type: 6, string: [39]};// TBS\n\n /* ClsClose */\n this.rules[63].opcodes = [];\n this.rules[63].opcodes[0] = {type: 6, string: [39]};// TBS\n\n /* ClsString */\n this.rules[64].opcodes = [];\n this.rules[64].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[64].opcodes[1] = {type: 1, children: [2,3,4]};// ALT\n this.rules[64].opcodes[2] = {type: 5, min: 32, max: 38};// TRG\n this.rules[64].opcodes[3] = {type: 5, min: 40, max: 126};// TRG\n this.rules[64].opcodes[4] = {type: 4, index: 60};// RNM(StringTab)\n\n /* ProsVal */\n this.rules[65].opcodes = [];\n this.rules[65].opcodes[0] = {type: 2, children: [1,2,3]};// CAT\n this.rules[65].opcodes[1] = {type: 4, index: 66};// RNM(ProsValOpen)\n this.rules[65].opcodes[2] = {type: 4, index: 67};// RNM(ProsValString)\n this.rules[65].opcodes[3] = {type: 4, index: 68};// RNM(ProsValClose)\n\n /* ProsValOpen */\n this.rules[66].opcodes = [];\n this.rules[66].opcodes[0] = {type: 6, string: [60]};// TBS\n\n /* ProsValString */\n this.rules[67].opcodes = [];\n this.rules[67].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[67].opcodes[1] = {type: 1, children: [2,3,4]};// ALT\n this.rules[67].opcodes[2] = {type: 5, min: 32, max: 61};// TRG\n this.rules[67].opcodes[3] = {type: 5, min: 63, max: 126};// TRG\n this.rules[67].opcodes[4] = {type: 4, index: 60};// RNM(StringTab)\n\n /* ProsValClose */\n this.rules[68].opcodes = [];\n this.rules[68].opcodes[0] = {type: 6, string: [62]};// TBS\n\n /* rep-min */\n this.rules[69].opcodes = [];\n this.rules[69].opcodes[0] = {type: 4, index: 72};// RNM(rep-num)\n\n /* rep-min-max */\n this.rules[70].opcodes = [];\n this.rules[70].opcodes[0] = {type: 4, index: 72};// RNM(rep-num)\n\n /* rep-max */\n this.rules[71].opcodes = [];\n this.rules[71].opcodes[0] = {type: 4, index: 72};// RNM(rep-num)\n\n /* rep-num */\n this.rules[72].opcodes = [];\n this.rules[72].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[72].opcodes[1] = {type: 5, min: 48, max: 57};// TRG\n\n /* dString */\n this.rules[73].opcodes = [];\n this.rules[73].opcodes[0] = {type: 4, index: 85};// RNM(dnum)\n\n /* xString */\n this.rules[74].opcodes = [];\n this.rules[74].opcodes[0] = {type: 4, index: 87};// RNM(xnum)\n\n /* bString */\n this.rules[75].opcodes = [];\n this.rules[75].opcodes[0] = {type: 4, index: 86};// RNM(bnum)\n\n /* Dec */\n this.rules[76].opcodes = [];\n this.rules[76].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[76].opcodes[1] = {type: 6, string: [68]};// TBS\n this.rules[76].opcodes[2] = {type: 6, string: [100]};// TBS\n\n /* Hex */\n this.rules[77].opcodes = [];\n this.rules[77].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[77].opcodes[1] = {type: 6, string: [88]};// TBS\n this.rules[77].opcodes[2] = {type: 6, string: [120]};// TBS\n\n /* Bin */\n this.rules[78].opcodes = [];\n this.rules[78].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[78].opcodes[1] = {type: 6, string: [66]};// TBS\n this.rules[78].opcodes[2] = {type: 6, string: [98]};// TBS\n\n /* dmin */\n this.rules[79].opcodes = [];\n this.rules[79].opcodes[0] = {type: 4, index: 85};// RNM(dnum)\n\n /* dmax */\n this.rules[80].opcodes = [];\n this.rules[80].opcodes[0] = {type: 4, index: 85};// RNM(dnum)\n\n /* bmin */\n this.rules[81].opcodes = [];\n this.rules[81].opcodes[0] = {type: 4, index: 86};// RNM(bnum)\n\n /* bmax */\n this.rules[82].opcodes = [];\n this.rules[82].opcodes[0] = {type: 4, index: 86};// RNM(bnum)\n\n /* xmin */\n this.rules[83].opcodes = [];\n this.rules[83].opcodes[0] = {type: 4, index: 87};// RNM(xnum)\n\n /* xmax */\n this.rules[84].opcodes = [];\n this.rules[84].opcodes[0] = {type: 4, index: 87};// RNM(xnum)\n\n /* dnum */\n this.rules[85].opcodes = [];\n this.rules[85].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[85].opcodes[1] = {type: 5, min: 48, max: 57};// TRG\n\n /* bnum */\n this.rules[86].opcodes = [];\n this.rules[86].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[86].opcodes[1] = {type: 5, min: 48, max: 49};// TRG\n\n /* xnum */\n this.rules[87].opcodes = [];\n this.rules[87].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[87].opcodes[1] = {type: 1, children: [2,3,4]};// ALT\n this.rules[87].opcodes[2] = {type: 5, min: 48, max: 57};// TRG\n this.rules[87].opcodes[3] = {type: 5, min: 65, max: 70};// TRG\n this.rules[87].opcodes[4] = {type: 5, min: 97, max: 102};// TRG\n\n /* alphanum */\n this.rules[88].opcodes = [];\n this.rules[88].opcodes[0] = {type: 2, children: [1,4]};// CAT\n this.rules[88].opcodes[1] = {type: 1, children: [2,3]};// ALT\n this.rules[88].opcodes[2] = {type: 5, min: 97, max: 122};// TRG\n this.rules[88].opcodes[3] = {type: 5, min: 65, max: 90};// TRG\n this.rules[88].opcodes[4] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[88].opcodes[5] = {type: 1, children: [6,7,8,9]};// ALT\n this.rules[88].opcodes[6] = {type: 5, min: 97, max: 122};// TRG\n this.rules[88].opcodes[7] = {type: 5, min: 65, max: 90};// TRG\n this.rules[88].opcodes[8] = {type: 5, min: 48, max: 57};// TRG\n this.rules[88].opcodes[9] = {type: 6, string: [45]};// TBS\n\n /* owsp */\n this.rules[89].opcodes = [];\n this.rules[89].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[89].opcodes[1] = {type: 4, index: 91};// RNM(space)\n\n /* wsp */\n this.rules[90].opcodes = [];\n this.rules[90].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[90].opcodes[1] = {type: 4, index: 91};// RNM(space)\n\n /* space */\n this.rules[91].opcodes = [];\n this.rules[91].opcodes[0] = {type: 1, children: [1,2,3,4]};// ALT\n this.rules[91].opcodes[1] = {type: 6, string: [32]};// TBS\n this.rules[91].opcodes[2] = {type: 6, string: [9]};// TBS\n this.rules[91].opcodes[3] = {type: 4, index: 92};// RNM(comment)\n this.rules[91].opcodes[4] = {type: 4, index: 94};// RNM(LineContinue)\n\n /* comment */\n this.rules[92].opcodes = [];\n this.rules[92].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[92].opcodes[1] = {type: 6, string: [59]};// TBS\n this.rules[92].opcodes[2] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[92].opcodes[3] = {type: 1, children: [4,5]};// ALT\n this.rules[92].opcodes[4] = {type: 5, min: 32, max: 126};// TRG\n this.rules[92].opcodes[5] = {type: 6, string: [9]};// TBS\n\n /* LineEnd */\n this.rules[93].opcodes = [];\n this.rules[93].opcodes[0] = {type: 1, children: [1,2,3]};// ALT\n this.rules[93].opcodes[1] = {type: 6, string: [13,10]};// TBS\n this.rules[93].opcodes[2] = {type: 6, string: [10]};// TBS\n this.rules[93].opcodes[3] = {type: 6, string: [13]};// TBS\n\n /* LineContinue */\n this.rules[94].opcodes = [];\n this.rules[94].opcodes[0] = {type: 2, children: [1,5]};// CAT\n this.rules[94].opcodes[1] = {type: 1, children: [2,3,4]};// ALT\n this.rules[94].opcodes[2] = {type: 6, string: [13,10]};// TBS\n this.rules[94].opcodes[3] = {type: 6, string: [10]};// TBS\n this.rules[94].opcodes[4] = {type: 6, string: [13]};// TBS\n this.rules[94].opcodes[5] = {type: 1, children: [6,7]};// ALT\n this.rules[94].opcodes[6] = {type: 6, string: [32]};// TBS\n this.rules[94].opcodes[7] = {type: 6, string: [9]};// TBS\n\n // The `toString()` function will display the original grammar file(s) that produced these opcodes.\n this.toString = function toString(){\n let str = \"\";\n str += \";\\n\";\n str += \"; ABNF for JavaScript APG 2.0 SABNF\\n\";\n str += \"; RFC 5234 with some restrictions and additions.\\n\";\n str += \"; Updated 11/24/2015 for RFC 7405 case-sensitive literal string notation\\n\";\n str += \"; - accepts %s\\\"string\\\" as a case-sensitive string\\n\";\n str += \"; - accepts %i\\\"string\\\" as a case-insensitive string\\n\";\n str += \"; - accepts \\\"string\\\" as a case-insensitive string\\n\";\n str += \";\\n\";\n str += \"; Some restrictions:\\n\";\n str += \"; 1. Rules must begin at first character of each line.\\n\";\n str += \"; Indentations on first rule and rules thereafter are not allowed.\\n\";\n str += \"; 2. Relaxed line endings. CRLF, LF or CR are accepted as valid line ending.\\n\";\n str += \"; 3. Prose values, i.e. , are accepted as valid grammar syntax.\\n\";\n str += \"; However, a working parser cannot be generated from them.\\n\";\n str += \";\\n\";\n str += \"; Super set (SABNF) additions:\\n\";\n str += \"; 1. Look-ahead (syntactic predicate) operators are accepted as element prefixes.\\n\";\n str += \"; & is the positive look-ahead operator, succeeds and backtracks if the look-ahead phrase is found\\n\";\n str += \"; ! is the negative look-ahead operator, succeeds and backtracks if the look-ahead phrase is NOT found\\n\";\n str += \"; e.g. &%d13 or &rule or !(A / B)\\n\";\n str += \"; 2. User-Defined Terminals (UDT) of the form, u_name and e_name are accepted.\\n\";\n str += \"; 'name' is alpha followed by alpha/num/hyphen just like a rule name.\\n\";\n str += \"; u_name may be used as an element but no rule definition is given.\\n\";\n str += \"; e.g. rule = A / u_myUdt\\n\";\n str += \"; A = \\\"a\\\"\\n\";\n str += \"; would be a valid grammar.\\n\";\n str += \"; 3. Case-sensitive, single-quoted strings are accepted.\\n\";\n str += \"; e.g. 'abc' would be equivalent to %d97.98.99\\n\";\n str += \"; (kept for backward compatibility, but superseded by %s\\\"abc\\\") \\n\";\n str += \"; New 12/26/2015\\n\";\n str += \"; 4. Look-behind operators are accepted as element prefixes.\\n\";\n str += \"; && is the positive look-behind operator, succeeds and backtracks if the look-behind phrase is found\\n\";\n str += \"; !! is the negative look-behind operator, succeeds and backtracks if the look-behind phrase is NOT found\\n\";\n str += \"; e.g. &&%d13 or &&rule or !!(A / B)\\n\";\n str += \"; 5. Back reference operators, i.e. \\\\rulename, are accepted.\\n\";\n str += \"; A back reference operator acts like a TLS or TBS terminal except that the phrase it attempts\\n\";\n str += \"; to match is a phrase previously matched by the rule 'rulename'.\\n\";\n str += \"; There are two modes of previous phrase matching - the parent-frame mode and the universal mode.\\n\";\n str += \"; In universal mode, \\\\rulename matches the last match to 'rulename' regardless of where it was found.\\n\";\n str += \"; In parent-frame mode, \\\\rulename matches only the last match found on the parent's frame or parse tree level.\\n\";\n str += \"; Back reference modifiers can be used to specify case and mode.\\n\";\n str += \"; \\\\A defaults to case-insensitive and universal mode, e.g. \\\\A === \\\\%i%uA\\n\";\n str += \"; Modifiers %i and %s determine case-insensitive and case-sensitive mode, respectively.\\n\";\n str += \"; Modifiers %u and %p determine universal mode and parent frame mode, respectively.\\n\";\n str += \"; Case and mode modifiers can appear in any order, e.g. \\\\%s%pA === \\\\%p%sA. \\n\";\n str += \"; 7. String begin anchor, ABG(%^) matches the beginning of the input string location.\\n\";\n str += \"; Returns EMPTY or NOMATCH. Never consumes any characters.\\n\";\n str += \"; 8. String end anchor, AEN(%$) matches the end of the input string location.\\n\";\n str += \"; Returns EMPTY or NOMATCH. Never consumes any characters.\\n\";\n str += \";\\n\";\n str += \"File = *(BlankLine / Rule / RuleError)\\n\";\n str += \"BlankLine = *(%d32/%d9) [comment] LineEnd\\n\";\n str += \"Rule = RuleLookup owsp Alternation ((owsp LineEnd)\\n\";\n str += \" / (LineEndError LineEnd))\\n\";\n str += \"RuleLookup = RuleNameTest owsp DefinedAsTest\\n\";\n str += \"RuleNameTest = RuleName/RuleNameError\\n\";\n str += \"RuleName = alphanum\\n\";\n str += \"RuleNameError = 1*(%d33-60/%d62-126)\\n\";\n str += \"DefinedAsTest = DefinedAs / DefinedAsError\\n\";\n str += \"DefinedAsError = 1*2%d33-126\\n\";\n str += \"DefinedAs = IncAlt / Defined\\n\";\n str += \"Defined = %d61\\n\";\n str += \"IncAlt = %d61.47\\n\";\n str += \"RuleError = 1*(%d32-126 / %d9 / LineContinue) LineEnd\\n\";\n str += \"LineEndError = 1*(%d32-126 / %d9 / LineContinue)\\n\";\n str += \"Alternation = Concatenation *(owsp AltOp Concatenation)\\n\";\n str += \"Concatenation = Repetition *(CatOp Repetition)\\n\";\n str += \"Repetition = [Modifier] (Group / Option / BasicElement / BasicElementErr)\\n\";\n str += \"Modifier = (Predicate [RepOp])\\n\";\n str += \" / RepOp\\n\";\n str += \"Predicate = BkaOp\\n\";\n str += \" / BknOp\\n\";\n str += \" / AndOp\\n\";\n str += \" / NotOp\\n\";\n str += \"BasicElement = UdtOp\\n\";\n str += \" / RnmOp\\n\";\n str += \" / TrgOp\\n\";\n str += \" / TbsOp\\n\";\n str += \" / TlsOp\\n\";\n str += \" / ClsOp\\n\";\n str += \" / BkrOp\\n\";\n str += \" / AbgOp\\n\";\n str += \" / AenOp\\n\";\n str += \" / ProsVal\\n\";\n str += \"BasicElementErr = 1*(%d33-40/%d42-46/%d48-92/%d94-126)\\n\";\n str += \"Group = GroupOpen Alternation (GroupClose / GroupError)\\n\";\n str += \"GroupError = 1*(%d33-40/%d42-46/%d48-92/%d94-126) ; same as BasicElementErr\\n\";\n str += \"GroupOpen = %d40 owsp\\n\";\n str += \"GroupClose = owsp %d41\\n\";\n str += \"Option = OptionOpen Alternation (OptionClose / OptionError)\\n\";\n str += \"OptionError = 1*(%d33-40/%d42-46/%d48-92/%d94-126) ; same as BasicElementErr\\n\";\n str += \"OptionOpen = %d91 owsp\\n\";\n str += \"OptionClose = owsp %d93\\n\";\n str += \"RnmOp = alphanum\\n\";\n str += \"BkrOp = %d92 [bkrModifier] bkr-name\\n\";\n str += \"bkrModifier = (cs [um / pm]) / (ci [um / pm]) / (um [cs /ci]) / (pm [cs / ci])\\n\";\n str += \"cs = '%s'\\n\";\n str += \"ci = '%i'\\n\";\n str += \"um = '%u'\\n\";\n str += \"pm = '%p'\\n\";\n str += \"bkr-name = uname / ename / rname\\n\";\n str += \"rname = alphanum\\n\";\n str += \"uname = %d117.95 alphanum\\n\";\n str += \"ename = %d101.95 alphanum\\n\";\n str += \"UdtOp = udt-empty\\n\";\n str += \" / udt-non-empty\\n\";\n str += \"udt-non-empty = %d117.95 alphanum\\n\";\n str += \"udt-empty = %d101.95 alphanum\\n\";\n str += \"RepOp = (rep-min StarOp rep-max)\\n\";\n str += \" / (rep-min StarOp)\\n\";\n str += \" / (StarOp rep-max)\\n\";\n str += \" / StarOp\\n\";\n str += \" / rep-min-max\\n\";\n str += \"AltOp = %d47 owsp\\n\";\n str += \"CatOp = wsp\\n\";\n str += \"StarOp = %d42\\n\";\n str += \"AndOp = %d38\\n\";\n str += \"NotOp = %d33\\n\";\n str += \"BkaOp = %d38.38\\n\";\n str += \"BknOp = %d33.33\\n\";\n str += \"AbgOp = %d37.94\\n\";\n str += \"AenOp = %d37.36\\n\";\n str += \"TrgOp = %d37 ((Dec dmin %d45 dmax) / (Hex xmin %d45 xmax) / (Bin bmin %d45 bmax))\\n\";\n str += \"TbsOp = %d37 ((Dec dString *(%d46 dString)) / (Hex xString *(%d46 xString)) / (Bin bString *(%d46 bString)))\\n\";\n str += \"TlsOp = TlsCase TlsOpen TlsString TlsClose\\n\";\n str += \"TlsCase = [\\\"%i\\\" / \\\"%s\\\"]\\n\";\n str += \"TlsOpen = %d34\\n\";\n str += \"TlsClose = %d34\\n\";\n str += \"TlsString = *(%d32-33/%d35-126/StringTab)\\n\";\n str += \"StringTab = %d9\\n\";\n str += \"ClsOp = ClsOpen ClsString ClsClose\\n\";\n str += \"ClsOpen = %d39\\n\";\n str += \"ClsClose = %d39\\n\";\n str += \"ClsString = *(%d32-38/%d40-126/StringTab)\\n\";\n str += \"ProsVal = ProsValOpen ProsValString ProsValClose\\n\";\n str += \"ProsValOpen = %d60\\n\";\n str += \"ProsValString = *(%d32-61/%d63-126/StringTab)\\n\";\n str += \"ProsValClose = %d62\\n\";\n str += \"rep-min = rep-num\\n\";\n str += \"rep-min-max = rep-num\\n\";\n str += \"rep-max = rep-num\\n\";\n str += \"rep-num = 1*(%d48-57)\\n\";\n str += \"dString = dnum\\n\";\n str += \"xString = xnum\\n\";\n str += \"bString = bnum\\n\";\n str += \"Dec = (%d68/%d100)\\n\";\n str += \"Hex = (%d88/%d120)\\n\";\n str += \"Bin = (%d66/%d98)\\n\";\n str += \"dmin = dnum\\n\";\n str += \"dmax = dnum\\n\";\n str += \"bmin = bnum\\n\";\n str += \"bmax = bnum\\n\";\n str += \"xmin = xnum\\n\";\n str += \"xmax = xnum\\n\";\n str += \"dnum = 1*(%d48-57)\\n\";\n str += \"bnum = 1*%d48-49\\n\";\n str += \"xnum = 1*(%d48-57 / %d65-70 / %d97-102)\\n\";\n str += \";\\n\";\n str += \"; Basics\\n\";\n str += \"alphanum = (%d97-122/%d65-90) *(%d97-122/%d65-90/%d48-57/%d45)\\n\";\n str += \"owsp = *space\\n\";\n str += \"wsp = 1*space\\n\";\n str += \"space = %d32\\n\";\n str += \" / %d9\\n\";\n str += \" / comment\\n\";\n str += \" / LineContinue\\n\";\n str += \"comment = %d59 *(%d32-126 / %d9)\\n\";\n str += \"LineEnd = %d13.10\\n\";\n str += \" / %d10\\n\";\n str += \" / %d13\\n\";\n str += \"LineContinue = (%d13.10 / %d10 / %d13) (%d32 / %d9)\\n\";\n return str;\n }\n}\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// These are the AST translation callback functions used by the scanner\n// to analyze the characters and lines.\nconst ids = require('../apg-lib/identifiers');\nconst utils = require('../apg-lib/utilities');\n\nfunction semLine(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_PRE) {\n data.endLength = 0;\n data.textLength = 0;\n data.invalidCount = 0;\n } else {\n data.lines.push({\n lineNo: data.lines.length,\n beginChar: phraseIndex,\n length: phraseCount,\n textLength: data.textLength,\n endType: data.endType,\n invalidChars: data.invalidCount,\n });\n }\n return ids.SEM_OK;\n}\nfunction semLineText(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_PRE) {\n data.textLength = phraseCount;\n }\n return ids.SEM_OK;\n}\nfunction semLastLine(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_PRE) {\n data.endLength = 0;\n data.textLength = 0;\n data.invalidCount = 0;\n } else if (data.strict) {\n data.lines.push({\n lineNo: data.lines.length,\n beginChar: phraseIndex,\n length: phraseCount,\n textLength: phraseCount,\n endType: 'none',\n invalidChars: data.invalidCount,\n });\n data.errors.push({\n line: data.lineNo,\n char: phraseIndex + phraseCount,\n msg: 'no line end on last line - strict ABNF specifies CRLF(\\\\r\\\\n, \\\\x0D\\\\x0A)',\n });\n } else {\n /* add a line ender */\n chars.push(10);\n data.lines.push({\n lineNo: data.lines.length,\n beginChar: phraseIndex,\n length: phraseCount + 1,\n textLength: phraseCount,\n endType: 'LF',\n invalidChars: data.invalidCount,\n });\n }\n return ids.SEM_OK;\n}\nfunction semInvalid(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_PRE) {\n data.errors.push({\n line: data.lineNo,\n char: phraseIndex,\n msg: `invalid character found '\\\\x${utils.charToHex(chars[phraseIndex])}'`,\n });\n }\n return ids.SEM_OK;\n}\nfunction semEnd(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_POST) {\n data.lineNo += 1;\n }\n return ids.SEM_OK;\n}\nfunction semLF(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_PRE) {\n data.endType = 'LF';\n if (data.strict) {\n data.errors.push({\n line: data.lineNo,\n char: phraseIndex,\n msg: 'line end character LF(\\\\n, \\\\x0A) - strict ABNF specifies CRLF(\\\\r\\\\n, \\\\x0D\\\\x0A)',\n });\n }\n }\n return ids.SEM_OK;\n}\nfunction semCR(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_PRE) {\n data.endType = 'CR';\n if (data.strict) {\n data.errors.push({\n line: data.lineNo,\n char: phraseIndex,\n msg: 'line end character CR(\\\\r, \\\\x0D) - strict ABNF specifies CRLF(\\\\r\\\\n, \\\\x0D\\\\x0A)',\n });\n }\n }\n return ids.SEM_OK;\n}\nfunction semCRLF(state, chars, phraseIndex, phraseCount, data) {\n if (state === ids.SEM_PRE) {\n data.endType = 'CRLF';\n }\n return ids.SEM_OK;\n}\nconst callbacks = [];\ncallbacks.line = semLine;\ncallbacks['line-text'] = semLineText;\ncallbacks['last-line'] = semLastLine;\ncallbacks.invalid = semInvalid;\ncallbacks.end = semEnd;\ncallbacks.lf = semLF;\ncallbacks.cr = semCR;\ncallbacks.crlf = semCRLF;\nexports.callbacks = callbacks;\n","// copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved
\n// license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)
\n//\n// Generated by apg-js, Version 4.0.0 [apg-js](https://github.com/ldthomas/apg-js)\nmodule.exports = function grammar(){\n // ```\n // SUMMARY\n // rules = 10\n // udts = 0\n // opcodes = 31\n // --- ABNF original opcodes\n // ALT = 5\n // CAT = 2\n // REP = 4\n // RNM = 11\n // TLS = 0\n // TBS = 4\n // TRG = 5\n // --- SABNF superset opcodes\n // UDT = 0\n // AND = 0\n // NOT = 0\n // BKA = 0\n // BKN = 0\n // BKR = 0\n // ABG = 0\n // AEN = 0\n // characters = [0 - 4294967295]\n // ```\n /* OBJECT IDENTIFIER (for internal parser use) */\n this.grammarObject = 'grammarObject';\n\n /* RULES */\n this.rules = [];\n this.rules[0] = {name: 'file', lower: 'file', index: 0, isBkr: false};\n this.rules[1] = {name: 'line', lower: 'line', index: 1, isBkr: false};\n this.rules[2] = {name: 'line-text', lower: 'line-text', index: 2, isBkr: false};\n this.rules[3] = {name: 'last-line', lower: 'last-line', index: 3, isBkr: false};\n this.rules[4] = {name: 'valid', lower: 'valid', index: 4, isBkr: false};\n this.rules[5] = {name: 'invalid', lower: 'invalid', index: 5, isBkr: false};\n this.rules[6] = {name: 'end', lower: 'end', index: 6, isBkr: false};\n this.rules[7] = {name: 'CRLF', lower: 'crlf', index: 7, isBkr: false};\n this.rules[8] = {name: 'LF', lower: 'lf', index: 8, isBkr: false};\n this.rules[9] = {name: 'CR', lower: 'cr', index: 9, isBkr: false};\n\n /* UDTS */\n this.udts = [];\n\n /* OPCODES */\n /* file */\n this.rules[0].opcodes = [];\n this.rules[0].opcodes[0] = {type: 2, children: [1,3]};// CAT\n this.rules[0].opcodes[1] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[0].opcodes[2] = {type: 4, index: 1};// RNM(line)\n this.rules[0].opcodes[3] = {type: 3, min: 0, max: 1};// REP\n this.rules[0].opcodes[4] = {type: 4, index: 3};// RNM(last-line)\n\n /* line */\n this.rules[1].opcodes = [];\n this.rules[1].opcodes[0] = {type: 2, children: [1,2]};// CAT\n this.rules[1].opcodes[1] = {type: 4, index: 2};// RNM(line-text)\n this.rules[1].opcodes[2] = {type: 4, index: 6};// RNM(end)\n\n /* line-text */\n this.rules[2].opcodes = [];\n this.rules[2].opcodes[0] = {type: 3, min: 0, max: Infinity};// REP\n this.rules[2].opcodes[1] = {type: 1, children: [2,3]};// ALT\n this.rules[2].opcodes[2] = {type: 4, index: 4};// RNM(valid)\n this.rules[2].opcodes[3] = {type: 4, index: 5};// RNM(invalid)\n\n /* last-line */\n this.rules[3].opcodes = [];\n this.rules[3].opcodes[0] = {type: 3, min: 1, max: Infinity};// REP\n this.rules[3].opcodes[1] = {type: 1, children: [2,3]};// ALT\n this.rules[3].opcodes[2] = {type: 4, index: 4};// RNM(valid)\n this.rules[3].opcodes[3] = {type: 4, index: 5};// RNM(invalid)\n\n /* valid */\n this.rules[4].opcodes = [];\n this.rules[4].opcodes[0] = {type: 1, children: [1,2]};// ALT\n this.rules[4].opcodes[1] = {type: 5, min: 32, max: 126};// TRG\n this.rules[4].opcodes[2] = {type: 6, string: [9]};// TBS\n\n /* invalid */\n this.rules[5].opcodes = [];\n this.rules[5].opcodes[0] = {type: 1, children: [1,2,3,4]};// ALT\n this.rules[5].opcodes[1] = {type: 5, min: 0, max: 8};// TRG\n this.rules[5].opcodes[2] = {type: 5, min: 11, max: 12};// TRG\n this.rules[5].opcodes[3] = {type: 5, min: 14, max: 31};// TRG\n this.rules[5].opcodes[4] = {type: 5, min: 127, max: 4294967295};// TRG\n\n /* end */\n this.rules[6].opcodes = [];\n this.rules[6].opcodes[0] = {type: 1, children: [1,2,3]};// ALT\n this.rules[6].opcodes[1] = {type: 4, index: 7};// RNM(CRLF)\n this.rules[6].opcodes[2] = {type: 4, index: 8};// RNM(LF)\n this.rules[6].opcodes[3] = {type: 4, index: 9};// RNM(CR)\n\n /* CRLF */\n this.rules[7].opcodes = [];\n this.rules[7].opcodes[0] = {type: 6, string: [13,10]};// TBS\n\n /* LF */\n this.rules[8].opcodes = [];\n this.rules[8].opcodes[0] = {type: 6, string: [10]};// TBS\n\n /* CR */\n this.rules[9].opcodes = [];\n this.rules[9].opcodes[0] = {type: 6, string: [13]};// TBS\n\n // The `toString()` function will display the original grammar file(s) that produced these opcodes.\n this.toString = function toString(){\n let str = \"\";\n str += \"file = *line [last-line]\\n\";\n str += \"line = line-text end\\n\";\n str += \"line-text = *(valid/invalid)\\n\";\n str += \"last-line = 1*(valid/invalid)\\n\";\n str += \"valid = %d32-126 / %d9\\n\";\n str += \"invalid = %d0-8 / %d11-12 /%d14-31 / %x7f-ffffffff\\n\";\n str += \"end = CRLF / LF / CR\\n\";\n str += \"CRLF = %d13.10\\n\";\n str += \"LF = %d10\\n\";\n str += \"CR = %d13\\n\";\n return str;\n }\n}\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module reads the input grammar file and does a preliminary analysis\n// before attempting to parse it into a grammar object.\n// See:
\n// `./dist/scanner-grammar.bnf`
\n// for the grammar file this parser is based on.\n//\n// It has two primary functions.\n// - verify the character codes - no non-printing ASCII characters\n// - catalog the lines - create an array with a line object for each line.\n// The object carries information about the line number and character length which is used\n// by the parser generator primarily for error reporting.\nmodule.exports = function exfn(chars, errors, strict, trace) {\n const thisFileName = 'scanner.js: ';\n const apglib = require('../apg-lib/node-exports');\n const grammar = new (require('./scanner-grammar'))();\n const { callbacks } = require('./scanner-callbacks');\n\n /* Scan the grammar for character code errors and catalog the lines. */\n const lines = [];\n // eslint-disable-next-line new-cap\n const parser = new apglib.parser();\n // eslint-disable-next-line new-cap\n parser.ast = new apglib.ast();\n parser.ast.callbacks = callbacks;\n if (trace) {\n if (trace.traceObject !== 'traceObject') {\n throw new TypeError(`${thisFileName}trace argument is not a trace object`);\n }\n parser.trace = trace;\n }\n\n /* parse the input SABNF grammar */\n const test = parser.parse(grammar, 'file', chars);\n if (test.success !== true) {\n errors.push({\n line: 0,\n char: 0,\n msg: 'syntax analysis error analyzing input SABNF grammar',\n });\n return;\n }\n const data = {\n lines,\n lineNo: 0,\n errors,\n strict: !!strict,\n };\n\n /* translate (analyze) the input SABNF grammar */\n parser.ast.translate(data);\n // eslint-disable-next-line consistent-return\n return lines;\n};\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module has all of the AST translation callback functions for the semantic analysis\n// phase of the generator.\n// See:
\n// `./dist/abnf-for-sabnf-grammar.bnf`
\n// for the grammar file these callback functions are based on.\nmodule.exports = function exfn() {\n const apglib = require('../apg-lib/node-exports');\n const id = apglib.ids;\n\n /* Some helper functions. */\n const NameList = function NameList() {\n this.names = [];\n /* Adds a new rule name object to the list. Returns -1 if the name already exists. */\n /* Returns the added name object if the name does not already exist. */\n this.add = function add(name) {\n let ret = -1;\n const find = this.get(name);\n if (find === -1) {\n ret = {\n name,\n lower: name.toLowerCase(),\n index: this.names.length,\n };\n this.names.push(ret);\n }\n return ret;\n };\n /* Brute-force look up. */\n this.get = function get(name) {\n let ret = -1;\n const lower = name.toLowerCase();\n for (let i = 0; i < this.names.length; i += 1) {\n if (this.names[i].lower === lower) {\n ret = this.names[i];\n break;\n }\n }\n return ret;\n };\n };\n /* converts text decimal numbers from, e.g. %d99, to an integer */\n const decnum = function decnum(chars, beg, len) {\n let num = 0;\n for (let i = beg; i < beg + len; i += 1) {\n num = 10 * num + chars[i] - 48;\n }\n return num;\n };\n /* converts text binary numbers from, e.g. %b10, to an integer */\n const binnum = function binnum(chars, beg, len) {\n let num = 0;\n for (let i = beg; i < beg + len; i += 1) {\n num = 2 * num + chars[i] - 48;\n }\n return num;\n };\n /* converts text hexadecimal numbers from, e.g. %xff, to an integer */\n const hexnum = function hexnum(chars, beg, len) {\n let num = 0;\n for (let i = beg; i < beg + len; i += 1) {\n let digit = chars[i];\n if (digit >= 48 && digit <= 57) {\n digit -= 48;\n } else if (digit >= 65 && digit <= 70) {\n digit -= 55;\n } else if (digit >= 97 && digit <= 102) {\n digit -= 87;\n } else {\n throw new Error('hexnum out of range');\n }\n num = 16 * num + digit;\n }\n return num;\n };\n\n // This is the prototype for all semantic analysis callback functions.\n // ````\n // state - the translator state\n // id.SEM_PRE for downward (pre-branch) traversal of the AST\n // id.SEM_POST for upward (post branch) traversal of the AST\n // chars - the array of character codes for the input string\n // phraseIndex - index into the chars array to the first\n // character of the phrase\n // phraseCount - the number of characters in the phrase\n // data - user-defined data passed to the translator\n // for use by the callback functions.\n // @return id.SEM_OK, normal return.\n // id.SEM_SKIP in state id.SEM_PRE will\n // skip the branch below.\n // Any thing else is an error which will\n // stop the translation.\n // ````\n /*\n function semCallbackPrototype(state, chars, phraseIndex, phraseCount, data) {\n let ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n } else if (state === id.SEM_POST) {\n }\n return ret;\n }\n */\n // The AST callback functions.\n function semFile(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.ruleNames = new NameList();\n data.udtNames = new NameList();\n data.rules = [];\n data.udts = [];\n data.rulesLineMap = [];\n data.opcodes = [];\n data.altStack = [];\n data.topStack = null;\n data.topRule = null;\n } else if (state === id.SEM_POST) {\n /* validate RNM rule names and set opcode rule index */\n let nameObj;\n data.rules.forEach((rule) => {\n rule.isBkr = false;\n rule.opcodes.forEach((op) => {\n if (op.type === id.RNM) {\n nameObj = data.ruleNames.get(op.index.name);\n if (nameObj === -1) {\n data.errors.push({\n line: data.findLine(data.lines, op.index.phraseIndex, data.charsLength),\n char: op.index.phraseIndex,\n msg: `Rule name '${op.index.name}' used but not defined.`,\n });\n op.index = -1;\n } else {\n op.index = nameObj.index;\n }\n }\n });\n });\n /* validate BKR rule names and set opcode rule index */\n data.udts.forEach((udt) => {\n udt.isBkr = false;\n });\n data.rules.forEach((rule) => {\n rule.opcodes.forEach((op) => {\n if (op.type === id.BKR) {\n rule.hasBkr = true;\n nameObj = data.ruleNames.get(op.index.name);\n if (nameObj !== -1) {\n data.rules[nameObj.index].isBkr = true;\n op.index = nameObj.index;\n } else {\n nameObj = data.udtNames.get(op.index.name);\n if (nameObj !== -1) {\n data.udts[nameObj.index].isBkr = true;\n op.index = data.rules.length + nameObj.index;\n } else {\n data.errors.push({\n line: data.findLine(data.lines, op.index.phraseIndex, data.charsLength),\n char: op.index.phraseIndex,\n msg: `Back reference name '${op.index.name}' refers to undefined rule or unamed UDT.`,\n });\n op.index = -1;\n }\n }\n }\n });\n });\n }\n return ret;\n }\n function semRule(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.altStack.length = 0;\n data.topStack = null;\n data.rulesLineMap.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n });\n }\n return ret;\n }\n function semRuleLookup(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.ruleName = '';\n data.definedas = '';\n } else if (state === id.SEM_POST) {\n let ruleName;\n if (data.definedas === '=') {\n ruleName = data.ruleNames.add(data.ruleName);\n if (ruleName === -1) {\n data.definedas = null;\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: `Rule name '${data.ruleName}' previously defined.`,\n });\n } else {\n /* start a new rule */\n data.topRule = {\n name: ruleName.name,\n lower: ruleName.lower,\n opcodes: [],\n index: ruleName.index,\n };\n data.rules.push(data.topRule);\n data.opcodes = data.topRule.opcodes;\n }\n } else {\n ruleName = data.ruleNames.get(data.ruleName);\n if (ruleName === -1) {\n data.definedas = null;\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: `Rule name '${data.ruleName}' for incremental alternate not previously defined.`,\n });\n } else {\n data.topRule = data.rules[ruleName.index];\n data.opcodes = data.topRule.opcodes;\n }\n }\n }\n return ret;\n }\n function semAlternation(state, chars, phraseIndex, phraseCount, data) {\n let ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n const TRUE = true;\n while (TRUE) {\n if (data.definedas === null) {\n /* rule error - skip opcode generation */\n ret = id.SEM_SKIP;\n break;\n }\n if (data.topStack === null) {\n /* top-level ALT */\n if (data.definedas === '=') {\n /* \"=\" new rule */\n data.topStack = {\n alt: {\n type: id.ALT,\n children: [],\n },\n cat: null,\n };\n data.altStack.push(data.topStack);\n data.opcodes.push(data.topStack.alt);\n break;\n }\n /* \"=/\" incremental alternate */\n data.topStack = {\n alt: data.opcodes[0],\n cat: null,\n };\n data.altStack.push(data.topStack);\n break;\n }\n /* lower-level ALT */\n data.topStack = {\n alt: {\n type: id.ALT,\n children: [],\n },\n cat: null,\n };\n data.altStack.push(data.topStack);\n data.opcodes.push(data.topStack.alt);\n break;\n }\n } else if (state === id.SEM_POST) {\n data.altStack.pop();\n if (data.altStack.length > 0) {\n data.topStack = data.altStack[data.altStack.length - 1];\n } else {\n data.topStack = null;\n }\n }\n return ret;\n }\n function semConcatenation(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.topStack.alt.children.push(data.opcodes.length);\n data.topStack.cat = {\n type: id.CAT,\n children: [],\n };\n data.opcodes.push(data.topStack.cat);\n } else if (state === id.SEM_POST) {\n data.topStack.cat = null;\n }\n return ret;\n }\n function semRepetition(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.topStack.cat.children.push(data.opcodes.length);\n }\n return ret;\n }\n function semOptionOpen(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.REP,\n min: 0,\n max: 1,\n char: phraseIndex,\n });\n }\n return ret;\n }\n function semRuleName(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.ruleName = apglib.utils.charsToString(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semDefined(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.definedas = '=';\n }\n return ret;\n }\n function semIncAlt(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.definedas = '=/';\n }\n return ret;\n }\n function semRepOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.min = 0;\n data.max = Infinity;\n data.topRep = {\n type: id.REP,\n min: 0,\n max: Infinity,\n };\n data.opcodes.push(data.topRep);\n } else if (state === id.SEM_POST) {\n if (data.min > data.max) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: `repetition min cannot be greater than max: min: ${data.min}: max: ${data.max}`,\n });\n }\n data.topRep.min = data.min;\n data.topRep.max = data.max;\n }\n return ret;\n }\n function semRepMin(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.min = decnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semRepMax(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.max = decnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semRepMinMax(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.max = decnum(chars, phraseIndex, phraseCount);\n data.min = data.max;\n }\n return ret;\n }\n function semAndOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.AND,\n });\n }\n return ret;\n }\n function semNotOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.NOT,\n });\n }\n return ret;\n }\n function semRnmOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.RNM,\n /* NOTE: this is temporary info, index will be replaced with integer later. */\n /* Probably not the best coding practice but here you go. */\n index: {\n phraseIndex,\n name: apglib.utils.charsToString(chars, phraseIndex, phraseCount),\n },\n });\n }\n return ret;\n }\n function semAbgOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.ABG,\n });\n }\n return ret;\n }\n function semAenOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.AEN,\n });\n }\n return ret;\n }\n function semBkaOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.BKA,\n });\n }\n return ret;\n }\n function semBknOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.BKN,\n });\n }\n return ret;\n }\n function semBkrOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.ci = true; /* default to case insensitive */\n data.cs = false;\n data.um = true;\n data.pm = false;\n } else if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.BKR,\n bkrCase: data.cs === true ? id.BKR_MODE_CS : id.BKR_MODE_CI,\n bkrMode: data.pm === true ? id.BKR_MODE_PM : id.BKR_MODE_UM,\n /* NOTE: this is temporary info, index will be replaced with integer later. */\n /* Probably not the best coding practice but here you go. */\n index: {\n phraseIndex: data.bkrname.phraseIndex,\n name: apglib.utils.charsToString(chars, data.bkrname.phraseIndex, data.bkrname.phraseLength),\n },\n });\n }\n return ret;\n }\n function semBkrCi(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.ci = true;\n }\n return ret;\n }\n function semBkrCs(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.cs = true;\n }\n return ret;\n }\n function semBkrUm(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.um = true;\n }\n return ret;\n }\n function semBkrPm(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.pm = true;\n }\n return ret;\n }\n function semBkrName(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.bkrname = {\n phraseIndex,\n phraseLength: phraseCount,\n };\n }\n return ret;\n }\n function semUdtEmpty(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n const name = apglib.utils.charsToString(chars, phraseIndex, phraseCount);\n let udtName = data.udtNames.add(name);\n if (udtName === -1) {\n udtName = data.udtNames.get(name);\n if (udtName === -1) {\n throw new Error('semUdtEmpty: name look up error');\n }\n } else {\n data.udts.push({\n name: udtName.name,\n lower: udtName.lower,\n index: udtName.index,\n empty: true,\n });\n }\n data.opcodes.push({\n type: id.UDT,\n empty: true,\n index: udtName.index,\n });\n }\n return ret;\n }\n function semUdtNonEmpty(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n const name = apglib.utils.charsToString(chars, phraseIndex, phraseCount);\n let udtName = data.udtNames.add(name);\n if (udtName === -1) {\n udtName = data.udtNames.get(name);\n if (udtName === -1) {\n throw new Error('semUdtNonEmpty: name look up error');\n }\n } else {\n data.udts.push({\n name: udtName.name,\n lower: udtName.lower,\n index: udtName.index,\n empty: false,\n });\n }\n data.opcodes.push({\n type: id.UDT,\n empty: false,\n index: udtName.index,\n syntax: null,\n semantic: null,\n });\n }\n return ret;\n }\n function semTlsOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.tlscase = true; /* default to case insensitive */\n }\n return ret;\n }\n function semTlsCase(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n if (phraseCount > 0 && (chars[phraseIndex + 1] === 83 || chars[phraseIndex + 1] === 115)) {\n data.tlscase = false; /* set to case sensitive */\n }\n }\n return ret;\n }\n function semTlsString(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n if (data.tlscase) {\n const str = chars.slice(phraseIndex, phraseIndex + phraseCount);\n for (let i = 0; i < str.length; i += 1) {\n if (str[i] >= 65 && str[i] <= 90) {\n str[i] += 32;\n }\n }\n data.opcodes.push({\n type: id.TLS,\n string: str,\n });\n } else {\n data.opcodes.push({\n type: id.TBS,\n string: chars.slice(phraseIndex, phraseIndex + phraseCount),\n });\n }\n }\n return ret;\n }\n function semClsOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n if (phraseCount <= 2) {\n /* only TLS is allowed to be empty */\n data.opcodes.push({\n type: id.TLS,\n string: [],\n });\n } else {\n data.opcodes.push({\n type: id.TBS,\n string: chars.slice(phraseIndex + 1, phraseIndex + phraseCount - 1),\n });\n }\n }\n return ret;\n }\n function semTbsOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.tbsstr = [];\n } else if (state === id.SEM_POST) {\n data.opcodes.push({\n type: id.TBS,\n string: data.tbsstr,\n });\n }\n return ret;\n }\n function semTrgOp(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_PRE) {\n data.min = 0;\n data.max = 0;\n } else if (state === id.SEM_POST) {\n if (data.min > data.max) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: `TRG, (%dmin-max), min cannot be greater than max: min: ${data.min}: max: ${data.max}`,\n });\n }\n data.opcodes.push({\n type: id.TRG,\n min: data.min,\n max: data.max,\n });\n }\n return ret;\n }\n function semDmin(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.min = decnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semDmax(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.max = decnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semBmin(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.min = binnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semBmax(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.max = binnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semXmin(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.min = hexnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semXmax(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.max = hexnum(chars, phraseIndex, phraseCount);\n }\n return ret;\n }\n function semDstring(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.tbsstr.push(decnum(chars, phraseIndex, phraseCount));\n }\n return ret;\n }\n function semBstring(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.tbsstr.push(binnum(chars, phraseIndex, phraseCount));\n }\n return ret;\n }\n function semXstring(state, chars, phraseIndex, phraseCount, data) {\n const ret = id.SEM_OK;\n if (state === id.SEM_POST) {\n data.tbsstr.push(hexnum(chars, phraseIndex, phraseCount));\n }\n return ret;\n }\n // Define the callback functions to the AST object.\n this.callbacks = [];\n this.callbacks.abgop = semAbgOp;\n this.callbacks.aenop = semAenOp;\n this.callbacks.alternation = semAlternation;\n this.callbacks.andop = semAndOp;\n this.callbacks.bmax = semBmax;\n this.callbacks.bmin = semBmin;\n this.callbacks.bkaop = semBkaOp;\n this.callbacks.bknop = semBknOp;\n this.callbacks.bkrop = semBkrOp;\n this.callbacks['bkr-name'] = semBkrName;\n this.callbacks.bstring = semBstring;\n this.callbacks.clsop = semClsOp;\n this.callbacks.ci = semBkrCi;\n this.callbacks.cs = semBkrCs;\n this.callbacks.um = semBkrUm;\n this.callbacks.pm = semBkrPm;\n this.callbacks.concatenation = semConcatenation;\n this.callbacks.defined = semDefined;\n this.callbacks.dmax = semDmax;\n this.callbacks.dmin = semDmin;\n this.callbacks.dstring = semDstring;\n this.callbacks.file = semFile;\n this.callbacks.incalt = semIncAlt;\n this.callbacks.notop = semNotOp;\n this.callbacks.optionopen = semOptionOpen;\n this.callbacks['rep-max'] = semRepMax;\n this.callbacks['rep-min'] = semRepMin;\n this.callbacks['rep-min-max'] = semRepMinMax;\n this.callbacks.repetition = semRepetition;\n this.callbacks.repop = semRepOp;\n this.callbacks.rnmop = semRnmOp;\n this.callbacks.rule = semRule;\n this.callbacks.rulelookup = semRuleLookup;\n this.callbacks.rulename = semRuleName;\n this.callbacks.tbsop = semTbsOp;\n this.callbacks.tlscase = semTlsCase;\n this.callbacks.tlsstring = semTlsString;\n this.callbacks.tlsop = semTlsOp;\n this.callbacks.trgop = semTrgOp;\n this.callbacks['udt-empty'] = semUdtEmpty;\n this.callbacks['udt-non-empty'] = semUdtNonEmpty;\n this.callbacks.xmax = semXmax;\n this.callbacks.xmin = semXmin;\n this.callbacks.xstring = semXstring;\n};\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\nmodule.exports = (function exfn() {\n const thisFileName = 'show-rules.js';\n // Display the rules.\n // This function may be called before the attributes calculation.\n // Sorting is done independently from the attributes.\n // - order\n // - \"index\" or \"i\", index order (default)\n // - \"alpha\" or \"a\", alphabetical order\n // - none of above, index order (default)\n const showRules = function showRules(rulesIn = [], udtsIn = [], order = 'index') {\n const thisFuncName = 'showRules';\n let alphaArray = [];\n let udtAlphaArray = [];\n const indexArray = [];\n const udtIndexArray = [];\n const rules = rulesIn;\n const udts = udtsIn;\n const ruleCount = rulesIn.length;\n const udtCount = udtsIn.length;\n let str = 'RULE/UDT NAMES';\n let i;\n function compRulesAlpha(left, right) {\n if (rules[left].lower < rules[right].lower) {\n return -1;\n }\n if (rules[left].lower > rules[right].lower) {\n return 1;\n }\n return 0;\n }\n function compUdtsAlpha(left, right) {\n if (udts[left].lower < udts[right].lower) {\n return -1;\n }\n if (udts[left].lower > udts[right].lower) {\n return 1;\n }\n return 0;\n }\n if (!(Array.isArray(rulesIn) && rulesIn.length)) {\n throw new Error(`${thisFileName}:${thisFuncName}: rules arg must be array with length > 0`);\n }\n if (!Array.isArray(udtsIn)) {\n throw new Error(`${thisFileName}:${thisFuncName}: udts arg must be array`);\n }\n\n for (i = 0; i < ruleCount; i += 1) {\n indexArray.push(i);\n }\n alphaArray = indexArray.slice(0);\n alphaArray.sort(compRulesAlpha);\n if (udtCount) {\n for (i = 0; i < udtCount; i += 1) {\n udtIndexArray.push(i);\n }\n udtAlphaArray = udtIndexArray.slice(0);\n udtAlphaArray.sort(compUdtsAlpha);\n }\n if (order.charCodeAt(0) === 97) {\n str += ' - alphabetical by rule/UDT name\\n';\n for (i = 0; i < ruleCount; i += 1) {\n str += `${i}: ${alphaArray[i]}: ${rules[alphaArray[i]].name}\\n`;\n }\n if (udtCount) {\n for (i = 0; i < udtCount; i += 1) {\n str += `${i}: ${udtAlphaArray[i]}: ${udts[udtAlphaArray[i]].name}\\n`;\n }\n }\n } else {\n str += ' - ordered by rule/UDT index\\n';\n for (i = 0; i < ruleCount; i += 1) {\n str += `${i}: ${rules[i].name}\\n`;\n }\n if (udtCount) {\n for (i = 0; i < udtCount; i += 1) {\n str += `${i}: ${udts[i].name}\\n`;\n }\n }\n }\n return str;\n };\n return showRules;\n})();\n","/* eslint-disable func-names */\n/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module has all of the callback functions for the syntax phase of the generation.\n// See:
\n// `./dist/abnf-for-sabnf-grammar.bnf`
\n// for the grammar file these callback functions are based on.\nmodule.exports = function exfn() {\n const thisFileName = 'syntax-callbacks.js: ';\n const apglib = require('../apg-lib/node-exports');\n const id = apglib.ids;\n let topAlt;\n /* syntax, RNM, callback functions */\n const synFile = function synFile(result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n data.altStack = [];\n data.repCount = 0;\n break;\n case id.EMPTY:\n data.errors.push({\n line: 0,\n char: 0,\n msg: 'grammar file is empty',\n });\n break;\n case id.MATCH:\n if (data.ruleCount === 0) {\n data.errors.push({\n line: 0,\n char: 0,\n msg: 'no rules defined',\n });\n }\n break;\n case id.NOMATCH:\n throw new Error(`${thisFileName}synFile: grammar file NOMATCH: design error: should never happen.`);\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n // eslint-disable-next-line func-names\n const synRule = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n data.altStack.length = 0;\n topAlt = {\n groupOpen: null,\n groupError: false,\n optionOpen: null,\n optionError: false,\n tlsOpen: null,\n clsOpen: null,\n prosValOpen: null,\n basicError: false,\n };\n data.altStack.push(topAlt);\n break;\n case id.EMPTY:\n throw new Error(`${thisFileName}synRule: EMPTY: rule cannot be empty`);\n case id.NOMATCH:\n break;\n case id.MATCH:\n data.ruleCount += 1;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synRuleError = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'Unrecognized SABNF line. Invalid rule, comment or blank line.',\n });\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synRuleNameError = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'Rule names must be alphanum and begin with alphabetic character.',\n });\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synDefinedAsError = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: \"Expected '=' or '=/'. Not found.\",\n });\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synAndOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'AND operator(&) found - strict ABNF specified.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synNotOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'NOT operator(!) found - strict ABNF specified.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synBkaOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'Positive look-behind operator(&&) found - strict ABNF specified.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synBknOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'Negative look-behind operator(!!) found - strict ABNF specified.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synAbgOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'Beginning of string anchor(%^) found - strict ABNF specified.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synAenOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'End of string anchor(%$) found - strict ABNF specified.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synBkrOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n const name = apglib.utils.charsToString(chars, phraseIndex, result.phraseLength);\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: `Back reference operator(${name}) found - strict ABNF specified.`,\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synUdtOp = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.strict) {\n const name = apglib.utils.charsToString(chars, phraseIndex, result.phraseLength);\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: `UDT operator found(${name}) - strict ABNF specified.`,\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synTlsOpen = function (result, chars, phraseIndex) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n topAlt.tlsOpen = phraseIndex;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synTlsString = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n data.stringTabChar = false;\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.stringTabChar !== false) {\n data.errors.push({\n line: data.findLine(data.lines, data.stringTabChar),\n char: data.stringTabChar,\n msg: \"Tab character (\\\\t, x09) not allowed in literal string (see 'quoted-string' definition, RFC 7405.)\",\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synStringTab = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n data.stringTabChar = phraseIndex;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synTlsClose = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n data.errors.push({\n line: data.findLine(data.lines, topAlt.tlsOpen),\n char: topAlt.tlsOpen,\n msg: 'Case-insensitive literal string(\"...\") opened but not closed.',\n });\n topAlt.basicError = true;\n topAlt.tlsOpen = null;\n break;\n case id.MATCH:\n topAlt.tlsOpen = null;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synClsOpen = function (result, chars, phraseIndex) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n topAlt.clsOpen = phraseIndex;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synClsString = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n data.stringTabChar = false;\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.stringTabChar !== false) {\n data.errors.push({\n line: data.findLine(data.lines, data.stringTabChar),\n char: data.stringTabChar,\n msg: 'Tab character (\\\\t, x09) not allowed in literal string.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synClsClose = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n data.errors.push({\n line: data.findLine(data.lines, topAlt.clsOpen),\n char: topAlt.clsOpen,\n msg: \"Case-sensitive literal string('...') opened but not closed.\",\n });\n topAlt.clsOpen = null;\n topAlt.basicError = true;\n break;\n case id.MATCH:\n if (data.strict) {\n data.errors.push({\n line: data.findLine(data.lines, topAlt.clsOpen),\n char: topAlt.clsOpen,\n msg: \"Case-sensitive string operator('...') found - strict ABNF specified.\",\n });\n }\n topAlt.clsOpen = null;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synProsValOpen = function (result, chars, phraseIndex) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n topAlt.prosValOpen = phraseIndex;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synProsValString = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n data.stringTabChar = false;\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (data.stringTabChar !== false) {\n data.errors.push({\n line: data.findLine(data.lines, data.stringTabChar),\n char: data.stringTabChar,\n msg: 'Tab character (\\\\t, x09) not allowed in prose value string.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synProsValClose = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n data.errors.push({\n line: data.findLine(data.lines, topAlt.prosValOpen),\n char: topAlt.prosValOpen,\n msg: 'Prose value operator(<...>) opened but not closed.',\n });\n topAlt.basicError = true;\n topAlt.prosValOpen = null;\n break;\n case id.MATCH:\n data.errors.push({\n line: data.findLine(data.lines, topAlt.prosValOpen),\n char: topAlt.prosValOpen,\n msg: 'Prose value operator(<...>) found. The ABNF syntax is valid, but a parser cannot be generated from this grammar.',\n });\n topAlt.prosValOpen = null;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synGroupOpen = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n topAlt = {\n groupOpen: phraseIndex,\n groupError: false,\n optionOpen: null,\n optionError: false,\n tlsOpen: null,\n clsOpen: null,\n prosValOpen: null,\n basicError: false,\n };\n data.altStack.push(topAlt);\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synGroupClose = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n data.errors.push({\n line: data.findLine(data.lines, topAlt.groupOpen),\n char: topAlt.groupOpen,\n msg: 'Group \"(...)\" opened but not closed.',\n });\n topAlt = data.altStack.pop();\n topAlt.groupError = true;\n break;\n case id.MATCH:\n topAlt = data.altStack.pop();\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synOptionOpen = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n topAlt = {\n groupOpen: null,\n groupError: false,\n optionOpen: phraseIndex,\n optionError: false,\n tlsOpen: null,\n clsOpen: null,\n prosValOpen: null,\n basicError: false,\n };\n data.altStack.push(topAlt);\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synOptionClose = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n data.errors.push({\n line: data.findLine(data.lines, topAlt.optionOpen),\n char: topAlt.optionOpen,\n msg: 'Option \"[...]\" opened but not closed.',\n });\n topAlt = data.altStack.pop();\n topAlt.optionError = true;\n break;\n case id.MATCH:\n topAlt = data.altStack.pop();\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synBasicElementError = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (topAlt.basicError === false) {\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'Unrecognized SABNF element.',\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synLineEnd = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n if (result.phraseLength === 1 && data.strict) {\n const end = chars[phraseIndex] === 13 ? 'CR' : 'LF';\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: `Line end '${end}' found - strict ABNF specified, only CRLF allowed.`,\n });\n }\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synLineEndError = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n break;\n case id.MATCH:\n data.errors.push({\n line: data.findLine(data.lines, phraseIndex, data.charsLength),\n char: phraseIndex,\n msg: 'Unrecognized grammar element or characters.',\n });\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n const synRepetition = function (result, chars, phraseIndex, data) {\n switch (result.state) {\n case id.ACTIVE:\n break;\n case id.EMPTY:\n break;\n case id.NOMATCH:\n data.repCount += 1;\n break;\n case id.MATCH:\n data.repCount += 1;\n break;\n default:\n throw new Error(`${thisFileName}synFile: unrecognized case.`);\n }\n };\n // Define the list of callback functions.\n this.callbacks = [];\n this.callbacks.andop = synAndOp;\n this.callbacks.basicelementerr = synBasicElementError;\n this.callbacks.clsclose = synClsClose;\n this.callbacks.clsopen = synClsOpen;\n this.callbacks.clsstring = synClsString;\n this.callbacks.definedaserror = synDefinedAsError;\n this.callbacks.file = synFile;\n this.callbacks.groupclose = synGroupClose;\n this.callbacks.groupopen = synGroupOpen;\n this.callbacks.lineenderror = synLineEndError;\n this.callbacks.lineend = synLineEnd;\n this.callbacks.notop = synNotOp;\n this.callbacks.optionclose = synOptionClose;\n this.callbacks.optionopen = synOptionOpen;\n this.callbacks.prosvalclose = synProsValClose;\n this.callbacks.prosvalopen = synProsValOpen;\n this.callbacks.prosvalstring = synProsValString;\n this.callbacks.repetition = synRepetition;\n this.callbacks.rule = synRule;\n this.callbacks.ruleerror = synRuleError;\n this.callbacks.rulenameerror = synRuleNameError;\n this.callbacks.stringtab = synStringTab;\n this.callbacks.tlsclose = synTlsClose;\n this.callbacks.tlsopen = synTlsOpen;\n this.callbacks.tlsstring = synTlsString;\n this.callbacks.udtop = synUdtOp;\n this.callbacks.bkaop = synBkaOp;\n this.callbacks.bknop = synBknOp;\n this.callbacks.bkrop = synBkrOp;\n this.callbacks.abgop = synAbgOp;\n this.callbacks.aenop = synAenOp;\n};\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module exposes the public encoding, decoding and conversion functions.\n// Its private functions provide the disassembling and interpetation of the source and destination encoding types.\n// In the case of Unicode encodings, private functions determine the presence of Byte Order Marks (BOMs), if any.\n//\n// Throws \"TypeError\" exceptions on input errors.\n//\n\n'use strict;';\n\nconst thisThis = this;\nconst trans = require('./transformers');\n\n/* types */\nconst UTF8 = 'UTF8';\nconst UTF16 = 'UTF16';\nconst UTF16BE = 'UTF16BE';\nconst UTF16LE = 'UTF16LE';\nconst UTF32 = 'UTF32';\nconst UTF32BE = 'UTF32BE';\nconst UTF32LE = 'UTF32LE';\nconst UINT7 = 'UINT7';\nconst ASCII = 'ASCII';\nconst BINARY = 'BINARY';\nconst UINT8 = 'UINT8';\nconst UINT16 = 'UINT16';\nconst UINT16LE = 'UINT16LE';\nconst UINT16BE = 'UINT16BE';\nconst UINT32 = 'UINT32';\nconst UINT32LE = 'UINT32LE';\nconst UINT32BE = 'UINT32BE';\nconst ESCAPED = 'ESCAPED';\nconst STRING = 'STRING';\n\n/* private functions */\n// Find the UTF8 BOM, if any.\nconst bom8 = function bom8(src) {\n src.type = UTF8;\n const buf = src.data;\n src.bom = 0;\n if (buf.length >= 3) {\n if (buf[0] === 0xef && buf[1] === 0xbb && buf[2] === 0xbf) {\n src.bom = 3;\n }\n }\n};\n// Find the UTF16 BOM, if any, and determine the UTF16 type.\n// Defaults to UTF16BE.\n// Throws TypeError exception if BOM does not match the specified type.\nconst bom16 = function bom16(src) {\n const buf = src.data;\n src.bom = 0;\n switch (src.type) {\n case UTF16:\n src.type = UTF16BE;\n if (buf.length >= 2) {\n if (buf[0] === 0xfe && buf[1] === 0xff) {\n src.bom = 2;\n } else if (buf[0] === 0xff && buf[1] === 0xfe) {\n src.type = UTF16LE;\n src.bom = 2;\n }\n }\n break;\n case UTF16BE:\n src.type = UTF16BE;\n if (buf.length >= 2) {\n if (buf[0] === 0xfe && buf[1] === 0xff) {\n src.bom = 2;\n } else if (buf[0] === 0xff && buf[1] === 0xfe) {\n throw new TypeError(`src type: \"${UTF16BE}\" specified but BOM is for \"${UTF16LE}\"`);\n }\n }\n break;\n case UTF16LE:\n src.type = UTF16LE;\n if (buf.length >= 0) {\n if (buf[0] === 0xfe && buf[1] === 0xff) {\n throw new TypeError(`src type: \"${UTF16LE}\" specified but BOM is for \"${UTF16BE}\"`);\n } else if (buf[0] === 0xff && buf[1] === 0xfe) {\n src.bom = 2;\n }\n }\n break;\n default:\n throw new TypeError(`UTF16 BOM: src type \"${src.type}\" unrecognized`);\n }\n};\n// Find the UTF32 BOM, if any, and determine the UTF32 type.\n// Defaults to UTF32BE.\n// Throws exception if BOM does not match the specified type.\nconst bom32 = function bom32(src) {\n const buf = src.data;\n src.bom = 0;\n switch (src.type) {\n case UTF32:\n src.type = UTF32BE;\n if (buf.length >= 4) {\n if (buf[0] === 0 && buf[1] === 0 && buf[2] === 0xfe && buf[3] === 0xff) {\n src.bom = 4;\n }\n if (buf[0] === 0xff && buf[1] === 0xfe && buf[2] === 0 && buf[3] === 0) {\n src.type = UTF32LE;\n src.bom = 4;\n }\n }\n break;\n case UTF32BE:\n src.type = UTF32BE;\n if (buf.length >= 4) {\n if (buf[0] === 0 && buf[1] === 0 && buf[2] === 0xfe && buf[3] === 0xff) {\n src.bom = 4;\n }\n if (buf[0] === 0xff && buf[1] === 0xfe && buf[2] === 0 && buf[3] === 0) {\n throw new TypeError(`src type: ${UTF32BE} specified but BOM is for ${UTF32LE}\"`);\n }\n }\n break;\n case UTF32LE:\n src.type = UTF32LE;\n if (buf.length >= 4) {\n if (buf[0] === 0 && buf[1] === 0 && buf[2] === 0xfe && buf[3] === 0xff) {\n throw new TypeError(`src type: \"${UTF32LE}\" specified but BOM is for \"${UTF32BE}\"`);\n }\n if (buf[0] === 0xff && buf[1] === 0xfe && buf[2] === 0 && buf[3] === 0) {\n src.bom = 4;\n }\n }\n break;\n default:\n throw new TypeError(`UTF32 BOM: src type \"${src.type}\" unrecognized`);\n }\n};\n// Validates the source encoding type and matching data.\n// If the BASE64: prefix is present, the base 64 decoding is done here as the initial step.\n// - For type STRING, data must be a JavaScript string.\n// - For type BASE64:*, data may be a string or Buffer.\n// - For all other types, data must be a Buffer.\n// - The BASE64: prefix is not allowed for type STRING.\nconst validateSrc = function validateSrc(type, data) {\n function getType(typeArg) {\n const ret = {\n type: '',\n base64: false,\n };\n const rx = /^(base64:)?([a-zA-Z0-9]+)$/i;\n const result = rx.exec(typeArg);\n if (result) {\n if (result[2]) {\n ret.type = result[2].toUpperCase();\n }\n if (result[1]) {\n ret.base64 = true;\n }\n }\n return ret;\n }\n if (typeof type !== 'string' || type === '') {\n throw new TypeError(`type: \"${type}\" not recognized`);\n }\n const ret = getType(type.toUpperCase());\n if (ret.base64) {\n /* handle base 64 */\n if (ret.type === STRING) {\n throw new TypeError(`type: \"${type} \"BASE64:\" prefix not allowed with type ${STRING}`);\n }\n if (Buffer.isBuffer(data)) {\n ret.data = trans.base64.decode(data);\n } else if (typeof data === 'string') {\n const buf = Buffer.from(data, 'ascii');\n ret.data = trans.base64.decode(buf);\n } else {\n throw new TypeError(`type: \"${type} unrecognized data type: typeof(data): ${typeof data}`);\n }\n } else {\n ret.data = data;\n }\n switch (ret.type) {\n case UTF8:\n bom8(ret);\n break;\n case UTF16:\n case UTF16BE:\n case UTF16LE:\n bom16(ret);\n break;\n case UTF32:\n case UTF32BE:\n case UTF32LE:\n bom32(ret);\n break;\n case UINT16:\n ret.type = UINT16BE;\n break;\n case UINT32:\n ret.type = UINT32BE;\n break;\n case ASCII:\n ret.type = UINT7;\n break;\n case BINARY:\n ret.type = UINT8;\n break;\n case UINT7:\n case UINT8:\n case UINT16LE:\n case UINT16BE:\n case UINT32LE:\n case UINT32BE:\n case STRING:\n case ESCAPED:\n break;\n default:\n throw new TypeError(`type: \"${type}\" not recognized`);\n }\n if (ret.type === STRING) {\n if (typeof ret.data !== 'string') {\n throw new TypeError(`type: \"${type}\" but data is not a string`);\n }\n } else if (!Buffer.isBuffer(ret.data)) {\n throw new TypeError(`type: \"${type}\" but data is not a Buffer`);\n }\n return ret;\n};\n// Disassembles and validates the destination type.\n// `chars` must be an Array of integers.\n// The :BASE64 suffix is not allowed for type STRING.\nconst validateDst = function validateDst(type, chars) {\n function getType(typeArg) {\n let fix;\n let rem;\n const ret = {\n crlf: false,\n lf: false,\n base64: false,\n type: '',\n };\n /* prefix, if any */\n const TRUE = true;\n while (TRUE) {\n rem = typeArg;\n fix = typeArg.slice(0, 5);\n if (fix === 'CRLF:') {\n ret.crlf = true;\n rem = typeArg.slice(5);\n break;\n }\n fix = typeArg.slice(0, 3);\n if (fix === 'LF:') {\n ret.lf = true;\n rem = typeArg.slice(3);\n break;\n }\n break;\n }\n /* suffix, if any */\n fix = rem.split(':');\n if (fix.length === 1) {\n // eslint-disable-next-line prefer-destructuring\n ret.type = fix[0];\n } else if (fix.length === 2 && fix[1] === 'BASE64') {\n ret.base64 = true;\n // eslint-disable-next-line prefer-destructuring\n ret.type = fix[0];\n }\n return ret;\n }\n if (!Array.isArray(chars)) {\n throw new TypeError(`dst chars: not array: \"${typeof chars}`);\n }\n if (typeof type !== 'string') {\n throw new TypeError(`dst type: not string: \"${typeof type}`);\n }\n const ret = getType(type.toUpperCase());\n switch (ret.type) {\n case UTF8:\n case UTF16BE:\n case UTF16LE:\n case UTF32BE:\n case UTF32LE:\n case UINT7:\n case UINT8:\n case UINT16LE:\n case UINT16BE:\n case UINT32LE:\n case UINT32BE:\n case ESCAPED:\n break;\n case STRING:\n if (ret.base64) {\n throw new TypeError(`\":BASE64\" suffix not allowed with type ${STRING}`);\n }\n break;\n case ASCII:\n ret.type = UINT7;\n break;\n case BINARY:\n ret.type = UINT8;\n break;\n case UTF16:\n ret.type = UTF16BE;\n break;\n case UTF32:\n ret.type = UTF32BE;\n break;\n case UINT16:\n ret.type = UINT16BE;\n break;\n case UINT32:\n ret.type = UINT32BE;\n break;\n default:\n throw new TypeError(`dst type unrecognized: \"${type}\" : must have form [crlf:|lf:]type[:base64]`);\n }\n return ret;\n};\n// Select and call the requested encoding function.\nconst encode = function encode(type, chars) {\n switch (type) {\n case UTF8:\n return trans.utf8.encode(chars);\n case UTF16BE:\n return trans.utf16be.encode(chars);\n case UTF16LE:\n return trans.utf16le.encode(chars);\n case UTF32BE:\n return trans.utf32be.encode(chars);\n case UTF32LE:\n return trans.utf32le.encode(chars);\n case UINT7:\n return trans.uint7.encode(chars);\n case UINT8:\n return trans.uint8.encode(chars);\n case UINT16BE:\n return trans.uint16be.encode(chars);\n case UINT16LE:\n return trans.uint16le.encode(chars);\n case UINT32BE:\n return trans.uint32be.encode(chars);\n case UINT32LE:\n return trans.uint32le.encode(chars);\n case STRING:\n return trans.string.encode(chars);\n case ESCAPED:\n return trans.escaped.encode(chars);\n default:\n throw new TypeError(`encode type \"${type}\" not recognized`);\n }\n};\n// Select and call the requested decoding function.\n// `src` contains BOM information as well as the source type and data.\nconst decode = function decode(src) {\n switch (src.type) {\n case UTF8:\n return trans.utf8.decode(src.data, src.bom);\n case UTF16LE:\n return trans.utf16le.decode(src.data, src.bom);\n case UTF16BE:\n return trans.utf16be.decode(src.data, src.bom);\n case UTF32BE:\n return trans.utf32be.decode(src.data, src.bom);\n case UTF32LE:\n return trans.utf32le.decode(src.data, src.bom);\n case UINT7:\n return trans.uint7.decode(src.data);\n case UINT8:\n return trans.uint8.decode(src.data);\n case UINT16BE:\n return trans.uint16be.decode(src.data);\n case UINT16LE:\n return trans.uint16le.decode(src.data);\n case UINT32BE:\n return trans.uint32be.decode(src.data);\n case UINT32LE:\n return trans.uint32le.decode(src.data);\n case STRING:\n return trans.string.decode(src.data);\n case ESCAPED:\n return trans.escaped.decode(src.data);\n default:\n throw new TypeError(`decode type \"${src.type}\" not recognized`);\n }\n};\n\n// The public decoding function. Returns an array of integers.\nexports.decode = function exportsDecode(type, data) {\n const src = validateSrc(type, data);\n return decode(src);\n};\n// The public encoding function. Returns a Buffer-typed byte array.\nexports.encode = function exportsEncode(type, chars) {\n let c;\n let buf;\n const dst = validateDst(type, chars);\n if (dst.crlf) {\n /* prefix with CRLF line end conversion, don't contaminate caller's chars array */\n c = trans.lineEnds.crlf(chars);\n buf = encode(dst.type, c);\n } else if (dst.lf) {\n /* prefix with LF line end conversion, don't contaminate caller's chars array */\n c = trans.lineEnds.lf(chars);\n buf = encode(dst.type, c);\n } else {\n buf = encode(dst.type, chars);\n }\n if (dst.base64) {\n /* post base 64 encoding */\n buf = trans.base64.encode(buf);\n }\n return buf;\n};\n// Converts data of type `srcType` to data of type `dstType`.\n// `srcData` may be a JavaScript String, or node.js Buffer, depending on the corresponding type.\nexports.convert = function convert(srcType, srcData, dstType) {\n return thisThis.encode(dstType, thisThis.decode(srcType, srcData));\n};\n","/* eslint-disable prefer-destructuring */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-bitwise */\n/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module contains the actual encoding and decoding algorithms.\n// Throws \"RangeError\" exceptions on characters or bytes out of range for the given encoding.\n\n'use strict;';\n\nconst thisThis = this;\n\n/* decoding error codes */\nconst NON_SHORTEST = 0xfffffffc;\nconst TRAILING = 0xfffffffd;\nconst RANGE = 0xfffffffe;\nconst ILL_FORMED = 0xffffffff;\n\n/* mask[n] = 2**n - 1, ie. mask[n] = n bits on. e.g. mask[6] = %b111111 */\nconst mask = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023];\n\n/* ascii[n] = 'HH', where 0xHH = n, eg. ascii[254] = 'FE' */\nconst ascii = [\n '00',\n '01',\n '02',\n '03',\n '04',\n '05',\n '06',\n '07',\n '08',\n '09',\n '0A',\n '0B',\n '0C',\n '0D',\n '0E',\n '0F',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '19',\n '1A',\n '1B',\n '1C',\n '1D',\n '1E',\n '1F',\n '20',\n '21',\n '22',\n '23',\n '24',\n '25',\n '26',\n '27',\n '28',\n '29',\n '2A',\n '2B',\n '2C',\n '2D',\n '2E',\n '2F',\n '30',\n '31',\n '32',\n '33',\n '34',\n '35',\n '36',\n '37',\n '38',\n '39',\n '3A',\n '3B',\n '3C',\n '3D',\n '3E',\n '3F',\n '40',\n '41',\n '42',\n '43',\n '44',\n '45',\n '46',\n '47',\n '48',\n '49',\n '4A',\n '4B',\n '4C',\n '4D',\n '4E',\n '4F',\n '50',\n '51',\n '52',\n '53',\n '54',\n '55',\n '56',\n '57',\n '58',\n '59',\n '5A',\n '5B',\n '5C',\n '5D',\n '5E',\n '5F',\n '60',\n '61',\n '62',\n '63',\n '64',\n '65',\n '66',\n '67',\n '68',\n '69',\n '6A',\n '6B',\n '6C',\n '6D',\n '6E',\n '6F',\n '70',\n '71',\n '72',\n '73',\n '74',\n '75',\n '76',\n '77',\n '78',\n '79',\n '7A',\n '7B',\n '7C',\n '7D',\n '7E',\n '7F',\n '80',\n '81',\n '82',\n '83',\n '84',\n '85',\n '86',\n '87',\n '88',\n '89',\n '8A',\n '8B',\n '8C',\n '8D',\n '8E',\n '8F',\n '90',\n '91',\n '92',\n '93',\n '94',\n '95',\n '96',\n '97',\n '98',\n '99',\n '9A',\n '9B',\n '9C',\n '9D',\n '9E',\n '9F',\n 'A0',\n 'A1',\n 'A2',\n 'A3',\n 'A4',\n 'A5',\n 'A6',\n 'A7',\n 'A8',\n 'A9',\n 'AA',\n 'AB',\n 'AC',\n 'AD',\n 'AE',\n 'AF',\n 'B0',\n 'B1',\n 'B2',\n 'B3',\n 'B4',\n 'B5',\n 'B6',\n 'B7',\n 'B8',\n 'B9',\n 'BA',\n 'BB',\n 'BC',\n 'BD',\n 'BE',\n 'BF',\n 'C0',\n 'C1',\n 'C2',\n 'C3',\n 'C4',\n 'C5',\n 'C6',\n 'C7',\n 'C8',\n 'C9',\n 'CA',\n 'CB',\n 'CC',\n 'CD',\n 'CE',\n 'CF',\n 'D0',\n 'D1',\n 'D2',\n 'D3',\n 'D4',\n 'D5',\n 'D6',\n 'D7',\n 'D8',\n 'D9',\n 'DA',\n 'DB',\n 'DC',\n 'DD',\n 'DE',\n 'DF',\n 'E0',\n 'E1',\n 'E2',\n 'E3',\n 'E4',\n 'E5',\n 'E6',\n 'E7',\n 'E8',\n 'E9',\n 'EA',\n 'EB',\n 'EC',\n 'ED',\n 'EE',\n 'EF',\n 'F0',\n 'F1',\n 'F2',\n 'F3',\n 'F4',\n 'F5',\n 'F6',\n 'F7',\n 'F8',\n 'F9',\n 'FA',\n 'FB',\n 'FC',\n 'FD',\n 'FE',\n 'FF',\n];\n\n/* vector of base 64 characters */\nconst base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.split('');\n\n/* vector of base 64 character codes */\nconst base64codes = [];\nbase64chars.forEach((char) => {\n base64codes.push(char.charCodeAt(0));\n});\n\n// The UTF8 algorithms.\nexports.utf8 = {\n encode(chars) {\n const bytes = [];\n chars.forEach((char) => {\n if (char >= 0 && char <= 0x7f) {\n bytes.push(char);\n } else if (char <= 0x7ff) {\n bytes.push(0xc0 + ((char >> 6) & mask[5]));\n bytes.push(0x80 + (char & mask[6]));\n } else if (char < 0xd800 || (char > 0xdfff && char <= 0xffff)) {\n bytes.push(0xe0 + ((char >> 12) & mask[4]));\n bytes.push(0x80 + ((char >> 6) & mask[6]));\n bytes.push(0x80 + (char & mask[6]));\n } else if (char >= 0x10000 && char <= 0x10ffff) {\n const u = (char >> 16) & mask[5];\n bytes.push(0xf0 + (u >> 2));\n bytes.push(0x80 + ((u & mask[2]) << 4) + ((char >> 12) & mask[4]));\n bytes.push(0x80 + ((char >> 6) & mask[6]));\n bytes.push(0x80 + (char & mask[6]));\n } else {\n throw new RangeError(`utf8.encode: character out of range: char: ${char}`);\n }\n });\n return Buffer.from(bytes);\n },\n decode(buf, bom) {\n /* bytes functions return error for non-shortest forms & values out of range */\n function bytes2(b1, b2) {\n /* U+0080..U+07FF */\n /* 00000000 00000yyy yyxxxxxx | 110yyyyy 10xxxxxx */\n if ((b2 & 0xc0) !== 0x80) {\n return TRAILING;\n }\n const x = ((b1 & mask[5]) << 6) + (b2 & mask[6]);\n if (x < 0x80) {\n return NON_SHORTEST;\n }\n return x;\n }\n function bytes3(b1, b2, b3) {\n /* U+0800..U+FFFF */\n /* 00000000 zzzzyyyy yyxxxxxx | 1110zzzz 10yyyyyy 10xxxxxx */\n if ((b3 & 0xc0) !== 0x80 || (b2 & 0xc0) !== 0x80) {\n return TRAILING;\n }\n const x = ((b1 & mask[4]) << 12) + ((b2 & mask[6]) << 6) + (b3 & mask[6]);\n if (x < 0x800) {\n return NON_SHORTEST;\n }\n if (x >= 0xd800 && x <= 0xdfff) {\n return RANGE;\n }\n return x;\n }\n function bytes4(b1, b2, b3, b4) {\n /* U+10000..U+10FFFF */\n /* 000uuuuu zzzzyyyy yyxxxxxx | 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx */\n if ((b4 & 0xc0) !== 0x80 || (b3 & 0xc0) !== 0x80 || (b2 & 0xc0) !== 0x80) {\n return TRAILING;\n }\n const x =\n ((((b1 & mask[3]) << 2) + ((b2 >> 4) & mask[2])) << 16) +\n ((b2 & mask[4]) << 12) +\n ((b3 & mask[6]) << 6) +\n (b4 & mask[6]);\n if (x < 0x10000) {\n return NON_SHORTEST;\n }\n if (x > 0x10ffff) {\n return RANGE;\n }\n return x;\n }\n let c;\n let b1;\n let i1;\n let i2;\n let i3;\n let inc;\n const len = buf.length;\n let i = bom ? 3 : 0;\n const chars = [];\n while (i < len) {\n b1 = buf[i];\n c = ILL_FORMED;\n const TRUE = true;\n while (TRUE) {\n if (b1 >= 0 && b1 <= 0x7f) {\n /* U+0000..U+007F 00..7F */\n c = b1;\n inc = 1;\n break;\n }\n i1 = i + 1;\n if (i1 < len && b1 >= 0xc2 && b1 <= 0xdf) {\n /* U+0080..U+07FF C2..DF 80..BF */\n c = bytes2(b1, buf[i1]);\n inc = 2;\n break;\n }\n i2 = i + 2;\n if (i2 < len && b1 >= 0xe0 && b1 <= 0xef) {\n /* U+0800..U+FFFF */\n c = bytes3(b1, buf[i1], buf[i2]);\n inc = 3;\n break;\n }\n i3 = i + 3;\n if (i3 < len && b1 >= 0xf0 && b1 <= 0xf4) {\n /* U+10000..U+10FFFF */\n c = bytes4(b1, buf[i1], buf[i2], buf[i3]);\n inc = 4;\n break;\n }\n /* if we fall through to here, it is an ill-formed sequence */\n break;\n }\n if (c > 0x10ffff) {\n const at = `byte[${i}]`;\n if (c === ILL_FORMED) {\n throw new RangeError(`utf8.decode: ill-formed UTF8 byte sequence found at: ${at}`);\n }\n if (c === TRAILING) {\n throw new RangeError(`utf8.decode: illegal trailing byte found at: ${at}`);\n }\n if (c === RANGE) {\n throw new RangeError(`utf8.decode: code point out of range found at: ${at}`);\n }\n if (c === NON_SHORTEST) {\n throw new RangeError(`utf8.decode: non-shortest form found at: ${at}`);\n }\n throw new RangeError(`utf8.decode: unrecognized error found at: ${at}`);\n }\n chars.push(c);\n i += inc;\n }\n return chars;\n },\n};\n\n// The UTF16BE algorithms.\nexports.utf16be = {\n encode(chars) {\n const bytes = [];\n let char;\n let h;\n let l;\n for (let i = 0; i < chars.length; i += 1) {\n char = chars[i];\n if ((char >= 0 && char <= 0xd7ff) || (char >= 0xe000 && char <= 0xffff)) {\n bytes.push((char >> 8) & mask[8]);\n bytes.push(char & mask[8]);\n } else if (char >= 0x10000 && char <= 0x10ffff) {\n l = char - 0x10000;\n h = 0xd800 + (l >> 10);\n l = 0xdc00 + (l & mask[10]);\n bytes.push((h >> 8) & mask[8]);\n bytes.push(h & mask[8]);\n bytes.push((l >> 8) & mask[8]);\n bytes.push(l & mask[8]);\n } else {\n throw new RangeError(`utf16be.encode: UTF16BE value out of range: char[${i}]: ${char}`);\n }\n }\n return Buffer.from(bytes);\n },\n decode(buf, bom) {\n /* assumes caller has insured that buf is a Buffer of bytes */\n if (buf.length % 2 > 0) {\n throw new RangeError(`utf16be.decode: data length must be even multiple of 2: length: ${buf.length}`);\n }\n const chars = [];\n const len = buf.length;\n let i = bom ? 2 : 0;\n let j = 0;\n let c;\n let inc;\n let i1;\n let i3;\n let high;\n let low;\n while (i < len) {\n const TRUE = true;\n while (TRUE) {\n i1 = i + 1;\n if (i1 < len) {\n high = (buf[i] << 8) + buf[i1];\n if (high < 0xd800 || high > 0xdfff) {\n c = high;\n inc = 2;\n break;\n }\n i3 = i + 3;\n if (i3 < len) {\n low = (buf[i + 2] << 8) + buf[i3];\n if (high <= 0xdbff && low >= 0xdc00 && low <= 0xdfff) {\n c = 0x10000 + ((high - 0xd800) << 10) + (low - 0xdc00);\n inc = 4;\n break;\n }\n }\n }\n /* if we fall through to here, it is an ill-formed sequence */\n throw new RangeError(`utf16be.decode: ill-formed UTF16BE byte sequence found: byte[${i}]`);\n }\n chars[j++] = c;\n i += inc;\n }\n return chars;\n },\n};\n\n// The UTF16LE algorithms.\nexports.utf16le = {\n encode(chars) {\n const bytes = [];\n let char;\n let h;\n let l;\n for (let i = 0; i < chars.length; i += 1) {\n char = chars[i];\n if ((char >= 0 && char <= 0xd7ff) || (char >= 0xe000 && char <= 0xffff)) {\n bytes.push(char & mask[8]);\n bytes.push((char >> 8) & mask[8]);\n } else if (char >= 0x10000 && char <= 0x10ffff) {\n l = char - 0x10000;\n h = 0xd800 + (l >> 10);\n l = 0xdc00 + (l & mask[10]);\n bytes.push(h & mask[8]);\n bytes.push((h >> 8) & mask[8]);\n bytes.push(l & mask[8]);\n bytes.push((l >> 8) & mask[8]);\n } else {\n throw new RangeError(`utf16le.encode: UTF16LE value out of range: char[${i}]: ${char}`);\n }\n }\n return Buffer.from(bytes);\n },\n decode(buf, bom) {\n /* assumes caller has insured that buf is a Buffer of bytes */\n if (buf.length % 2 > 0) {\n throw new RangeError(`utf16le.decode: data length must be even multiple of 2: length: ${buf.length}`);\n }\n const chars = [];\n const len = buf.length;\n let i = bom ? 2 : 0;\n let j = 0;\n let c;\n let inc;\n let i1;\n let i3;\n let high;\n let low;\n while (i < len) {\n const TRUE = true;\n while (TRUE) {\n i1 = i + 1;\n if (i1 < len) {\n high = (buf[i1] << 8) + buf[i];\n if (high < 0xd800 || high > 0xdfff) {\n c = high;\n inc = 2;\n break;\n }\n i3 = i + 3;\n if (i3 < len) {\n low = (buf[i3] << 8) + buf[i + 2];\n if (high <= 0xdbff && low >= 0xdc00 && low <= 0xdfff) {\n c = 0x10000 + ((high - 0xd800) << 10) + (low - 0xdc00);\n inc = 4;\n break;\n }\n }\n }\n /* if we fall through to here, it is an ill-formed sequence */\n throw new RangeError(`utf16le.decode: ill-formed UTF16LE byte sequence found: byte[${i}]`);\n }\n chars[j++] = c;\n i += inc;\n }\n return chars;\n },\n};\n\n// The UTF32BE algorithms.\nexports.utf32be = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length * 4);\n let i = 0;\n chars.forEach((char) => {\n if ((char >= 0xd800 && char <= 0xdfff) || char > 0x10ffff) {\n throw new RangeError(`utf32be.encode: UTF32BE character code out of range: char[${i / 4}]: ${char}`);\n }\n buf[i++] = (char >> 24) & mask[8];\n buf[i++] = (char >> 16) & mask[8];\n buf[i++] = (char >> 8) & mask[8];\n buf[i++] = char & mask[8];\n });\n return buf;\n },\n decode(buf, bom) {\n /* caller to insure buf is a Buffer of bytes */\n if (buf.length % 4 > 0) {\n throw new RangeError(`utf32be.decode: UTF32BE byte length must be even multiple of 4: length: ${buf.length}`);\n }\n const chars = [];\n let i = bom ? 4 : 0;\n for (; i < buf.length; i += 4) {\n const char = (buf[i] << 24) + (buf[i + 1] << 16) + (buf[i + 2] << 8) + buf[i + 3];\n if ((char >= 0xd800 && char <= 0xdfff) || char > 0x10ffff) {\n throw new RangeError(`utf32be.decode: UTF32BE character code out of range: char[${i / 4}]: ${char}`);\n }\n chars.push(char);\n }\n return chars;\n },\n};\n\n// The UTF32LE algorithms.\nexports.utf32le = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length * 4);\n let i = 0;\n chars.forEach((char) => {\n if ((char >= 0xd800 && char <= 0xdfff) || char > 0x10ffff) {\n throw new RangeError(`utf32le.encode: UTF32LE character code out of range: char[${i / 4}]: ${char}`);\n }\n buf[i++] = char & mask[8];\n buf[i++] = (char >> 8) & mask[8];\n buf[i++] = (char >> 16) & mask[8];\n buf[i++] = (char >> 24) & mask[8];\n });\n return buf;\n },\n decode(buf, bom) {\n /* caller to insure buf is a Buffer of bytes */\n if (buf.length % 4 > 0) {\n throw new RangeError(`utf32be.decode: UTF32LE byte length must be even multiple of 4: length: ${buf.length}`);\n }\n const chars = [];\n let i = bom ? 4 : 0;\n for (; i < buf.length; i += 4) {\n const char = (buf[i + 3] << 24) + (buf[i + 2] << 16) + (buf[i + 1] << 8) + buf[i];\n if ((char >= 0xd800 && char <= 0xdfff) || char > 0x10ffff) {\n throw new RangeError(`utf32le.encode: UTF32LE character code out of range: char[${i / 4}]: ${char}`);\n }\n chars.push(char);\n }\n return chars;\n },\n};\n\n// The UINT7 algorithms. ASCII or 7-bit unsigned integers.\nexports.uint7 = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length);\n for (let i = 0; i < chars.length; i += 1) {\n if (chars[i] > 0x7f) {\n throw new RangeError(`uint7.encode: UINT7 character code out of range: char[${i}]: ${chars[i]}`);\n }\n buf[i] = chars[i];\n }\n return buf;\n },\n decode(buf) {\n const chars = [];\n for (let i = 0; i < buf.length; i += 1) {\n if (buf[i] > 0x7f) {\n throw new RangeError(`uint7.decode: UINT7 character code out of range: byte[${i}]: ${buf[i]}`);\n }\n chars[i] = buf[i];\n }\n return chars;\n },\n};\n\n// The UINT8 algorithms. BINARY, Latin 1 or 8-bit unsigned integers.\nexports.uint8 = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length);\n for (let i = 0; i < chars.length; i += 1) {\n if (chars[i] > 0xff) {\n throw new RangeError(`uint8.encode: UINT8 character code out of range: char[${i}]: ${chars[i]}`);\n }\n buf[i] = chars[i];\n }\n return buf;\n },\n decode(buf) {\n const chars = [];\n for (let i = 0; i < buf.length; i += 1) {\n chars[i] = buf[i];\n }\n return chars;\n },\n};\n\n// The UINT16BE algorithms. Big-endian 16-bit unsigned integers.\nexports.uint16be = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length * 2);\n let i = 0;\n chars.forEach((char) => {\n if (char > 0xffff) {\n throw new RangeError(`uint16be.encode: UINT16BE character code out of range: char[${i / 2}]: ${char}`);\n }\n buf[i++] = (char >> 8) & mask[8];\n buf[i++] = char & mask[8];\n });\n return buf;\n },\n decode(buf) {\n if (buf.length % 2 > 0) {\n throw new RangeError(`uint16be.decode: UINT16BE byte length must be even multiple of 2: length: ${buf.length}`);\n }\n const chars = [];\n for (let i = 0; i < buf.length; i += 2) {\n chars.push((buf[i] << 8) + buf[i + 1]);\n }\n return chars;\n },\n};\n\n// The UINT16LE algorithms. Little-endian 16-bit unsigned integers.\nexports.uint16le = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length * 2);\n let i = 0;\n chars.forEach((char) => {\n if (char > 0xffff) {\n throw new RangeError(`uint16le.encode: UINT16LE character code out of range: char[${i / 2}]: ${char}`);\n }\n buf[i++] = char & mask[8];\n buf[i++] = (char >> 8) & mask[8];\n });\n return buf;\n },\n decode(buf) {\n if (buf.length % 2 > 0) {\n throw new RangeError(`uint16le.decode: UINT16LE byte length must be even multiple of 2: length: ${buf.length}`);\n }\n const chars = [];\n for (let i = 0; i < buf.length; i += 2) {\n chars.push((buf[i + 1] << 8) + buf[i]);\n }\n return chars;\n },\n};\n\n// The UINT32BE algorithms. Big-endian 32-bit unsigned integers.\nexports.uint32be = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length * 4);\n let i = 0;\n chars.forEach((char) => {\n buf[i++] = (char >> 24) & mask[8];\n buf[i++] = (char >> 16) & mask[8];\n buf[i++] = (char >> 8) & mask[8];\n buf[i++] = char & mask[8];\n });\n return buf;\n },\n decode(buf) {\n if (buf.length % 4 > 0) {\n throw new RangeError(`uint32be.decode: UINT32BE byte length must be even multiple of 4: length: ${buf.length}`);\n }\n const chars = [];\n for (let i = 0; i < buf.length; i += 4) {\n chars.push((buf[i] << 24) + (buf[i + 1] << 16) + (buf[i + 2] << 8) + buf[i + 3]);\n }\n return chars;\n },\n};\n\n// The UINT32LE algorithms. Little-endian 32-bit unsigned integers.\nexports.uint32le = {\n encode(chars) {\n const buf = Buffer.alloc(chars.length * 4);\n let i = 0;\n chars.forEach((char) => {\n buf[i++] = char & mask[8];\n buf[i++] = (char >> 8) & mask[8];\n buf[i++] = (char >> 16) & mask[8];\n buf[i++] = (char >> 24) & mask[8];\n });\n return buf;\n },\n decode(buf) {\n /* caller to insure buf is a Buffer of bytes */\n if (buf.length % 4 > 0) {\n throw new RangeError(`uint32le.decode: UINT32LE byte length must be even multiple of 4: length: ${buf.length}`);\n }\n const chars = [];\n for (let i = 0; i < buf.length; i += 4) {\n chars.push((buf[i + 3] << 24) + (buf[i + 2] << 16) + (buf[i + 1] << 8) + buf[i]);\n }\n return chars;\n },\n};\n\n// The STRING algorithms. Converts JavaScript strings to Array of 32-bit integers and vice versa.\n// Uses the node.js Buffer's native \"utf16le\" capabilites.\nexports.string = {\n encode(chars) {\n return thisThis.utf16le.encode(chars).toString('utf16le');\n },\n decode(str) {\n return thisThis.utf16le.decode(Buffer.from(str, 'utf16le'), 0);\n },\n};\n\n// The ESCAPED algorithms.\n// Note that ESCAPED format contains only ASCII characters.\n// The characters are always in the form of a Buffer of bytes.\nexports.escaped = {\n // Encodes an Array of 32-bit integers into ESCAPED format.\n encode(chars) {\n const bytes = [];\n for (let i = 0; i < chars.length; i += 1) {\n const char = chars[i];\n if (char === 96) {\n bytes.push(char);\n bytes.push(char);\n } else if (char === 10) {\n bytes.push(char);\n } else if (char >= 32 && char <= 126) {\n bytes.push(char);\n } else {\n let str = '';\n if (char >= 0 && char <= 31) {\n str += `\\`x${ascii[char]}`;\n } else if (char >= 127 && char <= 255) {\n str += `\\`x${ascii[char]}`;\n } else if (char >= 0x100 && char <= 0xffff) {\n str += `\\`u${ascii[(char >> 8) & mask[8]]}${ascii[char & mask[8]]}`;\n } else if (char >= 0x10000 && char <= 0xffffffff) {\n str += '`u{';\n const digit = (char >> 24) & mask[8];\n if (digit > 0) {\n str += ascii[digit];\n }\n str += `${ascii[(char >> 16) & mask[8]] + ascii[(char >> 8) & mask[8]] + ascii[char & mask[8]]}}`;\n } else {\n throw new Error('escape.encode(char): char > 0xffffffff not allowed');\n }\n const buf = Buffer.from(str);\n buf.forEach((b) => {\n bytes.push(b);\n });\n }\n }\n return Buffer.from(bytes);\n },\n // Decodes ESCAPED format from a Buffer of bytes to an Array of 32-bit integers.\n decode(buf) {\n function isHex(hex) {\n if ((hex >= 48 && hex <= 57) || (hex >= 65 && hex <= 70) || (hex >= 97 && hex <= 102)) {\n return true;\n }\n return false;\n }\n function getx(i, len, bufArg) {\n const ret = { char: null, nexti: i + 2, error: true };\n if (i + 1 < len) {\n if (isHex(bufArg[i]) && isHex(bufArg[i + 1])) {\n const str = String.fromCodePoint(bufArg[i], bufArg[i + 1]);\n ret.char = parseInt(str, 16);\n if (!Number.isNaN(ret.char)) {\n ret.error = false;\n }\n }\n }\n return ret;\n }\n function getu(i, len, bufArg) {\n const ret = { char: null, nexti: i + 4, error: true };\n if (i + 3 < len) {\n if (isHex(bufArg[i]) && isHex(bufArg[i + 1]) && isHex(bufArg[i + 2]) && isHex(bufArg[i + 3])) {\n const str = String.fromCodePoint(bufArg[i], bufArg[i + 1], bufArg[i + 2], bufArg[i + 3]);\n ret.char = parseInt(str, 16);\n if (!Number.isNaN(ret.char)) {\n ret.error = false;\n }\n }\n }\n return ret;\n }\n function getU(i, len, bufArg) {\n const ret = { char: null, nexti: i + 4, error: true };\n let str = '';\n while (i < len && isHex(bufArg[i])) {\n str += String.fromCodePoint(bufArg[i]);\n // eslint-disable-next-line no-param-reassign\n i += 1;\n }\n ret.char = parseInt(str, 16);\n if (bufArg[i] === 125 && !Number.isNaN(ret.char)) {\n ret.error = false;\n }\n ret.nexti = i + 1;\n return ret;\n }\n const chars = [];\n const len = buf.length;\n let i1;\n let ret;\n let error;\n let i = 0;\n while (i < len) {\n const TRUE = true;\n while (TRUE) {\n error = true;\n if (buf[i] !== 96) {\n /* unescaped character */\n chars.push(buf[i]);\n i += 1;\n error = false;\n break;\n }\n i1 = i + 1;\n if (i1 >= len) {\n break;\n }\n if (buf[i1] === 96) {\n /* escaped grave accent */\n chars.push(96);\n i += 2;\n error = false;\n break;\n }\n if (buf[i1] === 120) {\n ret = getx(i1 + 1, len, buf);\n if (ret.error) {\n break;\n }\n /* escaped hex */\n chars.push(ret.char);\n i = ret.nexti;\n error = false;\n break;\n }\n if (buf[i1] === 117) {\n if (buf[i1 + 1] === 123) {\n ret = getU(i1 + 2, len, buf);\n if (ret.error) {\n break;\n }\n /* escaped utf-32 */\n chars.push(ret.char);\n i = ret.nexti;\n error = false;\n break;\n }\n ret = getu(i1 + 1, len, buf);\n if (ret.error) {\n break;\n }\n /* escaped utf-16 */\n chars.push(ret.char);\n i = ret.nexti;\n error = false;\n break;\n }\n break;\n }\n if (error) {\n throw new Error(`escaped.decode: ill-formed escape sequence at buf[${i}]`);\n }\n }\n return chars;\n },\n};\n\n// The line end conversion algorigthms.\nconst CR = 13;\nconst LF = 10;\nexports.lineEnds = {\n crlf(chars) {\n const lfchars = [];\n let i = 0;\n while (i < chars.length) {\n switch (chars[i]) {\n case CR:\n if (i + 1 < chars.length && chars[i + 1] === LF) {\n i += 2;\n } else {\n i += 1;\n }\n lfchars.push(CR);\n lfchars.push(LF);\n break;\n case LF:\n lfchars.push(CR);\n lfchars.push(LF);\n i += 1;\n break;\n default:\n lfchars.push(chars[i]);\n i += 1;\n break;\n }\n }\n if (lfchars.length > 0 && lfchars[lfchars.length - 1] !== LF) {\n lfchars.push(CR);\n lfchars.push(LF);\n }\n return lfchars;\n },\n lf(chars) {\n const lfchars = [];\n let i = 0;\n while (i < chars.length) {\n switch (chars[i]) {\n case CR:\n if (i + 1 < chars.length && chars[i + 1] === LF) {\n i += 2;\n } else {\n i += 1;\n }\n lfchars.push(LF);\n break;\n case LF:\n lfchars.push(LF);\n i += 1;\n break;\n default:\n lfchars.push(chars[i]);\n i += 1;\n break;\n }\n }\n if (lfchars.length > 0 && lfchars[lfchars.length - 1] !== LF) {\n lfchars.push(LF);\n }\n return lfchars;\n },\n};\n\n// The base 64 algorithms.\nexports.base64 = {\n encode(buf) {\n if (buf.length === 0) {\n return Buffer.alloc(0);\n }\n let i;\n let j;\n let n;\n let tail = buf.length % 3;\n tail = tail > 0 ? 3 - tail : 0;\n let units = (buf.length + tail) / 3;\n const base64 = Buffer.alloc(units * 4);\n if (tail > 0) {\n units -= 1;\n }\n i = 0;\n j = 0;\n for (let u = 0; u < units; u += 1) {\n n = buf[i++] << 16;\n n += buf[i++] << 8;\n n += buf[i++];\n base64[j++] = base64codes[(n >> 18) & mask[6]];\n base64[j++] = base64codes[(n >> 12) & mask[6]];\n base64[j++] = base64codes[(n >> 6) & mask[6]];\n base64[j++] = base64codes[n & mask[6]];\n }\n if (tail === 0) {\n return base64;\n }\n if (tail === 1) {\n n = buf[i++] << 16;\n n += buf[i] << 8;\n base64[j++] = base64codes[(n >> 18) & mask[6]];\n base64[j++] = base64codes[(n >> 12) & mask[6]];\n base64[j++] = base64codes[(n >> 6) & mask[6]];\n base64[j] = base64codes[64];\n return base64;\n }\n if (tail === 2) {\n n = buf[i] << 16;\n base64[j++] = base64codes[(n >> 18) & mask[6]];\n base64[j++] = base64codes[(n >> 12) & mask[6]];\n base64[j++] = base64codes[64];\n base64[j] = base64codes[64];\n return base64;\n }\n return undefined;\n },\n decode(codes) {\n /* remove white space and ctrl characters, validate & translate characters */\n function validate(buf) {\n const chars = [];\n let tail = 0;\n for (let i = 0; i < buf.length; i += 1) {\n const char = buf[i];\n const TRUE = true;\n while (TRUE) {\n if (char === 32 || char === 9 || char === 10 || char === 13) {\n break;\n }\n if (char >= 65 && char <= 90) {\n chars.push(char - 65);\n break;\n }\n if (char >= 97 && char <= 122) {\n chars.push(char - 71);\n break;\n }\n if (char >= 48 && char <= 57) {\n chars.push(char + 4);\n break;\n }\n if (char === 43) {\n chars.push(62);\n break;\n }\n if (char === 47) {\n chars.push(63);\n break;\n }\n if (char === 61) {\n chars.push(64);\n tail += 1;\n break;\n }\n /* invalid character */\n throw new RangeError(`base64.decode: invalid character buf[${i}]: ${char}`);\n }\n }\n /* validate length */\n if (chars.length % 4 > 0) {\n throw new RangeError(`base64.decode: string length not integral multiple of 4: ${chars.length}`);\n }\n /* validate tail */\n switch (tail) {\n case 0:\n break;\n case 1:\n if (chars[chars.length - 1] !== 64) {\n throw new RangeError('base64.decode: one tail character found: not last character');\n }\n break;\n case 2:\n if (chars[chars.length - 1] !== 64 || chars[chars.length - 2] !== 64) {\n throw new RangeError('base64.decode: two tail characters found: not last characters');\n }\n break;\n default:\n throw new RangeError(`base64.decode: more than two tail characters found: ${tail}`);\n }\n return { tail, buf: Buffer.from(chars) };\n }\n\n if (codes.length === 0) {\n return Buffer.alloc(0);\n }\n const val = validate(codes);\n const { tail } = val;\n const base64 = val.buf;\n let i;\n let j;\n let n;\n let units = base64.length / 4;\n const buf = Buffer.alloc(units * 3 - tail);\n if (tail > 0) {\n units -= 1;\n }\n j = 0;\n i = 0;\n for (let u = 0; u < units; u += 1) {\n n = base64[i++] << 18;\n n += base64[i++] << 12;\n n += base64[i++] << 6;\n n += base64[i++];\n buf[j++] = (n >> 16) & mask[8];\n buf[j++] = (n >> 8) & mask[8];\n buf[j++] = n & mask[8];\n }\n if (tail === 1) {\n n = base64[i++] << 18;\n n += base64[i++] << 12;\n n += base64[i] << 6;\n buf[j++] = (n >> 16) & mask[8];\n buf[j] = (n >> 8) & mask[8];\n }\n if (tail === 2) {\n n = base64[i++] << 18;\n n += base64[i++] << 12;\n buf[j] = (n >> 16) & mask[8];\n }\n return buf;\n },\n // Converts a base 64 Buffer of bytes to a JavaScript string with line breaks.\n toString(buf) {\n if (buf.length % 4 > 0) {\n throw new RangeError(`base64.toString: input buffer length not multiple of 4: ${buf.length}`);\n }\n let str = '';\n let lineLen = 0;\n function buildLine(c1, c2, c3, c4) {\n switch (lineLen) {\n case 76:\n str += `\\r\\n${c1}${c2}${c3}${c4}`;\n lineLen = 4;\n break;\n case 75:\n str += `${c1}\\r\\n${c2}${c3}${c4}`;\n lineLen = 3;\n break;\n case 74:\n str += `${c1 + c2}\\r\\n${c3}${c4}`;\n lineLen = 2;\n break;\n case 73:\n str += `${c1 + c2 + c3}\\r\\n${c4}`;\n lineLen = 1;\n break;\n default:\n str += c1 + c2 + c3 + c4;\n lineLen += 4;\n break;\n }\n }\n function validate(c) {\n if (c >= 65 && c <= 90) {\n return true;\n }\n if (c >= 97 && c <= 122) {\n return true;\n }\n if (c >= 48 && c <= 57) {\n return true;\n }\n if (c === 43) {\n return true;\n }\n if (c === 47) {\n return true;\n }\n if (c === 61) {\n return true;\n }\n return false;\n }\n for (let i = 0; i < buf.length; i += 4) {\n for (let j = i; j < i + 4; j += 1) {\n if (!validate(buf[j])) {\n throw new RangeError(`base64.toString: buf[${j}]: ${buf[j]} : not valid base64 character code`);\n }\n }\n buildLine(\n String.fromCharCode(buf[i]),\n String.fromCharCode(buf[i + 1]),\n String.fromCharCode(buf[i + 2]),\n String.fromCharCode(buf[i + 3])\n );\n }\n return str;\n },\n};\n","/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module is used by the parser to build an [Abstract Syntax Tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree) (AST).\n// The AST can be thought of as a subset of the full parse tree.\n// Each node of the AST holds the phrase that was matched at the corresponding, named parse tree node.\n// It is built as the parser successfully matches phrases to the rule names\n// (`RNM` operators) and `UDT`s as it parses an input string.\n// The user controls which `RNM` or `UDT` names to keep on the AST.\n// The user can also associate callback functions with some or all of the retained\n// AST nodes to be used to translate the node phrases. That is, associate semantic\n// actions to the matched phrases.\n// Translating the AST rather that attempting to apply semantic actions during\n// the parsing process, has the advantage that there is no backtracking and that the phrases\n// are known while traversing down tree as will as up.\n//\n// Let `ast` be an `ast.js` object. To identify a node to be kept on the AST:\n// ```\n// ast.callbacks[\"rulename\"] = true; (all nodes default to false)\n// ```\n// To associate a callback function with a node:\n// ```\n// ast.callbacks[\"rulename\"] = fn\n// ```\n// `rulename` is any `RNM` or `UDT` name defined by the associated grammar\n// and `fn` is a user-written callback function.\n// (See [`apg-examples`](https://github.com/ldthomas/apg-js2-examples/tree/master/ast) for examples of how to create an AST,\n// define the nodes and callback functions and attach it to a parser.)\nmodule.exports = function exportsAst() {\n const id = require('./identifiers');\n const utils = require('./utilities');\n\n const thisFileName = 'ast.js: ';\n const that = this;\n let rules = null;\n let udts = null;\n let chars = null;\n let nodeCount = 0;\n const nodesDefined = [];\n const nodeCallbacks = [];\n const stack = [];\n const records = [];\n this.callbacks = [];\n this.astObject = 'astObject';\n /* called by the parser to initialize the AST with the rules, UDTs and the input characters */\n this.init = function init(rulesIn, udtsIn, charsIn) {\n stack.length = 0;\n records.length = 0;\n nodesDefined.length = 0;\n nodeCount = 0;\n rules = rulesIn;\n udts = udtsIn;\n chars = charsIn;\n let i;\n const list = [];\n for (i = 0; i < rules.length; i += 1) {\n list.push(rules[i].lower);\n }\n for (i = 0; i < udts.length; i += 1) {\n list.push(udts[i].lower);\n }\n nodeCount = rules.length + udts.length;\n for (i = 0; i < nodeCount; i += 1) {\n nodesDefined[i] = false;\n nodeCallbacks[i] = null;\n }\n for (const index in that.callbacks) {\n const lower = index.toLowerCase();\n i = list.indexOf(lower);\n if (i < 0) {\n throw new Error(`${thisFileName}init: node '${index}' not a rule or udt name`);\n }\n if (typeof that.callbacks[index] === 'function') {\n nodesDefined[i] = true;\n nodeCallbacks[i] = that.callbacks[index];\n }\n if (that.callbacks[index] === true) {\n nodesDefined[i] = true;\n }\n }\n };\n /* AST node definitions - called by the parser's `RNM` operator */\n this.ruleDefined = function ruleDefined(index) {\n return nodesDefined[index] !== false;\n };\n /* AST node definitions - called by the parser's `UDT` operator */\n this.udtDefined = function udtDefined(index) {\n return nodesDefined[rules.length + index] !== false;\n };\n /* called by the parser's `RNM` & `UDT` operators */\n /* builds a record for the downward traversal of the node */\n this.down = function down(callbackIndex, name) {\n const thisIndex = records.length;\n stack.push(thisIndex);\n records.push({\n name,\n thisIndex,\n thatIndex: null,\n state: id.SEM_PRE,\n callbackIndex,\n phraseIndex: null,\n phraseLength: null,\n stack: stack.length,\n });\n return thisIndex;\n };\n /* called by the parser's `RNM` & `UDT` operators */\n /* builds a record for the upward traversal of the node */\n this.up = function up(callbackIndex, name, phraseIndex, phraseLength) {\n const thisIndex = records.length;\n const thatIndex = stack.pop();\n records.push({\n name,\n thisIndex,\n thatIndex,\n state: id.SEM_POST,\n callbackIndex,\n phraseIndex,\n phraseLength,\n stack: stack.length,\n });\n records[thatIndex].thatIndex = thisIndex;\n records[thatIndex].phraseIndex = phraseIndex;\n records[thatIndex].phraseLength = phraseLength;\n return thisIndex;\n };\n // Called by the user to translate the AST.\n // Translate means to associate or apply some semantic action to the\n // phrases that were syntactically matched to the AST nodes according\n // to the defining grammar.\n // ```\n // data - optional user-defined data\n // passed to the callback functions by the translator\n // ```\n this.translate = function translate(data) {\n let ret;\n let callback;\n let record;\n for (let i = 0; i < records.length; i += 1) {\n record = records[i];\n callback = nodeCallbacks[record.callbackIndex];\n if (record.state === id.SEM_PRE) {\n if (callback !== null) {\n ret = callback(id.SEM_PRE, chars, record.phraseIndex, record.phraseLength, data);\n if (ret === id.SEM_SKIP) {\n i = record.thatIndex;\n }\n }\n } else if (callback !== null) {\n callback(id.SEM_POST, chars, record.phraseIndex, record.phraseLength, data);\n }\n }\n };\n /* called by the parser to reset the length of the records array */\n /* necessary on backtracking */\n this.setLength = function setLength(length) {\n records.length = length;\n if (length > 0) {\n stack.length = records[length - 1].stack;\n } else {\n stack.length = 0;\n }\n };\n /* called by the parser to get the length of the records array */\n this.getLength = function getLength() {\n return records.length;\n };\n /* helper for XML display */\n function indent(n) {\n let ret = '';\n for (let i = 0; i < n; i += 1) {\n ret += ' ';\n }\n return ret;\n }\n // Generate an `XML` version of the AST.\n // Useful if you want to use a special or favorite XML parser to translate the\n // AST.\n // ```\n // mode - the display mode of the captured phrases\n // - default mode is \"ascii\"\n // - can be: \"ascii\"\n // \"decimal\"\n // \"hexadecimal\"\n // \"unicode\"\n // ```\n this.toXml = function toSml(modeArg) {\n let display = utils.charsToDec;\n let caption = 'decimal integer character codes';\n if (typeof modeArg === 'string' && modeArg.length >= 3) {\n const mode = modeArg.slice(0, 3).toLowerCase();\n if (mode === 'asc') {\n display = utils.charsToAscii;\n caption = 'ASCII for printing characters, hex for non-printing';\n } else if (mode === 'hex') {\n display = utils.charsToHex;\n caption = 'hexadecimal integer character codes';\n } else if (mode === 'uni') {\n display = utils.charsToUnicode;\n caption = 'Unicode UTF-32 integer character codes';\n }\n }\n let xml = '';\n let depth = 0;\n xml += '\\n';\n xml += `\\n`;\n xml += `\\n`;\n xml += indent(depth + 2);\n xml += display(chars);\n xml += '\\n';\n records.forEach((rec) => {\n if (rec.state === id.SEM_PRE) {\n depth += 1;\n xml += indent(depth);\n xml += `\\n`;\n xml += indent(depth + 2);\n xml += display(chars, rec.phraseIndex, rec.phraseLength);\n xml += '\\n';\n } else {\n xml += indent(depth);\n xml += `\\n`;\n depth -= 1;\n }\n });\n\n xml += '\\n';\n return xml;\n };\n /* generate a JavaScript object version of the AST */\n /* for the phrase-matching engine apg-exp */\n this.phrases = function phrases() {\n const obj = {};\n let i;\n let record;\n for (i = 0; i < records.length; i += 1) {\n record = records[i];\n if (record.state === id.SEM_PRE) {\n if (!Array.isArray(obj[record.name])) {\n obj[record.name] = [];\n }\n obj[record.name].push({\n index: record.phraseIndex,\n length: record.phraseLength,\n });\n }\n }\n return obj;\n };\n};\n","/* *************************************************************************************\n * copyright: Copyright (c) 2021 Lowell D. Thomas, all rights reserved\n * license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)\n * ********************************************************************************* */\n// This module acts as a \"circular buffer\". It is used to keep track\n// only the last N records in an array of records. If more than N records\n// are saved, each additional record overwrites the previously oldest record.\n// This module deals only with the record indexes and does not save\n// any actual records. It is used by [`trace.js`](./trace.html) for limiting the number of\n// trace records saved.\nmodule.exports = function exportsCircularBuffer() {\n 'use strict;';\n\n const thisFileName = 'circular-buffer.js: ';\n let itemIndex = -1;\n let maxListSize = 0;\n // Initialize buffer.
\n // *size* is `maxListSize`, the maximum number of records saved before overwriting begins.\n this.init = function init(size) {\n if (typeof size !== 'number' || size <= 0) {\n throw new Error(`${thisFileName}init: circular buffer size must an integer > 0`);\n }\n maxListSize = Math.ceil(size);\n itemIndex = -1;\n };\n // Call this to increment the number of records collected.
\n // Returns the array index number to store the next record in.\n this.increment = function increment() {\n itemIndex += 1;\n return (itemIndex + maxListSize) % maxListSize;\n };\n // Returns `maxListSize` - the maximum number of records to keep in the buffer.\n this.maxSize = function maxSize() {\n return maxListSize;\n };\n // Returns the highest number of items saved.
\n // (The number of items is the actual number of records processed\n // even though only `maxListSize` records are actually retained.)\n this.items = function items() {\n return itemIndex + 1;\n };\n // Returns the record number associated with this item index.\n this.getListIndex = function getListIndex(item) {\n if (itemIndex === -1) {\n return -1;\n }\n if (item < 0 || item > itemIndex) {\n return -1;\n }\n if (itemIndex - item >= maxListSize) {\n return -1;\n }\n return (item + maxListSize) % maxListSize;\n };\n // The iterator over the circular buffer.\n // The user's function, `fn`, will be called with arguments `fn(listIndex, itemIndex)`\n // where `listIndex` is the saved record index and `itemIndex` is the actual item index.\n this.forEach = function forEach(fn) {\n if (itemIndex === -1) {\n /* no records have been collected */\n return;\n }\n if (itemIndex < maxListSize) {\n /* fewer than maxListSize records have been collected - number of items = number of records */\n for (let i = 0; i <= itemIndex; i += 1) {\n fn(i, i);\n }\n return;\n }\n /* start with the oldest record saved and finish with the most recent record saved */\n for (let i = itemIndex - maxListSize + 1; i <= itemIndex; i += 1) {\n const listIndex = (i + maxListSize) % maxListSize;\n fn(listIndex, i);\n }\n };\n};\n","// This module has been developed programmatically in the `apg-lib` build process.\n// It is used to build web pages programatically on the fly without the need for