@holocronlab/botruntime-sdk 6.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +8 -0
- package/dist/base-logger.d.ts +34 -0
- package/dist/base-logger.test.d.ts +1 -0
- package/dist/bot/bot-logger.d.ts +18 -0
- package/dist/bot/client/index.d.ts +80 -0
- package/dist/bot/client/types.d.ts +254 -0
- package/dist/bot/client/types.test.d.ts +1 -0
- package/dist/bot/common/generic.d.ts +41 -0
- package/dist/bot/common/generic.test.d.ts +1 -0
- package/dist/bot/common/index.d.ts +2 -0
- package/dist/bot/common/types.d.ts +54 -0
- package/dist/bot/common/types.test.d.ts +1 -0
- package/dist/bot/definition.d.ts +214 -0
- package/dist/bot/definition.test.d.ts +1 -0
- package/dist/bot/implementation.d.ts +72 -0
- package/dist/bot/implementation.test.d.ts +1 -0
- package/dist/bot/index.d.ts +6 -0
- package/dist/bot/server/context.d.ts +2 -0
- package/dist/bot/server/index.d.ts +5 -0
- package/dist/bot/server/responses.d.ts +3 -0
- package/dist/bot/server/types.d.ts +423 -0
- package/dist/bot/server/types.test.d.ts +1 -0
- package/dist/bot/server/workflows/update-handler.d.ts +3 -0
- package/dist/bot/server/workflows/update-type-conv.d.ts +2 -0
- package/dist/bot/workflow-proxy/index.d.ts +2 -0
- package/dist/bot/workflow-proxy/proxy.d.ts +17 -0
- package/dist/bot/workflow-proxy/types.d.ts +80 -0
- package/dist/bot/workflow-proxy/types.test.d.ts +1 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/recurring-events.d.ts +9 -0
- package/dist/common/recurring-events.test.d.ts +1 -0
- package/dist/common/types.d.ts +8 -0
- package/dist/consts.d.ts +11 -0
- package/dist/errors.d.ts +19 -0
- package/dist/fixtures.d.ts +357 -0
- package/dist/index.cjs +5 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.mjs +34 -0
- package/dist/index.mjs.map +7 -0
- package/dist/integration/client/index.d.ts +55 -0
- package/dist/integration/client/sub-types.d.ts +27 -0
- package/dist/integration/client/sub-types.test.d.ts +1 -0
- package/dist/integration/client/types.d.ts +209 -0
- package/dist/integration/client/types.test.d.ts +1 -0
- package/dist/integration/common/generic.d.ts +57 -0
- package/dist/integration/common/generic.test.d.ts +1 -0
- package/dist/integration/common/index.d.ts +1 -0
- package/dist/integration/definition/branded-schema.d.ts +21 -0
- package/dist/integration/definition/definition.test.d.ts +1 -0
- package/dist/integration/definition/generic.d.ts +9 -0
- package/dist/integration/definition/index.d.ts +130 -0
- package/dist/integration/definition/types.d.ts +119 -0
- package/dist/integration/implementation.d.ts +37 -0
- package/dist/integration/index.d.ts +5 -0
- package/dist/integration/server/action-metadata.d.ts +9 -0
- package/dist/integration/server/context.d.ts +4 -0
- package/dist/integration/server/index.d.ts +6 -0
- package/dist/integration/server/integration-logger.d.ts +36 -0
- package/dist/integration/server/types.d.ts +108 -0
- package/dist/interface/common/generic.d.ts +34 -0
- package/dist/interface/common/generic.test.d.ts +1 -0
- package/dist/interface/common/index.d.ts +1 -0
- package/dist/interface/definition.d.ts +87 -0
- package/dist/interface/index.d.ts +2 -0
- package/dist/interface/resolve.d.ts +18 -0
- package/dist/log.d.ts +7 -0
- package/dist/message.d.ts +742 -0
- package/dist/package.d.ts +64 -0
- package/dist/plugin/action-proxy/index.d.ts +2 -0
- package/dist/plugin/action-proxy/proxy.d.ts +5 -0
- package/dist/plugin/action-proxy/types.d.ts +14 -0
- package/dist/plugin/action-proxy/types.test.d.ts +1 -0
- package/dist/plugin/common/generic.d.ts +63 -0
- package/dist/plugin/common/generic.test.d.ts +1 -0
- package/dist/plugin/common/index.d.ts +2 -0
- package/dist/plugin/common/types.d.ts +59 -0
- package/dist/plugin/conversation-proxy/index.d.ts +2 -0
- package/dist/plugin/conversation-proxy/proxy.d.ts +13 -0
- package/dist/plugin/conversation-proxy/types.d.ts +54 -0
- package/dist/plugin/conversation-proxy/types.test.d.ts +1 -0
- package/dist/plugin/definition.d.ts +152 -0
- package/dist/plugin/definition.test.d.ts +1 -0
- package/dist/plugin/event-proxy/index.d.ts +2 -0
- package/dist/plugin/event-proxy/proxy.d.ts +5 -0
- package/dist/plugin/event-proxy/types.d.ts +19 -0
- package/dist/plugin/event-proxy/types.test.d.ts +1 -0
- package/dist/plugin/implementation.d.ts +71 -0
- package/dist/plugin/implementation.test.d.ts +1 -0
- package/dist/plugin/index.d.ts +4 -0
- package/dist/plugin/message-proxy/index.d.ts +2 -0
- package/dist/plugin/message-proxy/proxy.d.ts +13 -0
- package/dist/plugin/message-proxy/types.d.ts +22 -0
- package/dist/plugin/server/index.d.ts +1 -0
- package/dist/plugin/server/types.d.ts +505 -0
- package/dist/plugin/server/types.test.d.ts +1 -0
- package/dist/plugin/state-proxy/index.d.ts +2 -0
- package/dist/plugin/state-proxy/proxy.d.ts +5 -0
- package/dist/plugin/state-proxy/types.d.ts +29 -0
- package/dist/plugin/state-proxy/types.test.d.ts +1 -0
- package/dist/plugin/tag-prefixer.d.ts +10 -0
- package/dist/plugin/tag-prefixer.test.d.ts +1 -0
- package/dist/plugin/user-proxy/index.d.ts +2 -0
- package/dist/plugin/user-proxy/proxy.d.ts +14 -0
- package/dist/plugin/user-proxy/types.d.ts +30 -0
- package/dist/public-consts.d.ts +9 -0
- package/dist/retry.d.ts +2 -0
- package/dist/retry.test.d.ts +1 -0
- package/dist/schema.d.ts +18 -0
- package/dist/serve.d.ts +38 -0
- package/dist/utils/api-paging-utils.d.ts +43 -0
- package/dist/utils/api-paging-utils.test.d.ts +1 -0
- package/dist/utils/array-utils.d.ts +2 -0
- package/dist/utils/error-utils.d.ts +4 -0
- package/dist/utils/function-utils.d.ts +2 -0
- package/dist/utils/function-utils.test.d.ts +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/record-utils.d.ts +6 -0
- package/dist/utils/record-utils.test.d.ts +1 -0
- package/dist/utils/type-utils.d.ts +63 -0
- package/dist/utils/type-utils.test.d.ts +1 -0
- package/dist/version-utils.d.ts +18 -0
- package/dist/version.d.ts +1 -0
- package/dist/zui.d.ts +9 -0
- package/package.json +59 -0
- package/readme.md +11 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../node_modules/esbuild-plugin-polyfill-node/polyfills/__dirname.js", "../node_modules/@jspm/core/nodelibs/browser/process.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/process.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-DtuTasat.js", "../node_modules/@jspm/core/nodelibs/browser/buffer.js", "../node_modules/esbuild-plugin-polyfill-node/polyfills/buffer.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-CkFCi-G1.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-tHuMsdT0.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-DtDiafJB.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-D3uu3VYh.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-CbQqNoLO.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-DEMDiNwt.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-BsRZ0PEC.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-CcCWfKp1.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-b0rmRow7.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-DHWh-hmB.js", "../node_modules/@jspm/core/nodelibs/browser/http.js", "../src/index.ts", "../src/message.ts", "../src/zui.ts", "../src/public-consts.ts", "../src/serve.ts", "../src/log.ts", "../src/integration/index.ts", "../src/integration/definition/index.ts", "../src/errors.ts", "../src/interface/resolve.ts", "../src/utils/index.ts", "../src/utils/record-utils.ts", "../src/utils/array-utils.ts", "../src/utils/type-utils.ts", "../src/utils/function-utils.ts", "../src/version.ts", "../package.json", "../src/integration/definition/branded-schema.ts", "../src/integration/definition/types.ts", "../src/integration/implementation.ts", "../src/integration/server/index.ts", "../src/retry.ts", "../src/integration/client/index.ts", "../src/integration/client/types.ts", "../src/integration/server/action-metadata.ts", "../src/integration/server/context.ts", "../src/consts.ts", "../src/utils/error-utils.ts", "../src/integration/server/integration-logger.ts", "../src/base-logger.ts", "../node_modules/@jspm/core/nodelibs/browser/util.js", "../node_modules/@jspm/core/nodelibs/browser/chunk-DtcTpLWz.js", "../src/integration/server/types.ts", "../src/integration/common/index.ts", "../src/integration/common/generic.ts", "../src/bot/index.ts", "../src/bot/definition.ts", "../src/common/recurring-events.ts", "../src/bot/implementation.ts", "../src/bot/server/index.ts", "../src/bot/bot-logger.ts", "../src/bot/client/index.ts", "../src/bot/client/types.ts", "../src/bot/server/context.ts", "../src/bot/server/responses.ts", "../src/bot/server/workflows/update-handler.ts", "../src/bot/server/workflows/update-type-conv.ts", "../src/bot/server/types.ts", "../src/bot/workflow-proxy/index.ts", "../src/bot/workflow-proxy/proxy.ts", "../src/plugin/tag-prefixer.ts", "../src/utils/api-paging-utils.ts", "../src/bot/workflow-proxy/types.ts", "../src/bot/common/index.ts", "../src/bot/common/generic.ts", "../src/bot/common/types.ts", "../src/interface/index.ts", "../src/interface/definition.ts", "../src/interface/common/index.ts", "../src/interface/common/generic.ts", "../src/plugin/index.ts", "../src/plugin/definition.ts", "../src/plugin/implementation.ts", "../src/plugin/action-proxy/index.ts", "../src/plugin/action-proxy/proxy.ts", "../src/plugin/action-proxy/types.ts", "../src/plugin/conversation-proxy/index.ts", "../src/plugin/conversation-proxy/proxy.ts", "../src/plugin/message-proxy/proxy.ts", "../src/plugin/user-proxy/index.ts", "../src/plugin/user-proxy/proxy.ts", "../src/plugin/user-proxy/types.ts", "../src/plugin/conversation-proxy/types.ts", "../src/plugin/event-proxy/index.ts", "../src/plugin/event-proxy/proxy.ts", "../src/plugin/event-proxy/types.ts", "../src/plugin/message-proxy/index.ts", "../src/plugin/message-proxy/types.ts", "../src/plugin/state-proxy/index.ts", "../src/plugin/state-proxy/proxy.ts", "../src/plugin/state-proxy/types.ts", "../src/plugin/server/index.ts", "../src/plugin/server/types.ts", "../src/plugin/common/index.ts", "../src/plugin/common/types.ts", "../src/plugin/common/generic.ts", "../src/version-utils.ts", "../src/package.ts"],
|
|
4
|
+
"sourcesContent": ["export const __dirname = \"/\";\n", "function unimplemented(name) {\r\n throw new Error('Node.js process ' + name + ' is not supported by JSPM core outside of Node.js');\r\n}\r\n\r\nvar queue = [];\r\nvar draining = false;\r\nvar currentQueue;\r\nvar queueIndex = -1;\r\n\r\nfunction cleanUpNextTick() {\r\n if (!draining || !currentQueue)\r\n return;\r\n draining = false;\r\n if (currentQueue.length) {\r\n queue = currentQueue.concat(queue);\r\n }\r\n else {\r\n queueIndex = -1;\r\n }\r\n if (queue.length)\r\n drainQueue();\r\n}\r\n\r\nfunction drainQueue() {\r\n if (draining)\r\n return;\r\n var timeout = setTimeout(cleanUpNextTick, 0);\r\n draining = true;\r\n\r\n var len = queue.length;\r\n while(len) {\r\n currentQueue = queue;\r\n queue = [];\r\n while (++queueIndex < len) {\r\n if (currentQueue)\r\n currentQueue[queueIndex].run();\r\n }\r\n queueIndex = -1;\r\n len = queue.length;\r\n }\r\n currentQueue = null;\r\n draining = false;\r\n clearTimeout(timeout);\r\n}\r\n\r\nfunction nextTick (fun) {\r\n var args = new Array(arguments.length - 1);\r\n if (arguments.length > 1) {\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n }\r\n queue.push(new Item(fun, args));\r\n if (queue.length === 1 && !draining)\r\n setTimeout(drainQueue, 0);\r\n}\r\n// v8 likes predictible objects\r\nfunction Item(fun, array) {\r\n this.fun = fun;\r\n this.array = array;\r\n}\r\nItem.prototype.run = function () {\r\n this.fun.apply(null, this.array);\r\n};\r\n\r\nvar title = 'browser';\r\nvar arch = 'x64';\r\nvar platform = 'browser';\r\nvar env = {\r\n PATH: '/usr/bin',\r\n LANG: typeof navigator !== 'undefined' ? navigator.language + '.UTF-8' : undefined,\r\n PWD: '/',\r\n HOME: '/home',\r\n TMP: '/tmp',\r\n};\r\nvar argv = ['/usr/bin/node'];\r\nvar execArgv = [];\r\nvar version = 'v16.8.0';\r\nvar versions = {};\r\n\r\nvar emitWarning = function(message, type) {\r\n console.warn((type ? (type + ': ') : '') + message);\r\n};\r\n\r\nvar binding = function(name) { unimplemented('binding'); };\r\n\r\nvar umask = function(mask) { return 0; };\r\n\r\nvar cwd = function() { return '/'; };\r\nvar chdir = function(dir) {};\r\n\r\nvar release = {\r\n name: 'node',\r\n sourceUrl: '',\r\n headersUrl: '',\r\n libUrl: '',\r\n};\r\n\r\nfunction noop() {}\r\n\r\nvar browser = true;\r\nvar _rawDebug = noop;\r\nvar moduleLoadList = [];\r\nfunction _linkedBinding(name) { unimplemented('_linkedBinding'); }\r\nvar domain = {};\r\nvar _exiting = false;\r\nvar config = {};\r\nfunction dlopen(name) { unimplemented('dlopen'); }\r\nfunction _getActiveRequests() { return []; }\r\nfunction _getActiveHandles() { return []; }\r\nvar reallyExit = noop;\r\nvar _kill = noop;\r\nvar cpuUsage = function() { return {}; };\r\nvar resourceUsage = cpuUsage;\r\nvar memoryUsage = cpuUsage;\r\nvar kill = noop;\r\nvar exit = noop;\r\nvar openStdin = noop;\r\nvar allowedNodeEnvironmentFlags = {};\r\nfunction assert(condition, message) {\r\n if (!condition) throw new Error(message || 'assertion error');\r\n}\r\nvar features = {\r\n inspector: false,\r\n debug: false,\r\n uv: false,\r\n ipv6: false,\r\n tls_alpn: false,\r\n tls_sni: false,\r\n tls_ocsp: false,\r\n tls: false,\r\n cached_builtins: true,\r\n};\r\nvar _fatalExceptions = noop;\r\nvar setUncaughtExceptionCaptureCallback = noop;\r\nfunction hasUncaughtExceptionCaptureCallback() { return false; }var _tickCallback = noop;\r\nvar _debugProcess = noop;\r\nvar _debugEnd = noop;\r\nvar _startProfilerIdleNotifier = noop;\r\nvar _stopProfilerIdleNotifier = noop;\r\nvar stdout = undefined;\r\nvar stderr = undefined;\r\nvar stdin = undefined;\r\nvar abort = noop;\r\nvar pid = 2;\r\nvar ppid = 1;\r\nvar execPath = '/bin/usr/node';\r\nvar debugPort = 9229;\r\nvar argv0 = 'node';\r\nvar _preload_modules = [];\r\nvar setSourceMapsEnabled = noop;\r\n\r\nvar _performance = {\r\n now: typeof performance !== 'undefined' ? performance.now.bind(performance) : undefined,\r\n timing: typeof performance !== 'undefined' ? performance.timing : undefined,\r\n};\r\nif (_performance.now === undefined) {\r\n var nowOffset = Date.now();\r\n\r\n if (_performance.timing && _performance.timing.navigationStart) {\r\n nowOffset = _performance.timing.navigationStart;\r\n }\r\n _performance.now = () => Date.now() - nowOffset;\r\n}\r\n\r\nfunction uptime() {\r\n return _performance.now() / 1000;\r\n}\r\n\r\nvar nanoPerSec = 1000000000;\r\nfunction hrtime(previousTimestamp) {\r\n var baseNow = Math.floor((Date.now() - _performance.now()) * 1e-3);\r\n var clocktime = _performance.now() * 1e-3;\r\n var seconds = Math.floor(clocktime) + baseNow;\r\n var nanoseconds = Math.floor((clocktime % 1) * 1e9);\r\n if (previousTimestamp) {\r\n seconds = seconds - previousTimestamp[0];\r\n nanoseconds = nanoseconds - previousTimestamp[1];\r\n if (nanoseconds < 0) {\r\n seconds--;\r\n nanoseconds += nanoPerSec;\r\n }\r\n }\r\n return [seconds, nanoseconds];\r\n}hrtime.bigint = function(time) {\r\n var diff = hrtime(time);\r\n if (typeof BigInt === 'undefined') {\r\n return diff[0] * nanoPerSec + diff[1];\r\n }\r\n return BigInt(diff[0] * nanoPerSec) + BigInt(diff[1]);\r\n};\r\n\r\nvar _maxListeners = 10;\r\nvar _events = {};\r\nvar _eventsCount = 0;\r\nfunction on () { return process }var addListener = on;\r\nvar once = on;\r\nvar off = on;\r\nvar removeListener = on;\r\nvar removeAllListeners = on;\r\nvar emit = noop;\r\nvar prependListener = on;\r\nvar prependOnceListener = on;\r\nfunction listeners (name) { return []; }\r\nvar process = {\r\n version,\r\n versions,\r\n arch,\r\n platform,\r\n browser,\r\n release,\r\n _rawDebug,\r\n moduleLoadList,\r\n binding,\r\n _linkedBinding,\r\n _events,\r\n _eventsCount,\r\n _maxListeners,\r\n on,\r\n addListener,\r\n once,\r\n off,\r\n removeListener,\r\n removeAllListeners,\r\n emit,\r\n prependListener,\r\n prependOnceListener,\r\n listeners,\r\n domain,\r\n _exiting,\r\n config,\r\n dlopen,\r\n uptime,\r\n _getActiveRequests,\r\n _getActiveHandles,\r\n reallyExit,\r\n _kill,\r\n cpuUsage,\r\n resourceUsage,\r\n memoryUsage,\r\n kill,\r\n exit,\r\n openStdin,\r\n allowedNodeEnvironmentFlags,\r\n assert,\r\n features,\r\n _fatalExceptions,\r\n setUncaughtExceptionCaptureCallback,\r\n hasUncaughtExceptionCaptureCallback,\r\n emitWarning,\r\n nextTick,\r\n _tickCallback,\r\n _debugProcess,\r\n _debugEnd,\r\n _startProfilerIdleNotifier,\r\n _stopProfilerIdleNotifier,\r\n stdout,\r\n stdin,\r\n stderr,\r\n abort,\r\n umask,\r\n chdir,\r\n cwd,\r\n env,\r\n title,\r\n argv,\r\n execArgv,\r\n pid,\r\n ppid,\r\n execPath,\r\n debugPort,\r\n hrtime,\r\n argv0,\r\n _preload_modules,\r\n setSourceMapsEnabled,\r\n};\n\nexport { _debugEnd, _debugProcess, _events, _eventsCount, _exiting, _fatalExceptions, _getActiveHandles, _getActiveRequests, _kill, _linkedBinding, _maxListeners, _preload_modules, _rawDebug, _startProfilerIdleNotifier, _stopProfilerIdleNotifier, _tickCallback, abort, addListener, allowedNodeEnvironmentFlags, arch, argv, argv0, assert, binding, browser, chdir, config, cpuUsage, cwd, debugPort, process as default, dlopen, domain, emit, emitWarning, env, execArgv, execPath, exit, features, hasUncaughtExceptionCaptureCallback, hrtime, kill, listeners, memoryUsage, moduleLoadList, nextTick, off, on, once, openStdin, pid, platform, ppid, prependListener, prependOnceListener, reallyExit, release, removeAllListeners, removeListener, resourceUsage, setSourceMapsEnabled, setUncaughtExceptionCaptureCallback, stderr, stdin, stdout, title, umask, uptime, version, versions };\n", "export * as process from \"process\";\n", "var exports$2 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$2;\n _dewExec$2 = true;\n exports$2.byteLength = byteLength;\n exports$2.toByteArray = toByteArray;\n exports$2.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n // Support decoding URL-safe base64 strings, as Node.js does.\n // See: https://en.wikipedia.org/wiki/Base64#URL_applications\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len = b64.length;\n if (len % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n\n // base64 is 4/3 + up to two characters of the original data\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join(\"\");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\");\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\");\n }\n return parts.join(\"\");\n }\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$1;\n _dewExec$1 = true;\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n exports$1.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports$1.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {}\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {}\n buffer[offset + i - d] |= s * 128;\n };\n return exports$1;\n}\n\nvar exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n const base64 = dew$2();\n const ieee754 = dew$1();\n const customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" // eslint-disable-line dot-notation\n ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") // eslint-disable-line dot-notation\n : null;\n exports.Buffer = Buffer;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n const K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(\"This browser lacks typed array (Uint8Array) support which is required by \" + \"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.\");\n }\n function typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1);\n const proto = {\n foo: function () {\n return 42;\n }\n };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer.prototype, \"parent\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer.prototype, \"offset\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\"The value \\\"\" + length + \"\\\" is invalid for option \\\"size\\\"\");\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n function Buffer(arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === \"number\") {\n if (typeof encodingOrOffset === \"string\") {\n throw new TypeError(\"The \\\"string\\\" argument must be of type string. Received type number\");\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer.poolSize = 8192; // not used by this implementation\n\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \" + \"or Array-like Object. Received type \" + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === \"number\") {\n throw new TypeError(\"The \\\"value\\\" argument must not be of type number. Received type number\");\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b) return b;\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \" + \"or Array-like Object. Received type \" + typeof value);\n }\n\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n\n // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n // https://github.com/feross/buffer/pull/148\n Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer, Uint8Array);\n function assertSize(size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"\\\"size\\\" argument must be of type number\");\n } else if (size < 0) {\n throw new RangeError(\"The value \\\"\" + size + \"\\\" is invalid for option \\\"size\\\"\");\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf = createBuffer(length);\n const actual = buf.write(string, encoding);\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual);\n }\n return buf;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n return buf;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\"\\\"offset\\\" is outside of buffer bounds\");\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\"\\\"length\\\" is outside of buffer bounds\");\n }\n let buf;\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array);\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n function fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf = createBuffer(len);\n if (buf.length === 0) {\n return buf;\n }\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n if (obj.length !== undefined) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum \" + \"size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length);\n }\n Buffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n };\n Buffer.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\"The \\\"buf1\\\", \\\"buf2\\\" arguments must be one of type Buffer or Uint8Array\");\n }\n if (a === b) return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n Buffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return true;\n default:\n return false;\n }\n };\n Buffer.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n }\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n let i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf = list[i];\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n } else {\n buf.copy(buffer, pos);\n }\n pos += buf.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== \"string\") {\n throw new TypeError(\"The \\\"string\\\" argument must be one of type string, Buffer, or ArrayBuffer. \" + \"Received type \" + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0;\n\n // Use a for loop to avoid recursion\n let loweredCase = false;\n for (;;) {\n switch (encoding) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return len;\n case \"utf8\":\n case \"utf-8\":\n return utf8ToBytes(string).length;\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return len * 2;\n case \"hex\":\n return len >>> 1;\n case \"base64\":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return \"\";\n }\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return \"\";\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return \"\";\n }\n if (!encoding) encoding = \"utf8\";\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n case \"ascii\":\n return asciiSlice(this, start, end);\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n case \"base64\":\n return base64Slice(this, start, end);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n // to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n // reliably in a browserify context because there could be multiple different\n // copies of the 'buffer' package in use. This method works even for Buffer\n // instances that were created from another copy of the `buffer` package.\n // See: https://github.com/feross/buffer/issues/154\n Buffer.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0) return \"\";\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer.prototype.toLocaleString = Buffer.prototype.toString;\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n Buffer.prototype.inspect = function inspect() {\n let str = \"\";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"<Buffer \" + str + \">\";\n };\n if (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n }\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength);\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\"The \\\"target\\\" argument must be one of type Buffer or Uint8Array. \" + \"Received type \" + typeof target);\n }\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1;\n\n // Normalize byteOffset\n if (typeof byteOffset === \"string\") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n }\n\n // Normalize val\n if (typeof val === \"string\") {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === \"number\") {\n val = val & 255; // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === \"function\") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === \"ucs2\" || encoding === \"ucs-2\" || encoding === \"utf16le\" || encoding === \"utf-16le\") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n if (found) return i;\n }\n }\n return -1;\n }\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === undefined) encoding = \"utf8\";\n } else {\n encoding = length;\n length = undefined;\n }\n } else {\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n }\n const remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n if (!encoding) encoding = \"utf8\";\n let loweredCase = false;\n for (;;) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n case \"base64\":\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n\n // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n const MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = \"\";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n }\n function hexSlice(buf, start, end) {\n const len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n let out = \"\";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n return out;\n }\n function utf16leSlice(buf, start, end) {\n const bytes = buf.slice(start, end);\n let res = \"\";\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n const newBuf = this.subarray(start, end);\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n };\n\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError(\"offset is not uint\");\n if (offset + ext > length) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n let val = this[offset + --byteLength];\n let mul = 1;\n while (byteLength > 0 && (mul *= 256)) {\n val += this[offset + --byteLength] * mul;\n }\n return val;\n };\n Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let i = byteLength;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24); // Overflow\n\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) +\n // Overflow\n this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError(\"\\\"buffer\\\" argument must be a Buffer instance\");\n if (value > max || value < min) throw new RangeError(\"\\\"value\\\" argument is out of bounds\");\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n }\n Buffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n let i = byteLength - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n }\n Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n let i = byteLength - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n if (offset < 0) throw new RangeError(\"Index out of range\");\n }\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n\n // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError(\"targetStart out of bounds\");\n }\n if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n if (end < 0) throw new RangeError(\"sourceEnd out of bounds\");\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n\n // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === \"string\") {\n if (typeof start === \"string\") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === \"string\") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== undefined && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n if (typeof encoding === \"string\" && !Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code;\n }\n }\n } else if (typeof val === \"number\") {\n val = val & 255;\n } else if (typeof val === \"boolean\") {\n val = Number(val);\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n let i;\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\"The value \\\"\" + val + \"\\\" is invalid for argument \\\"value\\\"\");\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n\n // CUSTOM ERRORS\n // =============\n\n // Simplified versions from Node, changed for Buffer-only usage\n const errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, \"message\", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`;\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E(\"ERR_BUFFER_OUT_OF_BOUNDS\", function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return \"Attempt to access memory outside buffer bounds\";\n }, RangeError);\n E(\"ERR_INVALID_ARG_TYPE\", function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E(\"ERR_OUT_OF_RANGE\", function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === \"bigint\") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += \"n\";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = \"\";\n let i = val.length;\n const start = val[0] === \"-\" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n\n // CHECK FUNCTIONS\n // ===============\n\n function checkBounds(buf, offset, byteLength) {\n validateNumber(offset, \"offset\");\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1));\n }\n }\n function checkIntBI(value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === \"bigint\" ? \"n\" : \"\";\n let range;\n {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + `${(byteLength + 1) * 8 - 1}${n}`;\n }\n }\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n checkBounds(buf, offset, byteLength);\n }\n function validateNumber(value, name) {\n if (typeof value !== \"number\") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, \"number\", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(\"offset\", \"an integer\", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(\"offset\", `>= ${0} and <= ${length}`, value);\n }\n\n // HELPER FUNCTIONS\n // ================\n\n const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split(\"=\")[0];\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, \"\");\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return \"\";\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 55295 && codePoint < 57344) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 56319) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n }\n\n // valid lead\n leadSurrogate = codePoint;\n continue;\n }\n\n // 2 leads in a row\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error(\"Invalid code point\");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n\n // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n // the `instanceof` check but they should be treated as of that type.\n // See: https://github.com/feross/buffer/issues/166\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n }\n\n // Create lookup table for `toString('hex')`\n // See: https://github.com/feross/buffer/issues/219\n const hexSliceLookupTable = function () {\n const alphabet = \"0123456789abcdef\";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n\n // Return not function with Error if BigInt not supported\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n return exports;\n}\n\nexport { dew as d };\n", "import { d as dew } from './chunk-DtuTasat.js';\n\nconst exports = dew();\nexports['Buffer']; exports['SlowBuffer']; exports['INSPECT_MAX_BYTES']; exports['kMaxLength'];\n\nvar Buffer = exports.Buffer;\r\nvar INSPECT_MAX_BYTES = exports.INSPECT_MAX_BYTES;\r\nvar kMaxLength = exports.kMaxLength;\n\nexport { Buffer, INSPECT_MAX_BYTES, exports as default, kMaxLength };\n", "export { Buffer } from \"buffer\";\n", "var exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n if (typeof Object.create === \"function\") {\n // implementation from standard node.js 'util' module\n exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n // old school shim for old browsers\n exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n return exports;\n}\n\nexport { dew as d };\n", "var e,t,n=\"object\"==typeof Reflect?Reflect:null,r=n&&\"function\"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&\"function\"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this);}e=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function u(e){if(\"function\"!=typeof e)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}function f(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function v(e,t,n,r){var i,o,s,v;if(u(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit(\"newListener\",t,n.listener?n.listener:n),o=e._events),s=o[t]),void 0===s)s=o[t]=n,++e._eventsCount;else if(\"function\"==typeof s?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(i=f(e))>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error(\"Possible EventEmitter memory leak detected. \"+s.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");a.name=\"MaxListenersExceededWarning\",a.emitter=e,a.type=t,a.count=s.length,v=a,console&&console.warn&&console.warn(v);}return e}function a(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=a.bind(r);return i.listener=n,r.wrapFn=i,i}function h(e,t,n){var r=e._events;if(void 0===r)return [];var i=r[t];return void 0===i?[]:\"function\"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):c(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if(\"function\"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function c(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(o,\"defaultMaxListeners\",{enumerable:!0,get:function(){return s},set:function(e){if(\"number\"!=typeof e||e<0||i(e))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+e+\".\");s=e;}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0;},o.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||i(e))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return f(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=\"error\"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return !1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var u=new Error(\"Unhandled error.\"+(s?\" (\"+s.message+\")\":\"\"));throw u.context=s,u}var f=o[e];if(void 0===f)return !1;if(\"function\"==typeof f)r(f,this,t);else {var v=f.length,a=c(f,v);for(n=0;n<v;++n)r(a[n],this,t);}return !0},o.prototype.addListener=function(e,t){return v(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return v(this,e,t,!0)},o.prototype.once=function(e,t){return u(t),this.on(e,l(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,l(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,i,o,s;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(\"removeListener\",e,n.listener||t));else if(\"function\"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():!function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop();}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit(\"removeListener\",e,s||t);}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)\"removeListener\"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(\"function\"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return h(this,e,!0)},o.prototype.rawListeners=function(e){return h(this,e,!1)},o.listenerCount=function(e,t){return \"function\"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};var y=e;y.EventEmitter;y.defaultMaxListeners;y.init;y.listenerCount;\n\ny.EventEmitter;\ny.defaultMaxListeners;\ny.init;\ny.listenerCount;\n\nexport { y };\n", "import { y } from './chunk-tHuMsdT0.js';\n\n// https://github.com/denoland/deno_std/blob/d005433c709054af87aca54f57a446b4f7966f11/node/events.ts#L501-L638\r\ny.once = function (emitter, event) {\r\n return new Promise((resolve, reject) => {\r\n function eventListener(...args) {\r\n if (errorListener !== undefined) {\r\n emitter.removeListener('error', errorListener);\r\n }\r\n resolve(args);\r\n }\r\n let errorListener;\r\n if (event !== 'error') {\r\n // deno-lint-ignore no-explicit-any\r\n errorListener = (err) => {\r\n emitter.removeListener(name, eventListener);\r\n reject(err);\r\n };\r\n\r\n emitter.once('error', errorListener);\r\n }\r\n\r\n emitter.once(event, eventListener);\r\n });\r\n};\r\ny.on = function (emitter, event) {\r\n const unconsumedEventValues = [];\r\n const unconsumedPromises = [];\r\n let error = null;\r\n let finished = false;\r\n\r\n const iterator = {\r\n async next() {\r\n const value = unconsumedEventValues.shift();\r\n if (value) {\r\n return createIterResult(value, false);\r\n }\r\n\r\n if (error) {\r\n const p = Promise.reject(error);\r\n error = null;\r\n return p;\r\n }\r\n\r\n if (finished) {\r\n return createIterResult(undefined, true);\r\n }\r\n\r\n return new Promise((resolve, reject) => unconsumedPromises.push({ resolve, reject }));\r\n },\r\n async return() {\r\n emitter.removeListener(event, eventHandler);\r\n emitter.removeListener('error', errorHandler);\r\n finished = true;\r\n\r\n for (const promise of unconsumedPromises) {\r\n promise.resolve(createIterResult(undefined, true));\r\n }\r\n\r\n return createIterResult(undefined, true);\r\n },\r\n throw(err) {\r\n error = err;\r\n emitter.removeListener(event, eventHandler);\r\n emitter.removeListener('error', errorHandler);\r\n },\r\n [Symbol.asyncIterator]() {\r\n return this;\r\n },\r\n };\r\n\r\n emitter.on(event, eventHandler);\r\n emitter.on('error', errorHandler);\r\n\r\n return iterator;\r\n\r\n function eventHandler(...args) {\r\n const promise = unconsumedPromises.shift();\r\n if (promise) {\r\n promise.resolve(createIterResult(args, false));\r\n } else {\r\n unconsumedEventValues.push(args);\r\n }\r\n }\r\n\r\n function errorHandler(err) {\r\n finished = true;\r\n const toError = unconsumedPromises.shift();\r\n if (toError) {\r\n toError.reject(err);\r\n } else {\r\n error = err;\r\n }\r\n iterator.return();\r\n }\r\n};\n", "var e$2,t$3,n$2,r$2=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:global,o$3=e$2={};function i$2(){throw new Error(\"setTimeout has not been defined\")}function u$2(){throw new Error(\"clearTimeout has not been defined\")}function c$2(e){if(t$3===setTimeout)return setTimeout(e,0);if((t$3===i$2||!t$3)&&setTimeout)return t$3=setTimeout,setTimeout(e,0);try{return t$3(e,0)}catch(n){try{return t$3.call(null,e,0)}catch(n){return t$3.call(this||r$2,e,0)}}}!function(){try{t$3=\"function\"==typeof setTimeout?setTimeout:i$2;}catch(e){t$3=i$2;}try{n$2=\"function\"==typeof clearTimeout?clearTimeout:u$2;}catch(e){n$2=u$2;}}();var l$2,s$1=[],f$1=!1,a$1=-1;function h$1(){f$1&&l$2&&(f$1=!1,l$2.length?s$1=l$2.concat(s$1):a$1=-1,s$1.length&&d$1());}function d$1(){if(!f$1){var e=c$2(h$1);f$1=!0;for(var t=s$1.length;t;){for(l$2=s$1,s$1=[];++a$1<t;)l$2&&l$2[a$1].run();a$1=-1,t=s$1.length;}l$2=null,f$1=!1,function(e){if(n$2===clearTimeout)return clearTimeout(e);if((n$2===u$2||!n$2)&&clearTimeout)return n$2=clearTimeout,clearTimeout(e);try{n$2(e);}catch(t){try{return n$2.call(null,e)}catch(t){return n$2.call(this||r$2,e)}}}(e);}}function m$1(e,t){(this||r$2).fun=e,(this||r$2).array=t;}function p$1(){}o$3.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s$1.push(new m$1(e,t)),1!==s$1.length||f$1||c$2(d$1);},m$1.prototype.run=function(){(this||r$2).fun.apply(null,(this||r$2).array);},o$3.title=\"browser\",o$3.browser=!0,o$3.env={},o$3.argv=[],o$3.version=\"\",o$3.versions={},o$3.on=p$1,o$3.addListener=p$1,o$3.once=p$1,o$3.off=p$1,o$3.removeListener=p$1,o$3.removeAllListeners=p$1,o$3.emit=p$1,o$3.prependListener=p$1,o$3.prependOnceListener=p$1,o$3.listeners=function(e){return []},o$3.binding=function(e){throw new Error(\"process.binding is not supported\")},o$3.cwd=function(){return \"/\"},o$3.chdir=function(e){throw new Error(\"process.chdir is not supported\")},o$3.umask=function(){return 0};var T$1=e$2;T$1.addListener;T$1.argv;T$1.binding;T$1.browser;T$1.chdir;T$1.cwd;T$1.emit;T$1.env;T$1.listeners;T$1.nextTick;T$1.off;T$1.on;T$1.once;T$1.prependListener;T$1.prependOnceListener;T$1.removeAllListeners;T$1.removeListener;T$1.title;T$1.umask;T$1.version;T$1.versions;\n\nvar t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.toStringTag,e=Object.prototype.toString,o=function(o){return !(t&&o&&\"object\"==typeof o&&Symbol.toStringTag in o)&&\"[object Arguments]\"===e.call(o)},n=function(t){return !!o(t)||null!==t&&\"object\"==typeof t&&\"number\"==typeof t.length&&t.length>=0&&\"[object Array]\"!==e.call(t)&&\"[object Function]\"===e.call(t.callee)},r=function(){return o(arguments)}();o.isLegacyArguments=n;var l=r?o:n;var t$1=Object.prototype.toString,o$1=Function.prototype.toString,n$1=/^\\s*(?:function)?\\*/,e$1=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.toStringTag,r$1=Object.getPrototypeOf,c=function(){if(!e$1)return !1;try{return Function(\"return function*() {}\")()}catch(t){}}(),u=c?r$1(c):{},i=function(c){return \"function\"==typeof c&&(!!n$1.test(o$1.call(c))||(e$1?r$1(c)===u:\"[object GeneratorFunction]\"===t$1.call(c)))};var t$2=\"function\"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}));}:function(t,e){if(e){t.super_=e;var o=function(){};o.prototype=e.prototype,t.prototype=new o,t.prototype.constructor=t;}};var i$1=function(e){return e&&\"object\"==typeof e&&\"function\"==typeof e.copy&&\"function\"==typeof e.fill&&\"function\"==typeof e.readUInt8},o$2={},u$1=i$1,f=l,a=i;function c$1(e){return e.call.bind(e)}var s=\"undefined\"!=typeof BigInt,p=\"undefined\"!=typeof Symbol,y=p&&void 0!==Symbol.toStringTag,l$1=\"undefined\"!=typeof Uint8Array,d=\"undefined\"!=typeof ArrayBuffer;if(l$1&&y)var g=Object.getPrototypeOf(Uint8Array.prototype),b=c$1(Object.getOwnPropertyDescriptor(g,Symbol.toStringTag).get);var m=c$1(Object.prototype.toString),h=c$1(Number.prototype.valueOf),j=c$1(String.prototype.valueOf),A=c$1(Boolean.prototype.valueOf);if(s)var w=c$1(BigInt.prototype.valueOf);if(p)var v=c$1(Symbol.prototype.valueOf);function O(e,t){if(\"object\"!=typeof e)return !1;try{return t(e),!0}catch(e){return !1}}function S(e){return l$1&&y?void 0!==b(e):B(e)||k(e)||E(e)||D(e)||U(e)||P(e)||x(e)||I(e)||M(e)||z(e)||F(e)}function B(e){return l$1&&y?\"Uint8Array\"===b(e):\"[object Uint8Array]\"===m(e)||u$1(e)&&void 0!==e.buffer}function k(e){return l$1&&y?\"Uint8ClampedArray\"===b(e):\"[object Uint8ClampedArray]\"===m(e)}function E(e){return l$1&&y?\"Uint16Array\"===b(e):\"[object Uint16Array]\"===m(e)}function D(e){return l$1&&y?\"Uint32Array\"===b(e):\"[object Uint32Array]\"===m(e)}function U(e){return l$1&&y?\"Int8Array\"===b(e):\"[object Int8Array]\"===m(e)}function P(e){return l$1&&y?\"Int16Array\"===b(e):\"[object Int16Array]\"===m(e)}function x(e){return l$1&&y?\"Int32Array\"===b(e):\"[object Int32Array]\"===m(e)}function I(e){return l$1&&y?\"Float32Array\"===b(e):\"[object Float32Array]\"===m(e)}function M(e){return l$1&&y?\"Float64Array\"===b(e):\"[object Float64Array]\"===m(e)}function z(e){return l$1&&y?\"BigInt64Array\"===b(e):\"[object BigInt64Array]\"===m(e)}function F(e){return l$1&&y?\"BigUint64Array\"===b(e):\"[object BigUint64Array]\"===m(e)}function T(e){return \"[object Map]\"===m(e)}function N(e){return \"[object Set]\"===m(e)}function W(e){return \"[object WeakMap]\"===m(e)}function $(e){return \"[object WeakSet]\"===m(e)}function C(e){return \"[object ArrayBuffer]\"===m(e)}function V(e){return \"undefined\"!=typeof ArrayBuffer&&(C.working?C(e):e instanceof ArrayBuffer)}function G(e){return \"[object DataView]\"===m(e)}function R(e){return \"undefined\"!=typeof DataView&&(G.working?G(e):e instanceof DataView)}function J(e){return \"[object SharedArrayBuffer]\"===m(e)}function _(e){return \"undefined\"!=typeof SharedArrayBuffer&&(J.working?J(e):e instanceof SharedArrayBuffer)}function H(e){return O(e,h)}function Z(e){return O(e,j)}function q(e){return O(e,A)}function K(e){return s&&O(e,w)}function L(e){return p&&O(e,v)}o$2.isArgumentsObject=f,o$2.isGeneratorFunction=a,o$2.isPromise=function(e){return \"undefined\"!=typeof Promise&&e instanceof Promise||null!==e&&\"object\"==typeof e&&\"function\"==typeof e.then&&\"function\"==typeof e.catch},o$2.isArrayBufferView=function(e){return d&&ArrayBuffer.isView?ArrayBuffer.isView(e):S(e)||R(e)},o$2.isTypedArray=S,o$2.isUint8Array=B,o$2.isUint8ClampedArray=k,o$2.isUint16Array=E,o$2.isUint32Array=D,o$2.isInt8Array=U,o$2.isInt16Array=P,o$2.isInt32Array=x,o$2.isFloat32Array=I,o$2.isFloat64Array=M,o$2.isBigInt64Array=z,o$2.isBigUint64Array=F,T.working=\"undefined\"!=typeof Map&&T(new Map),o$2.isMap=function(e){return \"undefined\"!=typeof Map&&(T.working?T(e):e instanceof Map)},N.working=\"undefined\"!=typeof Set&&N(new Set),o$2.isSet=function(e){return \"undefined\"!=typeof Set&&(N.working?N(e):e instanceof Set)},W.working=\"undefined\"!=typeof WeakMap&&W(new WeakMap),o$2.isWeakMap=function(e){return \"undefined\"!=typeof WeakMap&&(W.working?W(e):e instanceof WeakMap)},$.working=\"undefined\"!=typeof WeakSet&&$(new WeakSet),o$2.isWeakSet=function(e){return $(e)},C.working=\"undefined\"!=typeof ArrayBuffer&&C(new ArrayBuffer),o$2.isArrayBuffer=V,G.working=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof DataView&&G(new DataView(new ArrayBuffer(1),0,1)),o$2.isDataView=R,J.working=\"undefined\"!=typeof SharedArrayBuffer&&J(new SharedArrayBuffer),o$2.isSharedArrayBuffer=_,o$2.isAsyncFunction=function(e){return \"[object AsyncFunction]\"===m(e)},o$2.isMapIterator=function(e){return \"[object Map Iterator]\"===m(e)},o$2.isSetIterator=function(e){return \"[object Set Iterator]\"===m(e)},o$2.isGeneratorObject=function(e){return \"[object Generator]\"===m(e)},o$2.isWebAssemblyCompiledModule=function(e){return \"[object WebAssembly.Module]\"===m(e)},o$2.isNumberObject=H,o$2.isStringObject=Z,o$2.isBooleanObject=q,o$2.isBigIntObject=K,o$2.isSymbolObject=L,o$2.isBoxedPrimitive=function(e){return H(e)||Z(e)||q(e)||K(e)||L(e)},o$2.isAnyArrayBuffer=function(e){return l$1&&(V(e)||_(e))},[\"isProxy\",\"isExternal\",\"isModuleNamespaceObject\"].forEach((function(e){Object.defineProperty(o$2,e,{enumerable:!1,value:function(){throw new Error(e+\" is not supported in userland\")}});}));var Q=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:global,X={},Y=T$1,ee=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++)r[t[n]]=Object.getOwnPropertyDescriptor(e,t[n]);return r},te=/%[sdj%]/g;X.format=function(e){if(!ge(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(oe(arguments[r]));return t.join(\" \")}r=1;for(var n=arguments,i=n.length,o=String(e).replace(te,(function(e){if(\"%%\"===e)return \"%\";if(r>=i)return e;switch(e){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(e){return \"[Circular]\"}default:return e}})),u=n[r];r<i;u=n[++r])le(u)||!he(u)?o+=\" \"+u:o+=\" \"+oe(u);return o},X.deprecate=function(e,t){if(void 0!==Y&&!0===Y.noDeprecation)return e;if(void 0===Y)return function(){return X.deprecate(e,t).apply(this||Q,arguments)};var r=!1;return function(){if(!r){if(Y.throwDeprecation)throw new Error(t);Y.traceDeprecation?console.trace(t):console.error(t),r=!0;}return e.apply(this||Q,arguments)}};var re={},ne=/^$/;if(Y.env.NODE_DEBUG){var ie=Y.env.NODE_DEBUG;ie=ie.replace(/[|\\\\{}()[\\]^$+?.]/g,\"\\\\$&\").replace(/\\*/g,\".*\").replace(/,/g,\"$|^\").toUpperCase(),ne=new RegExp(\"^\"+ie+\"$\",\"i\");}function oe(e,t){var r={seen:[],stylize:fe};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),ye(t)?r.showHidden=t:t&&X._extend(r,t),be(r.showHidden)&&(r.showHidden=!1),be(r.depth)&&(r.depth=2),be(r.colors)&&(r.colors=!1),be(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ue),ae(r,e,r.depth)}function ue(e,t){var r=oe.styles[t];return r?\"\u001B[\"+oe.colors[r][0]+\"m\"+e+\"\u001B[\"+oe.colors[r][1]+\"m\":e}function fe(e,t){return e}function ae(e,t,r){if(e.customInspect&&t&&we(t.inspect)&&t.inspect!==X.inspect&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return ge(n)||(n=ae(e,n,r)),n}var i=function(e,t){if(be(t))return e.stylize(\"undefined\",\"undefined\");if(ge(t)){var r=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(r,\"string\")}if(de(t))return e.stylize(\"\"+t,\"number\");if(ye(t))return e.stylize(\"\"+t,\"boolean\");if(le(t))return e.stylize(\"null\",\"null\")}(e,t);if(i)return i;var o=Object.keys(t),u=function(e){var t={};return e.forEach((function(e,r){t[e]=!0;})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Ae(t)&&(o.indexOf(\"message\")>=0||o.indexOf(\"description\")>=0))return ce(t);if(0===o.length){if(we(t)){var f=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+f+\"]\",\"special\")}if(me(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(je(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(Ae(t))return ce(t)}var a,c=\"\",s=!1,p=[\"{\",\"}\"];(pe(t)&&(s=!0,p=[\"[\",\"]\"]),we(t))&&(c=\" [Function\"+(t.name?\": \"+t.name:\"\")+\"]\");return me(t)&&(c=\" \"+RegExp.prototype.toString.call(t)),je(t)&&(c=\" \"+Date.prototype.toUTCString.call(t)),Ae(t)&&(c=\" \"+ce(t)),0!==o.length||s&&0!=t.length?r<0?me(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\"):(e.seen.push(t),a=s?function(e,t,r,n,i){for(var o=[],u=0,f=t.length;u<f;++u)ke(t,String(u))?o.push(se(e,t,r,n,String(u),!0)):o.push(\"\");return i.forEach((function(i){i.match(/^\\d+$/)||o.push(se(e,t,r,n,i,!0));})),o}(e,t,r,u,o):o.map((function(n){return se(e,t,r,u,n,s)})),e.seen.pop(),function(e,t,r){var n=0;if(e.reduce((function(e,t){return n++,t.indexOf(\"\\n\")>=0&&n++,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1}),0)>60)return r[0]+(\"\"===t?\"\":t+\"\\n \")+\" \"+e.join(\",\\n \")+\" \"+r[1];return r[0]+t+\" \"+e.join(\", \")+\" \"+r[1]}(a,c,p)):p[0]+c+p[1]}function ce(e){return \"[\"+Error.prototype.toString.call(e)+\"]\"}function se(e,t,r,n,i,o){var u,f,a;if((a=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?f=a.set?e.stylize(\"[Getter/Setter]\",\"special\"):e.stylize(\"[Getter]\",\"special\"):a.set&&(f=e.stylize(\"[Setter]\",\"special\")),ke(n,i)||(u=\"[\"+i+\"]\"),f||(e.seen.indexOf(a.value)<0?(f=le(r)?ae(e,a.value,null):ae(e,a.value,r-1)).indexOf(\"\\n\")>-1&&(f=o?f.split(\"\\n\").map((function(e){return \" \"+e})).join(\"\\n\").substr(2):\"\\n\"+f.split(\"\\n\").map((function(e){return \" \"+e})).join(\"\\n\")):f=e.stylize(\"[Circular]\",\"special\")),be(u)){if(o&&i.match(/^\\d+$/))return f;(u=JSON.stringify(\"\"+i)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(u=u.substr(1,u.length-2),u=e.stylize(u,\"name\")):(u=u.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),u=e.stylize(u,\"string\"));}return u+\": \"+f}function pe(e){return Array.isArray(e)}function ye(e){return \"boolean\"==typeof e}function le(e){return null===e}function de(e){return \"number\"==typeof e}function ge(e){return \"string\"==typeof e}function be(e){return void 0===e}function me(e){return he(e)&&\"[object RegExp]\"===ve(e)}function he(e){return \"object\"==typeof e&&null!==e}function je(e){return he(e)&&\"[object Date]\"===ve(e)}function Ae(e){return he(e)&&(\"[object Error]\"===ve(e)||e instanceof Error)}function we(e){return \"function\"==typeof e}function ve(e){return Object.prototype.toString.call(e)}function Oe(e){return e<10?\"0\"+e.toString(10):e.toString(10)}X.debuglog=function(e){if(e=e.toUpperCase(),!re[e])if(ne.test(e)){var t=Y.pid;re[e]=function(){var r=X.format.apply(X,arguments);console.error(\"%s %d: %s\",e,t,r);};}else re[e]=function(){};return re[e]},X.inspect=oe,oe.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},oe.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},X.types=o$2,X.isArray=pe,X.isBoolean=ye,X.isNull=le,X.isNullOrUndefined=function(e){return null==e},X.isNumber=de,X.isString=ge,X.isSymbol=function(e){return \"symbol\"==typeof e},X.isUndefined=be,X.isRegExp=me,X.types.isRegExp=me,X.isObject=he,X.isDate=je,X.types.isDate=je,X.isError=Ae,X.types.isNativeError=Ae,X.isFunction=we,X.isPrimitive=function(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"==typeof e||void 0===e},X.isBuffer=i$1;var Se=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function Be(){var e=new Date,t=[Oe(e.getHours()),Oe(e.getMinutes()),Oe(e.getSeconds())].join(\":\");return [e.getDate(),Se[e.getMonth()],t].join(\" \")}function ke(e,t){return Object.prototype.hasOwnProperty.call(e,t)}X.log=function(){console.log(\"%s - %s\",Be(),X.format.apply(X,arguments));},X.inherits=t$2,X._extend=function(e,t){if(!t||!he(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var Ee=\"undefined\"!=typeof Symbol?Symbol(\"util.promisify.custom\"):void 0;function De(e,t){if(!e){var r=new Error(\"Promise was rejected with a falsy value\");r.reason=e,e=r;}return t(e)}X.promisify=function(e){if(\"function\"!=typeof e)throw new TypeError('The \"original\" argument must be of type Function');if(Ee&&e[Ee]){var t;if(\"function\"!=typeof(t=e[Ee]))throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');return Object.defineProperty(t,Ee,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n;})),i=[],o=0;o<arguments.length;o++)i.push(arguments[o]);i.push((function(e,n){e?r(e):t(n);}));try{e.apply(this||Q,i);}catch(e){r(e);}return n}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Ee&&Object.defineProperty(t,Ee,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,ee(e))},X.promisify.custom=Ee,X.callbackify=function(e){if(\"function\"!=typeof e)throw new TypeError('The \"original\" argument must be of type Function');function t(){for(var t=[],r=0;r<arguments.length;r++)t.push(arguments[r]);var n=t.pop();if(\"function\"!=typeof n)throw new TypeError(\"The last argument must be of type Function\");var i=this||Q,o=function(){return n.apply(i,arguments)};e.apply(this||Q,t).then((function(e){Y.nextTick(o.bind(null,null,e));}),(function(e){Y.nextTick(De.bind(null,e,o));}));}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,ee(e)),t};\n\nX._extend;X.callbackify;X.debuglog;X.deprecate;X.format;X.inherits;X.inspect;X.isArray;X.isBoolean;X.isBuffer;X.isDate;X.isError;X.isFunction;X.isNull;X.isNullOrUndefined;X.isNumber;X.isObject;X.isPrimitive;X.isRegExp;X.isString;X.isSymbol;X.isUndefined;X.log;X.promisify;\n\nX._extend;\nX.callbackify;\nX.debuglog;\nX.deprecate;\nX.format;\nX.inherits;\nX.inspect;\nX.isArray;\nX.isBoolean;\nX.isBuffer;\nX.isDate;\nX.isError;\nX.isFunction;\nX.isNull;\nX.isNullOrUndefined;\nX.isNumber;\nX.isObject;\nX.isPrimitive;\nX.isRegExp;\nX.isString;\nX.isSymbol;\nX.isUndefined;\nX.log;\nvar promisify = X.promisify;\nX.types;\n\nexport { T$1 as T, X, promisify as p, t$2 as t };\n", "import { X } from './chunk-D3uu3VYh.js';\n\nX._extend;\r\nX.callbackify;\r\nX.debuglog;\r\nX.deprecate;\r\nX.format;\r\nX.inherits;\r\nX.inspect;\r\nX.isArray;\r\nX.isBoolean;\r\nX.isBuffer;\r\nX.isDate;\r\nX.isError;\r\nX.isFunction;\r\nX.isNull;\r\nX.isNullOrUndefined;\r\nX.isNumber;\r\nX.isObject;\r\nX.isPrimitive;\r\nX.isRegExp;\r\nX.isString;\r\nX.isSymbol;\r\nX.isUndefined;\r\nX.log;\r\nvar promisify = X.promisify;\r\nX.types;\r\n\r\nX.TextEncoder = globalThis.TextEncoder;\r\nX.TextDecoder = globalThis.TextDecoder;\n\nexport { promisify as p };\n", "function unimplemented(name) {\r\n throw new Error('Node.js process ' + name + ' is not supported by JSPM core outside of Node.js');\r\n}\r\n\r\nvar queue = [];\r\nvar draining = false;\r\nvar currentQueue;\r\nvar queueIndex = -1;\r\n\r\nfunction cleanUpNextTick() {\r\n if (!draining || !currentQueue)\r\n return;\r\n draining = false;\r\n if (currentQueue.length) {\r\n queue = currentQueue.concat(queue);\r\n }\r\n else {\r\n queueIndex = -1;\r\n }\r\n if (queue.length)\r\n drainQueue();\r\n}\r\n\r\nfunction drainQueue() {\r\n if (draining)\r\n return;\r\n var timeout = setTimeout(cleanUpNextTick, 0);\r\n draining = true;\r\n\r\n var len = queue.length;\r\n while(len) {\r\n currentQueue = queue;\r\n queue = [];\r\n while (++queueIndex < len) {\r\n if (currentQueue)\r\n currentQueue[queueIndex].run();\r\n }\r\n queueIndex = -1;\r\n len = queue.length;\r\n }\r\n currentQueue = null;\r\n draining = false;\r\n clearTimeout(timeout);\r\n}\r\n\r\nfunction nextTick (fun) {\r\n var args = new Array(arguments.length - 1);\r\n if (arguments.length > 1) {\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n }\r\n queue.push(new Item(fun, args));\r\n if (queue.length === 1 && !draining)\r\n setTimeout(drainQueue, 0);\r\n}\r\n// v8 likes predictible objects\r\nfunction Item(fun, array) {\r\n this.fun = fun;\r\n this.array = array;\r\n}\r\nItem.prototype.run = function () {\r\n this.fun.apply(null, this.array);\r\n};\r\n\r\nvar title = 'browser';\r\nvar arch = 'x64';\r\nvar platform = 'browser';\r\nvar env = {\r\n PATH: '/usr/bin',\r\n LANG: navigator.language + '.UTF-8',\r\n PWD: '/',\r\n HOME: '/home',\r\n TMP: '/tmp',\r\n};\r\nvar argv = ['/usr/bin/node'];\r\nvar execArgv = [];\r\nvar version = 'v16.8.0';\r\nvar versions = {};\r\n\r\nvar emitWarning = function(message, type) {\r\n console.warn((type ? (type + ': ') : '') + message);\r\n};\r\n\r\nvar binding = function(name) { unimplemented('binding'); };\r\n\r\nvar umask = function(mask) { return 0; };\r\n\r\nvar cwd = function() { return '/'; };\r\nvar chdir = function(dir) {};\r\n\r\nvar release = {\r\n name: 'node',\r\n sourceUrl: '',\r\n headersUrl: '',\r\n libUrl: '',\r\n};\r\n\r\nfunction noop() {}\r\n\r\nvar _rawDebug = noop;\r\nvar moduleLoadList = [];\r\nfunction _linkedBinding(name) { unimplemented('_linkedBinding'); }\r\nvar domain = {};\r\nvar _exiting = false;\r\nvar config = {};\r\nfunction dlopen(name) { unimplemented('dlopen'); }\r\nfunction _getActiveRequests() { return []; }\r\nfunction _getActiveHandles() { return []; }\r\nvar reallyExit = noop;\r\nvar _kill = noop;\r\nvar cpuUsage = function() { return {}; };\r\nvar resourceUsage = cpuUsage;\r\nvar memoryUsage = cpuUsage;\r\nvar kill = noop;\r\nvar exit = noop;\r\nvar openStdin = noop;\r\nvar allowedNodeEnvironmentFlags = {};\r\nfunction assert(condition, message) {\r\n if (!condition) throw new Error(message || 'assertion error');\r\n}\r\nvar features = {\r\n inspector: false,\r\n debug: false,\r\n uv: false,\r\n ipv6: false,\r\n tls_alpn: false,\r\n tls_sni: false,\r\n tls_ocsp: false,\r\n tls: false,\r\n cached_builtins: true,\r\n};\r\nvar _fatalExceptions = noop;\r\nvar setUncaughtExceptionCaptureCallback = noop;\r\nfunction hasUncaughtExceptionCaptureCallback() { return false; }var _tickCallback = noop;\r\nvar _debugProcess = noop;\r\nvar _debugEnd = noop;\r\nvar _startProfilerIdleNotifier = noop;\r\nvar _stopProfilerIdleNotifier = noop;\r\nvar stdout = undefined;\r\nvar stderr = undefined;\r\nvar stdin = undefined;\r\nvar abort = noop;\r\nvar pid = 2;\r\nvar ppid = 1;\r\nvar execPath = '/bin/usr/node';\r\nvar debugPort = 9229;\r\nvar argv0 = 'node';\r\nvar _preload_modules = [];\r\nvar setSourceMapsEnabled = noop;\r\n\r\nvar _performance = {\r\n now: typeof performance !== 'undefined' ? performance.now.bind(performance) : undefined,\r\n timing: typeof performance !== 'undefined' ? performance.timing : undefined,\r\n};\r\nif (_performance.now === undefined) {\r\n var nowOffset = Date.now();\r\n\r\n if (_performance.timing && _performance.timing.navigationStart) {\r\n nowOffset = _performance.timing.navigationStart;\r\n }\r\n _performance.now = () => Date.now() - nowOffset;\r\n}\r\n\r\nfunction uptime() {\r\n return _performance.now() / 1000;\r\n}\r\n\r\nvar nanoPerSec = 1000000000;\r\nfunction hrtime(previousTimestamp) {\r\n var baseNow = Math.floor((Date.now() - _performance.now()) * 1e-3);\r\n var clocktime = _performance.now() * 1e-3;\r\n var seconds = Math.floor(clocktime) + baseNow;\r\n var nanoseconds = Math.floor((clocktime % 1) * 1e9);\r\n if (previousTimestamp) {\r\n seconds = seconds - previousTimestamp[0];\r\n nanoseconds = nanoseconds - previousTimestamp[1];\r\n if (nanoseconds < 0) {\r\n seconds--;\r\n nanoseconds += nanoPerSec;\r\n }\r\n }\r\n return [seconds, nanoseconds];\r\n}hrtime.bigint = function(time) {\r\n var diff = hrtime(time);\r\n if (typeof BigInt === 'undefined') {\r\n return diff[0] * nanoPerSec + diff[1];\r\n }\r\n return BigInt(diff[0] * nanoPerSec) + BigInt(diff[1]);\r\n};\r\n\r\nvar _maxListeners = 10;\r\nvar _events = {};\r\nvar _eventsCount = 0;\r\nfunction on () { return process }var addListener = on;\r\nvar once = on;\r\nvar off = on;\r\nvar removeListener = on;\r\nvar removeAllListeners = on;\r\nvar emit = noop;\r\nvar prependListener = on;\r\nvar prependOnceListener = on;\r\nfunction listeners (name) { return []; }\r\nvar process = {\r\n version,\r\n versions,\r\n arch,\r\n platform,\r\n release,\r\n _rawDebug,\r\n moduleLoadList,\r\n binding,\r\n _linkedBinding,\r\n _events,\r\n _eventsCount,\r\n _maxListeners,\r\n on,\r\n addListener,\r\n once,\r\n off,\r\n removeListener,\r\n removeAllListeners,\r\n emit,\r\n prependListener,\r\n prependOnceListener,\r\n listeners,\r\n domain,\r\n _exiting,\r\n config,\r\n dlopen,\r\n uptime,\r\n _getActiveRequests,\r\n _getActiveHandles,\r\n reallyExit,\r\n _kill,\r\n cpuUsage,\r\n resourceUsage,\r\n memoryUsage,\r\n kill,\r\n exit,\r\n openStdin,\r\n allowedNodeEnvironmentFlags,\r\n assert,\r\n features,\r\n _fatalExceptions,\r\n setUncaughtExceptionCaptureCallback,\r\n hasUncaughtExceptionCaptureCallback,\r\n emitWarning,\r\n nextTick,\r\n _tickCallback,\r\n _debugProcess,\r\n _debugEnd,\r\n _startProfilerIdleNotifier,\r\n _stopProfilerIdleNotifier,\r\n stdout,\r\n stdin,\r\n stderr,\r\n abort,\r\n umask,\r\n chdir,\r\n cwd,\r\n env,\r\n title,\r\n argv,\r\n execArgv,\r\n pid,\r\n ppid,\r\n execPath,\r\n debugPort,\r\n hrtime,\r\n argv0,\r\n _preload_modules,\r\n setSourceMapsEnabled,\r\n};\n\nexport { process as p };\n", "var exports = {},\n _dewExec = false;\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n /**\n * Module exports.\n */\n\n exports = deprecate;\n\n /**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\n function deprecate(fn, msg) {\n if (config(\"noDeprecation\")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config(\"throwDeprecation\")) {\n throw new Error(msg);\n } else if (config(\"traceDeprecation\")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this || _global, arguments);\n }\n return deprecated;\n }\n\n /**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\n function config(name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!_global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = _global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === \"true\";\n }\n return exports;\n}\n\nexport { dew as d };\n", "import { d as dew$2 } from './chunk-DtuTasat.js';\n\nvar exports$2 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$2;\n _dewExec$1 = true;\n /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n /* eslint-disable node/no-deprecated-api */\n var buffer = dew$2();\n var Buffer = buffer.Buffer;\n\n // alternative to using Object.keys for old browsers\n function copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n }\n if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n exports$2 = buffer;\n } else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports$2);\n exports$2.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer.prototype);\n\n // Copy static methods from Buffer\n copyProps(Buffer, SafeBuffer);\n SafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === \"number\") {\n throw new TypeError(\"Argument must not be a number\");\n }\n return Buffer(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n var buf = Buffer(size);\n if (fill !== undefined) {\n if (typeof encoding === \"string\") {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n return buf;\n };\n SafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n return Buffer(size);\n };\n SafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n return buffer.SlowBuffer(size);\n };\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n /*<replacement>*/\n\n var Buffer = dew$1().Buffer;\n /*</replacement>*/\n\n var isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = \"\" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n case \"raw\":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc) return \"utf8\";\n var retried;\n while (true) {\n switch (enc) {\n case \"utf8\":\n case \"utf-8\":\n return \"utf8\";\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return \"utf16le\";\n case \"latin1\":\n case \"binary\":\n return \"latin1\";\n case \"base64\":\n case \"ascii\":\n case \"hex\":\n return enc;\n default:\n if (retried) return; // undefined\n enc = (\"\" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n\n // Do not cache `Buffer.isEncoding` when checking encoding names as some\n // modules monkey-patch it to support additional encodings\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== \"string\" && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error(\"Unknown encoding: \" + enc);\n return nenc || enc;\n }\n\n // StringDecoder provides an interface for efficiently splitting a series of\n // buffers into a series of JS strings without breaking apart multi-byte\n // characters.\n exports$1.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case \"utf16le\":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case \"utf8\":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case \"base64\":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return \"\";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return \"\";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || \"\";\n };\n StringDecoder.prototype.end = utf8End;\n\n // Returns only complete characters in a Buffer\n StringDecoder.prototype.text = utf8Text;\n\n // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\n StringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n };\n\n // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n // continuation byte. If an invalid byte is detected, -2 is returned.\n function utf8CheckByte(byte) {\n if (byte <= 127) return 0;else if (byte >> 5 === 6) return 2;else if (byte >> 4 === 14) return 3;else if (byte >> 3 === 30) return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n\n // Checks at most 3 bytes at the end of a Buffer in order to detect an\n // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n // needed to complete the UTF-8 character (if applicable) are returned.\n function utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n\n // Validates as many continuation bytes for a multi-byte UTF-8 character as\n // needed or are available. If we see a non-continuation byte where we expect\n // one, we \"replace\" the validated continuation bytes we've seen so far with\n // a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n // behavior. The continuation byte check is included three times in the case\n // where all of the continuation bytes for a character exist in the same buffer.\n // It is also done this way as a slight performance increase instead of using a\n // loop.\n function utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 192) !== 128) {\n self.lastNeed = 0;\n return \"\\uFFFD\";\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 192) !== 128) {\n self.lastNeed = 1;\n return \"\\uFFFD\";\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 192) !== 128) {\n self.lastNeed = 2;\n return \"\\uFFFD\";\n }\n }\n }\n }\n\n // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\n function utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n }\n\n // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n // partial character, the character's bytes are buffered until the required\n // number of bytes are available.\n function utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString(\"utf8\", i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString(\"utf8\", i, end);\n }\n\n // For UTF-8, a replacement character is added when ending on a partial\n // character.\n function utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\n }\n\n // UTF-16LE typically needs two bytes per character, but even if we have an even\n // number of bytes available, we need to check if we end on a leading/high\n // surrogate. In that case, we need to wait for the next two bytes in order to\n // decode the last character properly.\n function utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString(\"utf16le\", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString(\"utf16le\", i, buf.length - 1);\n }\n\n // For UTF-16LE we do not explicitly append special replacement characters if we\n // end on a partial character, we simply let v8 handle that.\n function utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString(\"utf16le\", 0, end);\n }\n return r;\n }\n function base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString(\"base64\", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString(\"base64\", i, buf.length - n);\n }\n function base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) return r + this.lastChar.toString(\"base64\", 0, 3 - this.lastNeed);\n return r;\n }\n\n // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\n function simpleWrite(buf) {\n return buf.toString(this.encoding);\n }\n function simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : \"\";\n }\n return exports$1;\n}\n\nconst exports = dew();\nexports['StringDecoder'];\n\nvar StringDecoder = exports.StringDecoder;\n\nexport { StringDecoder as S, dew$1 as d, exports as e };\n", "var exports = {},\n _dewExec = false;\n\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n // shim for using process in browser\n var process = exports = {}; // cached from whatever global is present so that test runners that stub it\n // don't break things. But we need to wrap it in a try catch in case it is\n // wrapped in strict mode code which doesn't define any globals. It's inside a\n // function because try/catches deoptimize in certain engines.\n\n var cachedSetTimeout;\n var cachedClearTimeout;\n\n function defaultSetTimout() {\n throw new Error(\"setTimeout has not been defined\");\n }\n\n function defaultClearTimeout() {\n throw new Error(\"clearTimeout has not been defined\");\n }\n\n (function () {\n try {\n if (typeof setTimeout === \"function\") {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === \"function\") {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this || _global, fun, 0);\n }\n }\n }\n\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this || _global, marker);\n }\n }\n }\n\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n }; // v8 likes predictible objects\n\n\n function Item(fun, array) {\n (this || _global).fun = fun;\n (this || _global).array = array;\n }\n\n Item.prototype.run = function () {\n (this || _global).fun.apply(null, (this || _global).array);\n };\n\n process.title = \"browser\";\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = \"\"; // empty string to avoid regexp issues\n\n process.versions = {};\n\n function noop() {}\n\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n\n process.listeners = function (name) {\n return [];\n };\n\n process.binding = function (name) {\n throw new Error(\"process.binding is not supported\");\n };\n\n process.cwd = function () {\n return \"/\";\n };\n\n process.chdir = function (dir) {\n throw new Error(\"process.chdir is not supported\");\n };\n\n process.umask = function () {\n return 0;\n };\n\n return exports;\n}\n\nvar process = dew();\n\nprocess.platform = 'browser';\nprocess.addListener;\nprocess.argv;\nprocess.binding;\nprocess.browser;\nprocess.chdir;\nprocess.cwd;\nprocess.emit;\nprocess.env;\nprocess.listeners;\nprocess.nextTick;\nprocess.off;\nprocess.on;\nprocess.once;\nprocess.prependListener;\nprocess.prependOnceListener;\nprocess.removeAllListeners;\nprocess.removeListener;\nprocess.title;\nprocess.umask;\nprocess.version;\nprocess.versions;\n\nexport { process as p };\n", "import { T } from './chunk-D3uu3VYh.js';\nimport { p as process } from './chunk-b0rmRow7.js';\n\nvar exports$1 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$1;\n _dewExec$1 = true;\n var process$1 = process;\n\n function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n } // Resolves . and .. elements in a path with directory names\n\n\n function normalizeStringPosix(path, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length) code = path.charCodeAt(i);else if (code === 47\n /*/*/\n ) break;else code = 47\n /*/*/\n ;\n\n if (code === 47\n /*/*/\n ) {\n if (lastSlash === i - 1 || dots === 1) ; else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46\n /*.*/\n || res.charCodeAt(res.length - 2) !== 46\n /*.*/\n ) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n if (res.length > 0) res += \"/..\";else res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += \"/\" + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n\n lastSlash = i;\n dots = 0;\n } else if (code === 46\n /*.*/\n && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n\n return res;\n }\n\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n\n if (!dir) {\n return base;\n }\n\n if (dir === pathObject.root) {\n return dir + base;\n }\n\n return dir + sep + base;\n }\n\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0) path = arguments[i];else {\n if (cwd === undefined) cwd = process$1.cwd();\n path = cwd;\n }\n assertPath(path); // Skip empty entries\n\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) return \"/\" + resolvedPath;else return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var isAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47\n /*/*/\n ; // Normalize the path\n\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute) path = \".\";\n if (path.length > 0 && trailingSeparator) path += \"/\";\n if (isAbsolute) return \"/\" + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47\n /*/*/\n ;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var joined;\n\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n\n if (arg.length > 0) {\n if (joined === undefined) joined = arg;else joined += \"/\" + arg;\n }\n }\n\n if (joined === undefined) return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to) return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) return \"\"; // Trim any leading backslashes\n\n var fromStart = 1;\n\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47\n /*/*/\n ) break;\n }\n\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart; // Trim any leading backslashes\n\n var toStart = 1;\n\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47\n /*/*/\n ) break;\n }\n\n var toEnd = to.length;\n var toLen = toEnd - toStart; // Compare paths to find the longest common path from root\n\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47\n /*/*/\n ) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47\n /*/*/\n ) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n\n break;\n }\n\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode) break;else if (fromCode === 47\n /*/*/\n ) lastCommonSep = i;\n }\n\n var out = \"\"; // Generate the relative path based on the path difference between `to`\n // and `from`\n\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47\n /*/*/\n ) {\n if (out.length === 0) out += \"..\";else out += \"/..\";\n }\n } // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n\n\n if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47\n /*/*/\n ) ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1) return \"//\";\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== \"string\") throw new TypeError(\"\\\"ext\\\" argument must be a string\");\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return \"\";\n return path.slice(start, end);\n }\n },\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError(\"The \\\"pathObject\\\" argument must be of type Object. Received type \" + typeof pathObject);\n }\n\n return _format(\"/\", pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47\n /*/*/\n ;\n var start;\n\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0; // Get non-dir info\n\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n exports$1 = posix;\n return exports$1;\n}\n\nconst exports$2 = dew$1();\n\nconst t$1=2147483647,o$2=/^xn--/,n$2=/[^\\0-\\x7E]/,e$2=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,r$2={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},c$1=Math.floor,s=String.fromCharCode;function i$1(t){throw new RangeError(r$2[t])}function f$1(t,o){const n=t.split(\"@\");let r=\"\";n.length>1&&(r=n[0]+\"@\",t=n[1]);const c=function(t,o){const n=[];let e=t.length;for(;e--;)n[e]=o(t[e]);return n}((t=t.replace(e$2,\".\")).split(\".\"),o).join(\".\");return r+c}function l$1(t){const o=[];let n=0;const e=t.length;for(;n<e;){const r=t.charCodeAt(n++);if(r>=55296&&r<=56319&&n<e){const e=t.charCodeAt(n++);56320==(64512&e)?o.push(((1023&r)<<10)+(1023&e)+65536):(o.push(r),n--);}else o.push(r);}return o}const u$1=function(t,o){return t+22+75*(t<26)-((0!=o)<<5)},a$1=function(t,o,n){let e=0;for(t=n?c$1(t/700):t>>1,t+=c$1(t/o);t>455;e+=36)t=c$1(t/35);return c$1(e+36*t/(t+38))},d=function(o){const n=[],e=o.length;let r=0,s=128,f=72,l=o.lastIndexOf(\"-\");l<0&&(l=0);for(let t=0;t<l;++t)o.charCodeAt(t)>=128&&i$1(\"not-basic\"),n.push(o.charCodeAt(t));for(let d=l>0?l+1:0;d<e;){let l=r;for(let n=1,s=36;;s+=36){d>=e&&i$1(\"invalid-input\");const l=(u=o.charCodeAt(d++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:36;(l>=36||l>c$1((t$1-r)/n))&&i$1(\"overflow\"),r+=l*n;const a=s<=f?1:s>=f+26?26:s-f;if(l<a)break;const h=36-a;n>c$1(t$1/h)&&i$1(\"overflow\"),n*=h;}const h=n.length+1;f=a$1(r-l,h,0==l),c$1(r/h)>t$1-s&&i$1(\"overflow\"),s+=c$1(r/h),r%=h,n.splice(r++,0,s);}var u;return String.fromCodePoint(...n)},h$1=function(o){const n=[];let e=(o=l$1(o)).length,r=128,f=0,d=72;for(const t of o)t<128&&n.push(s(t));let h=n.length,p=h;for(h&&n.push(\"-\");p<e;){let e=t$1;for(const t of o)t>=r&&t<e&&(e=t);const l=p+1;e-r>c$1((t$1-f)/l)&&i$1(\"overflow\"),f+=(e-r)*l,r=e;for(const e of o)if(e<r&&++f>t$1&&i$1(\"overflow\"),e==r){let t=f;for(let o=36;;o+=36){const e=o<=d?1:o>=d+26?26:o-d;if(t<e)break;const r=t-e,i=36-e;n.push(s(u$1(e+r%i,0))),t=c$1(r/i);}n.push(s(u$1(t,0))),d=a$1(f,l,p==h),f=0,++p;}++f,++r;}return n.join(\"\")};var p$1={version:\"2.1.0\",ucs2:{decode:l$1,encode:t=>String.fromCodePoint(...t)},decode:d,encode:h$1,toASCII:function(t){return f$1(t,(function(t){return n$2.test(t)?\"xn--\"+h$1(t):t}))},toUnicode:function(t){return f$1(t,(function(t){return o$2.test(t)?d(t.slice(4).toLowerCase()):t}))}};\n\nfunction e$1(e,n){return Object.prototype.hasOwnProperty.call(e,n)}var n$1=function(n,r,t,o){r=r||\"&\",t=t||\"=\";var a={};if(\"string\"!=typeof n||0===n.length)return a;var u=/\\+/g;n=n.split(r);var c=1e3;o&&\"number\"==typeof o.maxKeys&&(c=o.maxKeys);var i=n.length;c>0&&i>c&&(i=c);for(var s=0;s<i;++s){var p,f,d,y,m=n[s].replace(u,\"%20\"),l=m.indexOf(t);l>=0?(p=m.substr(0,l),f=m.substr(l+1)):(p=m,f=\"\"),d=decodeURIComponent(p),y=decodeURIComponent(f),e$1(a,d)?Array.isArray(a[d])?a[d].push(y):a[d]=[a[d],y]:a[d]=y;}return a},r$1=function(e){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"true\":\"false\";case\"number\":return isFinite(e)?e:\"\";default:return \"\"}},t=function(e,n,t,o){return n=n||\"&\",t=t||\"=\",null===e&&(e=void 0),\"object\"==typeof e?Object.keys(e).map((function(o){var a=encodeURIComponent(r$1(o))+t;return Array.isArray(e[o])?e[o].map((function(e){return a+encodeURIComponent(r$1(e))})).join(n):a+encodeURIComponent(r$1(e[o]))})).join(n):o?encodeURIComponent(r$1(o))+t+encodeURIComponent(r$1(e)):\"\"},o$1={};o$1.decode=o$1.parse=n$1,o$1.encode=o$1.stringify=t;o$1.decode;o$1.encode;o$1.parse;o$1.stringify;\n\nvar h={},e=p$1,a={isString:function(t){return \"string\"==typeof t},isObject:function(t){return \"object\"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}};function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null;}h.parse=O,h.resolve=function(t,s){return O(t,!1,!0).resolve(s)},h.resolveObject=function(t,s){return t?O(t,!1,!0).resolveObject(s):s},h.format=function(t){a.isString(t)&&(t=O(t));return t instanceof r?t.format():r.prototype.format.call(t)},h.Url=r;var o=/^([a-z0-9.+-]+:)/i,n=/:[0-9]*$/,i=/^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,l=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat([\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"]),p=[\"'\"].concat(l),c=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(p),u=[\"/\",\"?\",\"#\"],f=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,\"javascript:\":!0},g={javascript:!0,\"javascript:\":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},b=o$1;function O(t,s,h){if(t&&a.isObject(t)&&t instanceof r)return t;var e=new r;return e.parse(t,s,h),e}r.prototype.parse=function(t,s,h){if(!a.isString(t))throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof t);var r=t.indexOf(\"?\"),n=-1!==r&&r<t.indexOf(\"#\")?\"?\":\"#\",l=t.split(n);l[0]=l[0].replace(/\\\\/g,\"/\");var O=t=l.join(n);if(O=O.trim(),!h&&1===t.split(\"#\").length){var d=i.exec(O);if(d)return this.path=O,this.href=O,this.pathname=d[1],d[2]?(this.search=d[2],this.query=s?b.parse(this.search.substr(1)):this.search.substr(1)):s&&(this.search=\"\",this.query={}),this}var j=o.exec(O);if(j){var q=(j=j[0]).toLowerCase();this.protocol=q,O=O.substr(j.length);}if(h||j||O.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)){var x=\"//\"===O.substr(0,2);!x||j&&g[j]||(O=O.substr(2),this.slashes=!0);}if(!g[j]&&(x||j&&!y[j])){for(var A,C,I=-1,w=0;w<u.length;w++){-1!==(N=O.indexOf(u[w]))&&(-1===I||N<I)&&(I=N);}-1!==(C=-1===I?O.lastIndexOf(\"@\"):O.lastIndexOf(\"@\",I))&&(A=O.slice(0,C),O=O.slice(C+1),this.auth=decodeURIComponent(A)),I=-1;for(w=0;w<c.length;w++){var N;-1!==(N=O.indexOf(c[w]))&&(-1===I||N<I)&&(I=N);}-1===I&&(I=O.length),this.host=O.slice(0,I),O=O.slice(I),this.parseHost(),this.hostname=this.hostname||\"\";var U=\"[\"===this.hostname[0]&&\"]\"===this.hostname[this.hostname.length-1];if(!U)for(var k=this.hostname.split(/\\./),S=(w=0,k.length);w<S;w++){var R=k[w];if(R&&!R.match(f)){for(var $=\"\",z=0,H=R.length;z<H;z++)R.charCodeAt(z)>127?$+=\"x\":$+=R[z];if(!$.match(f)){var L=k.slice(0,w),Z=k.slice(w+1),_=R.match(m);_&&(L.push(_[1]),Z.unshift(_[2])),Z.length&&(O=\"/\"+Z.join(\".\")+O),this.hostname=L.join(\".\");break}}}this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),U||(this.hostname=e.toASCII(this.hostname));var E=this.port?\":\"+this.port:\"\",P=this.hostname||\"\";this.host=P+E,this.href+=this.host,U&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),\"/\"!==O[0]&&(O=\"/\"+O));}if(!v[q])for(w=0,S=p.length;w<S;w++){var T=p[w];if(-1!==O.indexOf(T)){var B=encodeURIComponent(T);B===T&&(B=escape(T)),O=O.split(T).join(B);}}var D=O.indexOf(\"#\");-1!==D&&(this.hash=O.substr(D),O=O.slice(0,D));var F=O.indexOf(\"?\");if(-1!==F?(this.search=O.substr(F),this.query=O.substr(F+1),s&&(this.query=b.parse(this.query)),O=O.slice(0,F)):s&&(this.search=\"\",this.query={}),O&&(this.pathname=O),y[q]&&this.hostname&&!this.pathname&&(this.pathname=\"/\"),this.pathname||this.search){E=this.pathname||\"\";var G=this.search||\"\";this.path=E+G;}return this.href=this.format(),this},r.prototype.format=function(){var t=this.auth||\"\";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,\":\"),t+=\"@\");var s=this.protocol||\"\",h=this.pathname||\"\",e=this.hash||\"\",r=!1,o=\"\";this.host?r=t+this.host:this.hostname&&(r=t+(-1===this.hostname.indexOf(\":\")?this.hostname:\"[\"+this.hostname+\"]\"),this.port&&(r+=\":\"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(o=b.stringify(this.query));var n=this.search||o&&\"?\"+o||\"\";return s&&\":\"!==s.substr(-1)&&(s+=\":\"),this.slashes||(!s||y[s])&&!1!==r?(r=\"//\"+(r||\"\"),h&&\"/\"!==h.charAt(0)&&(h=\"/\"+h)):r||(r=\"\"),e&&\"#\"!==e.charAt(0)&&(e=\"#\"+e),n&&\"?\"!==n.charAt(0)&&(n=\"?\"+n),s+r+(h=h.replace(/[?#]/g,(function(t){return encodeURIComponent(t)})))+(n=n.replace(\"#\",\"%23\"))+e},r.prototype.resolve=function(t){return this.resolveObject(O(t,!1,!0)).format()},r.prototype.resolveObject=function(t){if(a.isString(t)){var s=new r;s.parse(t,!1,!0),t=s;}for(var h=new r,e=Object.keys(this),o=0;o<e.length;o++){var n=e[o];h[n]=this[n];}if(h.hash=t.hash,\"\"===t.href)return h.href=h.format(),h;if(t.slashes&&!t.protocol){for(var i=Object.keys(t),l=0;l<i.length;l++){var p=i[l];\"protocol\"!==p&&(h[p]=t[p]);}return y[h.protocol]&&h.hostname&&!h.pathname&&(h.path=h.pathname=\"/\"),h.href=h.format(),h}if(t.protocol&&t.protocol!==h.protocol){if(!y[t.protocol]){for(var c=Object.keys(t),u=0;u<c.length;u++){var f=c[u];h[f]=t[f];}return h.href=h.format(),h}if(h.protocol=t.protocol,t.host||g[t.protocol])h.pathname=t.pathname;else {for(var m=(t.pathname||\"\").split(\"/\");m.length&&!(t.host=m.shift()););t.host||(t.host=\"\"),t.hostname||(t.hostname=\"\"),\"\"!==m[0]&&m.unshift(\"\"),m.length<2&&m.unshift(\"\"),h.pathname=m.join(\"/\");}if(h.search=t.search,h.query=t.query,h.host=t.host||\"\",h.auth=t.auth,h.hostname=t.hostname||t.host,h.port=t.port,h.pathname||h.search){var v=h.pathname||\"\",b=h.search||\"\";h.path=v+b;}return h.slashes=h.slashes||t.slashes,h.href=h.format(),h}var O=h.pathname&&\"/\"===h.pathname.charAt(0),d=t.host||t.pathname&&\"/\"===t.pathname.charAt(0),j=d||O||h.host&&t.pathname,q=j,x=h.pathname&&h.pathname.split(\"/\")||[],A=(m=t.pathname&&t.pathname.split(\"/\")||[],h.protocol&&!y[h.protocol]);if(A&&(h.hostname=\"\",h.port=null,h.host&&(\"\"===x[0]?x[0]=h.host:x.unshift(h.host)),h.host=\"\",t.protocol&&(t.hostname=null,t.port=null,t.host&&(\"\"===m[0]?m[0]=t.host:m.unshift(t.host)),t.host=null),j=j&&(\"\"===m[0]||\"\"===x[0])),d)h.host=t.host||\"\"===t.host?t.host:h.host,h.hostname=t.hostname||\"\"===t.hostname?t.hostname:h.hostname,h.search=t.search,h.query=t.query,x=m;else if(m.length)x||(x=[]),x.pop(),x=x.concat(m),h.search=t.search,h.query=t.query;else if(!a.isNullOrUndefined(t.search)){if(A)h.hostname=h.host=x.shift(),(U=!!(h.host&&h.host.indexOf(\"@\")>0)&&h.host.split(\"@\"))&&(h.auth=U.shift(),h.host=h.hostname=U.shift());return h.search=t.search,h.query=t.query,a.isNull(h.pathname)&&a.isNull(h.search)||(h.path=(h.pathname?h.pathname:\"\")+(h.search?h.search:\"\")),h.href=h.format(),h}if(!x.length)return h.pathname=null,h.search?h.path=\"/\"+h.search:h.path=null,h.href=h.format(),h;for(var C=x.slice(-1)[0],I=(h.host||t.host||x.length>1)&&(\".\"===C||\"..\"===C)||\"\"===C,w=0,N=x.length;N>=0;N--)\".\"===(C=x[N])?x.splice(N,1):\"..\"===C?(x.splice(N,1),w++):w&&(x.splice(N,1),w--);if(!j&&!q)for(;w--;w)x.unshift(\"..\");!j||\"\"===x[0]||x[0]&&\"/\"===x[0].charAt(0)||x.unshift(\"\"),I&&\"/\"!==x.join(\"/\").substr(-1)&&x.push(\"\");var U,k=\"\"===x[0]||x[0]&&\"/\"===x[0].charAt(0);A&&(h.hostname=h.host=k?\"\":x.length?x.shift():\"\",(U=!!(h.host&&h.host.indexOf(\"@\")>0)&&h.host.split(\"@\"))&&(h.auth=U.shift(),h.host=h.hostname=U.shift()));return (j=j||h.host&&x.length)&&!k&&x.unshift(\"\"),x.length?h.pathname=x.join(\"/\"):(h.pathname=null,h.path=null),a.isNull(h.pathname)&&a.isNull(h.search)||(h.path=(h.pathname?h.pathname:\"\")+(h.search?h.search:\"\")),h.auth=t.auth||h.auth,h.slashes=h.slashes||t.slashes,h.href=h.format(),h},r.prototype.parseHost=function(){var t=this.host,s=n.exec(t);s&&(\":\"!==(s=s[0])&&(this.port=s.substr(1)),t=t.substr(0,t.length-s.length)),t&&(this.hostname=t);};\nh.Url;h.format;h.resolve;h.resolveObject;\n\nvar exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n var process = T;\n\n function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n } // Resolves . and .. elements in a path with directory names\n\n\n function normalizeStringPosix(path, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length) code = path.charCodeAt(i);else if (code === 47\n /*/*/\n ) break;else code = 47\n /*/*/\n ;\n\n if (code === 47\n /*/*/\n ) {\n if (lastSlash === i - 1 || dots === 1) ; else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46\n /*.*/\n || res.charCodeAt(res.length - 2) !== 46\n /*.*/\n ) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n if (res.length > 0) res += \"/..\";else res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += \"/\" + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n\n lastSlash = i;\n dots = 0;\n } else if (code === 46\n /*.*/\n && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n\n return res;\n }\n\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n\n if (!dir) {\n return base;\n }\n\n if (dir === pathObject.root) {\n return dir + base;\n }\n\n return dir + sep + base;\n }\n\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0) path = arguments[i];else {\n if (cwd === undefined) cwd = process.cwd();\n path = cwd;\n }\n assertPath(path); // Skip empty entries\n\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) return \"/\" + resolvedPath;else return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var isAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47\n /*/*/\n ; // Normalize the path\n\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute) path = \".\";\n if (path.length > 0 && trailingSeparator) path += \"/\";\n if (isAbsolute) return \"/\" + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47\n /*/*/\n ;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var joined;\n\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n\n if (arg.length > 0) {\n if (joined === undefined) joined = arg;else joined += \"/\" + arg;\n }\n }\n\n if (joined === undefined) return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to) return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) return \"\"; // Trim any leading backslashes\n\n var fromStart = 1;\n\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47\n /*/*/\n ) break;\n }\n\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart; // Trim any leading backslashes\n\n var toStart = 1;\n\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47\n /*/*/\n ) break;\n }\n\n var toEnd = to.length;\n var toLen = toEnd - toStart; // Compare paths to find the longest common path from root\n\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47\n /*/*/\n ) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47\n /*/*/\n ) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n\n break;\n }\n\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode) break;else if (fromCode === 47\n /*/*/\n ) lastCommonSep = i;\n }\n\n var out = \"\"; // Generate the relative path based on the path difference between `to`\n // and `from`\n\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47\n /*/*/\n ) {\n if (out.length === 0) out += \"..\";else out += \"/..\";\n }\n } // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n\n\n if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47\n /*/*/\n ) ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1) return \"//\";\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== \"string\") throw new TypeError(\"\\\"ext\\\" argument must be a string\");\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return \"\";\n return path.slice(start, end);\n }\n },\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError(\"The \\\"pathObject\\\" argument must be of type Object. Received type \" + typeof pathObject);\n }\n\n return _format(\"/\", pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47\n /*/*/\n ;\n var start;\n\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0; // Get non-dir info\n\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n exports = posix;\n return exports;\n}\n\nvar path = dew();\n\n// Copyright Joyent, Inc. and other Node contributors.\n\nconst processPlatform$1 = typeof Deno !== 'undefined' ? (Deno.build.os === \"windows\" ? \"win32\" : Deno.build.os) : undefined;\n\nh.URL = typeof URL !== 'undefined' ? URL : null;\nh.pathToFileURL = pathToFileURL$1;\nh.fileURLToPath = fileURLToPath$1;\n\nh.Url;\nh.format;\nh.resolve;\nh.resolveObject;\n\nh.URL;\n\nconst CHAR_BACKWARD_SLASH$1 = 92;\nconst CHAR_FORWARD_SLASH$1 = 47;\nconst CHAR_LOWERCASE_A$1 = 97;\nconst CHAR_LOWERCASE_Z$1 = 122;\n\nconst isWindows$1 = processPlatform$1 === 'win32';\n\nconst forwardSlashRegEx$1 = /\\//g;\nconst percentRegEx$1 = /%/g;\nconst backslashRegEx$1 = /\\\\/g;\nconst newlineRegEx$1 = /\\n/g;\nconst carriageReturnRegEx$1 = /\\r/g;\nconst tabRegEx$1 = /\\t/g;\n\n/**\n * Get fully resolved platform-specific file path from the given URL string/ object\n * @param path The file URL string or URL object to convert to a path\n */\nfunction fileURLToPath$1(path) {\n if (typeof path === \"string\") path = new URL(path);\n else if (!(path instanceof URL)) {\n throw new Deno.errors.InvalidData(\n \"invalid argument path , must be a string or URL\",\n );\n }\n if (path.protocol !== \"file:\") {\n throw new Deno.errors.InvalidData(\"invalid url scheme\");\n }\n return isWindows$1 ? getPathFromURLWin$1(path) : getPathFromURLPosix$1(path);\n}\n\nfunction getPathFromURLWin$1(url) {\n const hostname = url.hostname;\n let pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n const third = pathname.codePointAt(n + 2) || 0x20;\n if (\n (pathname[n + 1] === \"2\" && third === 102) || // 2f 2F /\n (pathname[n + 1] === \"5\" && third === 99)\n ) {\n // 5c 5C \\\n throw new Deno.errors.InvalidData(\n \"must not include encoded \\\\ or / characters\",\n );\n }\n }\n }\n\n pathname = pathname.replace(forwardSlashRegEx$1, \"\\\\\");\n pathname = decodeURIComponent(pathname);\n if (hostname !== \"\") {\n //TODO add support for punycode encodings\n return `\\\\\\\\${hostname}${pathname}`;\n } else {\n // Otherwise, it's a local path that requires a drive letter\n const letter = pathname.codePointAt(1) | 0x20;\n const sep = pathname[2];\n if (\n letter < CHAR_LOWERCASE_A$1 ||\n letter > CHAR_LOWERCASE_Z$1 || // a..z A..Z\n sep !== \":\"\n ) {\n throw new Deno.errors.InvalidData(\"file url path must be absolute\");\n }\n return pathname.slice(1);\n }\n}\nfunction getPathFromURLPosix$1(url) {\n if (url.hostname !== \"\") {\n throw new Deno.errors.InvalidData(\"invalid file url hostname\");\n }\n const pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n const third = pathname.codePointAt(n + 2) || 0x20;\n if (pathname[n + 1] === \"2\" && third === 102) {\n throw new Deno.errors.InvalidData(\n \"must not include encoded / characters\",\n );\n }\n }\n }\n return decodeURIComponent(pathname);\n}\n\n/** Get fully resolved platform-specific File URL from the given file path */\nfunction pathToFileURL$1(filepath) {\n let resolved = path.resolve(filepath);\n // path.resolve strips trailing slashes so we must add them back\n const filePathLast = filepath.charCodeAt(filepath.length - 1);\n if (\n (filePathLast === CHAR_FORWARD_SLASH$1 ||\n (isWindows$1 && filePathLast === CHAR_BACKWARD_SLASH$1)) &&\n resolved[resolved.length - 1] !== path.sep\n ) {\n resolved += \"/\";\n }\n const outURL = new URL(\"file://\");\n if (resolved.includes(\"%\")) resolved = resolved.replace(percentRegEx$1, \"%25\");\n // In posix, \"/\" is a valid character in paths\n if (!isWindows$1 && resolved.includes(\"\\\\\")) {\n resolved = resolved.replace(backslashRegEx$1, \"%5C\");\n }\n if (resolved.includes(\"\\n\")) resolved = resolved.replace(newlineRegEx$1, \"%0A\");\n if (resolved.includes(\"\\r\")) {\n resolved = resolved.replace(carriageReturnRegEx$1, \"%0D\");\n }\n if (resolved.includes(\"\\t\")) resolved = resolved.replace(tabRegEx$1, \"%09\");\n outURL.pathname = resolved;\n return outURL;\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\r\n\r\nconst processPlatform = typeof Deno !== 'undefined' ? (Deno.build.os === \"windows\" ? \"win32\" : Deno.build.os) : undefined;\r\n\r\nh.URL = typeof URL !== 'undefined' ? URL : null;\r\nh.pathToFileURL = pathToFileURL;\r\nh.fileURLToPath = fileURLToPath;\r\n\r\nh.Url;\r\nh.format;\r\nh.resolve;\r\nh.resolveObject;\r\nh.parse;\r\n\r\nh.URL;\r\n\r\nconst CHAR_BACKWARD_SLASH = 92;\r\nconst CHAR_FORWARD_SLASH = 47;\r\nconst CHAR_LOWERCASE_A = 97;\r\nconst CHAR_LOWERCASE_Z = 122;\r\n\r\nconst isWindows = processPlatform === 'win32';\r\n\r\nconst forwardSlashRegEx = /\\//g;\r\nconst percentRegEx = /%/g;\r\nconst backslashRegEx = /\\\\/g;\r\nconst newlineRegEx = /\\n/g;\r\nconst carriageReturnRegEx = /\\r/g;\r\nconst tabRegEx = /\\t/g;\r\n\r\n/**\r\n * Get fully resolved platform-specific file path from the given URL string/ object\r\n * @param path The file URL string or URL object to convert to a path\r\n */\r\nfunction fileURLToPath(path) {\r\n if (typeof path === \"string\") path = new URL(path);\r\n else if (!(path instanceof URL)) {\r\n throw new Deno.errors.InvalidData(\r\n \"invalid argument path , must be a string or URL\",\r\n );\r\n }\r\n if (path.protocol !== \"file:\") {\r\n throw new Deno.errors.InvalidData(\"invalid url scheme\");\r\n }\r\n return isWindows ? getPathFromURLWin(path) : getPathFromURLPosix(path);\r\n}\r\n\r\nfunction getPathFromURLWin(url) {\r\n const hostname = url.hostname;\r\n let pathname = url.pathname;\r\n for (let n = 0; n < pathname.length; n++) {\r\n if (pathname[n] === \"%\") {\r\n const third = pathname.codePointAt(n + 2) || 0x20;\r\n if (\r\n (pathname[n + 1] === \"2\" && third === 102) || // 2f 2F /\r\n (pathname[n + 1] === \"5\" && third === 99)\r\n ) {\r\n // 5c 5C \\\r\n throw new Deno.errors.InvalidData(\r\n \"must not include encoded \\\\ or / characters\",\r\n );\r\n }\r\n }\r\n }\r\n\r\n pathname = pathname.replace(forwardSlashRegEx, \"\\\\\");\r\n pathname = decodeURIComponent(pathname);\r\n if (hostname !== \"\") {\r\n //TODO add support for punycode encodings\r\n return `\\\\\\\\${hostname}${pathname}`;\r\n } else {\r\n // Otherwise, it's a local path that requires a drive letter\r\n const letter = pathname.codePointAt(1) | 0x20;\r\n const sep = pathname[2];\r\n if (\r\n letter < CHAR_LOWERCASE_A ||\r\n letter > CHAR_LOWERCASE_Z || // a..z A..Z\r\n sep !== \":\"\r\n ) {\r\n throw new Deno.errors.InvalidData(\"file url path must be absolute\");\r\n }\r\n return pathname.slice(1);\r\n }\r\n}\r\nfunction getPathFromURLPosix(url) {\r\n if (url.hostname !== \"\") {\r\n throw new Deno.errors.InvalidData(\"invalid file url hostname\");\r\n }\r\n const pathname = url.pathname;\r\n for (let n = 0; n < pathname.length; n++) {\r\n if (pathname[n] === \"%\") {\r\n const third = pathname.codePointAt(n + 2) || 0x20;\r\n if (pathname[n + 1] === \"2\" && third === 102) {\r\n throw new Deno.errors.InvalidData(\r\n \"must not include encoded / characters\",\r\n );\r\n }\r\n }\r\n }\r\n return decodeURIComponent(pathname);\r\n}\r\n\r\n/** Get fully resolved platform-specific File URL from the given file path */\r\nfunction pathToFileURL(filepath) {\r\n let resolved = exports$2.resolve(filepath);\r\n // path.resolve strips trailing slashes so we must add them back\r\n const filePathLast = filepath.charCodeAt(filepath.length - 1);\r\n if (\r\n (filePathLast === CHAR_FORWARD_SLASH ||\r\n (isWindows && filePathLast === CHAR_BACKWARD_SLASH)) &&\r\n resolved[resolved.length - 1] !== exports$2.sep\r\n ) {\r\n resolved += \"/\";\r\n }\r\n const outURL = new URL(\"file://\");\r\n if (resolved.includes(\"%\")) resolved = resolved.replace(percentRegEx, \"%25\");\r\n // In posix, \"/\" is a valid character in paths\r\n if (!isWindows && resolved.includes(\"\\\\\")) {\r\n resolved = resolved.replace(backslashRegEx, \"%5C\");\r\n }\r\n if (resolved.includes(\"\\n\")) resolved = resolved.replace(newlineRegEx, \"%0A\");\r\n if (resolved.includes(\"\\r\")) {\r\n resolved = resolved.replace(carriageReturnRegEx, \"%0D\");\r\n }\r\n if (resolved.includes(\"\\t\")) resolved = resolved.replace(tabRegEx, \"%09\");\r\n outURL.pathname = resolved;\r\n return outURL;\r\n}\n\nexport { exports$2 as e, h };\n", "import { d as dew$m } from './chunk-CkFCi-G1.js';\nimport './chunk-DtDiafJB.js';\nimport { y } from './chunk-tHuMsdT0.js';\nimport { d as dew$l } from './chunk-DtuTasat.js';\nimport './chunk-CbQqNoLO.js';\nimport { X } from './chunk-D3uu3VYh.js';\nimport { p as process } from './chunk-DEMDiNwt.js';\nimport { d as dew$n } from './chunk-BsRZ0PEC.js';\nimport { e as exports$m } from './chunk-CcCWfKp1.js';\nimport { h } from './chunk-DHWh-hmB.js';\nimport './chunk-b0rmRow7.js';\n\nvar exports$l = {},\n _dewExec$k = false;\nvar _global$5 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew$k() {\n if (_dewExec$k) return exports$l;\n _dewExec$k = true;\n exports$l.fetch = isFunction(_global$5.fetch) && isFunction(_global$5.ReadableStream);\n exports$l.writableStream = isFunction(_global$5.WritableStream);\n exports$l.abortController = isFunction(_global$5.AbortController);\n\n // The xhr request to example.com may violate some restrictive CSP configurations,\n // so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n // and assume support for certain features below.\n var xhr;\n function getXHR() {\n // Cache the xhr value\n if (xhr !== undefined) return xhr;\n if (_global$5.XMLHttpRequest) {\n xhr = new _global$5.XMLHttpRequest();\n // If XDomainRequest is available (ie only, where xhr might not work\n // cross domain), use the page location. Otherwise use example.com\n // Note: this doesn't actually make an http request.\n try {\n xhr.open(\"GET\", _global$5.XDomainRequest ? \"/\" : \"https://example.com\");\n } catch (e) {\n xhr = null;\n }\n } else {\n // Service workers don't have XHR\n xhr = null;\n }\n return xhr;\n }\n function checkTypeSupport(type) {\n var xhr = getXHR();\n if (!xhr) return false;\n try {\n xhr.responseType = type;\n return xhr.responseType === type;\n } catch (e) {}\n return false;\n }\n\n // If fetch is supported, then arraybuffer will be supported too. Skip calling\n // checkTypeSupport(), since that calls getXHR().\n exports$l.arraybuffer = exports$l.fetch || checkTypeSupport(\"arraybuffer\");\n\n // These next two tests unavoidably show warnings in Chrome. Since fetch will always\n // be used if it's available, just return false for these to avoid the warnings.\n exports$l.msstream = !exports$l.fetch && checkTypeSupport(\"ms-stream\");\n exports$l.mozchunkedarraybuffer = !exports$l.fetch && checkTypeSupport(\"moz-chunked-arraybuffer\");\n\n // If fetch is supported, then overrideMimeType will be supported too. Skip calling\n // getXHR().\n exports$l.overrideMimeType = exports$l.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false);\n function isFunction(value) {\n return typeof value === \"function\";\n }\n xhr = null; // Help gc\n return exports$l;\n}\n\nvar exports$k = {},\n _dewExec$j = false;\nfunction dew$j() {\n if (_dewExec$j) return exports$k;\n _dewExec$j = true;\n exports$k = y.EventEmitter;\n return exports$k;\n}\n\nvar exports$j = {},\n _dewExec$i = false;\nfunction dew$i() {\n if (_dewExec$i) return exports$j;\n _dewExec$i = true;\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n var _require = dew$l(),\n Buffer = _require.Buffer;\n var _require2 = X,\n inspect = _require2.inspect;\n var custom = inspect && inspect.custom || \"inspect\";\n function copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n }\n exports$j = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return \"\";\n var p = this.head;\n var ret = \"\" + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n return exports$j;\n}\n\nvar exports$i = {},\n _dewExec$h = false;\nfunction dew$h() {\n if (_dewExec$h) return exports$i;\n _dewExec$h = true;\n var process$1 = process;\n // undocumented cb() API, needed for core, not for public API\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process$1.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process$1.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process$1.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process$1.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process$1.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process$1.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process$1.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n }\n function emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit(\"close\");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self, err) {\n self.emit(\"error\", err);\n }\n function errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit(\"error\", err);\n }\n exports$i = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n };\n return exports$i;\n}\n\nvar exports$h = {},\n _dewExec$g = false;\nfunction dew$g() {\n if (_dewExec$g) return exports$h;\n _dewExec$g = true;\n const codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === \"string\") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n class NodeError extends Base {\n constructor(arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n\n // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map(i => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(\", \")}, or ` + expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n function startsWith(str, search, pos) {\n return str.substr(0 , search.length) === search;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n function endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n function includes(str, search, start) {\n if (typeof start !== \"number\") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType(\"ERR_INVALID_OPT_VALUE\", function (name, value) {\n return \"The value \\\"\" + value + \"\\\" is invalid for option \\\"\" + name + \"\\\"\";\n }, TypeError);\n createErrorType(\"ERR_INVALID_ARG_TYPE\", function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === \"string\" && startsWith(expected, \"not \")) {\n determiner = \"must not be\";\n expected = expected.replace(/^not /, \"\");\n } else {\n determiner = \"must be\";\n }\n let msg;\n if (endsWith(name, \" argument\")) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, \"type\")}`;\n } else {\n const type = includes(name, \".\") ? \"property\" : \"argument\";\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, \"type\")}`;\n }\n msg += `. Received type ${typeof actual}`;\n return msg;\n }, TypeError);\n createErrorType(\"ERR_STREAM_PUSH_AFTER_EOF\", \"stream.push() after EOF\");\n createErrorType(\"ERR_METHOD_NOT_IMPLEMENTED\", function (name) {\n return \"The \" + name + \" method is not implemented\";\n });\n createErrorType(\"ERR_STREAM_PREMATURE_CLOSE\", \"Premature close\");\n createErrorType(\"ERR_STREAM_DESTROYED\", function (name) {\n return \"Cannot call \" + name + \" after a stream was destroyed\";\n });\n createErrorType(\"ERR_MULTIPLE_CALLBACK\", \"Callback called multiple times\");\n createErrorType(\"ERR_STREAM_CANNOT_PIPE\", \"Cannot pipe, not readable\");\n createErrorType(\"ERR_STREAM_WRITE_AFTER_END\", \"write after end\");\n createErrorType(\"ERR_STREAM_NULL_VALUES\", \"May not write null values to stream\", TypeError);\n createErrorType(\"ERR_UNKNOWN_ENCODING\", function (arg) {\n return \"Unknown encoding: \" + arg;\n }, TypeError);\n createErrorType(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\", \"stream.unshift() after end event\");\n exports$h.codes = codes;\n return exports$h;\n}\n\nvar exports$g = {},\n _dewExec$f = false;\nfunction dew$f() {\n if (_dewExec$f) return exports$g;\n _dewExec$f = true;\n var ERR_INVALID_OPT_VALUE = dew$g().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : \"highWaterMark\";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n }\n exports$g = {\n getHighWaterMark: getHighWaterMark\n };\n return exports$g;\n}\n\nvar exports$f = {},\n _dewExec$e = false;\nvar _global$4 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew$e() {\n if (_dewExec$e) return exports$f;\n _dewExec$e = true;\n var process$1 = process;\n exports$f = Writable;\n\n // It seems a linked list but it is not\n // there will be only 2 of these for each stream\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n }\n /* </replacement> */\n\n /*<replacement>*/\n var Duplex;\n /*</replacement>*/\n\n Writable.WritableState = WritableState;\n\n /*<replacement>*/\n var internalUtil = {\n deprecate: dew$n()\n };\n /*</replacement>*/\n\n /*<replacement>*/\n var Stream = dew$j();\n /*</replacement>*/\n\n var Buffer = dew$l().Buffer;\n var OurUint8Array = (typeof _global$4 !== \"undefined\" ? _global$4 : typeof window !== \"undefined\" ? window : typeof self !== \"undefined\" ? self : {}).Uint8Array || function () {};\n function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = dew$h();\n var _require = dew$f(),\n getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = dew$g().codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n dew$m()(Writable, Stream);\n function nop() {}\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || dew$d();\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, \"writableHighWaterMark\", isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || \"utf8\";\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function () {\n try {\n Object.defineProperty(WritableState.prototype, \"buffer\", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, \"_writableState.buffer is deprecated. Use _writableState.getBuffer \" + \"instead.\", \"DEP0003\")\n });\n } catch (_) {}\n })();\n\n // Test _writableState for inheritance to account for Duplex streams,\n // whose prototype chain only points to Readable.\n var realHasInstance;\n if (typeof Symbol === \"function\" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === \"function\") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || dew$d();\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === \"function\") this._write = options.write;\n if (typeof options.writev === \"function\") this._writev = options.writev;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n if (typeof options.final === \"function\") this._final = options.final;\n }\n Stream.call(this);\n }\n\n // Otherwise people can pipe Writable streams, which is just wrong.\n Writable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process$1.nextTick(cb, er);\n }\n\n // Checks that a user-supplied chunk is valid, especially for the particular\n // mode the stream is in. Currently this means that `null` is never accepted\n // and undefined/non-string values are only allowed in object mode.\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== \"string\" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE(\"chunk\", [\"string\", \"Buffer\"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process$1.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === \"function\") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = \"buffer\";else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== \"function\") cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function () {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === \"string\") encoding = encoding.toLowerCase();\n if (!([\"hex\", \"utf8\", \"utf-8\", \"ascii\", \"binary\", \"base64\", \"ucs2\", \"ucs-2\", \"utf16le\", \"utf-16le\", \"raw\"].indexOf((encoding + \"\").toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === \"string\") {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n\n // if we're already writing something, then just put this\n // in the queue, and wait our turn. Otherwise, call _write\n // If we return false, then we need a drain event, so set that flag.\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = \"buffer\";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED(\"write\"));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process$1.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process$1.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== \"function\") throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process$1.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n\n // Must force callback to be called on nextTick, so that we don't\n // emit 'drain' before the write() consumer gets the 'false' return\n // value, and has a chance to attach a 'drain' listener.\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit(\"drain\");\n }\n }\n\n // if there's something in the buffer waiting, then process it\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, \"\", holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_write()\"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === \"function\") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === \"function\") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit(\"prefinish\");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === \"function\" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process$1.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit(\"prefinish\");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit(\"finish\");\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process$1.nextTick(cb);else stream.once(\"finish\", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function (err, cb) {\n cb(err);\n };\n return exports$f;\n}\n\nvar exports$e = {},\n _dewExec$d = false;\nfunction dew$d() {\n if (_dewExec$d) return exports$e;\n _dewExec$d = true;\n var process$1 = process;\n /*<replacement>*/\n var objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n };\n /*</replacement>*/\n\n exports$e = Duplex;\n var Readable = dew$9();\n var Writable = dew$e();\n dew$m()(Duplex, Readable);\n {\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once(\"end\", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n\n // the no-half-open enforcer\n function onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process$1.nextTick(onEndNT, this);\n }\n function onEndNT(self) {\n self.end();\n }\n Object.defineProperty(Duplex.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n return exports$e;\n}\n\nvar exports$d = {},\n _dewExec$c = false;\nfunction dew$c() {\n if (_dewExec$c) return exports$d;\n _dewExec$c = true;\n var ERR_STREAM_PREMATURE_CLOSE = dew$g().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop() {}\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === \"function\") return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on(\"finish\", onfinish);\n };\n if (isRequest(stream)) {\n stream.on(\"complete\", onfinish);\n stream.on(\"abort\", onclose);\n if (stream.req) onrequest();else stream.on(\"request\", onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on(\"end\", onlegacyfinish);\n stream.on(\"close\", onlegacyfinish);\n }\n stream.on(\"end\", onend);\n stream.on(\"finish\", onfinish);\n if (opts.error !== false) stream.on(\"error\", onerror);\n stream.on(\"close\", onclose);\n return function () {\n stream.removeListener(\"complete\", onfinish);\n stream.removeListener(\"abort\", onclose);\n stream.removeListener(\"request\", onrequest);\n if (stream.req) stream.req.removeListener(\"finish\", onfinish);\n stream.removeListener(\"end\", onlegacyfinish);\n stream.removeListener(\"close\", onlegacyfinish);\n stream.removeListener(\"finish\", onfinish);\n stream.removeListener(\"end\", onend);\n stream.removeListener(\"error\", onerror);\n stream.removeListener(\"close\", onclose);\n };\n }\n exports$d = eos;\n return exports$d;\n}\n\nvar exports$c = {},\n _dewExec$b = false;\nfunction dew$b() {\n if (_dewExec$b) return exports$c;\n _dewExec$b = true;\n var process$1 = process;\n var _Object$setPrototypeO;\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n var finished = dew$c();\n var kLastResolve = Symbol(\"lastResolve\");\n var kLastReject = Symbol(\"lastReject\");\n var kError = Symbol(\"error\");\n var kEnded = Symbol(\"ended\");\n var kLastPromise = Symbol(\"lastPromise\");\n var kHandlePromise = Symbol(\"handlePromise\");\n var kStream = Symbol(\"stream\");\n function createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process$1.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process$1.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n }), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== \"ERR_STREAM_PREMATURE_CLOSE\") {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on(\"readable\", onReadable.bind(null, iterator));\n return iterator;\n };\n exports$c = createReadableStreamAsyncIterator;\n return exports$c;\n}\n\nvar exports$b = {},\n _dewExec$a = false;\nfunction dew$a() {\n if (_dewExec$a) return exports$b;\n _dewExec$a = true;\n exports$b = function () {\n throw new Error(\"Readable.from is not available in the browser\");\n };\n return exports$b;\n}\n\nvar exports$a = {},\n _dewExec$9 = false;\nvar _global$3 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew$9() {\n if (_dewExec$9) return exports$a;\n _dewExec$9 = true;\n var process$1 = process;\n exports$a = Readable;\n\n /*<replacement>*/\n var Duplex;\n /*</replacement>*/\n\n Readable.ReadableState = ReadableState;\n\n /*<replacement>*/\n y.EventEmitter;\n var EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n };\n /*</replacement>*/\n\n /*<replacement>*/\n var Stream = dew$j();\n /*</replacement>*/\n\n var Buffer = dew$l().Buffer;\n var OurUint8Array = (typeof _global$3 !== \"undefined\" ? _global$3 : typeof window !== \"undefined\" ? window : typeof self !== \"undefined\" ? self : {}).Uint8Array || function () {};\n function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n\n /*<replacement>*/\n var debugUtil = X;\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog(\"stream\");\n } else {\n debug = function debug() {};\n }\n /*</replacement>*/\n\n var BufferList = dew$i();\n var destroyImpl = dew$h();\n var _require = dew$f(),\n getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = dew$g().codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n // Lazy loaded to improve the startup performance.\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n dew$m()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = [\"error\", \"close\", \"destroy\", \"pause\", \"resume\"];\n function prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === \"function\") return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || dew$d();\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, \"readableHighWaterMark\", isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || \"utf8\";\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = exports$m.StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || dew$d();\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === \"function\") this._read = options.read;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function (err, cb) {\n cb(err);\n };\n\n // Manually shove something into the read() buffer.\n // This returns true if the highWaterMark has not been hit yet,\n // similar to how Writable.write() returns true if you should\n // write() some more.\n Readable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === \"string\") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = \"\";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n\n // Unshift should *always* be something directly out of read()\n Readable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug(\"readableAddChunk\", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== \"string\" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit(\"data\", chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== \"string\" && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE(\"chunk\", [\"string\", \"Buffer\", \"Uint8Array\"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n };\n\n // backwards compatibility.\n Readable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = exports$m.StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = \"\";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== \"\") this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n\n // Don't raise the hwm > 1GB\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n\n // you can override either this method, or the async _read(n) below.\n Readable.prototype.read = function (n) {\n debug(\"read\", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug(\"read: emitReadable\", state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug(\"need readable\", doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug(\"length less than watermark\", doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug(\"reading or ended\", doRead);\n } else if (doRead) {\n debug(\"do read\");\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit(\"data\", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug(\"onEofChunk\");\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n\n // Don't emit readable right away in sync mode, because this can trigger\n // another read() call => stack overflow. This way, it might trigger\n // a nextTick recursion warning, but that's not so bad.\n function emitReadable(stream) {\n var state = stream._readableState;\n debug(\"emitReadable\", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug(\"emitReadable\", state.flowing);\n state.emittedReadable = true;\n process$1.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug(\"emitReadable_\", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit(\"readable\");\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n\n // at this point, the user has presumably seen the 'readable' event,\n // and called read() to consume some data. that may have triggered\n // in turn another _read(n) call, in which case reading = true if\n // it's in progress.\n // However, if we're not ended, or reading, and the length < hwm,\n // then go ahead and try to read some more preemptively.\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process$1.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug(\"maybeReadMore read 0\");\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n }\n\n // abstract method. to be overridden in specific implementation classes.\n // call cb(er, data) where data is <= n in length.\n // for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n // arbitrary, and perhaps not very meaningful.\n Readable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED(\"_read()\"));\n };\n Readable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug(\"pipe count=%d opts=%j\", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process$1.stdout && dest !== process$1.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process$1.nextTick(endFn);else src.once(\"end\", endFn);\n dest.on(\"unpipe\", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug(\"onunpipe\");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug(\"onend\");\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on(\"drain\", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug(\"cleanup\");\n // cleanup event handlers once the pipe is broken\n dest.removeListener(\"close\", onclose);\n dest.removeListener(\"finish\", onfinish);\n dest.removeListener(\"drain\", ondrain);\n dest.removeListener(\"error\", onerror);\n dest.removeListener(\"unpipe\", onunpipe);\n src.removeListener(\"end\", onend);\n src.removeListener(\"end\", unpipe);\n src.removeListener(\"data\", ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on(\"data\", ondata);\n function ondata(chunk) {\n debug(\"ondata\");\n var ret = dest.write(chunk);\n debug(\"dest.write\", ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug(\"false write response, pause\", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug(\"onerror\", er);\n unpipe();\n dest.removeListener(\"error\", onerror);\n if (EElistenerCount(dest, \"error\") === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, \"error\", onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener(\"finish\", onfinish);\n unpipe();\n }\n dest.once(\"close\", onclose);\n function onfinish() {\n debug(\"onfinish\");\n dest.removeListener(\"close\", onclose);\n unpipe();\n }\n dest.once(\"finish\", onfinish);\n function unpipe() {\n debug(\"unpipe\");\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit(\"pipe\", src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug(\"pipe resume\");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug(\"pipeOnDrain\", state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, \"data\")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit(\"unpipe\", this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n };\n\n // set up data events if they are asked for\n // Ensure readable listeners eventually get something\n Readable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === \"data\") {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount(\"readable\") > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === \"readable\") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug(\"on readable\", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process$1.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === \"readable\") {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process$1.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === \"readable\" || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process$1.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount(\"readable\") > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount(\"data\") > 0) {\n self.resume();\n }\n }\n function nReadingNextTick(self) {\n debug(\"readable nexttick read 0\");\n self.read(0);\n }\n\n // pause() and resume() are remnants of the legacy readable stream API\n // If the user uses them, then switch into old mode.\n Readable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug(\"resume\");\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process$1.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug(\"resume\", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit(\"resume\");\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n }\n Readable.prototype.pause = function () {\n debug(\"call pause flowing=%j\", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug(\"pause\");\n this._readableState.flowing = false;\n this.emit(\"pause\");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug(\"flow\", state.flowing);\n while (state.flowing && stream.read() !== null);\n }\n\n // wrap an old-style stream as the async data source.\n // This is *not* part of the readable stream interface.\n // It is an ugly unfortunate mess of history.\n Readable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on(\"end\", function () {\n debug(\"wrapped end\");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on(\"data\", function (chunk) {\n debug(\"wrapped data\");\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === \"function\") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug(\"wrapped _read\", n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === \"function\") {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = dew$b();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, \"readableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableFlowing\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n\n // exposed for testing purposes only.\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, \"readableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n\n // Pluck off n bytes from an array of buffers.\n // Length is the combined lengths of all the buffers in the list.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n function fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join(\"\");else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug(\"endReadable\", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process$1.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug(\"endReadableNT\", state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit(\"end\");\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === \"function\") {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = dew$a();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n }\n return exports$a;\n}\n\nvar exports$9 = {},\n _dewExec$8 = false;\nfunction dew$8() {\n if (_dewExec$8) return exports$9;\n _dewExec$8 = true;\n exports$9 = Transform;\n var _require$codes = dew$g().codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = dew$d();\n dew$m()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit(\"error\", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === \"function\") this._transform = options.transform;\n if (typeof options.flush === \"function\") this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on(\"prefinish\", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === \"function\" && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n\n // This is the part where you do stuff!\n // override this function in implementation classes.\n // 'chunk' is an input chunk.\n //\n // Call `push(newChunk)` to pass along transformed output\n // to the readable side. You may call 'push' zero or more times.\n //\n // Call `cb(err)` when you are done with this chunk. If you pass\n // an error, then that'll put the hurt on the whole operation. If you\n // never call cb(), then you'll never get another chunk.\n Transform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_transform()\"));\n };\n Transform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n };\n\n // Doesn't matter what the args are here.\n // _transform does all the work.\n // That we got here means that the readable side wants more data.\n Transform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er) return stream.emit(\"error\", er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n return exports$9;\n}\n\nvar exports$8 = {},\n _dewExec$7 = false;\nfunction dew$7() {\n if (_dewExec$7) return exports$8;\n _dewExec$7 = true;\n exports$8 = PassThrough;\n var Transform = dew$8();\n dew$m()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n };\n return exports$8;\n}\n\nvar exports$7 = {},\n _dewExec$6 = false;\nfunction dew$6() {\n if (_dewExec$6) return exports$7;\n _dewExec$6 = true;\n var eos;\n function once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = dew$g().codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on(\"close\", function () {\n closed = true;\n });\n if (eos === undefined) eos = dew$c();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === \"function\") return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED(\"pipe\"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== \"function\") return noop;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS(\"streams\");\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n exports$7 = pipeline;\n return exports$7;\n}\n\nvar exports$6 = {},\n _dewExec$5 = false;\nfunction dew$5() {\n if (_dewExec$5) return exports$6;\n _dewExec$5 = true;\n exports$6 = exports$6 = dew$9();\n exports$6.Stream = exports$6;\n exports$6.Readable = exports$6;\n exports$6.Writable = dew$e();\n exports$6.Duplex = dew$d();\n exports$6.Transform = dew$8();\n exports$6.PassThrough = dew$7();\n exports$6.finished = dew$c();\n exports$6.pipeline = dew$6();\n return exports$6;\n}\n\nvar exports$5 = {},\n _dewExec$4 = false;\nvar _global$2 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew$4() {\n if (_dewExec$4) return exports$5;\n _dewExec$4 = true;\n var Buffer = dew$l().Buffer;\n var process$1 = process;\n var capability = dew$k();\n var inherits = dew$m();\n var stream = dew$5();\n var rStates = exports$5.readyStates = {\n UNSENT: 0,\n OPENED: 1,\n HEADERS_RECEIVED: 2,\n LOADING: 3,\n DONE: 4\n };\n var IncomingMessage = exports$5.IncomingMessage = function (xhr, response, mode, resetTimers) {\n var self = this || _global$2;\n stream.Readable.call(self);\n self._mode = mode;\n self.headers = {};\n self.rawHeaders = [];\n self.trailers = {};\n self.rawTrailers = [];\n\n // Fake the 'close' event, but only once 'end' fires\n self.on(\"end\", function () {\n // The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n process$1.nextTick(function () {\n self.emit(\"close\");\n });\n });\n if (mode === \"fetch\") {\n self._fetchResponse = response;\n self.url = response.url;\n self.statusCode = response.status;\n self.statusMessage = response.statusText;\n response.headers.forEach(function (header, key) {\n self.headers[key.toLowerCase()] = header;\n self.rawHeaders.push(key, header);\n });\n if (capability.writableStream) {\n var writable = new WritableStream({\n write: function (chunk) {\n resetTimers(false);\n return new Promise(function (resolve, reject) {\n if (self._destroyed) {\n reject();\n } else if (self.push(Buffer.from(chunk))) {\n resolve();\n } else {\n self._resumeFetch = resolve;\n }\n });\n },\n close: function () {\n resetTimers(true);\n if (!self._destroyed) self.push(null);\n },\n abort: function (err) {\n resetTimers(true);\n if (!self._destroyed) self.emit(\"error\", err);\n }\n });\n try {\n response.body.pipeTo(writable).catch(function (err) {\n resetTimers(true);\n if (!self._destroyed) self.emit(\"error\", err);\n });\n return;\n } catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n }\n // fallback for when writableStream or pipeTo aren't available\n var reader = response.body.getReader();\n function read() {\n reader.read().then(function (result) {\n if (self._destroyed) return;\n resetTimers(result.done);\n if (result.done) {\n self.push(null);\n return;\n }\n self.push(Buffer.from(result.value));\n read();\n }).catch(function (err) {\n resetTimers(true);\n if (!self._destroyed) self.emit(\"error\", err);\n });\n }\n read();\n } else {\n self._xhr = xhr;\n self._pos = 0;\n self.url = xhr.responseURL;\n self.statusCode = xhr.status;\n self.statusMessage = xhr.statusText;\n var headers = xhr.getAllResponseHeaders().split(/\\r?\\n/);\n headers.forEach(function (header) {\n var matches = header.match(/^([^:]+):\\s*(.*)/);\n if (matches) {\n var key = matches[1].toLowerCase();\n if (key === \"set-cookie\") {\n if (self.headers[key] === undefined) {\n self.headers[key] = [];\n }\n self.headers[key].push(matches[2]);\n } else if (self.headers[key] !== undefined) {\n self.headers[key] += \", \" + matches[2];\n } else {\n self.headers[key] = matches[2];\n }\n self.rawHeaders.push(matches[1], matches[2]);\n }\n });\n self._charset = \"x-user-defined\";\n if (!capability.overrideMimeType) {\n var mimeType = self.rawHeaders[\"mime-type\"];\n if (mimeType) {\n var charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/);\n if (charsetMatch) {\n self._charset = charsetMatch[1].toLowerCase();\n }\n }\n if (!self._charset) self._charset = \"utf-8\"; // best guess\n }\n }\n };\n inherits(IncomingMessage, stream.Readable);\n IncomingMessage.prototype._read = function () {\n var self = this || _global$2;\n var resolve = self._resumeFetch;\n if (resolve) {\n self._resumeFetch = null;\n resolve();\n }\n };\n IncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n var self = this || _global$2;\n var xhr = self._xhr;\n var response = null;\n switch (self._mode) {\n case \"text\":\n response = xhr.responseText;\n if (response.length > self._pos) {\n var newData = response.substr(self._pos);\n if (self._charset === \"x-user-defined\") {\n var buffer = Buffer.alloc(newData.length);\n for (var i = 0; i < newData.length; i++) buffer[i] = newData.charCodeAt(i) & 255;\n self.push(buffer);\n } else {\n self.push(newData, self._charset);\n }\n self._pos = response.length;\n }\n break;\n case \"arraybuffer\":\n if (xhr.readyState !== rStates.DONE || !xhr.response) break;\n response = xhr.response;\n self.push(Buffer.from(new Uint8Array(response)));\n break;\n case \"moz-chunked-arraybuffer\":\n // take whole\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING || !response) break;\n self.push(Buffer.from(new Uint8Array(response)));\n break;\n case \"ms-stream\":\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING) break;\n var reader = new _global$2.MSStreamReader();\n reader.onprogress = function () {\n if (reader.result.byteLength > self._pos) {\n self.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))));\n self._pos = reader.result.byteLength;\n }\n };\n reader.onload = function () {\n resetTimers(true);\n self.push(null);\n };\n // reader.onerror = ??? // TODO: this\n reader.readAsArrayBuffer(response);\n break;\n }\n\n // The ms-stream case handles end separately in reader.onload()\n if (self._xhr.readyState === rStates.DONE && self._mode !== \"ms-stream\") {\n resetTimers(true);\n self.push(null);\n }\n };\n return exports$5;\n}\n\nvar exports$4 = {},\n _dewExec$3 = false;\nvar _global$1 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew$3() {\n if (_dewExec$3) return exports$4;\n _dewExec$3 = true;\n var Buffer = dew$l().Buffer;\n var process$1 = process;\n var capability = dew$k();\n var inherits = dew$m();\n var response = dew$4();\n var stream = dew$5();\n var IncomingMessage = response.IncomingMessage;\n var rStates = response.readyStates;\n function decideMode(preferBinary, useFetch) {\n if (capability.fetch && useFetch) {\n return \"fetch\";\n } else if (capability.mozchunkedarraybuffer) {\n return \"moz-chunked-arraybuffer\";\n } else if (capability.msstream) {\n return \"ms-stream\";\n } else if (capability.arraybuffer && preferBinary) {\n return \"arraybuffer\";\n } else {\n return \"text\";\n }\n }\n var ClientRequest = exports$4 = function (opts) {\n var self = this || _global$1;\n stream.Writable.call(self);\n self._opts = opts;\n self._body = [];\n self._headers = {};\n if (opts.auth) self.setHeader(\"Authorization\", \"Basic \" + Buffer.from(opts.auth).toString(\"base64\"));\n Object.keys(opts.headers).forEach(function (name) {\n self.setHeader(name, opts.headers[name]);\n });\n var preferBinary;\n var useFetch = true;\n if (opts.mode === \"disable-fetch\" || \"requestTimeout\" in opts && !capability.abortController) {\n // If the use of XHR should be preferred. Not typically needed.\n useFetch = false;\n preferBinary = true;\n } else if (opts.mode === \"prefer-streaming\") {\n // If streaming is a high priority but binary compatibility and\n // the accuracy of the 'content-type' header aren't\n preferBinary = false;\n } else if (opts.mode === \"allow-wrong-content-type\") {\n // If streaming is more important than preserving the 'content-type' header\n preferBinary = !capability.overrideMimeType;\n } else if (!opts.mode || opts.mode === \"default\" || opts.mode === \"prefer-fast\") {\n // Use binary if text streaming may corrupt data or the content-type header, or for speed\n preferBinary = true;\n } else {\n throw new Error(\"Invalid value for opts.mode\");\n }\n self._mode = decideMode(preferBinary, useFetch);\n self._fetchTimer = null;\n self._socketTimeout = null;\n self._socketTimer = null;\n self.on(\"finish\", function () {\n self._onFinish();\n });\n };\n inherits(ClientRequest, stream.Writable);\n ClientRequest.prototype.setHeader = function (name, value) {\n var self = this || _global$1;\n var lowerName = name.toLowerCase();\n // This check is not necessary, but it prevents warnings from browsers about setting unsafe\n // headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n // http-browserify did it, so I will too.\n if (unsafeHeaders.indexOf(lowerName) !== -1) return;\n self._headers[lowerName] = {\n name: name,\n value: value\n };\n };\n ClientRequest.prototype.getHeader = function (name) {\n var header = (this || _global$1)._headers[name.toLowerCase()];\n if (header) return header.value;\n return null;\n };\n ClientRequest.prototype.removeHeader = function (name) {\n var self = this || _global$1;\n delete self._headers[name.toLowerCase()];\n };\n ClientRequest.prototype._onFinish = function () {\n var self = this || _global$1;\n if (self._destroyed) return;\n var opts = self._opts;\n if (\"timeout\" in opts && opts.timeout !== 0) {\n self.setTimeout(opts.timeout);\n }\n var headersObj = self._headers;\n var body = null;\n if (opts.method !== \"GET\" && opts.method !== \"HEAD\") {\n body = new Blob(self._body, {\n type: (headersObj[\"content-type\"] || {}).value || \"\"\n });\n }\n\n // create flattened list of headers\n var headersList = [];\n Object.keys(headersObj).forEach(function (keyName) {\n var name = headersObj[keyName].name;\n var value = headersObj[keyName].value;\n if (Array.isArray(value)) {\n value.forEach(function (v) {\n headersList.push([name, v]);\n });\n } else {\n headersList.push([name, value]);\n }\n });\n if (self._mode === \"fetch\") {\n var signal = null;\n if (capability.abortController) {\n var controller = new AbortController();\n signal = controller.signal;\n self._fetchAbortController = controller;\n if (\"requestTimeout\" in opts && opts.requestTimeout !== 0) {\n self._fetchTimer = _global$1.setTimeout(function () {\n self.emit(\"requestTimeout\");\n if (self._fetchAbortController) self._fetchAbortController.abort();\n }, opts.requestTimeout);\n }\n }\n _global$1.fetch(self._opts.url, {\n method: self._opts.method,\n headers: headersList,\n body: body || undefined,\n mode: \"cors\",\n credentials: opts.withCredentials ? \"include\" : \"same-origin\",\n signal: signal\n }).then(function (response) {\n self._fetchResponse = response;\n self._resetTimers(false);\n self._connect();\n }, function (reason) {\n self._resetTimers(true);\n if (!self._destroyed) self.emit(\"error\", reason);\n });\n } else {\n var xhr = self._xhr = new _global$1.XMLHttpRequest();\n try {\n xhr.open(self._opts.method, self._opts.url, true);\n } catch (err) {\n process$1.nextTick(function () {\n self.emit(\"error\", err);\n });\n return;\n }\n\n // Can't set responseType on really old browsers\n if (\"responseType\" in xhr) xhr.responseType = self._mode;\n if (\"withCredentials\" in xhr) xhr.withCredentials = !!opts.withCredentials;\n if (self._mode === \"text\" && \"overrideMimeType\" in xhr) xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\n if (\"requestTimeout\" in opts) {\n xhr.timeout = opts.requestTimeout;\n xhr.ontimeout = function () {\n self.emit(\"requestTimeout\");\n };\n }\n headersList.forEach(function (header) {\n xhr.setRequestHeader(header[0], header[1]);\n });\n self._response = null;\n xhr.onreadystatechange = function () {\n switch (xhr.readyState) {\n case rStates.LOADING:\n case rStates.DONE:\n self._onXHRProgress();\n break;\n }\n };\n // Necessary for streaming in Firefox, since xhr.response is ONLY defined\n // in onprogress, not in onreadystatechange with xhr.readyState = 3\n if (self._mode === \"moz-chunked-arraybuffer\") {\n xhr.onprogress = function () {\n self._onXHRProgress();\n };\n }\n xhr.onerror = function () {\n if (self._destroyed) return;\n self._resetTimers(true);\n self.emit(\"error\", new Error(\"XHR error\"));\n };\n try {\n xhr.send(body);\n } catch (err) {\n process$1.nextTick(function () {\n self.emit(\"error\", err);\n });\n return;\n }\n }\n };\n\n /**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\n function statusValid(xhr) {\n try {\n var status = xhr.status;\n return status !== null && status !== 0;\n } catch (e) {\n return false;\n }\n }\n ClientRequest.prototype._onXHRProgress = function () {\n var self = this || _global$1;\n self._resetTimers(false);\n if (!statusValid(self._xhr) || self._destroyed) return;\n if (!self._response) self._connect();\n self._response._onXHRProgress(self._resetTimers.bind(self));\n };\n ClientRequest.prototype._connect = function () {\n var self = this || _global$1;\n if (self._destroyed) return;\n self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self));\n self._response.on(\"error\", function (err) {\n self.emit(\"error\", err);\n });\n self.emit(\"response\", self._response);\n };\n ClientRequest.prototype._write = function (chunk, encoding, cb) {\n var self = this || _global$1;\n self._body.push(chunk);\n cb();\n };\n ClientRequest.prototype._resetTimers = function (done) {\n var self = this || _global$1;\n _global$1.clearTimeout(self._socketTimer);\n self._socketTimer = null;\n if (done) {\n _global$1.clearTimeout(self._fetchTimer);\n self._fetchTimer = null;\n } else if (self._socketTimeout) {\n self._socketTimer = _global$1.setTimeout(function () {\n self.emit(\"timeout\");\n }, self._socketTimeout);\n }\n };\n ClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n var self = this || _global$1;\n self._destroyed = true;\n self._resetTimers(true);\n if (self._response) self._response._destroyed = true;\n if (self._xhr) self._xhr.abort();else if (self._fetchAbortController) self._fetchAbortController.abort();\n if (err) self.emit(\"error\", err);\n };\n ClientRequest.prototype.end = function (data, encoding, cb) {\n var self = this || _global$1;\n if (typeof data === \"function\") {\n cb = data;\n data = undefined;\n }\n stream.Writable.prototype.end.call(self, data, encoding, cb);\n };\n ClientRequest.prototype.setTimeout = function (timeout, cb) {\n var self = this || _global$1;\n if (cb) self.once(\"timeout\", cb);\n self._socketTimeout = timeout;\n self._resetTimers(false);\n };\n ClientRequest.prototype.flushHeaders = function () {};\n ClientRequest.prototype.setNoDelay = function () {};\n ClientRequest.prototype.setSocketKeepAlive = function () {};\n\n // Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\n var unsafeHeaders = [\"accept-charset\", \"accept-encoding\", \"access-control-request-headers\", \"access-control-request-method\", \"connection\", \"content-length\", \"cookie\", \"cookie2\", \"date\", \"dnt\", \"expect\", \"host\", \"keep-alive\", \"origin\", \"referer\", \"te\", \"trailer\", \"transfer-encoding\", \"upgrade\", \"via\"];\n return exports$4;\n}\n\nvar exports$3 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$3;\n _dewExec$2 = true;\n exports$3 = extend;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n function extend() {\n var target = {};\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$2;\n _dewExec$1 = true;\n exports$2 = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n };\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec = false;\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n var ClientRequest = dew$3();\n var response = dew$4();\n var extend = dew$2();\n var statusCodes = dew$1();\n var url = h;\n var http = exports$1;\n http.request = function (opts, cb) {\n if (typeof opts === \"string\") opts = url.parse(opts);else opts = extend(opts);\n\n // Normally, the page is loaded from http or https, so not specifying a protocol\n // will result in a (valid) protocol-relative url. However, this won't work if\n // the protocol is something else, like 'file:'\n var defaultProtocol = _global.location.protocol.search(/^https?:$/) === -1 ? \"http:\" : \"\";\n var protocol = opts.protocol || defaultProtocol;\n var host = opts.hostname || opts.host;\n var port = opts.port;\n var path = opts.path || \"/\";\n\n // Necessary for IPv6 addresses\n if (host && host.indexOf(\":\") !== -1) host = \"[\" + host + \"]\";\n\n // This may be a relative url. The browser should always be able to interpret it correctly.\n opts.url = (host ? protocol + \"//\" + host : \"\") + (port ? \":\" + port : \"\") + path;\n opts.method = (opts.method || \"GET\").toUpperCase();\n opts.headers = opts.headers || {};\n\n // Also valid opts.auth, opts.mode\n\n var req = new ClientRequest(opts);\n if (cb) req.on(\"response\", cb);\n return req;\n };\n http.get = function get(opts, cb) {\n var req = http.request(opts, cb);\n req.end();\n return req;\n };\n http.ClientRequest = ClientRequest;\n http.IncomingMessage = response.IncomingMessage;\n http.Agent = function () {};\n http.Agent.defaultMaxSockets = 4;\n http.globalAgent = new http.Agent();\n http.STATUS_CODES = statusCodes;\n http.METHODS = [\"CHECKOUT\", \"CONNECT\", \"COPY\", \"DELETE\", \"GET\", \"HEAD\", \"LOCK\", \"M-SEARCH\", \"MERGE\", \"MKACTIVITY\", \"MKCOL\", \"MOVE\", \"NOTIFY\", \"OPTIONS\", \"PATCH\", \"POST\", \"PROPFIND\", \"PROPPATCH\", \"PURGE\", \"PUT\", \"REPORT\", \"SEARCH\", \"SUBSCRIBE\", \"TRACE\", \"UNLOCK\", \"UNSUBSCRIBE\"];\n return exports$1;\n}\n\nconst exports = dew();\n\nvar Agent = exports.Agent;\r\nvar ClientRequest = exports.ClientRequest;\r\nvar IncomingMessage = exports.IncomingMessage;\r\nvar METHODS = exports.METHODS;\r\nvar STATUS_CODES = exports.STATUS_CODES;\r\nvar get = exports.get;\r\nvar globalAgent = exports.globalAgent;\r\nvar request = exports.request;\n\nexport { Agent, ClientRequest, IncomingMessage, METHODS, STATUS_CODES, exports as default, get, globalAgent, request };\n", "export * as messages from './message'\nexport * from './public-consts'\nexport * from './serve'\nexport * from './zui'\n\nexport {\n //\n isApiError,\n RuntimeError,\n} from '@holocronlab/botruntime-client'\n\nexport {\n DefaultIntegration,\n IntegrationDefinition,\n IntegrationDefinitionProps,\n IntegrationImplementation as Integration,\n IntegrationImplementationProps as IntegrationProps,\n IntegrationLogger,\n IntegrationSpecificClient,\n TagDefinition,\n ConfigurationDefinition,\n AdditionalConfigurationDefinition,\n EventDefinition,\n ChannelDefinition,\n MessageDefinition,\n ActionDefinition,\n StateDefinition,\n UserDefinition,\n SecretDefinition,\n IntegrationNetworkDefinition,\n EntityDefinition,\n} from './integration'\n\nexport {\n /**\n * @deprecated use Context exported from '.botpress' instead\n */\n IntegrationContext,\n} from './integration/server'\n\nexport {\n DefaultBot,\n BotDefinition,\n BotDefinitionProps,\n BotImplementation as Bot,\n BotImplementationProps as BotProps,\n BotSpecificClient,\n // NOTE: BotHandlers is needed by the Studio, and InjectedBotHandlers is\n // needed for the code generation in the CLI\n BotHandlers,\n InjectedBotHandlers,\n TagDefinition as BotTagDefinition,\n StateType as BotStateType,\n StateDefinition as BotStateDefinition,\n RecurringEventDefinition as BotRecurringEventDefinition,\n EventDefinition as BotEventDefinition,\n ConfigurationDefinition as BotConfigurationDefinition,\n UserDefinition as BotUserDefinition,\n ConversationDefinition as BotConversationDefinition,\n MessageDefinition as BotMessageDefinition,\n ActionDefinition as BotActionDefinition,\n TableDefinition as BotTableDefinition,\n WorkflowDefinition as BotWorkflowDefinition,\n BotLogger,\n} from './bot'\n\nexport {\n //\n InterfaceDefinition,\n InterfaceDefinitionProps,\n} from './interface'\n\nexport {\n //\n DefaultPlugin,\n PluginDefinition,\n PluginDefinitionProps,\n PluginImplementation as Plugin,\n PluginImplementationProps as PluginProps,\n PluginRuntimeProps,\n PluginHandlers,\n InjectedPluginHandlers,\n} from './plugin'\n\nexport * as version from './version-utils'\n\nexport * as errors from './errors'\n\nexport {\n //\n IntegrationPackage,\n InterfacePackage,\n PluginPackage,\n Package,\n} from './package'\n", "import { z } from './zui'\n\nconst NonEmptyString = z.string().min(1)\n\nconst textMessageSchema = z.object({\n text: NonEmptyString,\n})\n\n/**\n * @deprecated\n */\nconst markdownMessageSchema = z.object({\n markdown: NonEmptyString,\n})\n\nconst imageMessageSchema = z.object({\n imageUrl: NonEmptyString,\n title: NonEmptyString.optional(),\n})\n\nconst audioMessageSchema = z.object({\n audioUrl: NonEmptyString,\n title: NonEmptyString.optional(),\n})\n\nconst videoMessageSchema = z.object({\n videoUrl: NonEmptyString,\n title: NonEmptyString.optional(),\n})\n\nconst fileMessageSchema = z.object({\n fileUrl: NonEmptyString,\n title: NonEmptyString.optional(),\n})\n\nconst locationMessageSchema = z.object({\n latitude: z.number(),\n longitude: z.number(),\n address: z.string().optional(),\n title: z.string().optional(),\n})\n\nconst cardSchema = z.object({\n title: NonEmptyString,\n subtitle: NonEmptyString.optional(),\n imageUrl: NonEmptyString.optional(),\n actions: z.array(\n z.object({\n action: z.enum(['postback', 'url', 'say']),\n label: NonEmptyString,\n value: NonEmptyString,\n })\n ),\n})\n\nconst choiceSchema = z.object({\n text: NonEmptyString,\n options: z.array(\n z.object({\n label: NonEmptyString,\n value: NonEmptyString,\n })\n ),\n})\n\nconst carouselSchema = z.object({\n items: z.array(cardSchema),\n})\n\nconst blocItemSchema = z.union([\n z.object({ type: z.literal('text'), payload: textMessageSchema }),\n z.object({ type: z.literal('image'), payload: imageMessageSchema }),\n z.object({ type: z.literal('audio'), payload: audioMessageSchema }),\n z.object({ type: z.literal('video'), payload: videoMessageSchema }),\n z.object({ type: z.literal('file'), payload: fileMessageSchema }),\n z.object({ type: z.literal('location'), payload: locationMessageSchema }),\n])\n\nconst blocSchema = z.object({\n items: z.array(blocItemSchema),\n})\n\n/**\n * @deprecated use `text` instead\n */\nexport const markdown = {\n schema: markdownMessageSchema,\n}\n\n/**\n * Bloc message that still includes markdown as an item\n *\n * @deprecated use `bloc` instead\n */\nexport const markdownBloc = {\n schema: z.object({\n items: z.array(\n // TODO: replace by a discriminated union\n z.union([\n //\n ...blocItemSchema.options,\n z.object({ type: z.literal('markdown'), payload: markdownMessageSchema }),\n ])\n ),\n }),\n}\n\nexport const defaults = {\n text: { schema: textMessageSchema },\n image: { schema: imageMessageSchema },\n audio: { schema: audioMessageSchema },\n video: { schema: videoMessageSchema },\n file: { schema: fileMessageSchema },\n location: { schema: locationMessageSchema },\n carousel: { schema: carouselSchema },\n card: { schema: cardSchema },\n dropdown: { schema: choiceSchema },\n choice: { schema: choiceSchema },\n bloc: { schema: blocSchema },\n} as const // should use satisfies operator but this works for older versions of TS\n", "import '@holocronlab/botruntime-zui'\n\ndeclare module '@holocronlab/botruntime-zui' {\n export namespace z {\n export type GenericZuiSchema<\n A extends Record<string, z.ZodType> = Record<string, z.ZodType>,\n R extends z.ZodType = z.ZodType,\n > = (typeArguments: A) => R\n\n export type ZuiObjectSchema = z.ZodObject | z.ZodRecord\n export type ZuiObjectOrRefSchema = ZuiObjectSchema | z.ZodRef\n }\n}\n\nexport { z } from '@holocronlab/botruntime-zui'\n", "// This file contains constants that are exported for public use.\n\nexport const WELL_KNOWN_ATTRIBUTES = {\n HIDDEN_IN_STUDIO: { bpActionHiddenInStudio: 'true' },\n AWAIT_RETURN: { bpActionAwaitReturn: 'true' },\n} as const\n\nexport const OAUTH_IDENTIFIER_HEADER = 'x-bp-integration-identifier'\n", "import { InvalidPayloadError, isApiError, RuntimeError } from '@holocronlab/botruntime-client'\nimport { isNode } from 'browser-or-node'\nimport * as http from 'node:http'\nimport { log } from './log'\n\nexport type Request = {\n body?: string\n path: string\n query: string\n method: string\n headers: { [key: string]: string | undefined }\n}\n\nexport type Response = {\n body?: string\n headers?: { [key: string]: string }\n status?: number\n}\n\nexport type Handler = (req: Request) => Promise<Response | void>\n\nexport function parseBody<T>(req: Request): T {\n if (!req.body) {\n throw new InvalidPayloadError('Missing body')\n }\n\n try {\n return JSON.parse(req.body)\n } catch (thrown: unknown) {\n throw new InvalidPayloadError(thrown instanceof Error ? thrown.message : String(thrown))\n }\n}\n\n/**\n * Maps a thrown handler error to an HTTP response.\n *\n * A deliberately thrown `RuntimeError` indicates a handled, user-facing failure,\n * and an `InvalidPayloadError` indicates a malformed request. Both preserve\n * their original 4xx status so callers do not retry them.\n *\n * Any other error is treated as unhandled and returned as a 500 response so\n * callers can consider it transient.\n */\nexport const handlerErrorToHttpResponse = ({\n thrown,\n unexpectedErrorMessage,\n}: {\n thrown: unknown\n unexpectedErrorMessage: string\n}): { status: number; body: string; error: Error } => {\n const error = thrown instanceof Error ? thrown : new Error(String(thrown))\n\n if (isApiError(error) && (error.type === 'Runtime' || error.type === 'InvalidPayload')) {\n return { status: error.code, body: JSON.stringify(error.toJSON()), error }\n }\n\n const runtimeError = isApiError(error)\n ? new RuntimeError(error.message, error)\n : new RuntimeError(unexpectedErrorMessage, error)\n\n return { status: 500, body: JSON.stringify(runtimeError.toJSON()), error: runtimeError }\n}\n\nexport async function serve(\n handler: Handler,\n port: number = 8072,\n callback: (port: number) => void = defaultCallback\n): Promise<http.Server> {\n if (!isNode) {\n throw new Error('This function can only be called in Node.js')\n }\n\n const httpModule = require('http') as typeof http\n\n /* eslint-disable @typescript-eslint/no-misused-promises */\n const server = httpModule.createServer(async (req, res) => {\n try {\n const request = await mapIncomingMessageToRequest(req)\n if (request.path === '/health') {\n res.writeHead(200).end('ok')\n return\n }\n const response = await handler(request)\n res.writeHead(response?.status ?? 200, response?.headers ?? {}).end(response?.body ?? '{}')\n } catch (thrown: unknown) {\n const error: string = thrown instanceof Error ? thrown.message : String(thrown)\n log.error('Error while handling request', { error: error ?? 'Internal error occured' })\n res.writeHead(500).end(JSON.stringify({ error: error ?? 'Internal error occured' }))\n }\n })\n\n server.listen(port, () => callback(port))\n return server\n}\n\nasync function mapIncomingMessageToRequest(incoming: http.IncomingMessage): Promise<Request> {\n const body = await readBody(incoming)\n const headers = {} as Request['headers']\n\n for (let i = 0; i < incoming.rawHeaders.length; i += 2) {\n const key = incoming.rawHeaders[i]!.toLowerCase()\n const value = incoming.rawHeaders[i + 1]!\n headers[key] = value\n }\n\n // The base is only needed so `new URL()` can resolve a relative request URL; only\n // `url.pathname` / `url.search` are read below \u2014 the host is never used. So the no-host\n // case uses a neutral, non-routable placeholder (not a real endpoint): this is a\n // URL()-parsing requirement, not a silent fallback to some default cloud host.\n const url = new URL(\n incoming.url ?? '',\n incoming.headers.host ? `http://${incoming.headers.host}` : 'http://localhost'\n )\n\n return {\n body,\n path: url.pathname,\n query: trimPrefix(url.search, '?'),\n headers,\n method: incoming.method?.toUpperCase() ?? 'GET',\n }\n}\n\nfunction trimPrefix(value: string, prefix: string) {\n return value.indexOf(prefix) === 0 ? value.slice(prefix.length) : value\n}\n\nasync function readBody(incoming: http.IncomingMessage) {\n return new Promise<string | undefined>((resolve, reject) => {\n if (incoming.method !== 'POST' && incoming.method !== 'PUT' && incoming.method !== 'PATCH') {\n return resolve(undefined)\n }\n\n let body = ''\n\n incoming.on('data', (chunk) => (body += chunk.toString()))\n incoming.on('error', (e) => reject(e))\n incoming.on('end', () => resolve(body))\n })\n}\n\nfunction defaultCallback(port: number) {\n log.info(`Listening on port ${port}`)\n}\n", "export type Logger = {\n debug(message: string, metadata?: unknown): void\n info(message: string, metadata?: unknown): void\n warn(message: string, metadata?: unknown): void\n error(message: string, metadata?: unknown): void\n}\nexport const log: Logger = console\n", "export * from './definition'\nexport * from './implementation'\nexport * from './client'\nexport * from './server'\nexport * from './common'\n", "import type * as esbuild from 'esbuild'\nimport { SchemaTransformOptions } from '../../common/types'\nimport { DefinitionError } from '../../errors'\nimport { resolveInterface } from '../../interface/resolve'\nimport { InterfacePackage } from '../../package'\nimport * as utils from '../../utils'\nimport { SDK_VERSION } from '../../version'\nimport { z } from '../../zui'\nimport { SchemaStore, BrandedSchema, createStore, isBranded, getName } from './branded-schema'\nimport { BaseConfig, BaseEvents, BaseActions, BaseChannels, BaseStates, BaseEntities, BaseConfigs } from './generic'\nimport {\n ConfigurationDefinition,\n EventDefinition,\n ChannelDefinition,\n ActionDefinition,\n StateDefinition,\n UserDefinition,\n SecretDefinition,\n EntityDefinition,\n AdditionalConfigurationDefinition,\n MessageDefinition,\n InterfaceExtension,\n IntegrationNetworkDefinition,\n} from './types'\n\nexport * from './types'\n\nexport type IntegrationDefinitionProps<\n TName extends string = string,\n TVersion extends string = string,\n TConfig extends BaseConfig = BaseConfig,\n TConfigs extends BaseConfigs = BaseConfigs,\n TEvents extends BaseEvents = BaseEvents,\n TActions extends BaseActions = BaseActions,\n TChannels extends BaseChannels = BaseChannels,\n TStates extends BaseStates = BaseStates,\n TEntities extends BaseEntities = BaseEntities,\n> = {\n name: TName\n version: TVersion\n\n title?: string\n description?: string\n icon?: string\n readme?: string\n\n attributes?: Record<string, string>\n\n network?: IntegrationNetworkDefinition\n\n identifier?: {\n extractScript?: string\n fallbackHandlerScript?: string\n }\n\n configuration?: ConfigurationDefinition<TConfig>\n configurations?: {\n [K in keyof TConfigs]: AdditionalConfigurationDefinition<TConfigs[K]>\n }\n\n events?: { [K in keyof TEvents]: EventDefinition<TEvents[K]> }\n\n actions?: {\n [K in keyof TActions]: ActionDefinition<TActions[K]>\n }\n\n channels?: {\n [K in keyof TChannels]: ChannelDefinition<TChannels[K]>\n }\n\n states?: {\n [K in keyof TStates]: StateDefinition<TStates[K]>\n }\n\n user?: UserDefinition\n\n secrets?: Record<string, SecretDefinition>\n\n entities?: {\n [K in keyof TEntities]: EntityDefinition<TEntities[K]>\n }\n\n interfaces?: Record<string, InterfaceExtension>\n\n __advanced?: SchemaTransformOptions & {\n esbuild?: Partial<esbuild.BuildOptions>\n extraOperations?: Record<string, { enabled: boolean }>\n }\n}\n\ntype EntitiesOfPackage<TPackage extends InterfacePackage> = {\n [K in keyof TPackage['definition']['entities']]: NonNullable<TPackage['definition']['entities']>[K]['schema']\n}\n\ntype ActionsOfPackage<TPackage extends InterfacePackage> = {\n [K in keyof TPackage['definition']['actions']]: NonNullable<TPackage['definition']['actions']>[K]['input']['schema']\n}\n\ntype EventsOfPackage<TPackage extends InterfacePackage> = {\n [K in keyof TPackage['definition']['events']]: NonNullable<TPackage['definition']['events']>[K]['schema']\n}\n\ntype ChannelsOfPackage<TPackage extends InterfacePackage> = {\n [K in keyof TPackage['definition']['channels']]: {\n [M in keyof NonNullable<TPackage['definition']['channels']>[K]['messages']]: NonNullable<\n NonNullable<TPackage['definition']['channels']>[K]['messages']\n >[M]['schema']\n }\n}\n\nexport type ActionOverrideProps = utils.types.AtLeastOneProperty<\n Pick<Required<ActionDefinition>, 'title' | 'description' | 'billable' | 'cacheable' | 'attributes'> & {\n name: string\n }\n>\nexport type EventOverrideProps = utils.types.AtLeastOneProperty<\n Pick<Required<EventDefinition>, 'title' | 'description' | 'attributes'> & {\n name: string\n }\n>\nexport type ChannelOverrideProps = utils.types.AtLeastOneProperty<\n Pick<Required<ChannelDefinition>, 'title' | 'description'> & {\n name: string\n message: {\n tags: Required<Required<ChannelDefinition>['message']>['tags']\n }\n conversation: {\n tags: Required<Required<ChannelDefinition>['conversation']>['tags']\n }\n }\n>\n\ntype ActionOverrides<TInterfaceActionNames extends string = string> = utils.types.AtLeastOneProperty<\n Record<TInterfaceActionNames, ActionOverrideProps>\n>\ntype EventOverrides<TInterfaceEventNames extends string = string> = utils.types.AtLeastOneProperty<\n Record<TInterfaceEventNames, EventOverrideProps>\n>\ntype ChannelOverrides<TInterfaceChannelNames extends string = string> = utils.types.AtLeastOneProperty<\n Record<TInterfaceChannelNames, ChannelOverrideProps>\n>\n\ntype ExtensionBuilderInput<\n TIntegrationEntities extends BaseEntities,\n _TIntegrationActions extends BaseActions,\n _TIntegrationEvents extends BaseEvents,\n _TIntegrationChannels extends BaseChannels,\n> = {\n entities: SchemaStore<TIntegrationEntities>\n}\n\ntype ExtensionBuilderOutput<\n TInterfaceEntities extends BaseEntities,\n TInterfaceActions extends BaseActions,\n TInterfaceEvents extends BaseEvents,\n TInterfaceChannels extends BaseChannels,\n> = {\n entities: {\n [K in keyof TInterfaceEntities]: BrandedSchema<z.ZodSchema<z.infer<TInterfaceEntities[K]>>>\n }\n actions?: ActionOverrides<Extract<keyof TInterfaceActions, string>>\n events?: EventOverrides<Extract<keyof TInterfaceEvents, string>>\n channels?: ChannelOverrides<Extract<keyof TInterfaceChannels, string>>\n}\n\ntype ExtensionBuilder<\n TIntegrationEntities extends BaseEntities,\n TIntegrationActions extends BaseActions,\n TIntegrationEvents extends BaseEvents,\n TIntegrationChannels extends BaseChannels,\n TInterfaceEntities extends BaseEntities,\n TInterfaceActions extends BaseActions,\n TInterfaceEvents extends BaseEvents,\n TInterfaceChannels extends BaseChannels,\n> = (\n input: ExtensionBuilderInput<TIntegrationEntities, TIntegrationActions, TIntegrationEvents, TIntegrationChannels>\n) => ExtensionBuilderOutput<TInterfaceEntities, TInterfaceActions, TInterfaceEvents, TInterfaceChannels>\n\ntype TypeArgument = { name: string; schema: z.AnyZodObject }\n\nexport class IntegrationDefinition<\n TName extends string = string,\n TVersion extends string = string,\n TConfig extends BaseConfig = BaseConfig,\n TConfigs extends BaseConfigs = BaseConfigs,\n TEvents extends BaseEvents = BaseEvents,\n TActions extends BaseActions = BaseActions,\n TChannels extends BaseChannels = BaseChannels,\n TStates extends BaseStates = BaseStates,\n TEntities extends BaseEntities = BaseEntities,\n> {\n public readonly name: this['props']['name']\n public readonly version: this['props']['version']\n public readonly title: this['props']['title']\n public readonly description: this['props']['description']\n public readonly icon: this['props']['icon']\n public readonly readme: this['props']['readme']\n public readonly configuration: this['props']['configuration']\n public readonly configurations: this['props']['configurations']\n public readonly events: this['props']['events']\n public readonly actions: this['props']['actions']\n public readonly channels: this['props']['channels']\n public readonly states: this['props']['states']\n public readonly user: this['props']['user']\n public readonly secrets: this['props']['secrets']\n public readonly identifier: this['props']['identifier']\n public readonly entities: this['props']['entities']\n public readonly interfaces: this['props']['interfaces']\n public readonly __advanced: this['props']['__advanced']\n public readonly attributes: this['props']['attributes']\n public readonly network: this['props']['network']\n\n public constructor(\n public readonly props: IntegrationDefinitionProps<\n TName,\n TVersion,\n TConfig,\n TConfigs,\n TEvents,\n TActions,\n TChannels,\n TStates,\n TEntities\n >\n ) {\n this.name = props.name\n this.version = props.version\n this.icon = props.icon\n this.readme = props.readme\n this.title = props.title\n this.identifier = props.identifier\n this.description = props.description\n this.configuration = props.configuration\n this.configurations = props.configurations\n this.events = props.events\n this.actions = props.actions\n this.channels = props.channels\n this.states = props.states\n this.user = props.user\n this.secrets = props.secrets\n this.entities = props.entities\n this.interfaces = props.interfaces\n this.__advanced = props.__advanced\n this.attributes = props.attributes\n this.network = props.network\n }\n\n public get metadata() {\n return { sdkVersion: SDK_VERSION } as const\n }\n\n public readonly clone?: (overrides?: Partial<IntegrationDefinitionProps>) => IntegrationDefinition = (overrides?) => {\n // TODO: make non-optional on next major (CLI and SDK share the same major, so the CLI can always rely on clone being present)\n return new IntegrationDefinition({\n ...this.props,\n actions: this.actions,\n events: this.events,\n channels: this.channels,\n interfaces: this.interfaces,\n ...overrides,\n } as IntegrationDefinitionProps)\n }\n\n public extend<P extends InterfacePackage>(\n interfacePkg: P,\n builder: ExtensionBuilder<\n TEntities,\n TActions,\n TEvents,\n TChannels,\n EntitiesOfPackage<P>,\n ActionsOfPackage<P>,\n EventsOfPackage<P>,\n ChannelsOfPackage<P>\n >\n ): this {\n const { entities, actions, events, channels } = this._callBuilder(interfacePkg, builder)\n\n const self = this as utils.types.Writable<IntegrationDefinition>\n self.interfaces ??= {}\n\n const entityNames = Object.values(entities).map((e) => e.name)\n\n const key = entityNames.length === 0 ? interfacePkg.name : `${interfacePkg.name}<${entityNames.join(',')}>`\n\n const { resolved, statement } = resolveInterface({\n ...interfacePkg,\n entities,\n actions: utils.records.stripUndefinedProps(actions),\n events: utils.records.stripUndefinedProps(events),\n channels: utils.records.stripUndefinedProps(channels),\n })\n\n /**\n * If an action is defined both in the integration and the interface; we merge both.\n * This allows setting more specific properties in the integration, while staying compatible with the interface.\n * Same goes for channels and events.\n */\n self.actions = utils.records.mergeRecords(self.actions ?? {}, resolved.actions, this._mergeActions)\n self.channels = utils.records.mergeRecords(self.channels ?? {}, resolved.channels, this._mergeChannels)\n self.events = utils.records.mergeRecords(self.events ?? {}, resolved.events, this._mergeEvents)\n\n self.interfaces[key] = {\n id: interfacePkg.id,\n ...statement,\n }\n\n return this\n }\n\n private _callBuilder<P extends InterfacePackage>(\n interfacePkg: P,\n builder: ExtensionBuilder<\n TEntities,\n TActions,\n TEvents,\n TChannels,\n EntitiesOfPackage<P>,\n ActionsOfPackage<P>,\n EventsOfPackage<P>,\n ChannelsOfPackage<P>\n >\n ): {\n entities: Record<string, TypeArgument>\n actions: ActionOverrides\n events: EventOverrides\n channels: ChannelOverrides\n } {\n const entityStore = createStore(this.entities)\n const extensionBuilderInput: ExtensionBuilderInput<TEntities, TActions, TEvents, TChannels> = {\n entities: entityStore,\n }\n const extensionBuilderOutput = builder(extensionBuilderInput)\n const unbrandedEntity = utils.records.pairs(extensionBuilderOutput.entities).find(([_k, e]) => !isBranded(e))\n if (unbrandedEntity) {\n // this means the user tried providing a plain schema without referencing an entity from the integration\n throw new DefinitionError(\n `Cannot extend interface \"${interfacePkg.name}\" with entity \"${unbrandedEntity[0]}\"; the provided schema is not part of the integration's entities.`\n )\n }\n const entities = utils.records.mapValues(extensionBuilderOutput.entities, (e) => ({\n name: getName(e),\n schema: e.schema as z.AnyZodObject,\n }))\n return {\n entities,\n actions: extensionBuilderOutput.actions ?? {},\n events: extensionBuilderOutput.events ?? {},\n channels: extensionBuilderOutput.channels ?? {},\n }\n }\n\n private _mergeActions = (a: ActionDefinition, b: ActionDefinition): ActionDefinition => {\n return {\n ...a,\n ...b,\n input: {\n schema: this._mergeObjectSchemas(a.input.schema, b.input.schema),\n },\n output: {\n schema: this._mergeObjectSchemas(a.output.schema, b.output.schema),\n },\n }\n }\n\n private _mergeEvents = (a: EventDefinition, b: EventDefinition): EventDefinition => {\n return {\n ...a,\n ...b,\n schema: this._mergeObjectSchemas(a.schema, b.schema),\n }\n }\n\n private _mergeChannels = (a: ChannelDefinition, b: ChannelDefinition): ChannelDefinition => {\n const messages = utils.records.mergeRecords(a.messages, b.messages, this._mergeMessage)\n\n let conversation: ChannelDefinition['conversation'] = undefined\n if (a.conversation || b.conversation) {\n conversation = {\n tags: {\n ...a.conversation?.tags,\n ...b.conversation?.tags,\n },\n }\n }\n\n let message: ChannelDefinition['message'] = undefined\n if (a.message || b.message) {\n message = {\n tags: {\n ...a.message?.tags,\n ...b.message?.tags,\n },\n }\n }\n\n return {\n ...a,\n ...b,\n messages,\n conversation,\n message,\n }\n }\n\n private _mergeMessage = (a: MessageDefinition, b: MessageDefinition): MessageDefinition => {\n return {\n schema: this._mergeObjectSchemas(a.schema, b.schema),\n }\n }\n\n private _mergeObjectSchemas = (a: z.ZuiObjectSchema, b: z.ZuiObjectSchema): z.ZuiObjectSchema => {\n const aDef = a._def\n const bDef = b._def\n\n if (aDef.typeName === 'ZodObject' && bDef.typeName === 'ZodObject') {\n const aShape = aDef.shape()\n const bShape = bDef.shape()\n return z.object({ ...aShape, ...bShape })\n }\n if (aDef.typeName === 'ZodRecord' && bDef.typeName === 'ZodRecord') {\n return z.record(z.intersection(aDef.valueType, bDef.valueType))\n }\n // TODO: adress this case\n throw new Error('Cannot merge object schemas with record schemas')\n }\n}\n", "/**\n * Thrown by SDK definition classes (BotDefinition, IntegrationDefinition, PluginDefinition, etc.)\n * for intentional validation errors whose message is already clear.\n *\n * The CLI detects this class to suppress the \"Offending code:\" section that it normally\n * appends to errors thrown during definition file evaluation.\n */\nexport class DefinitionError extends Error {\n /** @internal Marker used by {@link isDefinitionError} to survive esbuild bundle boundaries. */\n public readonly __IS_SDK_ERROR__ = true as const\n public readonly type = 'definition_error' as const\n}\n\n/**\n * Type guard to detect {@link DefinitionError} across esbuild bundle boundaries.\n *\n * Tries `instanceof` first (same bundle), then falls back to the `__IS_SDK_ERROR__` marker\n * and `type` field for cross-bundle cases where esbuild inlines a separate copy of the SDK class.\n */\nexport const isDefinitionError = (error: unknown): error is DefinitionError =>\n error instanceof DefinitionError ||\n (typeof error === 'object' &&\n error !== null &&\n '__IS_SDK_ERROR__' in error &&\n error.__IS_SDK_ERROR__ === true &&\n 'type' in error &&\n error.type === 'definition_error')\n", "import {\n ActionOverrideProps,\n ChannelOverrideProps,\n EventOverrideProps,\n InterfaceExtension,\n ResolvedInterface,\n} from '../integration'\nimport { InterfacePackage } from '../package'\nimport * as utils from '../utils'\nimport { z } from '../zui'\n\ntype ResolveInterfaceInput = InterfacePackage & {\n entities: Record<string, { name: string; schema: z.ZuiObjectSchema }>\n actions: Record<string, ActionOverrideProps>\n events: Record<string, EventOverrideProps>\n channels: Record<string, ChannelOverrideProps>\n}\n\ntype ResolveInterfaceOutput = {\n resolved: ResolvedInterface\n statement: InterfaceExtension\n}\n\nexport const resolveInterface = (intrface: ResolveInterfaceInput): ResolveInterfaceOutput => {\n const { name, version } = intrface\n\n const resolved: ResolvedInterface = { actions: {}, events: {}, channels: {} }\n const statement: InterfaceExtension = {\n name,\n version,\n entities: utils.records.mapValues(intrface.entities, (entity) => ({ name: entity.name })), // { item: { name: 'issue' } },\n actions: {},\n events: {},\n channels: {},\n }\n\n const entitySchemas = utils.records.mapValues(intrface.entities, (entity) => entity.schema)\n\n // dereference actions\n for (const [actionName, action] of Object.entries(intrface.definition.actions ?? {})) {\n const resolvedInputSchema = action.input.schema.dereference(entitySchemas) as z.AnyZodObject\n const resolvedOutputSchema = action.output.schema.dereference(entitySchemas) as z.AnyZodObject\n\n const newActionName = intrface.actions?.[actionName]?.name ?? actionName\n resolved.actions[newActionName] = {\n ...action,\n ...(intrface.actions?.[actionName] ?? {}),\n input: { schema: resolvedInputSchema },\n output: { schema: resolvedOutputSchema },\n }\n statement.actions[actionName] = { name: newActionName }\n }\n\n // dereference events\n for (const [eventName, event] of Object.entries(intrface.definition.events ?? {})) {\n const resolvedEventSchema = event.schema.dereference(entitySchemas) as z.AnyZodObject\n const newEventName = intrface.events?.[eventName]?.name ?? eventName\n resolved.events[newEventName] = {\n ...event,\n ...(intrface.events?.[eventName] ?? {}),\n schema: resolvedEventSchema,\n }\n statement.events[eventName] = { name: newEventName }\n }\n\n // dereference channels\n for (const [channelName, channel] of Object.entries(intrface.definition.channels ?? {})) {\n const messages: Record<string, { schema: z.AnyZodObject }> = {}\n for (const [messageName, message] of Object.entries(channel.messages)) {\n const resolvedMessageSchema = message.schema.dereference(entitySchemas) as z.AnyZodObject\n // no renaming for messages as they are already contained within a channel that acts as a namespace\n messages[messageName] = { ...message, schema: resolvedMessageSchema }\n }\n const newChannelName = intrface.channels?.[channelName]?.name ?? channelName\n resolved.channels[newChannelName] = {\n ...channel,\n ...(intrface.channels?.[channelName] ?? {}),\n message: {\n ...(channel.message ?? {}),\n tags: {\n ...(channel.message?.tags ?? {}),\n ...(intrface.channels?.[channelName]?.message?.tags ?? {}),\n },\n },\n conversation: {\n ...(channel.conversation ?? {}),\n tags: {\n ...(channel.conversation?.tags ?? {}),\n ...(intrface.channels?.[channelName]?.conversation?.tags ?? {}),\n },\n },\n messages,\n }\n statement.channels[channelName] = { name: newChannelName }\n }\n\n return { resolved, statement }\n}\n", "export * as records from './record-utils'\nexport * as arrays from './array-utils'\nexport * as types from './type-utils'\nexport * as functions from './function-utils'\n", "export const pairs = <K extends string, V>(obj: Record<K, V>) => Object.entries(obj) as [K, V][]\nexport const values = <K extends string, V>(obj: Record<K, V>) => Object.values(obj) as V[]\nexport const mapValues = <K extends string, V, R>(obj: Record<K, V>, fn: (value: V, key: K) => R): Record<K, R> =>\n Object.fromEntries(pairs(obj).map(([key, value]) => [key, fn(value, key)])) as Record<K, R>\nexport const mapKeys = <K1 extends string, K2 extends string, V>(\n obj: Record<K1, V>,\n fn: (key: K1) => K2\n): Record<K2, V> => Object.fromEntries(pairs(obj).map(([key, value]) => [fn(key), value])) as Record<K2, V>\nexport const stripUndefinedProps = <K extends string, V>(obj: Record<K, V | undefined>): Record<K, V> =>\n Object.fromEntries(pairs(obj).filter(([, value]) => value !== undefined)) as Record<K, V>\n\nexport const mergeRecords = <K extends string, V>(\n a: Record<K, V>,\n b: Record<K, V>,\n merge: (v1: V, v2: V) => V\n): Record<K, V> => {\n const allKeys = [...Object.keys(a), ...Object.keys(b)] as K[]\n const uniqueKeys = [...new Set(allKeys)]\n const result: Record<K, V> = {} as Record<K, V>\n for (const key of uniqueKeys) {\n const aValue = a[key]\n const bValue = b[key]\n if (aValue && bValue) {\n result[key] = merge(aValue, bValue)\n } else if (aValue) {\n result[key] = aValue\n } else if (bValue) {\n result[key] = bValue\n }\n }\n return result\n}\n", "export const safePush = <T>(arr: T[] | undefined, ...values: T[]): T[] => (arr ? [...arr, ...values] : [...values])\n\nexport const unique = <T>(arr: T[]): T[] => Array.from(new Set(arr))\n", "export type Function<I extends any[] = any, O extends any = any> = (...args: I) => O\nexport type ValueOf<T> = T[keyof T]\nexport type Merge<A extends object, B extends object> = Omit<A, keyof B> & B\nexport type Cast<T, U> = T extends U ? T : U\nexport type SafeCast<T, U> = [T] extends [never] ? U : Cast<T, U>\nexport type Writable<T> = { -readonly [K in keyof T]: T[K] }\nexport type Default<T, U> = undefined extends T ? U : T\n\nexport type Not<X extends boolean> = X extends true ? false : true\nexport type And<X extends boolean, Y extends boolean> = X extends true ? (Y extends true ? true : false) : false\nexport type Or<X extends boolean, Y extends boolean> = X extends true ? true : Y extends true ? true : false\n\nexport type AtLeastOne<T> = [T, ...T[]]\nexport type AtLeastOneProperty<T> = T extends undefined\n ? {}\n : {\n [K in keyof T]?: T[K]\n } & {\n [K in keyof T]: Pick<T, K>\n }[keyof T]\nexport type ExactlyOneProperty<T> = T extends undefined\n ? {}\n : {\n [K in keyof T]: { [P in K]: T[P] } & { [P in Exclude<keyof T, K>]?: never }\n }[keyof T]\n\nexport type IsExtend<X, Y> = X extends Y ? true : false\nexport type IsEquivalent<X, Y> = IsExtend<X, Y> extends true ? IsExtend<Y, X> : false\nexport type IsIdentical<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false\nexport type IsEqual<X, Y> = IsIdentical<Normalize<X>, Normalize<Y>>\n\n/**\n * For F1 function to extend F2 function,\n * F2 input should extend F1 input so that if you call F1 thinking it is F2, it still works.\n * IsStricterFunction is not an extension check as it allows F1 to require a stricter input than F2.\n */\nexport type IsStricterFunction<F1 extends Function, F2 extends Function> = And<\n IsExtend<ReturnType<F1>, ReturnType<F2>>,\n IsExtend<Parameters<F1>, Parameters<F2>>\n>\n\nexport type AssertExtends<_A extends B, B> = true\nexport type AssertNotExtends<A, B> = A extends B ? false : true\nexport type AssertTrue<_T extends true> = true\nexport type AssertAll<_T extends true[]> = true\n\nexport type Join<S extends (string | number | symbol)[]> = S extends [infer H, ...infer T]\n ? `${Cast<H, string>}${Join<Cast<T, string[]>>}`\n : S extends [infer H]\n ? Cast<H, string>\n : ''\n\nexport type Split<S extends string | number | symbol, D extends string> = S extends `${infer H}${D}${infer T}`\n ? [H, ...Split<Cast<T, string>, D>]\n : [S]\n\nexport type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never\n\n/**\n * removes string index signature from Record\n */\nexport type ToSealedRecord<R extends Record<string, any>> = {\n [K in keyof R as string extends K ? never : K]: R[K]\n}\n\ntype NormalizeTuple<T> = T extends [...infer A] ? { [K in keyof A]: Normalize<A[K]> } : never\ntype NormalizeObject<T extends object> = T extends infer O ? { [K in keyof O]: Normalize<O[K]> } : never\n\nexport type Normalize<T> = T extends (...args: infer A) => infer R\n ? (...args: NormalizeTuple<A>) => Normalize<R>\n : T extends Array<infer E>\n ? Array<Normalize<E>>\n : T extends ReadonlyArray<infer E>\n ? ReadonlyArray<Normalize<E>>\n : T extends Promise<infer R>\n ? Promise<Normalize<R>>\n : T extends Buffer\n ? Buffer\n : T extends object\n ? NormalizeObject<T>\n : T\n\ntype DeepPartialObject<T extends object> = T extends infer O ? { [K in keyof O]?: DeepPartial<O[K]> } : never\nexport type DeepPartial<T> = T extends (...args: infer A) => infer R\n ? (...args: DeepPartial<A>) => DeepPartial<R>\n : T extends Array<infer E>\n ? Array<DeepPartial<E>>\n : T extends ReadonlyArray<infer E>\n ? ReadonlyArray<DeepPartial<E>>\n : T extends Promise<infer R>\n ? Promise<DeepPartial<R>>\n : T extends Buffer\n ? Buffer\n : T extends object\n ? DeepPartialObject<T>\n : T\n\nexport type SafeOmit<T, K extends keyof T> = Omit<T, K>\n\nexport type StringKeys<T> = Extract<keyof T, string>\n\nexport type DistributivePick<T, K extends keyof T> = T extends any ? Pick<T, K> : never\n", "export type Func<X extends any[], Y> = (...args: X) => Y\n\nexport const setName = <X extends any[], Y>(f: Func<X, Y>, name: string): Func<X, Y> => {\n Object.defineProperty(f, 'name', { value: name })\n return f\n}\n", "import { version } from '../package.json'\n\nexport const SDK_VERSION = version\n", "{\n \"name\": \"@holocronlab/botruntime-sdk\",\n \"version\": \"6.13.3\",\n \"description\": \"SDK for building bots and integrations on botruntime\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"readme.md\",\n \"LICENSE\"\n ],\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/HolocronLab/botruntime-packages\",\n \"directory\": \"packages/botruntime-sdk\"\n },\n \"scripts\": {\n \"check:type\": \"tsc -p ./tsconfig.json --noEmit\",\n \"build:type\": \"tsc -p ./tsconfig.package.json --emitDeclarationOnly --declaration\",\n \"build:browser\": \"ts-node -T ./build.ts --browser\",\n \"build:node\": \"ts-node -T ./build.ts --node\",\n \"build\": \"npm run build:type && npm run build:node && npm run build:browser\",\n \"test\": \"vitest --run\"\n },\n \"keywords\": [],\n \"author\": \"HolocronLab\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@holocronlab/botruntime-client\": \"file:../botruntime-client\",\n \"@holocronlab/botruntime-zui\": \"file:../botruntime-zui\",\n \"browser-or-node\": \"^2.1.1\",\n \"semver\": \"^7.3.8\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.16.4\",\n \"@types/semver\": \"^7.3.11\",\n \"esbuild\": \"^0.25.10\",\n \"esbuild-plugin-polyfill-node\": \"^0.3.0\",\n \"ts-node\": \"^10.9.2\",\n \"typescript\": \"^6.0.3\",\n \"vitest\": \"^2.1.8\"\n },\n \"peerDependencies\": {\n \"esbuild\": \"^0.16.12\"\n },\n \"peerDependenciesMeta\": {\n \"esbuild\": {\n \"optional\": true\n }\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n }\n}\n", "import * as utils from '../../utils'\nimport { z } from '../../zui'\n\nconst schemaName = Symbol('schemaName')\n\ntype BaseSchemas = Record<string, z.ZodSchema>\n\nexport type SchemaStoreProps<TSchemas extends BaseSchemas = BaseSchemas> = {\n [K in keyof TSchemas]: {\n schema: TSchemas[K]\n }\n}\n\nexport type BrandedSchema<TSchema extends BaseSchemas[string] = BaseSchemas[string]> = {\n schema: TSchema\n [schemaName]: string\n}\n\nexport type SchemaStore<TSchemas extends BaseSchemas = BaseSchemas> = {\n [K in keyof TSchemas]: BrandedSchema<TSchemas[K]>\n}\n\nexport const createStore = <TSchemas extends BaseSchemas>(\n props: SchemaStoreProps<TSchemas> | undefined\n): SchemaStore<TSchemas> => {\n if (!props) {\n return {} as SchemaStore<TSchemas>\n }\n const store: SchemaStore<BaseSchemas> = utils.records.mapValues(props, (e, k) => ({ ...e, [schemaName]: k }))\n return store as SchemaStore<TSchemas>\n}\n\nexport const isBranded = (schema: BrandedSchema | { schema: z.ZodSchema }): schema is BrandedSchema => {\n return schemaName in schema && schema[schemaName] !== undefined\n}\n\nexport const getName = (schema: BrandedSchema): string => {\n return schema[schemaName]\n}\n", "import { SchemaDefinition } from '../../schema'\nimport { z } from '../../zui'\nimport {\n BaseConfig,\n BaseEvents,\n BaseActions,\n BaseMessages,\n BaseChannels,\n BaseStates,\n BaseEntities,\n BaseConfigs,\n} from './generic'\n\nexport type TagDefinition = {\n title?: string\n description?: string\n}\n\nexport type ConfigurationDefinition<TConfig extends BaseConfig = BaseConfig> = SchemaDefinition<TConfig> & {\n identifier?: {\n required?: boolean\n linkTemplateScript?: string\n }\n}\n\nexport type AdditionalConfigurationDefinition<TConfig extends BaseConfigs[string] = BaseConfigs[string]> =\n ConfigurationDefinition<TConfig> & {\n title?: string\n description?: string\n }\n\nexport type EventDefinition<TEvent extends BaseEvents[string] = BaseEvents[string]> = SchemaDefinition<TEvent> & {\n title?: string\n description?: string\n attributes?: Record<string, string>\n}\n\nexport type MessageDefinition<TMessage extends BaseMessages[string] = BaseMessages[string]> = SchemaDefinition<TMessage>\n\nexport type ChannelDefinition<TChannel extends BaseChannels[string] = BaseChannels[string]> = {\n title?: string\n description?: string\n messages: {\n [K in keyof TChannel]: MessageDefinition<TChannel[K]>\n }\n message?: {\n tags?: Record<string, TagDefinition>\n }\n conversation?: Partial<{\n tags: Record<string, TagDefinition>\n /**\n * @deprecated\n */\n creation: {\n enabled: boolean\n requiredTags: string[]\n }\n }>\n}\n\nexport type ActionDefinition<TAction extends BaseActions[string] = BaseActions[string]> = {\n title?: string\n description?: string\n input: SchemaDefinition<TAction>\n output: SchemaDefinition<z.ZuiObjectSchema> // cannot infer both input and output types (typescript limitation)\n billable?: boolean\n cacheable?: boolean\n attributes?: Record<string, string>\n}\n\nexport type StateType = 'integration' | 'conversation' | 'user'\n\nexport type StateDefinition<TState extends BaseStates[string] = BaseStates[string]> = SchemaDefinition<TState> & {\n type: StateType\n}\n\nexport type UserDefinition = Partial<{\n tags: Record<string, TagDefinition>\n /**\n * @deprecated\n */\n creation: {\n enabled: boolean\n requiredTags: string[]\n }\n}>\n\nexport type SecretDefinition = {\n optional?: boolean\n description?: string\n}\n\nexport type IntegrationNetworkDefinition = {\n providerHosts?: string[]\n ingressRelayed?: boolean\n webhookAuthMode?: 'shared_secret' | 'provider_verified'\n}\n\nexport type EntityDefinition<TEntity extends BaseEntities[string] = BaseEntities[string]> =\n SchemaDefinition<TEntity> & {\n title?: string\n description?: string\n }\n\nexport type ResolvedInterface<\n TEvents extends BaseEvents = BaseEvents,\n TActions extends BaseActions = BaseActions,\n TChannels extends BaseChannels = BaseChannels,\n> = {\n actions: { [K in keyof TActions]: ActionDefinition<TActions[K]> }\n events: { [K in keyof TEvents]: EventDefinition<TEvents[K]> }\n channels: { [K in keyof TChannels]: ChannelDefinition<TChannels[K]> }\n}\n\n/**\n * A.K.A. Interface Implementation Statetement\n * Used by an integration to explicitly declare that it implements an interface\n */\nexport type InterfaceExtension<\n TEntities extends BaseEntities = BaseEntities,\n TActions extends BaseActions = BaseActions,\n TEvents extends BaseEvents = BaseEvents,\n TChannels extends BaseChannels = BaseChannels,\n> = {\n id?: string // id of the interface to implement\n name: string // name of the interface to implement\n version: string // version of the interface to implement\n entities: { [K in keyof TEntities]: { name: string } }\n actions: { [K in keyof TActions]: { name: string } }\n events: { [K in keyof TEvents]: { name: string } }\n channels: { [K in keyof TChannels]: { name: string } }\n}\n", "import type { Server } from 'node:http'\nimport { serve } from '../serve'\nimport { BaseIntegration } from './common'\nimport {\n RegisterHandler as RegisterFunction,\n UnregisterHandler as UnregisterFunction,\n WebhookHandler as WebhookFunction,\n CreateUserHandler as CreateUserFunction,\n CreateConversationHandler as CreateConversationFunction,\n ActionHandlers as ActionFunctions,\n ChannelHandlers as ChannelFunctions,\n UnknownOperationHandler as UnknownOperationFunction,\n integrationHandler,\n} from './server'\n\nexport type IntegrationImplementationProps<TIntegration extends BaseIntegration = BaseIntegration> = {\n register: RegisterFunction<TIntegration>\n unregister: UnregisterFunction<TIntegration>\n handler: WebhookFunction<TIntegration>\n /**\n * @deprecated\n */\n createUser?: CreateUserFunction<TIntegration>\n /**\n * @deprecated\n */\n createConversation?: CreateConversationFunction<TIntegration>\n actions: ActionFunctions<TIntegration>\n channels: ChannelFunctions<TIntegration>\n __advanced?: {\n unknownOperationHandler?: UnknownOperationFunction<TIntegration>\n managesOwnTracePropagation?: boolean\n }\n}\n\nexport class IntegrationImplementation<TIntegration extends BaseIntegration = BaseIntegration> {\n public readonly actions: IntegrationImplementationProps<TIntegration>['actions']\n public readonly channels: IntegrationImplementationProps<TIntegration>['channels']\n public readonly register: IntegrationImplementationProps<TIntegration>['register']\n public readonly unregister: IntegrationImplementationProps<TIntegration>['unregister']\n public readonly createUser: IntegrationImplementationProps<TIntegration>['createUser']\n public readonly createConversation: IntegrationImplementationProps<TIntegration>['createConversation']\n public readonly webhook: IntegrationImplementationProps<TIntegration>['handler']\n public readonly unknownOperationHandler: NonNullable<\n IntegrationImplementationProps<TIntegration>['__advanced']\n >['unknownOperationHandler']\n public readonly managesOwnTracePropagation: NonNullable<\n IntegrationImplementationProps<TIntegration>['__advanced']\n >['managesOwnTracePropagation']\n\n public constructor(public readonly props: IntegrationImplementationProps<TIntegration>) {\n this.actions = props.actions\n this.channels = props.channels\n this.register = props.register\n this.unregister = props.unregister\n this.createUser = props.createUser\n this.createConversation = props.createConversation\n this.webhook = props.handler\n this.unknownOperationHandler = props.__advanced?.unknownOperationHandler\n this.managesOwnTracePropagation = props.__advanced?.managesOwnTracePropagation\n }\n\n public readonly handler = integrationHandler(this as IntegrationImplementation<any>)\n public readonly start = (port?: number): Promise<Server> => serve(this.handler, port)\n}\n", "import { Client, InvalidPayloadError } from '@holocronlab/botruntime-client'\nimport { retryConfig } from '../../retry'\nimport { Request, Response, parseBody, handlerErrorToHttpResponse } from '../../serve'\nimport { IntegrationSpecificClient } from '../client'\nimport { BaseIntegration } from '../common'\nimport { ActionMetadataStore } from './action-metadata'\nimport { extractContext } from './context'\nimport { IntegrationLogger } from './integration-logger'\nimport {\n CommonHandlerProps,\n IntegrationHandlers,\n WebhookPayload,\n ActionPayload,\n MessagePayload,\n RegisterPayload,\n CreateUserPayload,\n UnregisterPayload,\n CreateConversationPayload,\n IntegrationContext,\n} from './types'\n\nexport * from './types'\nexport * from './integration-logger'\n\ntype ServerProps = CommonHandlerProps<BaseIntegration> & {\n req: Request\n instance: IntegrationHandlers<BaseIntegration>\n}\n\nconst extractTracingHeaders = (headers: Record<string, string | undefined>) => {\n return ['traceparent', 'tracestate'].reduce<Record<string, string>>((acc, header) => {\n if (headers[header]) {\n acc[header] = headers[header]\n }\n return acc\n }, {})\n}\n\nconst getServerProps = (\n ctx: IntegrationContext,\n req: Request,\n instance: IntegrationHandlers<BaseIntegration>\n): ServerProps => {\n const [, traceId] = (req.headers['traceparent'] || '').split('-')\n\n const vanillaClient = new Client({\n botId: ctx.botId,\n integrationId: ctx.integrationId,\n integrationAlias: ctx.integrationAlias,\n retry: retryConfig,\n headers: instance.managesOwnTracePropagation ? {} : extractTracingHeaders(req.headers),\n })\n const client = new IntegrationSpecificClient<BaseIntegration>(vanillaClient)\n const logger = new IntegrationLogger({\n traceId,\n botId: ctx.botId,\n integrationId: ctx.integrationId,\n integrationAlias: ctx.integrationAlias,\n })\n\n return {\n ctx,\n req,\n client,\n logger,\n instance,\n }\n}\n\nconst handleOperation = async (props: ServerProps) => {\n const { ctx } = props\n switch (ctx.operation) {\n case 'webhook_received':\n return await onWebhook(props)\n case 'register':\n return await onRegister(props)\n case 'unregister':\n return await onUnregister(props)\n case 'message_created':\n return await onMessageCreated(props)\n case 'action_triggered':\n return await onActionTriggered(props)\n case 'ping':\n return await onPing(props)\n case 'create_user':\n return await onCreateUser(props)\n case 'create_conversation':\n return await onCreateConversation(props)\n default:\n throw new InvalidPayloadError(`Unknown operation ${ctx.operation}`)\n }\n}\n\nexport const integrationHandler =\n (instance: IntegrationHandlers<BaseIntegration>) =>\n async (req: Request): Promise<Response | void> => {\n const ctx = extractContext(req.headers)\n const props = getServerProps(ctx, req, instance)\n const { logger } = props\n\n try {\n let response: Response | void\n response = await onUnknownOperationHandler(props)\n if (response) {\n return { ...response, status: response.status ?? 200 }\n }\n\n response = await handleOperation(props)\n return response ? { ...response, status: response.status ?? 200 } : { status: 200 }\n } catch (thrown: unknown) {\n const { status, body, error } = handlerErrorToHttpResponse({\n thrown,\n unexpectedErrorMessage:\n 'An unexpected error occurred in the integration. Bot owners: Check logs for more informations. Integration owners: throw a RuntimeError to return a custom error message instead.',\n })\n\n if (status >= 500) {\n // prints the error in the integration logs\n console.error(thrown)\n }\n\n logger.forBot().error(error.message)\n return { status, body }\n }\n }\n\nconst onPing = async (_: ServerProps) => {}\n\nconst onWebhook = async ({ client, ctx, req: incomingRequest, logger, instance }: ServerProps) => {\n const { req } = parseBody<WebhookPayload>(incomingRequest)\n return instance.webhook({ client, ctx, req, logger })\n}\n\nconst onRegister = async ({ client, ctx, req, logger, instance }: ServerProps) => {\n if (!instance.register) {\n return\n }\n const { webhookUrl } = parseBody<RegisterPayload>(req)\n await instance.register({ client, ctx, webhookUrl, logger })\n}\n\nconst onUnregister = async ({ client, ctx, req, logger, instance }: ServerProps) => {\n if (!instance.unregister) {\n return\n }\n const { webhookUrl } = parseBody<UnregisterPayload>(req)\n await instance.unregister({ ctx, webhookUrl, client, logger })\n}\n\nconst onCreateUser = async ({ client, ctx, req, logger, instance }: ServerProps) => {\n if (!instance.createUser) {\n return\n }\n const { tags } = parseBody<CreateUserPayload<BaseIntegration>>(req)\n return await instance.createUser({ ctx, client, tags, logger })\n}\n\nconst onCreateConversation = async ({ client, ctx, req, logger, instance }: ServerProps) => {\n if (!instance.createConversation) {\n return\n }\n const { channel, tags } = parseBody<CreateConversationPayload<BaseIntegration>>(req)\n return await instance.createConversation({ ctx, client, channel, tags, logger })\n}\n\nconst onMessageCreated = async ({ ctx, req, client, logger, instance }: ServerProps) => {\n const { conversation, user, type, payload, message } = parseBody<MessagePayload<BaseIntegration, string, string>>(req)\n\n const channelHandler = instance.channels[conversation.channel]\n\n if (!channelHandler) {\n throw new InvalidPayloadError(`Channel ${conversation.channel} not found`)\n }\n\n const messageHandler = channelHandler.messages[type]\n\n if (!messageHandler) {\n throw new InvalidPayloadError(`Message of type ${type} not found in channel ${conversation.channel}`)\n }\n\n type UpdateMessageProps = Parameters<(typeof client)['updateMessage']>[0]\n const ack = async ({ tags }: Pick<UpdateMessageProps, 'tags'>) => {\n await client.updateMessage({\n id: message.id,\n tags,\n })\n }\n\n await messageHandler({ ctx, conversation, message, user, type, client, payload, ack, logger })\n}\n\nconst onActionTriggered = async ({ req, ctx, client, logger, instance }: ServerProps) => {\n const { input, type } = parseBody<ActionPayload<string, any>>(req)\n\n if (!type) {\n throw new InvalidPayloadError('Missing action type')\n }\n\n const action = instance.actions[type]\n\n if (!action) {\n throw new InvalidPayloadError(`Action ${type} not found`)\n }\n\n const metadata = new ActionMetadataStore()\n const output = await action({ ctx, input, client, type, logger, metadata })\n\n const response = { output, meta: metadata.toJSON() }\n return {\n body: JSON.stringify(response),\n }\n}\n\nconst onUnknownOperationHandler = async ({\n instance,\n client,\n ctx,\n logger,\n req,\n}: ServerProps): Promise<Response | void> => {\n const handler = instance.unknownOperationHandler\n if (!handler) {\n return\n }\n return await handler({\n client,\n ctx,\n logger,\n req,\n })\n}\n", "import * as client from '@holocronlab/botruntime-client'\n\nexport const retryConfig: client.RetryConfig = {\n retries: 3,\n retryCondition: (err) =>\n client.axiosRetry.isNetworkOrIdempotentRequestError(err) || [429, 502].includes(err.response?.status ?? 0),\n retryDelay: (retryCount, axiosError) => {\n const retryAfterSeconds = _getRetryAfterSeconds(axiosError.response?.headers ?? {})\n return (retryAfterSeconds ?? retryCount) * 1000\n },\n}\n\nconst _getRetryAfterSeconds = (headers: client.axios.RawAxiosResponseHeaders) => {\n const headerNames = [\n // Standard rate limiting headers:\n 'RateLimit-Reset',\n 'X-RateLimit-Reset',\n 'Retry-After',\n\n // Lowercase variants:\n 'ratelimit-reset',\n 'x-ratelimit-reset',\n 'retry-after',\n ] as const\n\n for (const headerName of headerNames) {\n const headerValue: unknown = headers[headerName]\n\n if (headerValue === undefined) {\n continue\n }\n\n return _parseHeaderToSeconds(String(headerValue))\n }\n\n return\n}\n\nconst _parseHeaderToSeconds = (headerValue: string): number | undefined => {\n // NOTE: retry-after can be either a number of seconds or a date string:\n const secondsDiff = _isDateString(headerValue)\n ? _parseDateToSeconds(headerValue)\n : headerValue.length > 0\n ? parseInt(headerValue, 10)\n : undefined\n\n return secondsDiff === undefined || isNaN(secondsDiff) ? undefined : secondsDiff\n}\n\nconst _isDateString = (headerValue: string): boolean => headerValue.includes(' ')\n\nconst _parseDateToSeconds = (headerValue: string): number | undefined => {\n const futureDate = _parseDateString(headerValue)\n if (!futureDate) {\n return\n }\n\n const currentDate = new Date()\n return Math.max(0, Math.floor((futureDate.getTime() - currentDate.getTime()) / 1000))\n}\n\nconst _parseDateString = (headerValue: string): Date | undefined => {\n const date = new Date(headerValue)\n return isNaN(date.getTime()) ? undefined : date\n}\n", "import * as client from '@holocronlab/botruntime-client'\nimport * as common from '../common'\nimport * as types from './types'\n\nexport * from './types'\n\n/**\n * Just like the regular botpress client, but typed with the integration's properties.\n */\nexport class IntegrationSpecificClient<TIntegration extends common.BaseIntegration>\n implements types.ClientOperations<TIntegration>\n{\n public constructor(private readonly _client: client.Client) {}\n\n /**\n * Access the underlying Botpress client.\n * This is useful for operations that are not available in the IntegrationSpecificClient.\n * You probably shouldn't use this directly if you don't know what you're doing.\n */\n public get _inner(): client.Client {\n return this._client\n }\n\n public createConversation: types.CreateConversation<TIntegration> = ((x) =>\n this._client.createConversation(x)) as types.CreateConversation<TIntegration>\n public getConversation: types.GetConversation<TIntegration> = ((x) =>\n this._client.getConversation(x)) as types.GetConversation<TIntegration>\n public listConversations: types.ListConversations<TIntegration> = ((x) =>\n this._client.listConversations(x)) as types.ListConversations<TIntegration>\n public getOrCreateConversation: types.GetOrCreateConversation<TIntegration> = ((x) =>\n this._client.getOrCreateConversation(x)) as types.GetOrCreateConversation<TIntegration>\n public updateConversation: types.UpdateConversation<TIntegration> = ((x) =>\n this._client.updateConversation(x)) as types.UpdateConversation<TIntegration>\n public deleteConversation: types.DeleteConversation<TIntegration> = ((x) =>\n this._client.deleteConversation(x)) as types.DeleteConversation<TIntegration>\n\n public listParticipants: types.ListParticipants<TIntegration> = ((x) =>\n this._client.listParticipants(x)) as types.ListParticipants<TIntegration>\n public addParticipant: types.AddParticipant<TIntegration> = ((x) =>\n this._client.addParticipant(x)) as types.AddParticipant<TIntegration>\n public getParticipant: types.GetParticipant<TIntegration> = ((x) =>\n this._client.getParticipant(x)) as types.GetParticipant<TIntegration>\n public removeParticipant: types.RemoveParticipant<TIntegration> = ((x) =>\n this._client.removeParticipant(x)) as types.RemoveParticipant<TIntegration>\n\n public createEvent: types.CreateEvent<TIntegration> = ((x) =>\n this._client.createEvent(x)) as types.CreateEvent<TIntegration>\n public getEvent: types.GetEvent<TIntegration> = ((x) => this._client.getEvent(x)) as types.GetEvent<TIntegration>\n public listEvents: types.ListEvents<TIntegration> = ((x) =>\n this._client.listEvents(x)) as types.ListEvents<TIntegration>\n\n public createMessage: types.CreateMessage<TIntegration> = ((x) =>\n this._client.createMessage(x)) as types.CreateMessage<TIntegration>\n public getOrCreateMessage: types.GetOrCreateMessage<TIntegration> = ((x) =>\n this._client.getOrCreateMessage(x)) as types.GetOrCreateMessage<TIntegration>\n public getMessage: types.GetMessage<TIntegration> = ((x) =>\n this._client.getMessage(x).then((r) => r)) as types.GetMessage<TIntegration>\n public updateMessage: types.UpdateMessage<TIntegration> = ((x) =>\n this._client.updateMessage(x).then((r) => r)) as types.UpdateMessage<TIntegration>\n public listMessages: types.ListMessages<TIntegration> = ((x) =>\n this._client.listMessages(x)) as types.ListMessages<TIntegration>\n public deleteMessage: types.DeleteMessage<TIntegration> = ((x) =>\n this._client.deleteMessage(x)) as types.DeleteMessage<TIntegration>\n public initializeIncomingMessage: types.InitializeIncomingMessage<TIntegration> = ((x) =>\n this._client.initializeIncomingMessage(x)) as types.InitializeIncomingMessage<TIntegration>\n\n public createUser: types.CreateUser<TIntegration> = ((x) =>\n this._client.createUser(x)) as types.CreateUser<TIntegration>\n public getUser: types.GetUser<TIntegration> = ((x) => this._client.getUser(x)) as types.GetUser<TIntegration>\n public listUsers: types.ListUsers<TIntegration> = (x) => this._client.listUsers(x)\n public getOrCreateUser: types.GetOrCreateUser<TIntegration> = ((x) =>\n this._client.getOrCreateUser(x)) as types.GetOrCreateUser<TIntegration>\n public updateUser: types.UpdateUser<TIntegration> = ((x) =>\n this._client.updateUser(x)) as types.UpdateUser<TIntegration>\n public deleteUser: types.DeleteUser<TIntegration> = (x) => this._client.deleteUser(x)\n\n public getState: types.GetState<TIntegration> = ((x) => this._client.getState(x)) as types.GetState<TIntegration>\n public setState: types.SetState<TIntegration> = ((x) => this._client.setState(x)) as types.SetState<TIntegration>\n public getOrSetState: types.GetOrSetState<TIntegration> = ((x) =>\n this._client.getOrSetState(x)) as types.GetOrSetState<TIntegration>\n public patchState: types.PatchState<TIntegration> = ((x) =>\n this._client.patchState(x)) as types.PatchState<TIntegration>\n\n public configureIntegration: types.ConfigureIntegration<TIntegration> = (x) => this._client.configureIntegration(x)\n\n public uploadFile: types.UploadFile<TIntegration> = (x) => this._client.uploadFile(x)\n public upsertFile: types.UpsertFile<TIntegration> = (x) => this._client.upsertFile(x)\n public deleteFile: types.DeleteFile<TIntegration> = (x) => this._client.deleteFile(x)\n public listFiles: types.ListFiles<TIntegration> = (x) => this._client.listFiles(x)\n public getFile: types.GetFile<TIntegration> = (x) => this._client.getFile(x)\n public updateFileMetadata: types.UpdateFileMetadata<TIntegration> = (x) => this._client.updateFileMetadata(x)\n public trackAnalytics: types.TrackAnalytics<TIntegration> = (x) => this._client.trackAnalytics(x)\n}\n", "import * as client from '@holocronlab/botruntime-client'\nimport type { commonTypes } from '../../common'\nimport * as utils from '../../utils/type-utils'\nimport * as common from '../common'\nimport {\n EnumerateMessages,\n ConversationTags,\n GetChannelByName,\n GetMessageByName,\n MessageTags,\n UserTags,\n} from './sub-types'\n\ntype Arg<F extends (...args: any[]) => any> = Parameters<F>[number]\ntype Res<F extends (...args: any[]) => any> = ReturnType<F>\n\ntype ConversationResponse<\n TIntegration extends common.BaseIntegration,\n ChannelName extends keyof TIntegration['channels'] = keyof TIntegration['channels'],\n> = utils.ValueOf<{\n [TChannelName in ChannelName]: {\n conversation: utils.Merge<\n Awaited<Res<client.Client['getConversation']>>['conversation'],\n {\n channel: TChannelName\n tags: commonTypes.ToTags<keyof TIntegration['channels'][TChannelName]['conversation']['tags']>\n }\n >\n }\n}>\n\n// TODO: rm dupplicated code with type above\ntype GetOrCreateConversationResponse<\n TIntegration extends common.BaseIntegration,\n ChannelName extends keyof TIntegration['channels'] = keyof TIntegration['channels'],\n> = utils.ValueOf<{\n [TChannelName in ChannelName]: utils.Merge<\n Awaited<Res<client.Client['getOrCreateConversation']>>,\n {\n conversation: utils.Merge<\n Awaited<Res<client.Client['getOrCreateConversation']>>['conversation'],\n {\n channel: TChannelName\n tags: commonTypes.ToTags<keyof TIntegration['channels'][TChannelName]['conversation']['tags']>\n }\n >\n }\n >\n}>\n\nexport type CreateConversation<TIntegration extends common.BaseIntegration> = <\n ChannelName extends keyof TIntegration['channels'],\n>(x: {\n channel: utils.Cast<ChannelName, string>\n tags: commonTypes.ToTags<keyof GetChannelByName<TIntegration, ChannelName>['conversation']['tags']>\n}) => Promise<ConversationResponse<TIntegration, ChannelName>>\n\nexport type GetConversation<TIntegration extends common.BaseIntegration> = (\n x: Arg<client.Client['getConversation']>\n) => Promise<ConversationResponse<TIntegration>>\n\nexport type ListConversations<TIntegration extends common.BaseIntegration> = <\n ChannelName extends keyof TIntegration['channels'],\n>(\n x: utils.Merge<\n Arg<client.Client['listConversations']>,\n {\n channel?: utils.Cast<ChannelName, string>\n tags?: commonTypes.ToTags<keyof GetChannelByName<TIntegration, ChannelName>['conversation']['tags']>\n }\n >\n) => Res<client.Client['listConversations']> // TODO: response should contain the tags\n\nexport type GetOrCreateConversation<TIntegration extends common.BaseIntegration> = <\n ChannelName extends keyof TIntegration['channels'],\n TTags extends keyof GetChannelByName<TIntegration, ChannelName>['conversation']['tags'],\n>(\n x: utils.Merge<\n Arg<client.Client['getOrCreateConversation']>,\n {\n channel: utils.Cast<ChannelName, string>\n tags: commonTypes.ToNullableTags<TTags>\n discriminateByTags?: NoInfer<utils.Cast<TTags[], string[]>>\n }\n >\n) => Promise<GetOrCreateConversationResponse<TIntegration, ChannelName>>\n\nexport type UpdateConversation<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['updateConversation']>,\n {\n tags?: commonTypes.ToNullableTags<ConversationTags<TIntegration>>\n }\n >\n) => Promise<ConversationResponse<TIntegration>>\n\nexport type DeleteConversation<_TIntegration extends common.BaseIntegration> = client.Client['deleteConversation']\n\nexport type ListParticipants<_TIntegration extends common.BaseIntegration> = client.Client['listParticipants']\nexport type AddParticipant<_TIntegration extends common.BaseIntegration> = client.Client['addParticipant']\nexport type GetParticipant<_TIntegration extends common.BaseIntegration> = client.Client['getParticipant']\nexport type RemoveParticipant<_TIntegration extends common.BaseIntegration> = client.Client['removeParticipant']\n\ntype EventResponse<TIntegration extends common.BaseIntegration, TEvent extends keyof TIntegration['events']> = {\n event: utils.Merge<\n Awaited<Res<client.Client['getEvent']>>['event'],\n {\n type: utils.Cast<TEvent, string>\n payload: TIntegration['events'][TEvent]\n }\n >\n}\n\nexport type CreateEvent<TIntegration extends common.BaseIntegration> = <TEvent extends keyof TIntegration['events']>(\n x: utils.Merge<\n Arg<client.Client['createEvent']>,\n {\n type: utils.Cast<TEvent, string>\n payload: TIntegration['events'][TEvent]\n }\n >\n) => Promise<EventResponse<TIntegration, TEvent>>\n\nexport type GetEvent<TIntegration extends common.BaseIntegration> = (x: Arg<client.Client['getEvent']>) => Promise<\n utils.ValueOf<{\n [K in keyof TIntegration['events']]: EventResponse<TIntegration, K>\n }>\n>\n\nexport type ListEvents<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['listEvents']>,\n {\n type?: utils.Cast<keyof TIntegration['events'], string>\n }\n >\n) => Res<client.Client['listEvents']>\n\ntype MessageResponse<\n TIntegration extends common.BaseIntegration,\n TMessage extends keyof EnumerateMessages<TIntegration> = keyof EnumerateMessages<TIntegration>,\n> = {\n message: utils.Merge<\n Awaited<Res<client.Client['getMessage']>>['message'],\n utils.Cast<EnumerateMessages<TIntegration>[TMessage], object>\n >\n}\n\nexport type CreateMessage<TIntegration extends common.BaseIntegration> = <\n TMessage extends keyof EnumerateMessages<TIntegration>,\n>(\n x: utils.Merge<\n Arg<client.Client['createMessage']>,\n {\n type: utils.Cast<TMessage, string>\n payload: GetMessageByName<TIntegration, TMessage>['payload']\n tags: commonTypes.ToTags<keyof GetMessageByName<TIntegration, TMessage>['tags']>\n }\n >\n) => Promise<MessageResponse<TIntegration, TMessage>>\n\ntype GetOrCreateMessageResponse<\n TIntegration extends common.BaseIntegration,\n TMessage extends keyof EnumerateMessages<TIntegration> = keyof EnumerateMessages<TIntegration>,\n> = utils.Merge<\n Awaited<Res<client.Client['getOrCreateMessage']>>,\n {\n message: utils.Merge<\n Awaited<Res<client.Client['getOrCreateMessage']>>['message'],\n utils.Cast<EnumerateMessages<TIntegration>[TMessage], object>\n >\n }\n>\n\nexport type GetOrCreateMessage<TIntegration extends common.BaseIntegration> = <\n TMessage extends keyof EnumerateMessages<TIntegration>,\n TTags extends keyof GetMessageByName<TIntegration, TMessage>['tags'],\n>(\n x: utils.Merge<\n Arg<client.Client['getOrCreateMessage']>,\n {\n type: utils.Cast<TMessage, string>\n payload?: GetMessageByName<TIntegration, TMessage>['payload']\n tags: commonTypes.ToNullableTags<TTags>\n // TODO: find a way to restrict discriminateByTags to tags present in x.tags\n discriminateByTags?: NoInfer<utils.Cast<TTags[], string[]>>\n }\n >\n) => Promise<GetOrCreateMessageResponse<TIntegration, TMessage>>\n\nexport type GetMessage<TIntegration extends common.BaseIntegration> = (\n x: Arg<client.Client['getMessage']>\n) => Promise<MessageResponse<TIntegration>>\n\nexport type UpdateMessage<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['updateMessage']>,\n {\n tags?: commonTypes.ToNullableTags<MessageTags<TIntegration>>\n }\n >\n) => Promise<MessageResponse<TIntegration>>\n\nexport type ListMessages<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['listMessages']>,\n {\n tags?: commonTypes.ToTags<MessageTags<TIntegration>>\n }\n >\n) => Res<client.Client['listMessages']> // TODO: response should contain the tags\n\nexport type DeleteMessage<_TIntegration extends common.BaseIntegration> = client.Client['deleteMessage']\n\ntype UserResponse<TIntegration extends common.BaseIntegration> = {\n user: utils.Merge<\n Awaited<Res<client.Client['getUser']>>['user'],\n {\n tags: commonTypes.ToTags<UserTags<TIntegration>>\n }\n >\n}\n\nexport type CreateUser<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['createUser']>,\n {\n tags: commonTypes.ToTags<UserTags<TIntegration>>\n }\n >\n) => Promise<UserResponse<TIntegration>>\n\nexport type GetUser<TIntegration extends common.BaseIntegration> = (\n x: Arg<client.Client['getUser']>\n) => Promise<UserResponse<TIntegration>>\n\nexport type ListUsers<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['listUsers']>,\n {\n tags?: commonTypes.ToTags<UserTags<TIntegration>>\n }\n >\n) => Res<client.Client['listUsers']>\n\ntype GetOrCreateUserResponse<TIntegration extends common.BaseIntegration> = utils.Merge<\n Awaited<Res<client.Client['getOrCreateUser']>>,\n {\n user: utils.Merge<\n Awaited<Res<client.Client['getOrCreateUser']>>['user'],\n {\n tags: commonTypes.ToTags<UserTags<TIntegration>>\n }\n >\n }\n>\n\nexport type GetOrCreateUser<TIntegration extends common.BaseIntegration> = <\n TTags extends keyof TIntegration['user']['tags'],\n>(\n x: utils.Merge<\n Arg<client.Client['getOrCreateUser']>,\n {\n tags: commonTypes.ToNullableTags<TTags>\n discriminateByTags?: NoInfer<utils.Cast<TTags[], string[]>>\n }\n >\n) => Promise<GetOrCreateUserResponse<TIntegration>>\n\nexport type UpdateUser<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['updateUser']>,\n {\n tags?: commonTypes.ToNullableTags<UserTags<TIntegration>>\n }\n >\n) => Promise<UserResponse<TIntegration>>\n\nexport type DeleteUser<_TIntegration extends common.BaseIntegration> = client.Client['deleteUser']\n\nexport type InitializeIncomingMessage<TIntegration extends common.BaseIntegration> = (\n x: utils.Merge<\n Arg<client.Client['initializeIncomingMessage']>,\n {\n user?: utils.Merge<\n NonNullable<Arg<client.Client['initializeIncomingMessage']>['user']>,\n { tags: commonTypes.ToTags<UserTags<TIntegration>> }\n >\n conversation?: utils.Merge<\n NonNullable<Arg<client.Client['initializeIncomingMessage']>['conversation']>,\n { tags: commonTypes.ToTags<ConversationTags<TIntegration>> }\n >\n message?: utils.Merge<\n NonNullable<Arg<client.Client['initializeIncomingMessage']>['message']>,\n { tags: commonTypes.ToTags<MessageTags<TIntegration>> }\n >\n }\n >\n) => Promise<{\n user: Awaited<Res<client.Client['getUser']>>['user']\n conversation: Awaited<Res<client.Client['getConversation']>>['conversation']\n message?: MessageResponse<TIntegration>\n}>\n\ntype StateResponse<TIntegration extends common.BaseIntegration, TState extends keyof TIntegration['states']> = {\n state: utils.Merge<\n Awaited<Res<client.Client['getState']>>['state'],\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TIntegration['states'][TState]['type'], string>\n payload: TIntegration['states'][TState]['payload']\n }\n >\n meta: {\n cached: boolean\n }\n}\n\nexport type GetState<TIntegration extends common.BaseIntegration> = <TState extends keyof TIntegration['states']>(\n x: utils.Merge<\n Arg<client.Client['getState']>,\n {\n type: utils.Cast<TIntegration['states'][TState]['type'], string>\n name: utils.Cast<TState, string>\n }\n >\n) => Promise<StateResponse<TIntegration, TState>>\n\nexport type SetState<TIntegration extends common.BaseIntegration> = <TState extends keyof TIntegration['states']>(\n x: utils.Merge<\n Arg<client.Client['setState']>,\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TIntegration['states'][TState]['type'], string>\n payload: TIntegration['states'][TState]['payload'] | null\n }\n >\n) => Promise<StateResponse<TIntegration, TState>>\n\nexport type GetOrSetState<TIntegration extends common.BaseIntegration> = <TState extends keyof TIntegration['states']>(\n x: utils.Merge<\n Arg<client.Client['getOrSetState']>,\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TIntegration['states'][TState]['type'], string>\n payload: TIntegration['states'][TState]['payload']\n }\n >\n) => Promise<StateResponse<TIntegration, TState>>\n\nexport type PatchState<TIntegration extends common.BaseIntegration> = <TState extends keyof TIntegration['states']>(\n x: utils.Merge<\n Arg<client.Client['patchState']>,\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TIntegration['states'][TState]['type'], string>\n payload: Partial<TIntegration['states'][TState]['payload']>\n }\n >\n) => Promise<StateResponse<TIntegration, TState>>\n\nexport type ConfigureIntegration<_TIntegration extends common.BaseIntegration> = client.Client['configureIntegration']\n\nexport type UploadFile<_TIntegration extends common.BaseIntegration> = client.Client['uploadFile']\nexport type UpsertFile<_TIntegration extends common.BaseIntegration> = client.Client['upsertFile']\nexport type DeleteFile<_TIntegration extends common.BaseIntegration> = client.Client['deleteFile']\nexport type ListFiles<_TIntegration extends common.BaseIntegration> = client.Client['listFiles']\nexport type GetFile<_TIntegration extends common.BaseIntegration> = client.Client['getFile']\nexport type UpdateFileMetadata<_TIntegration extends common.BaseIntegration> = client.Client['updateFileMetadata']\nexport type TrackAnalytics<_TIntegration extends common.BaseIntegration> = client.Client['trackAnalytics']\n\nexport type ClientOperations<TIntegration extends common.BaseIntegration> = {\n createConversation: CreateConversation<TIntegration>\n getConversation: GetConversation<TIntegration>\n listConversations: ListConversations<TIntegration>\n getOrCreateConversation: GetOrCreateConversation<TIntegration>\n updateConversation: UpdateConversation<TIntegration>\n deleteConversation: DeleteConversation<TIntegration>\n listParticipants: ListParticipants<TIntegration>\n addParticipant: AddParticipant<TIntegration>\n getParticipant: GetParticipant<TIntegration>\n removeParticipant: RemoveParticipant<TIntegration>\n createEvent: CreateEvent<TIntegration>\n getEvent: GetEvent<TIntegration>\n listEvents: ListEvents<TIntegration>\n createMessage: CreateMessage<TIntegration>\n getOrCreateMessage: GetOrCreateMessage<TIntegration>\n getMessage: GetMessage<TIntegration>\n updateMessage: UpdateMessage<TIntegration>\n listMessages: ListMessages<TIntegration>\n deleteMessage: DeleteMessage<TIntegration>\n createUser: CreateUser<TIntegration>\n getUser: GetUser<TIntegration>\n listUsers: ListUsers<TIntegration>\n getOrCreateUser: GetOrCreateUser<TIntegration>\n updateUser: UpdateUser<TIntegration>\n deleteUser: DeleteUser<TIntegration>\n getState: GetState<TIntegration>\n setState: SetState<TIntegration>\n getOrSetState: GetOrSetState<TIntegration>\n patchState: PatchState<TIntegration>\n configureIntegration: ConfigureIntegration<TIntegration>\n uploadFile: UploadFile<TIntegration>\n upsertFile: UpsertFile<TIntegration>\n deleteFile: DeleteFile<TIntegration>\n listFiles: ListFiles<TIntegration>\n getFile: GetFile<TIntegration>\n updateFileMetadata: UpdateFileMetadata<TIntegration>\n trackAnalytics: TrackAnalytics<TIntegration>\n}\n\nexport type ClientInputs<TIntegration extends common.BaseIntegration> = {\n [K in keyof ClientOperations<TIntegration>]: Arg<ClientOperations<TIntegration>[K]>\n}\n\nexport type ClientOutputs<TIntegration extends common.BaseIntegration> = {\n [K in keyof ClientOperations<TIntegration>]: Awaited<Res<ClientOperations<TIntegration>[K]>>\n}\n", "export type ActionMetadata = {\n cost: number\n}\n\nexport class ActionMetadataStore {\n private _cost: number = 0\n\n public get cost(): number {\n return this._cost\n }\n\n public setCost(cost: number): void {\n this._cost = cost\n }\n\n public toJSON(): ActionMetadata {\n return {\n cost: this.cost,\n }\n }\n}\n", "import { z } from '@holocronlab/botruntime-zui'\nimport {\n BOT_ID_HEADER,\n BOT_USER_ID_HEADER,\n CONFIGURATION_PAYLOAD_HEADER,\n CONFIGURATION_TYPE_HEADER,\n INTEGRATION_ALIAS_HEADER,\n INTEGRATION_ID_HEADER,\n OPERATION_TYPE_HEADER,\n WEBHOOK_ID_HEADER,\n} from '../../consts'\nimport { throwError } from '../../utils/error-utils'\nimport { IntegrationContext } from './types'\n\nexport const integrationOperationSchema = z.enum([\n 'webhook_received',\n 'message_created',\n 'action_triggered',\n 'register',\n 'unregister',\n 'ping',\n 'create_user',\n 'create_conversation',\n])\n\nexport const extractContext = (headers: Record<string, string | undefined>): IntegrationContext => ({\n botId: headers[BOT_ID_HEADER] || throwError('Missing bot header'),\n botUserId: headers[BOT_USER_ID_HEADER] || throwError('Missing bot user header'),\n integrationId: headers[INTEGRATION_ID_HEADER] || throwError('Missing integration header'),\n integrationAlias: headers[INTEGRATION_ALIAS_HEADER] || throwError('Missing integration alias header'),\n webhookId: headers[WEBHOOK_ID_HEADER] || throwError('Missing webhook header'),\n operation: headers[OPERATION_TYPE_HEADER] || throwError('Missing operation header'),\n configurationType: headers[CONFIGURATION_TYPE_HEADER] ?? null,\n configuration: JSON.parse(\n Buffer.from(headers[CONFIGURATION_PAYLOAD_HEADER] || throwError('Missing configuration header'), 'base64').toString(\n 'utf-8'\n )\n ),\n})\n", "export * from './public-consts'\n\n// This file contains constants that are not exported for public use.\n// They are used internally in the SDK and should not be used outside of it.\n\n// To export a constant, add it to the public-consts.ts file instead.\n\nexport const PLUGIN_PREFIX_SEPARATOR = '#'\n\nexport const BOT_ID_HEADER = 'x-bot-id'\nexport const BOT_USER_ID_HEADER = 'x-bot-user-id'\nexport const INTEGRATION_ID_HEADER = 'x-integration-id'\nexport const INTEGRATION_ALIAS_HEADER = 'x-integration-alias'\nexport const WEBHOOK_ID_HEADER = 'x-webhook-id'\n\nexport const CONFIGURATION_TYPE_HEADER = 'x-bp-configuration-type'\nexport const CONFIGURATION_PAYLOAD_HEADER = 'x-bp-configuration'\nexport const OPERATION_TYPE_HEADER = 'x-bp-operation'\nexport const OPERATION_SUBTYPE_HEADER = 'x-bp-type'\n", "/**\n * Utility to throw an error in ternary or nullish coalescing expressions\n */\nexport const throwError = (thrown: string | Error): never => {\n const error = thrown instanceof Error ? thrown : new Error(thrown)\n throw error\n}\n", "import { BaseLogger, type LogLevel } from '../../base-logger'\n\ntype IntegrationLogOptions = {\n botId?: string\n integrationId?: string\n integrationAlias?: string\n userId?: string\n conversationId?: string\n traceId?: string\n visibleToBotOwners?: boolean\n hiddenToIntegrationOwners?: boolean\n}\n\nexport class IntegrationLogger extends BaseLogger<IntegrationLogOptions> {\n public constructor(options?: IntegrationLogOptions) {\n super({\n visibleToBotOwners: false,\n hiddenToIntegrationOwners: false,\n ...options,\n })\n }\n\n public override with(options: IntegrationLogOptions) {\n return new IntegrationLogger({ ...this.defaultOptions, ...options })\n }\n\n public withUserId(userId: string) {\n return this.with({\n userId,\n })\n }\n\n public withConversationId(conversationId: string) {\n return this.with({\n conversationId,\n })\n }\n\n /**\n * Used send the log to the bot owner\n */\n public withVisibleToBotOwners(visibleToBotOwners: boolean) {\n return this.with({\n visibleToBotOwners,\n })\n }\n\n /**\n * Used to *hide* the log from the integration owner\n */\n public withHiddenToIntegrationOwners(hiddenToIntegrationOwners: boolean) {\n return this.with({\n hiddenToIntegrationOwners,\n })\n }\n\n /**\n * Used to send the log to the bot owner _**and**_ the integration owner\n */\n public forBot() {\n return this.with({\n hiddenToIntegrationOwners: false,\n visibleToBotOwners: true,\n })\n }\n\n /**\n * Used to send the log _**only**_ to the bot owner and _**not**_ the integration owner\n */\n public forBotOnly() {\n return this.with({\n hiddenToIntegrationOwners: true,\n visibleToBotOwners: true,\n })\n }\n\n protected override getJsonMessage(level: LogLevel, msg: string) {\n return JSON.stringify({\n msg,\n level,\n botId: this.defaultOptions.botId,\n integrationId: this.defaultOptions.integrationId,\n integrationAlias: this.defaultOptions.integrationAlias,\n //We need to have snake case 'visible_to_bot_owner' since that is how we used to differentiate between bot and integration logs\n visible_to_bot_owner: this.defaultOptions.visibleToBotOwners,\n hidden_to_integration_owner: this.defaultOptions.hiddenToIntegrationOwners,\n options: this.defaultOptions,\n })\n }\n\n protected override getIssueContext(): Record<string, string> {\n const { botId, integrationId, integrationAlias } = this.defaultOptions\n return {\n ...(botId && { botId }),\n ...(integrationId && { integrationId }),\n ...(integrationAlias && { integrationAlias }),\n }\n }\n}\n", "import util from 'util'\n\nexport type LogLevel = 'info' | 'debug' | 'warn' | 'error'\n\nexport type IssueLogEvent = {\n type: 'issue'\n code: string\n category: 'user_code' | 'limits' | 'configuration' | 'other'\n title: string\n description: string\n data: Record<string, { raw: string; pretty?: string }>\n /** This groups by data fields */\n groupBy: string[]\n traceId?: string\n}\n\nexport abstract class BaseLogger<TOptions extends object> {\n protected defaultOptions: TOptions\n\n protected constructor(defaultOptions: TOptions) {\n this.defaultOptions = defaultOptions\n }\n\n public abstract with(options: TOptions): BaseLogger<TOptions>\n\n public info(...args: Parameters<typeof console.info>) {\n this._log('info', args)\n }\n\n public debug(...args: Parameters<typeof console.debug>) {\n this._log('debug', args)\n }\n\n public warn(...args: Parameters<typeof console.warn>) {\n this._log('warn', args)\n }\n\n public error(...args: Parameters<typeof console.error>) {\n this._log('error', args)\n }\n\n public issue(args: IssueLogEvent) {\n console.info(JSON.stringify({ ...args, ...this.getIssueContext() }))\n }\n\n /**\n * Identity fields merged into every issue line so downstream ingestion can\n * attribute and validate the issue without out-of-band context.\n */\n protected getIssueContext(): Record<string, string> {\n return {}\n }\n\n private _log(level: LogLevel, args: Parameters<typeof console.info>) {\n this._getConsoleMethod(level)(this._serializeMessage(level, args))\n }\n\n private _serializeMessage(level: LogLevel, args: Parameters<typeof console.info>) {\n const msg = util.format(...args)\n if (process.env['BP_LOG_FORMAT'] === 'json') {\n return this.getJsonMessage(level, msg)\n } else {\n return msg\n }\n }\n\n protected getJsonMessage(level: LogLevel, msg: string) {\n return JSON.stringify({ msg, level, options: this.defaultOptions })\n }\n\n private _getConsoleMethod(level: LogLevel): (...args: unknown[]) => void {\n switch (level) {\n case 'debug':\n return console.debug\n case 'warn':\n return console.warn\n case 'error':\n return console.error\n default:\n return console.info\n }\n }\n}\n", "import { d as dew$c, a as dew$d, e as dew$e, f as dew$f } from './chunk-DtcTpLWz.js';\nimport { d as dew$g } from './chunk-CkFCi-G1.js';\nimport { p as process } from './chunk-DEMDiNwt.js';\n\nvar exports$c = {},\n _dewExec$b = false;\nfunction dew$b() {\n if (_dewExec$b) return exports$c;\n _dewExec$b = true;\n var hasSymbols = dew$c();\n\n /** @type {import('.')} */\n exports$c = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n };\n return exports$c;\n}\n\nvar exports$b = {},\n _dewExec$a = false;\nfunction dew$a() {\n if (_dewExec$a) return exports$b;\n _dewExec$a = true;\n var hasToStringTag = dew$b()();\n var callBound = dew$d();\n var $toString = callBound(\"Object.prototype.toString\");\n var isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === \"object\" && Symbol.toStringTag in value) {\n return false;\n }\n return $toString(value) === \"[object Arguments]\";\n };\n var isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n return value !== null && typeof value === \"object\" && typeof value.length === \"number\" && value.length >= 0 && $toString(value) !== \"[object Array]\" && $toString(value.callee) === \"[object Function]\";\n };\n var supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n }();\n isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n exports$b = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n return exports$b;\n}\n\nvar exports$a = {},\n _dewExec$9 = false;\nfunction dew$9() {\n if (_dewExec$9) return exports$a;\n _dewExec$9 = true;\n var toStr = Object.prototype.toString;\n var fnToStr = Function.prototype.toString;\n var isFnRegex = /^\\s*(?:function)?\\*/;\n var hasToStringTag = dew$b()();\n var getProto = Object.getPrototypeOf;\n var getGeneratorFunc = function () {\n // eslint-disable-line consistent-return\n if (!hasToStringTag) {\n return false;\n }\n try {\n return Function(\"return function*() {}\")();\n } catch (e) {}\n };\n var GeneratorFunction;\n exports$a = function isGeneratorFunction(fn) {\n if (typeof fn !== \"function\") {\n return false;\n }\n if (isFnRegex.test(fnToStr.call(fn))) {\n return true;\n }\n if (!hasToStringTag) {\n var str = toStr.call(fn);\n return str === \"[object GeneratorFunction]\";\n }\n if (!getProto) {\n return false;\n }\n if (typeof GeneratorFunction === \"undefined\") {\n var generatorFunc = getGeneratorFunc();\n GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n }\n return getProto(fn) === GeneratorFunction;\n };\n return exports$a;\n}\n\nvar exports$9 = {},\n _dewExec$8 = false;\nfunction dew$8() {\n if (_dewExec$8) return exports$9;\n _dewExec$8 = true;\n var fnToStr = Function.prototype.toString;\n var reflectApply = typeof Reflect === \"object\" && Reflect !== null && Reflect.apply;\n var badArrayLike;\n var isCallableMarker;\n if (typeof reflectApply === \"function\" && typeof Object.defineProperty === \"function\") {\n try {\n badArrayLike = Object.defineProperty({}, \"length\", {\n get: function () {\n throw isCallableMarker;\n }\n });\n isCallableMarker = {};\n // eslint-disable-next-line no-throw-literal\n reflectApply(function () {\n throw 42;\n }, null, badArrayLike);\n } catch (_) {\n if (_ !== isCallableMarker) {\n reflectApply = null;\n }\n }\n } else {\n reflectApply = null;\n }\n var constructorRegex = /^\\s*class\\b/;\n var isES6ClassFn = function isES6ClassFunction(value) {\n try {\n var fnStr = fnToStr.call(value);\n return constructorRegex.test(fnStr);\n } catch (e) {\n return false; // not a function\n }\n };\n var tryFunctionObject = function tryFunctionToStr(value) {\n try {\n if (isES6ClassFn(value)) {\n return false;\n }\n fnToStr.call(value);\n return true;\n } catch (e) {\n return false;\n }\n };\n var toStr = Object.prototype.toString;\n var objectClass = \"[object Object]\";\n var fnClass = \"[object Function]\";\n var genClass = \"[object GeneratorFunction]\";\n var ddaClass = \"[object HTMLAllCollection]\"; // IE 11\n var ddaClass2 = \"[object HTML document.all class]\";\n var ddaClass3 = \"[object HTMLCollection]\"; // IE 9-10\n var hasToStringTag = typeof Symbol === \"function\" && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\n var isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\n var isDDA = function isDocumentDotAll() {\n return false;\n };\n if (typeof document === \"object\") {\n // Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n var all = document.all;\n if (toStr.call(all) === toStr.call(document.all)) {\n isDDA = function isDocumentDotAll(value) {\n /* globals document: false */\n // in IE 6-8, typeof document.all is \"object\" and it's truthy\n if ((isIE68 || !value) && (typeof value === \"undefined\" || typeof value === \"object\")) {\n try {\n var str = toStr.call(value);\n return (str === ddaClass || str === ddaClass2 || str === ddaClass3 // opera 12.16\n || str === objectClass // IE 6-8\n ) && value(\"\") == null; // eslint-disable-line eqeqeq\n } catch (e) {/**/}\n }\n return false;\n };\n }\n }\n exports$9 = reflectApply ? function isCallable(value) {\n if (isDDA(value)) {\n return true;\n }\n if (!value) {\n return false;\n }\n if (typeof value !== \"function\" && typeof value !== \"object\") {\n return false;\n }\n try {\n reflectApply(value, null, badArrayLike);\n } catch (e) {\n if (e !== isCallableMarker) {\n return false;\n }\n }\n return !isES6ClassFn(value) && tryFunctionObject(value);\n } : function isCallable(value) {\n if (isDDA(value)) {\n return true;\n }\n if (!value) {\n return false;\n }\n if (typeof value !== \"function\" && typeof value !== \"object\") {\n return false;\n }\n if (hasToStringTag) {\n return tryFunctionObject(value);\n }\n if (isES6ClassFn(value)) {\n return false;\n }\n var strClass = toStr.call(value);\n if (strClass !== fnClass && strClass !== genClass && !/^\\[object HTML/.test(strClass)) {\n return false;\n }\n return tryFunctionObject(value);\n };\n return exports$9;\n}\n\nvar exports$8 = {},\n _dewExec$7 = false;\nfunction dew$7() {\n if (_dewExec$7) return exports$8;\n _dewExec$7 = true;\n var isCallable = dew$8();\n var toStr = Object.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n };\n var forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n };\n var forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n };\n var forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError(\"iterator must be a function\");\n }\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n if (toStr.call(list) === \"[object Array]\") {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === \"string\") {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n };\n exports$8 = forEach;\n return exports$8;\n}\n\nvar exports$7 = {},\n _dewExec$6 = false;\nfunction dew$6() {\n if (_dewExec$6) return exports$7;\n _dewExec$6 = true;\n /** @type {import('.')} */\n exports$7 = [\"Float32Array\", \"Float64Array\", \"Int8Array\", \"Int16Array\", \"Int32Array\", \"Uint8Array\", \"Uint8ClampedArray\", \"Uint16Array\", \"Uint32Array\", \"BigInt64Array\", \"BigUint64Array\"];\n return exports$7;\n}\n\nvar exports$6 = {},\n _dewExec$5 = false;\nvar _global$2 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew$5() {\n if (_dewExec$5) return exports$6;\n _dewExec$5 = true;\n var possibleNames = dew$6();\n var g = typeof globalThis === \"undefined\" ? _global$2 : globalThis;\n\n /** @type {import('.')} */\n exports$6 = function availableTypedArrays() {\n var /** @type {ReturnType<typeof availableTypedArrays>} */out = [];\n for (var i = 0; i < possibleNames.length; i++) {\n if (typeof g[possibleNames[i]] === \"function\") {\n // @ts-expect-error\n out[out.length] = possibleNames[i];\n }\n }\n return out;\n };\n return exports$6;\n}\n\nvar exports$5 = {},\n _dewExec$4 = false;\nvar _global$1 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew$4() {\n if (_dewExec$4) return exports$5;\n _dewExec$4 = true;\n var forEach = dew$7();\n var availableTypedArrays = dew$5();\n var callBind = dew$e();\n var callBound = dew$d();\n var gOPD = dew$f();\n\n /** @type {(O: object) => string} */\n var $toString = callBound(\"Object.prototype.toString\");\n var hasToStringTag = dew$b()();\n var g = typeof globalThis === \"undefined\" ? _global$1 : globalThis;\n var typedArrays = availableTypedArrays();\n var $slice = callBound(\"String.prototype.slice\");\n var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\n /** @type {<T = unknown>(array: readonly T[], value: unknown) => number} */\n var $indexOf = callBound(\"Array.prototype.indexOf\", true) || function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n };\n\n /** @typedef {(receiver: import('.').TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call} Getter */\n /** @type {{ [k in `\\$${import('.').TypedArrayName}`]?: Getter } & { __proto__: null }} */\n var cache = {\n __proto__: null\n };\n if (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function (typedArray) {\n var arr = new g[typedArray]();\n if (Symbol.toStringTag in arr) {\n var proto = getPrototypeOf(arr);\n // @ts-expect-error TS won't narrow inside a closure\n var descriptor = gOPD(proto, Symbol.toStringTag);\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n // @ts-expect-error TS won't narrow inside a closure\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n // @ts-expect-error TODO: fix\n cache[\"$\" + typedArray] = callBind(descriptor.get);\n }\n });\n } else {\n forEach(typedArrays, function (typedArray) {\n var arr = new g[typedArray]();\n var fn = arr.slice || arr.set;\n if (fn) {\n // @ts-expect-error TODO: fix\n cache[\"$\" + typedArray] = callBind(fn);\n }\n });\n }\n\n /** @type {(value: object) => false | import('.').TypedArrayName} */\n var tryTypedArrays = function tryAllTypedArrays(value) {\n /** @type {ReturnType<typeof tryAllTypedArrays>} */var found = false;\n forEach(\n // eslint-disable-next-line no-extra-parens\n /** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */\n cache, /** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n function (getter, typedArray) {\n if (!found) {\n try {\n // @ts-expect-error TODO: fix\n if (\"$\" + getter(value) === typedArray) {\n found = $slice(typedArray, 1);\n }\n } catch (e) {/**/}\n }\n });\n return found;\n };\n\n /** @type {(value: object) => false | import('.').TypedArrayName} */\n var trySlices = function tryAllSlices(value) {\n /** @type {ReturnType<typeof tryAllSlices>} */var found = false;\n forEach(\n // eslint-disable-next-line no-extra-parens\n /** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */\n cache, /** @type {(getter: typeof cache, name: `\\$${import('.').TypedArrayName}`) => void} */function (getter, name) {\n if (!found) {\n try {\n // @ts-expect-error TODO: fix\n getter(value);\n found = $slice(name, 1);\n } catch (e) {/**/}\n }\n });\n return found;\n };\n\n /** @type {import('.')} */\n exports$5 = function whichTypedArray(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (!hasToStringTag) {\n /** @type {string} */\n var tag = $slice($toString(value), 8, -1);\n if ($indexOf(typedArrays, tag) > -1) {\n return tag;\n }\n if (tag !== \"Object\") {\n return false;\n }\n // node < 0.6 hits here on real Typed Arrays\n return trySlices(value);\n }\n if (!gOPD) {\n return null;\n } // unknown engine\n return tryTypedArrays(value);\n };\n return exports$5;\n}\n\nvar exports$4 = {},\n _dewExec$3 = false;\nfunction dew$3() {\n if (_dewExec$3) return exports$4;\n _dewExec$3 = true;\n var whichTypedArray = dew$4();\n\n /** @type {import('.')} */\n exports$4 = function isTypedArray(value) {\n return !!whichTypedArray(value);\n };\n return exports$4;\n}\n\nvar exports$3 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$3;\n _dewExec$2 = true;\n var isArgumentsObject = dew$a();\n var isGeneratorFunction = dew$9();\n var whichTypedArray = dew$4();\n var isTypedArray = dew$3();\n function uncurryThis(f) {\n return f.call.bind(f);\n }\n var BigIntSupported = typeof BigInt !== \"undefined\";\n var SymbolSupported = typeof Symbol !== \"undefined\";\n var ObjectToString = uncurryThis(Object.prototype.toString);\n var numberValue = uncurryThis(Number.prototype.valueOf);\n var stringValue = uncurryThis(String.prototype.valueOf);\n var booleanValue = uncurryThis(Boolean.prototype.valueOf);\n if (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n }\n if (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n }\n function checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== \"object\") {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch (e) {\n return false;\n }\n }\n exports$3.isArgumentsObject = isArgumentsObject;\n exports$3.isGeneratorFunction = isGeneratorFunction;\n exports$3.isTypedArray = isTypedArray;\n\n // Taken from here and modified for better browser support\n // https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\n function isPromise(input) {\n return typeof Promise !== \"undefined\" && input instanceof Promise || input !== null && typeof input === \"object\" && typeof input.then === \"function\" && typeof input.catch === \"function\";\n }\n exports$3.isPromise = isPromise;\n function isArrayBufferView(value) {\n if (typeof ArrayBuffer !== \"undefined\" && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n return isTypedArray(value) || isDataView(value);\n }\n exports$3.isArrayBufferView = isArrayBufferView;\n function isUint8Array(value) {\n return whichTypedArray(value) === \"Uint8Array\";\n }\n exports$3.isUint8Array = isUint8Array;\n function isUint8ClampedArray(value) {\n return whichTypedArray(value) === \"Uint8ClampedArray\";\n }\n exports$3.isUint8ClampedArray = isUint8ClampedArray;\n function isUint16Array(value) {\n return whichTypedArray(value) === \"Uint16Array\";\n }\n exports$3.isUint16Array = isUint16Array;\n function isUint32Array(value) {\n return whichTypedArray(value) === \"Uint32Array\";\n }\n exports$3.isUint32Array = isUint32Array;\n function isInt8Array(value) {\n return whichTypedArray(value) === \"Int8Array\";\n }\n exports$3.isInt8Array = isInt8Array;\n function isInt16Array(value) {\n return whichTypedArray(value) === \"Int16Array\";\n }\n exports$3.isInt16Array = isInt16Array;\n function isInt32Array(value) {\n return whichTypedArray(value) === \"Int32Array\";\n }\n exports$3.isInt32Array = isInt32Array;\n function isFloat32Array(value) {\n return whichTypedArray(value) === \"Float32Array\";\n }\n exports$3.isFloat32Array = isFloat32Array;\n function isFloat64Array(value) {\n return whichTypedArray(value) === \"Float64Array\";\n }\n exports$3.isFloat64Array = isFloat64Array;\n function isBigInt64Array(value) {\n return whichTypedArray(value) === \"BigInt64Array\";\n }\n exports$3.isBigInt64Array = isBigInt64Array;\n function isBigUint64Array(value) {\n return whichTypedArray(value) === \"BigUint64Array\";\n }\n exports$3.isBigUint64Array = isBigUint64Array;\n function isMapToString(value) {\n return ObjectToString(value) === \"[object Map]\";\n }\n isMapToString.working = typeof Map !== \"undefined\" && isMapToString(new Map());\n function isMap(value) {\n if (typeof Map === \"undefined\") {\n return false;\n }\n return isMapToString.working ? isMapToString(value) : value instanceof Map;\n }\n exports$3.isMap = isMap;\n function isSetToString(value) {\n return ObjectToString(value) === \"[object Set]\";\n }\n isSetToString.working = typeof Set !== \"undefined\" && isSetToString(new Set());\n function isSet(value) {\n if (typeof Set === \"undefined\") {\n return false;\n }\n return isSetToString.working ? isSetToString(value) : value instanceof Set;\n }\n exports$3.isSet = isSet;\n function isWeakMapToString(value) {\n return ObjectToString(value) === \"[object WeakMap]\";\n }\n isWeakMapToString.working = typeof WeakMap !== \"undefined\" && isWeakMapToString(new WeakMap());\n function isWeakMap(value) {\n if (typeof WeakMap === \"undefined\") {\n return false;\n }\n return isWeakMapToString.working ? isWeakMapToString(value) : value instanceof WeakMap;\n }\n exports$3.isWeakMap = isWeakMap;\n function isWeakSetToString(value) {\n return ObjectToString(value) === \"[object WeakSet]\";\n }\n isWeakSetToString.working = typeof WeakSet !== \"undefined\" && isWeakSetToString(new WeakSet());\n function isWeakSet(value) {\n return isWeakSetToString(value);\n }\n exports$3.isWeakSet = isWeakSet;\n function isArrayBufferToString(value) {\n return ObjectToString(value) === \"[object ArrayBuffer]\";\n }\n isArrayBufferToString.working = typeof ArrayBuffer !== \"undefined\" && isArrayBufferToString(new ArrayBuffer());\n function isArrayBuffer(value) {\n if (typeof ArrayBuffer === \"undefined\") {\n return false;\n }\n return isArrayBufferToString.working ? isArrayBufferToString(value) : value instanceof ArrayBuffer;\n }\n exports$3.isArrayBuffer = isArrayBuffer;\n function isDataViewToString(value) {\n return ObjectToString(value) === \"[object DataView]\";\n }\n isDataViewToString.working = typeof ArrayBuffer !== \"undefined\" && typeof DataView !== \"undefined\" && isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1));\n function isDataView(value) {\n if (typeof DataView === \"undefined\") {\n return false;\n }\n return isDataViewToString.working ? isDataViewToString(value) : value instanceof DataView;\n }\n exports$3.isDataView = isDataView;\n\n // Store a copy of SharedArrayBuffer in case it's deleted elsewhere\n var SharedArrayBufferCopy = typeof SharedArrayBuffer !== \"undefined\" ? SharedArrayBuffer : undefined;\n function isSharedArrayBufferToString(value) {\n return ObjectToString(value) === \"[object SharedArrayBuffer]\";\n }\n function isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === \"undefined\") {\n return false;\n }\n if (typeof isSharedArrayBufferToString.working === \"undefined\") {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n return isSharedArrayBufferToString.working ? isSharedArrayBufferToString(value) : value instanceof SharedArrayBufferCopy;\n }\n exports$3.isSharedArrayBuffer = isSharedArrayBuffer;\n function isAsyncFunction(value) {\n return ObjectToString(value) === \"[object AsyncFunction]\";\n }\n exports$3.isAsyncFunction = isAsyncFunction;\n function isMapIterator(value) {\n return ObjectToString(value) === \"[object Map Iterator]\";\n }\n exports$3.isMapIterator = isMapIterator;\n function isSetIterator(value) {\n return ObjectToString(value) === \"[object Set Iterator]\";\n }\n exports$3.isSetIterator = isSetIterator;\n function isGeneratorObject(value) {\n return ObjectToString(value) === \"[object Generator]\";\n }\n exports$3.isGeneratorObject = isGeneratorObject;\n function isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === \"[object WebAssembly.Module]\";\n }\n exports$3.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n function isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n }\n exports$3.isNumberObject = isNumberObject;\n function isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n }\n exports$3.isStringObject = isStringObject;\n function isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n }\n exports$3.isBooleanObject = isBooleanObject;\n function isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n }\n exports$3.isBigIntObject = isBigIntObject;\n function isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n }\n exports$3.isSymbolObject = isSymbolObject;\n function isBoxedPrimitive(value) {\n return isNumberObject(value) || isStringObject(value) || isBooleanObject(value) || isBigIntObject(value) || isSymbolObject(value);\n }\n exports$3.isBoxedPrimitive = isBoxedPrimitive;\n function isAnyArrayBuffer(value) {\n return typeof Uint8Array !== \"undefined\" && (isArrayBuffer(value) || isSharedArrayBuffer(value));\n }\n exports$3.isAnyArrayBuffer = isAnyArrayBuffer;\n [\"isProxy\", \"isExternal\", \"isModuleNamespaceObject\"].forEach(function (method) {\n Object.defineProperty(exports$3, method, {\n enumerable: false,\n value: function () {\n throw new Error(method + \" is not supported in userland\");\n }\n });\n });\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$2;\n _dewExec$1 = true;\n exports$2 = function isBuffer(arg) {\n return arg && typeof arg === \"object\" && typeof arg.copy === \"function\" && typeof arg.fill === \"function\" && typeof arg.readUInt8 === \"function\";\n };\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec = false;\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n var process$1 = process;\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n var formatRegExp = /%[sdj%]/g;\n exports$1.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(\" \");\n }\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === \"%%\") return \"%\";\n if (i >= len) return x;\n switch (x) {\n case \"%s\":\n return String(args[i++]);\n case \"%d\":\n return Number(args[i++]);\n case \"%j\":\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return \"[Circular]\";\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += \" \" + x;\n } else {\n str += \" \" + inspect(x);\n }\n }\n return str;\n };\n\n // Mark that a method should not be used.\n // Returns a modified function which warns once by default.\n // If --no-deprecation is set, then it is a no-op.\n exports$1.deprecate = function (fn, msg) {\n if (typeof process$1 !== \"undefined\" && process$1.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process$1 === \"undefined\") {\n return function () {\n return exports$1.deprecate(fn, msg).apply(this || _global, arguments);\n };\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process$1.throwDeprecation) {\n throw new Error(msg);\n } else if (process$1.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this || _global, arguments);\n }\n return deprecated;\n };\n var debugs = {};\n var debugEnvRegex = /^$/;\n if (process$1.env.NODE_DEBUG) {\n var debugEnv = process$1.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\").replace(/\\*/g, \".*\").replace(/,/g, \"$|^\").toUpperCase();\n debugEnvRegex = new RegExp(\"^\" + debugEnv + \"$\", \"i\");\n }\n exports$1.debuglog = function (set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process$1.pid;\n debugs[set] = function () {\n var msg = exports$1.format.apply(exports$1, arguments);\n console.error(\"%s %d: %s\", set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n return debugs[set];\n };\n\n /**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n /* legacy: obj, showHidden, depth, colors*/\n function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports$1._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n exports$1.inspect = inspect;\n\n // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n inspect.colors = {\n \"bold\": [1, 22],\n \"italic\": [3, 23],\n \"underline\": [4, 24],\n \"inverse\": [7, 27],\n \"white\": [37, 39],\n \"grey\": [90, 39],\n \"black\": [30, 39],\n \"blue\": [34, 39],\n \"cyan\": [36, 39],\n \"green\": [32, 39],\n \"magenta\": [35, 39],\n \"red\": [31, 39],\n \"yellow\": [33, 39]\n };\n\n // Don't use 'blue' not visible on cmd.exe\n inspect.styles = {\n \"special\": \"cyan\",\n \"number\": \"yellow\",\n \"boolean\": \"yellow\",\n \"undefined\": \"grey\",\n \"null\": \"bold\",\n \"string\": \"green\",\n \"date\": \"magenta\",\n // \"name\": intentionally not styling\n \"regexp\": \"red\"\n };\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + \"m\" + str + \"\\x1B[\" + inspect.colors[style][1] + \"m\";\n } else {\n return str;\n }\n }\n function stylizeNoColor(str, styleType) {\n return str;\n }\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n function formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports$1.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value) && (keys.indexOf(\"message\") >= 0 || keys.indexOf(\"description\") >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? \": \" + value.name : \"\";\n return ctx.stylize(\"[Function\" + name + \"]\", \"special\");\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), \"date\");\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n var base = \"\",\n array = false,\n braces = [\"{\", \"}\"];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = [\"[\", \"]\"];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? \": \" + value.name : \"\";\n base = \" [Function\" + n + \"]\";\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = \" \" + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = \" \" + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = \" \" + formatError(value);\n }\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n } else {\n return ctx.stylize(\"[Object]\", \"special\");\n }\n }\n ctx.seen.push(value);\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize(\"undefined\", \"undefined\");\n if (isString(value)) {\n var simple = \"'\" + JSON.stringify(value).replace(/^\"|\"$/g, \"\").replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, \"\\\"\") + \"'\";\n return ctx.stylize(simple, \"string\");\n }\n if (isNumber(value)) return ctx.stylize(\"\" + value, \"number\");\n if (isBoolean(value)) return ctx.stylize(\"\" + value, \"boolean\");\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value)) return ctx.stylize(\"null\", \"null\");\n }\n function formatError(value) {\n return \"[\" + Error.prototype.toString.call(value) + \"]\";\n }\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push(\"\");\n }\n }\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n }\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize(\"[Getter/Setter]\", \"special\");\n } else {\n str = ctx.stylize(\"[Getter]\", \"special\");\n }\n } else {\n if (desc.set) {\n str = ctx.stylize(\"[Setter]\", \"special\");\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = \"[\" + key + \"]\";\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf(\"\\n\") > -1) {\n if (array) {\n str = str.split(\"\\n\").map(function (line) {\n return \" \" + line;\n }).join(\"\\n\").slice(2);\n } else {\n str = \"\\n\" + str.split(\"\\n\").map(function (line) {\n return \" \" + line;\n }).join(\"\\n\");\n }\n }\n } else {\n str = ctx.stylize(\"[Circular]\", \"special\");\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify(\"\" + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, \"name\");\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, \"\\\"\").replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, \"string\");\n }\n }\n return name + \": \" + str;\n }\n function reduceToSingleString(output, base, braces) {\n var length = output.reduce(function (prev, cur) {\n if (cur.indexOf(\"\\n\") >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, \"\").length + 1;\n }, 0);\n if (length > 60) {\n return braces[0] + (base === \"\" ? \"\" : base + \"\\n \") + \" \" + output.join(\",\\n \") + \" \" + braces[1];\n }\n return braces[0] + base + \" \" + output.join(\", \") + \" \" + braces[1];\n }\n\n // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n exports$1.types = dew$2();\n function isArray(ar) {\n return Array.isArray(ar);\n }\n exports$1.isArray = isArray;\n function isBoolean(arg) {\n return typeof arg === \"boolean\";\n }\n exports$1.isBoolean = isBoolean;\n function isNull(arg) {\n return arg === null;\n }\n exports$1.isNull = isNull;\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n exports$1.isNullOrUndefined = isNullOrUndefined;\n function isNumber(arg) {\n return typeof arg === \"number\";\n }\n exports$1.isNumber = isNumber;\n function isString(arg) {\n return typeof arg === \"string\";\n }\n exports$1.isString = isString;\n function isSymbol(arg) {\n return typeof arg === \"symbol\";\n }\n exports$1.isSymbol = isSymbol;\n function isUndefined(arg) {\n return arg === void 0;\n }\n exports$1.isUndefined = isUndefined;\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === \"[object RegExp]\";\n }\n exports$1.isRegExp = isRegExp;\n exports$1.types.isRegExp = isRegExp;\n function isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n }\n exports$1.isObject = isObject;\n function isDate(d) {\n return isObject(d) && objectToString(d) === \"[object Date]\";\n }\n exports$1.isDate = isDate;\n exports$1.types.isDate = isDate;\n function isError(e) {\n return isObject(e) && (objectToString(e) === \"[object Error]\" || e instanceof Error);\n }\n exports$1.isError = isError;\n exports$1.types.isNativeError = isError;\n function isFunction(arg) {\n return typeof arg === \"function\";\n }\n exports$1.isFunction = isFunction;\n function isPrimitive(arg) {\n return arg === null || typeof arg === \"boolean\" || typeof arg === \"number\" || typeof arg === \"string\" || typeof arg === \"symbol\" ||\n // ES6 symbol\n typeof arg === \"undefined\";\n }\n exports$1.isPrimitive = isPrimitive;\n exports$1.isBuffer = dew$1();\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n function pad(n) {\n return n < 10 ? \"0\" + n.toString(10) : n.toString(10);\n }\n var months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n // 26 Feb 16:19:34\n function timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(\":\");\n return [d.getDate(), months[d.getMonth()], time].join(\" \");\n }\n\n // log is just a thin wrapper to console.log that prepends a timestamp\n exports$1.log = function () {\n console.log(\"%s - %s\", timestamp(), exports$1.format.apply(exports$1, arguments));\n };\n\n /**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n exports$1.inherits = dew$g();\n exports$1._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n };\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var kCustomPromisifiedSymbol = typeof Symbol !== \"undefined\" ? Symbol(\"util.promisify.custom\") : undefined;\n exports$1.promisify = function promisify(original) {\n if (typeof original !== \"function\") throw new TypeError(\"The \\\"original\\\" argument must be of type Function\");\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The \\\"util.promisify.custom\\\" argument must be of type Function\");\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n try {\n original.apply(this || _global, args);\n } catch (err) {\n promiseReject(err);\n }\n return promise;\n }\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(fn, getOwnPropertyDescriptors(original));\n };\n exports$1.promisify.custom = kCustomPromisifiedSymbol;\n function callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error(\"Promise was rejected with a falsy value\");\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n }\n function callbackify(original) {\n if (typeof original !== \"function\") {\n throw new TypeError(\"The \\\"original\\\" argument must be of type Function\");\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n var maybeCb = args.pop();\n if (typeof maybeCb !== \"function\") {\n throw new TypeError(\"The last argument must be of type Function\");\n }\n var self = this || _global;\n var cb = function () {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this || _global, args).then(function (ret) {\n process$1.nextTick(cb.bind(null, null, ret));\n }, function (rej) {\n process$1.nextTick(callbackifyOnRejected.bind(null, rej, cb));\n });\n }\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n }\n exports$1.callbackify = callbackify;\n return exports$1;\n}\n\nconst exports = dew();\nexports['format']; exports['deprecate']; exports['debuglog']; exports['inspect']; exports['types']; exports['isArray']; exports['isBoolean']; exports['isNull']; exports['isNullOrUndefined']; exports['isNumber']; exports['isString']; exports['isSymbol']; exports['isUndefined']; exports['isRegExp']; exports['isObject']; exports['isDate']; exports['isError']; exports['isFunction']; exports['isPrimitive']; exports['isBuffer']; exports['log']; exports['inherits']; exports['_extend']; exports['promisify']; exports['callbackify'];\n\nvar _extend = exports._extend;\r\nvar callbackify = exports.callbackify;\r\nvar debuglog = exports.debuglog;\r\nvar deprecate = exports.deprecate;\r\nvar format = exports.format;\r\nvar inherits = exports.inherits;\r\nvar inspect = exports.inspect;\r\nvar isArray = exports.isArray;\r\nvar isBoolean = exports.isBoolean;\r\nvar isBuffer = exports.isBuffer;\r\nvar isDate = exports.isDate;\r\nvar isError = exports.isError;\r\nvar isFunction = exports.isFunction;\r\nvar isNull = exports.isNull;\r\nvar isNullOrUndefined = exports.isNullOrUndefined;\r\nvar isNumber = exports.isNumber;\r\nvar isObject = exports.isObject;\r\nvar isPrimitive = exports.isPrimitive;\r\nvar isRegExp = exports.isRegExp;\r\nvar isString = exports.isString;\r\nvar isSymbol = exports.isSymbol;\r\nvar isUndefined = exports.isUndefined;\r\nvar log = exports.log;\r\nvar promisify = exports.promisify;\r\nvar types = exports.types;\r\n\r\nconst TextEncoder = exports.TextEncoder = globalThis.TextEncoder;\r\nconst TextDecoder = exports.TextDecoder = globalThis.TextDecoder;\n\nexport { TextDecoder, TextEncoder, _extend, callbackify, debuglog, exports as default, deprecate, format, inherits, inspect, isArray, isBoolean, isBuffer, isDate, isError, isFunction, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, log, promisify, types };\n", "var exports$k = {},\n _dewExec$k = false;\nfunction dew$k() {\n if (_dewExec$k) return exports$k;\n _dewExec$k = true;\n /* eslint complexity: [2, 18], max-statements: [2, 33] */\n exports$k = function hasSymbols() {\n if (typeof Symbol !== \"function\" || typeof Object.getOwnPropertySymbols !== \"function\") {\n return false;\n }\n if (typeof Symbol.iterator === \"symbol\") {\n return true;\n }\n var obj = {};\n var sym = Symbol(\"test\");\n var symObj = Object(sym);\n if (typeof sym === \"string\") {\n return false;\n }\n if (Object.prototype.toString.call(sym) !== \"[object Symbol]\") {\n return false;\n }\n if (Object.prototype.toString.call(symObj) !== \"[object Symbol]\") {\n return false;\n }\n\n // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n var symVal = 42;\n obj[sym] = symVal;\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n if (typeof Object.keys === \"function\" && Object.keys(obj).length !== 0) {\n return false;\n }\n if (typeof Object.getOwnPropertyNames === \"function\" && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n var syms = Object.getOwnPropertySymbols(obj);\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n if (typeof Object.getOwnPropertyDescriptor === \"function\") {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n return true;\n };\n return exports$k;\n}\n\nvar exports$j = {},\n _dewExec$j = false;\nfunction dew$j() {\n if (_dewExec$j) return exports$j;\n _dewExec$j = true;\n /** @type {import('.')} */\n exports$j = Error;\n return exports$j;\n}\n\nvar exports$i = {},\n _dewExec$i = false;\nfunction dew$i() {\n if (_dewExec$i) return exports$i;\n _dewExec$i = true;\n /** @type {import('./eval')} */\n exports$i = EvalError;\n return exports$i;\n}\n\nvar exports$h = {},\n _dewExec$h = false;\nfunction dew$h() {\n if (_dewExec$h) return exports$h;\n _dewExec$h = true;\n /** @type {import('./range')} */\n exports$h = RangeError;\n return exports$h;\n}\n\nvar exports$g = {},\n _dewExec$g = false;\nfunction dew$g() {\n if (_dewExec$g) return exports$g;\n _dewExec$g = true;\n /** @type {import('./ref')} */\n exports$g = ReferenceError;\n return exports$g;\n}\n\nvar exports$f = {},\n _dewExec$f = false;\nfunction dew$f() {\n if (_dewExec$f) return exports$f;\n _dewExec$f = true;\n /** @type {import('./syntax')} */\n exports$f = SyntaxError;\n return exports$f;\n}\n\nvar exports$e = {},\n _dewExec$e = false;\nfunction dew$e() {\n if (_dewExec$e) return exports$e;\n _dewExec$e = true;\n /** @type {import('./type')} */\n exports$e = TypeError;\n return exports$e;\n}\n\nvar exports$d = {},\n _dewExec$d = false;\nfunction dew$d() {\n if (_dewExec$d) return exports$d;\n _dewExec$d = true;\n /** @type {import('./uri')} */\n exports$d = URIError;\n return exports$d;\n}\n\nvar exports$c = {},\n _dewExec$c = false;\nfunction dew$c() {\n if (_dewExec$c) return exports$c;\n _dewExec$c = true;\n var origSymbol = typeof Symbol !== \"undefined\" && Symbol;\n var hasSymbolSham = dew$k();\n exports$c = function hasNativeSymbols() {\n if (typeof origSymbol !== \"function\") {\n return false;\n }\n if (typeof Symbol !== \"function\") {\n return false;\n }\n if (typeof origSymbol(\"foo\") !== \"symbol\") {\n return false;\n }\n if (typeof Symbol(\"bar\") !== \"symbol\") {\n return false;\n }\n return hasSymbolSham();\n };\n return exports$c;\n}\n\nvar exports$b = {},\n _dewExec$b = false;\nfunction dew$b() {\n if (_dewExec$b) return exports$b;\n _dewExec$b = true;\n var test = {\n __proto__: null,\n foo: {}\n };\n var $Object = Object;\n\n /** @type {import('.')} */\n exports$b = function hasProto() {\n // @ts-expect-error: TS errors on an inherited property for some reason\n return {\n __proto__: test\n }.foo === test.foo && !(test instanceof $Object);\n };\n return exports$b;\n}\n\nvar exports$a = {},\n _dewExec$a = false;\nfunction dew$a() {\n if (_dewExec$a) return exports$a;\n _dewExec$a = true;\n /* eslint no-invalid-this: 1 */\n\n var ERROR_MESSAGE = \"Function.prototype.bind called on incompatible \";\n var toStr = Object.prototype.toString;\n var max = Math.max;\n var funcType = \"[object Function]\";\n var concatty = function concatty(a, b) {\n var arr = [];\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n return arr;\n };\n var slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n };\n var joiny = function (arr, joiner) {\n var str = \"\";\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n };\n exports$a = function bind(that) {\n var target = this;\n if (typeof target !== \"function\" || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(this, concatty(args, arguments));\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(that, concatty(args, arguments));\n };\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = \"$\" + i;\n }\n bound = Function(\"binder\", \"return function (\" + joiny(boundArgs, \",\") + \"){ return binder.apply(this,arguments); }\")(binder);\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n return exports$a;\n}\n\nvar exports$9 = {},\n _dewExec$9 = false;\nfunction dew$9() {\n if (_dewExec$9) return exports$9;\n _dewExec$9 = true;\n var implementation = dew$a();\n exports$9 = Function.prototype.bind || implementation;\n return exports$9;\n}\n\nvar exports$8 = {},\n _dewExec$8 = false;\nfunction dew$8() {\n if (_dewExec$8) return exports$8;\n _dewExec$8 = true;\n var call = Function.prototype.call;\n var $hasOwn = Object.prototype.hasOwnProperty;\n var bind = dew$9();\n\n /** @type {import('.')} */\n exports$8 = bind.call(call, $hasOwn);\n return exports$8;\n}\n\nvar exports$7 = {},\n _dewExec$7 = false;\nfunction dew$7() {\n if (_dewExec$7) return exports$7;\n _dewExec$7 = true;\n var undefined$1;\n var $Error = dew$j();\n var $EvalError = dew$i();\n var $RangeError = dew$h();\n var $ReferenceError = dew$g();\n var $SyntaxError = dew$f();\n var $TypeError = dew$e();\n var $URIError = dew$d();\n var $Function = Function;\n\n // eslint-disable-next-line consistent-return\n var getEvalledConstructor = function (expressionSyntax) {\n try {\n return $Function(\"\\\"use strict\\\"; return (\" + expressionSyntax + \").constructor;\")();\n } catch (e) {}\n };\n var $gOPD = Object.getOwnPropertyDescriptor;\n if ($gOPD) {\n try {\n $gOPD({}, \"\");\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n }\n var throwTypeError = function () {\n throw new $TypeError();\n };\n var ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, \"callee\").get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n }() : throwTypeError;\n var hasSymbols = dew$c()();\n var hasProto = dew$b()();\n var getProto = Object.getPrototypeOf || (hasProto ? function (x) {\n return x.__proto__;\n } // eslint-disable-line no-proto\n : null);\n var needsEval = {};\n var TypedArray = typeof Uint8Array === \"undefined\" || !getProto ? undefined$1 : getProto(Uint8Array);\n var INTRINSICS = {\n __proto__: null,\n \"%AggregateError%\": typeof AggregateError === \"undefined\" ? undefined$1 : AggregateError,\n \"%Array%\": Array,\n \"%ArrayBuffer%\": typeof ArrayBuffer === \"undefined\" ? undefined$1 : ArrayBuffer,\n \"%ArrayIteratorPrototype%\": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined$1,\n \"%AsyncFromSyncIteratorPrototype%\": undefined$1,\n \"%AsyncFunction%\": needsEval,\n \"%AsyncGenerator%\": needsEval,\n \"%AsyncGeneratorFunction%\": needsEval,\n \"%AsyncIteratorPrototype%\": needsEval,\n \"%Atomics%\": typeof Atomics === \"undefined\" ? undefined$1 : Atomics,\n \"%BigInt%\": typeof BigInt === \"undefined\" ? undefined$1 : BigInt,\n \"%BigInt64Array%\": typeof BigInt64Array === \"undefined\" ? undefined$1 : BigInt64Array,\n \"%BigUint64Array%\": typeof BigUint64Array === \"undefined\" ? undefined$1 : BigUint64Array,\n \"%Boolean%\": Boolean,\n \"%DataView%\": typeof DataView === \"undefined\" ? undefined$1 : DataView,\n \"%Date%\": Date,\n \"%decodeURI%\": decodeURI,\n \"%decodeURIComponent%\": decodeURIComponent,\n \"%encodeURI%\": encodeURI,\n \"%encodeURIComponent%\": encodeURIComponent,\n \"%Error%\": $Error,\n \"%eval%\": eval,\n // eslint-disable-line no-eval\n \"%EvalError%\": $EvalError,\n \"%Float32Array%\": typeof Float32Array === \"undefined\" ? undefined$1 : Float32Array,\n \"%Float64Array%\": typeof Float64Array === \"undefined\" ? undefined$1 : Float64Array,\n \"%FinalizationRegistry%\": typeof FinalizationRegistry === \"undefined\" ? undefined$1 : FinalizationRegistry,\n \"%Function%\": $Function,\n \"%GeneratorFunction%\": needsEval,\n \"%Int8Array%\": typeof Int8Array === \"undefined\" ? undefined$1 : Int8Array,\n \"%Int16Array%\": typeof Int16Array === \"undefined\" ? undefined$1 : Int16Array,\n \"%Int32Array%\": typeof Int32Array === \"undefined\" ? undefined$1 : Int32Array,\n \"%isFinite%\": isFinite,\n \"%isNaN%\": isNaN,\n \"%IteratorPrototype%\": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined$1,\n \"%JSON%\": typeof JSON === \"object\" ? JSON : undefined$1,\n \"%Map%\": typeof Map === \"undefined\" ? undefined$1 : Map,\n \"%MapIteratorPrototype%\": typeof Map === \"undefined\" || !hasSymbols || !getProto ? undefined$1 : getProto(new Map()[Symbol.iterator]()),\n \"%Math%\": Math,\n \"%Number%\": Number,\n \"%Object%\": Object,\n \"%parseFloat%\": parseFloat,\n \"%parseInt%\": parseInt,\n \"%Promise%\": typeof Promise === \"undefined\" ? undefined$1 : Promise,\n \"%Proxy%\": typeof Proxy === \"undefined\" ? undefined$1 : Proxy,\n \"%RangeError%\": $RangeError,\n \"%ReferenceError%\": $ReferenceError,\n \"%Reflect%\": typeof Reflect === \"undefined\" ? undefined$1 : Reflect,\n \"%RegExp%\": RegExp,\n \"%Set%\": typeof Set === \"undefined\" ? undefined$1 : Set,\n \"%SetIteratorPrototype%\": typeof Set === \"undefined\" || !hasSymbols || !getProto ? undefined$1 : getProto(new Set()[Symbol.iterator]()),\n \"%SharedArrayBuffer%\": typeof SharedArrayBuffer === \"undefined\" ? undefined$1 : SharedArrayBuffer,\n \"%String%\": String,\n \"%StringIteratorPrototype%\": hasSymbols && getProto ? getProto(\"\"[Symbol.iterator]()) : undefined$1,\n \"%Symbol%\": hasSymbols ? Symbol : undefined$1,\n \"%SyntaxError%\": $SyntaxError,\n \"%ThrowTypeError%\": ThrowTypeError,\n \"%TypedArray%\": TypedArray,\n \"%TypeError%\": $TypeError,\n \"%Uint8Array%\": typeof Uint8Array === \"undefined\" ? undefined$1 : Uint8Array,\n \"%Uint8ClampedArray%\": typeof Uint8ClampedArray === \"undefined\" ? undefined$1 : Uint8ClampedArray,\n \"%Uint16Array%\": typeof Uint16Array === \"undefined\" ? undefined$1 : Uint16Array,\n \"%Uint32Array%\": typeof Uint32Array === \"undefined\" ? undefined$1 : Uint32Array,\n \"%URIError%\": $URIError,\n \"%WeakMap%\": typeof WeakMap === \"undefined\" ? undefined$1 : WeakMap,\n \"%WeakRef%\": typeof WeakRef === \"undefined\" ? undefined$1 : WeakRef,\n \"%WeakSet%\": typeof WeakSet === \"undefined\" ? undefined$1 : WeakSet\n };\n if (getProto) {\n try {\n null.error; // eslint-disable-line no-unused-expressions\n } catch (e) {\n // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n var errorProto = getProto(getProto(e));\n INTRINSICS[\"%Error.prototype%\"] = errorProto;\n }\n }\n var doEval = function doEval(name) {\n var value;\n if (name === \"%AsyncFunction%\") {\n value = getEvalledConstructor(\"async function () {}\");\n } else if (name === \"%GeneratorFunction%\") {\n value = getEvalledConstructor(\"function* () {}\");\n } else if (name === \"%AsyncGeneratorFunction%\") {\n value = getEvalledConstructor(\"async function* () {}\");\n } else if (name === \"%AsyncGenerator%\") {\n var fn = doEval(\"%AsyncGeneratorFunction%\");\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === \"%AsyncIteratorPrototype%\") {\n var gen = doEval(\"%AsyncGenerator%\");\n if (gen && getProto) {\n value = getProto(gen.prototype);\n }\n }\n INTRINSICS[name] = value;\n return value;\n };\n var LEGACY_ALIASES = {\n __proto__: null,\n \"%ArrayBufferPrototype%\": [\"ArrayBuffer\", \"prototype\"],\n \"%ArrayPrototype%\": [\"Array\", \"prototype\"],\n \"%ArrayProto_entries%\": [\"Array\", \"prototype\", \"entries\"],\n \"%ArrayProto_forEach%\": [\"Array\", \"prototype\", \"forEach\"],\n \"%ArrayProto_keys%\": [\"Array\", \"prototype\", \"keys\"],\n \"%ArrayProto_values%\": [\"Array\", \"prototype\", \"values\"],\n \"%AsyncFunctionPrototype%\": [\"AsyncFunction\", \"prototype\"],\n \"%AsyncGenerator%\": [\"AsyncGeneratorFunction\", \"prototype\"],\n \"%AsyncGeneratorPrototype%\": [\"AsyncGeneratorFunction\", \"prototype\", \"prototype\"],\n \"%BooleanPrototype%\": [\"Boolean\", \"prototype\"],\n \"%DataViewPrototype%\": [\"DataView\", \"prototype\"],\n \"%DatePrototype%\": [\"Date\", \"prototype\"],\n \"%ErrorPrototype%\": [\"Error\", \"prototype\"],\n \"%EvalErrorPrototype%\": [\"EvalError\", \"prototype\"],\n \"%Float32ArrayPrototype%\": [\"Float32Array\", \"prototype\"],\n \"%Float64ArrayPrototype%\": [\"Float64Array\", \"prototype\"],\n \"%FunctionPrototype%\": [\"Function\", \"prototype\"],\n \"%Generator%\": [\"GeneratorFunction\", \"prototype\"],\n \"%GeneratorPrototype%\": [\"GeneratorFunction\", \"prototype\", \"prototype\"],\n \"%Int8ArrayPrototype%\": [\"Int8Array\", \"prototype\"],\n \"%Int16ArrayPrototype%\": [\"Int16Array\", \"prototype\"],\n \"%Int32ArrayPrototype%\": [\"Int32Array\", \"prototype\"],\n \"%JSONParse%\": [\"JSON\", \"parse\"],\n \"%JSONStringify%\": [\"JSON\", \"stringify\"],\n \"%MapPrototype%\": [\"Map\", \"prototype\"],\n \"%NumberPrototype%\": [\"Number\", \"prototype\"],\n \"%ObjectPrototype%\": [\"Object\", \"prototype\"],\n \"%ObjProto_toString%\": [\"Object\", \"prototype\", \"toString\"],\n \"%ObjProto_valueOf%\": [\"Object\", \"prototype\", \"valueOf\"],\n \"%PromisePrototype%\": [\"Promise\", \"prototype\"],\n \"%PromiseProto_then%\": [\"Promise\", \"prototype\", \"then\"],\n \"%Promise_all%\": [\"Promise\", \"all\"],\n \"%Promise_reject%\": [\"Promise\", \"reject\"],\n \"%Promise_resolve%\": [\"Promise\", \"resolve\"],\n \"%RangeErrorPrototype%\": [\"RangeError\", \"prototype\"],\n \"%ReferenceErrorPrototype%\": [\"ReferenceError\", \"prototype\"],\n \"%RegExpPrototype%\": [\"RegExp\", \"prototype\"],\n \"%SetPrototype%\": [\"Set\", \"prototype\"],\n \"%SharedArrayBufferPrototype%\": [\"SharedArrayBuffer\", \"prototype\"],\n \"%StringPrototype%\": [\"String\", \"prototype\"],\n \"%SymbolPrototype%\": [\"Symbol\", \"prototype\"],\n \"%SyntaxErrorPrototype%\": [\"SyntaxError\", \"prototype\"],\n \"%TypedArrayPrototype%\": [\"TypedArray\", \"prototype\"],\n \"%TypeErrorPrototype%\": [\"TypeError\", \"prototype\"],\n \"%Uint8ArrayPrototype%\": [\"Uint8Array\", \"prototype\"],\n \"%Uint8ClampedArrayPrototype%\": [\"Uint8ClampedArray\", \"prototype\"],\n \"%Uint16ArrayPrototype%\": [\"Uint16Array\", \"prototype\"],\n \"%Uint32ArrayPrototype%\": [\"Uint32Array\", \"prototype\"],\n \"%URIErrorPrototype%\": [\"URIError\", \"prototype\"],\n \"%WeakMapPrototype%\": [\"WeakMap\", \"prototype\"],\n \"%WeakSetPrototype%\": [\"WeakSet\", \"prototype\"]\n };\n var bind = dew$9();\n var hasOwn = dew$8();\n var $concat = bind.call(Function.call, Array.prototype.concat);\n var $spliceApply = bind.call(Function.apply, Array.prototype.splice);\n var $replace = bind.call(Function.call, String.prototype.replace);\n var $strSlice = bind.call(Function.call, String.prototype.slice);\n var $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n var rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\n var reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\n var stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n if (first === \"%\" && last !== \"%\") {\n throw new $SyntaxError(\"invalid intrinsic syntax, expected closing `%`\");\n } else if (last === \"%\" && first !== \"%\") {\n throw new $SyntaxError(\"invalid intrinsic syntax, expected opening `%`\");\n }\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, \"$1\") : number || match;\n });\n return result;\n };\n /* end adaptation */\n\n var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = \"%\" + alias[0] + \"%\";\n }\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n if (typeof value === \"undefined\" && !allowMissing) {\n throw new $TypeError(\"intrinsic \" + name + \" exists, but is not available. Please file an issue!\");\n }\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n throw new $SyntaxError(\"intrinsic \" + name + \" does not exist!\");\n };\n exports$7 = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== \"string\" || name.length === 0) {\n throw new $TypeError(\"intrinsic name must be a non-empty string\");\n }\n if (arguments.length > 1 && typeof allowMissing !== \"boolean\") {\n throw new $TypeError(\"\\\"allowMissing\\\" argument must be a boolean\");\n }\n if ($exec(/^%?[^%]*%?$/, name) === null) {\n throw new $SyntaxError(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");\n }\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : \"\";\n var intrinsic = getBaseIntrinsic(\"%\" + intrinsicBaseName + \"%\", allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n if ((first === \"\\\"\" || first === \"'\" || first === \"`\" || last === \"\\\"\" || last === \"'\" || last === \"`\") && first !== last) {\n throw new $SyntaxError(\"property names with quotes must have matching quotes\");\n }\n if (part === \"constructor\" || !isOwn) {\n skipFurtherCaching = true;\n }\n intrinsicBaseName += \".\" + part;\n intrinsicRealName = \"%\" + intrinsicBaseName + \"%\";\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError(\"base intrinsic for \" + name + \" exists, but the property is not available.\");\n }\n return void undefined$1;\n }\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc;\n\n // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n if (isOwn && \"get\" in desc && !(\"originalValue\" in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n return value;\n };\n return exports$7;\n}\n\nvar exports$6 = {},\n _dewExec$6 = false;\nfunction dew$6() {\n if (_dewExec$6) return exports$6;\n _dewExec$6 = true;\n var GetIntrinsic = dew$7();\n\n /** @type {import('.')} */\n var $defineProperty = GetIntrinsic(\"%Object.defineProperty%\", true) || false;\n if ($defineProperty) {\n try {\n $defineProperty({}, \"a\", {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = false;\n }\n }\n exports$6 = $defineProperty;\n return exports$6;\n}\n\nvar exports$5 = {},\n _dewExec$5 = false;\nfunction dew$5() {\n if (_dewExec$5) return exports$5;\n _dewExec$5 = true;\n var GetIntrinsic = dew$7();\n var $gOPD = GetIntrinsic(\"%Object.getOwnPropertyDescriptor%\", true);\n if ($gOPD) {\n try {\n $gOPD([], \"length\");\n } catch (e) {\n // IE 8 has a broken gOPD\n $gOPD = null;\n }\n }\n exports$5 = $gOPD;\n return exports$5;\n}\n\nvar exports$4 = {},\n _dewExec$4 = false;\nfunction dew$4() {\n if (_dewExec$4) return exports$4;\n _dewExec$4 = true;\n var $defineProperty = dew$6();\n var $SyntaxError = dew$f();\n var $TypeError = dew$e();\n var gopd = dew$5();\n\n /** @type {import('.')} */\n exports$4 = function defineDataProperty(obj, property, value) {\n if (!obj || typeof obj !== \"object\" && typeof obj !== \"function\") {\n throw new $TypeError(\"`obj` must be an object or a function`\");\n }\n if (typeof property !== \"string\" && typeof property !== \"symbol\") {\n throw new $TypeError(\"`property` must be a string or a symbol`\");\n }\n if (arguments.length > 3 && typeof arguments[3] !== \"boolean\" && arguments[3] !== null) {\n throw new $TypeError(\"`nonEnumerable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 4 && typeof arguments[4] !== \"boolean\" && arguments[4] !== null) {\n throw new $TypeError(\"`nonWritable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 5 && typeof arguments[5] !== \"boolean\" && arguments[5] !== null) {\n throw new $TypeError(\"`nonConfigurable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 6 && typeof arguments[6] !== \"boolean\") {\n throw new $TypeError(\"`loose`, if provided, must be a boolean\");\n }\n var nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n var nonWritable = arguments.length > 4 ? arguments[4] : null;\n var nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n var loose = arguments.length > 6 ? arguments[6] : false;\n\n /* @type {false | TypedPropertyDescriptor<unknown>} */\n var desc = !!gopd && gopd(obj, property);\n if ($defineProperty) {\n $defineProperty(obj, property, {\n configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n value: value,\n writable: nonWritable === null && desc ? desc.writable : !nonWritable\n });\n } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) {\n // must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n obj[property] = value; // eslint-disable-line no-param-reassign\n } else {\n throw new $SyntaxError(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\");\n }\n };\n return exports$4;\n}\n\nvar exports$3 = {},\n _dewExec$3 = false;\nfunction dew$3() {\n if (_dewExec$3) return exports$3;\n _dewExec$3 = true;\n var $defineProperty = dew$6();\n var hasPropertyDescriptors = function hasPropertyDescriptors() {\n return !!$defineProperty;\n };\n hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n // node v0.6 has a bug where array lengths can be Set but not Defined\n if (!$defineProperty) {\n return null;\n }\n try {\n return $defineProperty([], \"length\", {\n value: 1\n }).length !== 1;\n } catch (e) {\n // In Firefox 4-22, defining length on an array throws an exception.\n return true;\n }\n };\n exports$3 = hasPropertyDescriptors;\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$2;\n _dewExec$2 = true;\n var GetIntrinsic = dew$7();\n var define = dew$4();\n var hasDescriptors = dew$3()();\n var gOPD = dew$5();\n var $TypeError = dew$e();\n var $floor = GetIntrinsic(\"%Math.floor%\");\n\n /** @type {import('.')} */\n exports$2 = function setFunctionLength(fn, length) {\n if (typeof fn !== \"function\") {\n throw new $TypeError(\"`fn` is not a function\");\n }\n if (typeof length !== \"number\" || length < 0 || length > 4294967295 || $floor(length) !== length) {\n throw new $TypeError(\"`length` must be a positive 32-bit integer\");\n }\n var loose = arguments.length > 2 && !!arguments[2];\n var functionLengthIsConfigurable = true;\n var functionLengthIsWritable = true;\n if (\"length\" in fn && gOPD) {\n var desc = gOPD(fn, \"length\");\n if (desc && !desc.configurable) {\n functionLengthIsConfigurable = false;\n }\n if (desc && !desc.writable) {\n functionLengthIsWritable = false;\n }\n }\n if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n if (hasDescriptors) {\n define(/** @type {Parameters<define>[0]} */fn, \"length\", length, true, true);\n } else {\n define(/** @type {Parameters<define>[0]} */fn, \"length\", length);\n }\n }\n return fn;\n };\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$1;\n _dewExec$1 = true;\n var bind = dew$9();\n var GetIntrinsic = dew$7();\n var setFunctionLength = dew$2();\n var $TypeError = dew$e();\n var $apply = GetIntrinsic(\"%Function.prototype.apply%\");\n var $call = GetIntrinsic(\"%Function.prototype.call%\");\n var $reflectApply = GetIntrinsic(\"%Reflect.apply%\", true) || bind.call($call, $apply);\n var $defineProperty = dew$6();\n var $max = GetIntrinsic(\"%Math.max%\");\n exports$1 = function callBind(originalFunction) {\n if (typeof originalFunction !== \"function\") {\n throw new $TypeError(\"a function is required\");\n }\n var func = $reflectApply(bind, $call, arguments);\n return setFunctionLength(func, 1 + $max(0, originalFunction.length - (arguments.length - 1)), true);\n };\n var applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n };\n if ($defineProperty) {\n $defineProperty(exports$1, \"apply\", {\n value: applyBind\n });\n } else {\n exports$1.apply = applyBind;\n }\n return exports$1;\n}\n\nvar exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n var GetIntrinsic = dew$7();\n var callBind = dew$1();\n var $indexOf = callBind(GetIntrinsic(\"String.prototype.indexOf\"));\n exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n if (typeof intrinsic === \"function\" && $indexOf(name, \".prototype.\") > -1) {\n return callBind(intrinsic);\n }\n return intrinsic;\n };\n return exports;\n}\n\nexport { dew as a, dew$4 as b, dew$3 as c, dew$k as d, dew$1 as e, dew$5 as f, dew$7 as g, dew$e as h };\n", "import { type Conversation, type Message, type User } from '@holocronlab/botruntime-client'\nimport type { commonTypes } from '../../common'\nimport { Request, Response } from '../../serve'\nimport { Cast, Merge, ValueOf } from '../../utils/type-utils'\nimport { IntegrationSpecificClient } from '../client'\nimport { BaseIntegration } from '../common'\nimport { type IntegrationLogger } from './integration-logger'\n\ntype IntegrationContextConfig<TIntegration extends BaseIntegration> =\n | {\n configurationType: null\n configuration: TIntegration['configuration']\n }\n | ValueOf<{\n [TConfigType in keyof TIntegration['configurations']]: {\n configurationType: TConfigType\n configuration: TIntegration['configurations'][TConfigType]\n }\n }>\n\nexport type IntegrationContext<TIntegration extends BaseIntegration = BaseIntegration> = {\n botId: string\n botUserId: string\n integrationId: string\n integrationAlias: string\n webhookId: string\n operation: string\n} & IntegrationContextConfig<TIntegration>\n\nexport type CommonHandlerProps<TIntegration extends BaseIntegration> = {\n ctx: IntegrationContext<TIntegration>\n client: IntegrationSpecificClient<TIntegration>\n logger: IntegrationLogger\n}\n\nexport type RegisterPayload = { webhookUrl: string }\nexport type RegisterHandlerProps<TIntegration extends BaseIntegration> = CommonHandlerProps<TIntegration> &\n RegisterPayload\nexport type RegisterHandler<TIntegration extends BaseIntegration> = (\n props: RegisterHandlerProps<TIntegration>\n) => Promise<void>\n\nexport type UnregisterPayload = { webhookUrl: string }\nexport type UnregisterHandlerProps<TIntegration extends BaseIntegration> = CommonHandlerProps<TIntegration> &\n UnregisterPayload\nexport type UnregisterHandler<TIntegration extends BaseIntegration> = (\n props: UnregisterHandlerProps<TIntegration>\n) => Promise<void>\n\nexport type WebhookPayload = { req: Request }\nexport type WebhookHandlerProps<TIntegration extends BaseIntegration> = CommonHandlerProps<TIntegration> &\n WebhookPayload\nexport type WebhookHandler<TIntegration extends BaseIntegration> = (\n props: WebhookHandlerProps<TIntegration>\n) => Promise<Response | void>\n\nexport type ActionMetadata = { setCost: (cost: number) => void }\nexport type ActionPayload<T extends string, I> = { type: T; input: I; metadata: ActionMetadata }\nexport type ActionHandlerProps<\n TIntegration extends BaseIntegration,\n T extends string,\n I,\n> = CommonHandlerProps<TIntegration> & ActionPayload<T, I>\nexport type ActionHandlers<TIntegration extends BaseIntegration> = {\n [ActionType in keyof TIntegration['actions']]: (\n props: ActionHandlerProps<TIntegration, Cast<ActionType, string>, TIntegration['actions'][ActionType]['input']>\n ) => Promise<TIntegration['actions'][ActionType]['output']>\n}\n\nexport type CreateUserPayload<TIntegration extends BaseIntegration> = {\n tags: commonTypes.ToTags<keyof TIntegration['user']['tags']>\n}\nexport type CreateUserHandlerProps<TIntegration extends BaseIntegration> = CommonHandlerProps<TIntegration> &\n CreateUserPayload<TIntegration>\nexport type CreateUserHandler<TIntegration extends BaseIntegration> = (\n props: CreateUserHandlerProps<TIntegration>\n) => Promise<Response | void>\n\nexport type CreateConversationPayload<\n TIntegration extends BaseIntegration,\n TChannel extends keyof TIntegration['channels'] = keyof TIntegration['channels'],\n> = {\n channel: TChannel\n tags: commonTypes.ToTags<keyof TIntegration['channels'][TChannel]['conversation']['tags']>\n}\nexport type CreateConversationHandlerProps<TIntegration extends BaseIntegration> = CommonHandlerProps<TIntegration> &\n CreateConversationPayload<TIntegration>\nexport type CreateConversationHandler<TIntegration extends BaseIntegration> = (\n props: CreateConversationHandlerProps<TIntegration>\n) => Promise<Response | void>\n\nexport type MessagePayload<\n TIntegration extends BaseIntegration,\n TChannel extends keyof TIntegration['channels'],\n TMessage extends keyof TIntegration['channels'][TChannel]['messages'],\n> = {\n type: TMessage\n payload: TIntegration['channels'][TChannel]['messages'][TMessage]\n conversation: Merge<\n Conversation,\n {\n channel: TChannel\n tags: commonTypes.ToTags<keyof TIntegration['channels'][TChannel]['conversation']['tags']>\n }\n >\n message: Merge<\n Message,\n {\n tags: commonTypes.ToTags<keyof TIntegration['channels'][TChannel]['message']['tags']>\n }\n >\n user: Merge<\n User,\n {\n tags: commonTypes.ToTags<keyof TIntegration['user']['tags']>\n }\n >\n}\nexport type MessageHandlerProps<\n TIntegration extends BaseIntegration,\n TChannel extends keyof TIntegration['channels'],\n TMessage extends keyof TIntegration['channels'][TChannel]['messages'],\n> = CommonHandlerProps<TIntegration> &\n MessagePayload<TIntegration, TChannel, TMessage> & {\n ack: (props: {\n tags: commonTypes.ToTags<keyof TIntegration['channels'][TChannel]['message']['tags']>\n }) => Promise<void>\n }\nexport type ChannelHandlers<TIntegration extends BaseIntegration> = {\n [ChannelName in keyof TIntegration['channels']]: {\n messages: {\n [MessageType in keyof TIntegration['channels'][ChannelName]['messages']]: (\n props: CommonHandlerProps<TIntegration> & MessageHandlerProps<TIntegration, ChannelName, MessageType>\n ) => Promise<void>\n }\n }\n}\n\nexport type UnknownOperationHandler<TIntegration extends BaseIntegration> = (\n props: CommonHandlerProps<TIntegration> & {\n req: Request\n }\n) => Promise<Response | void>\n\nexport type IntegrationHandlers<TIntegration extends BaseIntegration> = {\n register: RegisterHandler<TIntegration>\n unregister: UnregisterHandler<TIntegration>\n webhook: WebhookHandler<TIntegration>\n createUser?: CreateUserHandler<TIntegration>\n createConversation?: CreateConversationHandler<TIntegration>\n actions: ActionHandlers<TIntegration>\n channels: ChannelHandlers<TIntegration>\n unknownOperationHandler?: UnknownOperationHandler<TIntegration>\n managesOwnTracePropagation?: boolean\n}\n", "export * from './generic'\n", "import * as utils from '../../utils/type-utils'\nimport * as def from '../definition'\n\nexport type BaseMessage = {\n tags: Record<string, any>\n}\n\nexport type BaseConversation = {\n tags: Record<string, any>\n}\n\nexport type BaseChannel = {\n messages: Record<string, any>\n message: BaseMessage\n conversation: BaseConversation\n}\n\nexport type BaseUser = {\n tags: Record<string, any>\n}\n\nexport type BaseAction = {\n input: any\n output: any\n}\n\nexport type BaseState = {\n type: def.StateType\n payload: any\n}\n\nexport type BaseIntegration = {\n name: string\n version: string\n configuration: any\n configurations: Record<string, any>\n actions: Record<string, BaseAction>\n channels: Record<string, BaseChannel>\n events: Record<string, any>\n states: Record<string, BaseState>\n user: BaseUser\n entities: Record<string, any>\n}\n\nexport type InputBaseChannel = utils.DeepPartial<BaseChannel>\nexport type DefaultChannel<C extends InputBaseChannel> = {\n messages: utils.Default<C['messages'], BaseChannel['messages']>\n message: utils.Default<C['message'], BaseChannel['message']>\n conversation: utils.Default<C['conversation'], BaseChannel['conversation']>\n}\n\nexport type InputBaseIntegration = utils.DeepPartial<BaseIntegration>\nexport type DefaultIntegration<I extends InputBaseIntegration> = {\n name: utils.Default<I['name'], BaseIntegration['name']>\n version: utils.Default<I['version'], BaseIntegration['version']>\n configuration: utils.Default<I['configuration'], BaseIntegration['configuration']>\n configurations: utils.Default<I['configurations'], BaseIntegration['configurations']>\n actions: utils.Default<I['actions'], BaseIntegration['actions']>\n events: utils.Default<I['events'], BaseIntegration['events']>\n states: utils.Default<I['states'], BaseIntegration['states']>\n user: utils.Default<I['user'], BaseIntegration['user']>\n entities: utils.Default<I['entities'], BaseIntegration['entities']>\n channels: undefined extends I['channels']\n ? BaseIntegration['channels']\n : {\n [K in keyof I['channels']]: DefaultChannel<utils.Cast<I['channels'][K], InputBaseChannel>>\n }\n}\n", "export * from './definition'\nexport * from './implementation'\nexport * from './client'\nexport * from './server'\nexport * from './common'\nexport * from './bot-logger'\n", "import { Table } from '@holocronlab/botruntime-client'\nimport { stripRecurringFromEvents, resolveRecurringEvents } from '../common/recurring-events'\nimport { SchemaTransformOptions } from '../common/types'\nimport * as consts from '../consts'\nimport { DefinitionError } from '../errors'\nimport { IntegrationPackage, PluginPackage } from '../package'\nimport { PluginInterfaceExtension, PluginIntegrationExtension } from '../plugin'\nimport { SchemaDefinition } from '../schema'\nimport * as utils from '../utils'\nimport { ValueOf, Writable, Merge, StringKeys } from '../utils/type-utils'\nimport { SDK_VERSION } from '../version'\nimport { z } from '../zui'\n\ntype BaseConfig = z.ZuiObjectSchema\ntype BaseStates = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseEvents = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseActions = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseTables = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseWorkflows = Record<string, z.ZuiObjectSchema>\n\nexport type TagDefinition = {\n title?: string\n description?: string\n}\n\nexport type StateType = 'conversation' | 'user' | 'bot' | 'workflow'\n\nexport type StateDefinition<TState extends BaseStates[string] = BaseStates[string]> = SchemaDefinition<TState> & {\n type: StateType\n expiry?: number\n}\n\n/*\n * @deprecate\n */\nexport type RecurringEventDefinition<TEvents extends BaseEvents = BaseEvents> = {\n [K in keyof TEvents]: {\n type: K\n payload: z.infer<TEvents[K]>\n schedule: { cron: string }\n }\n}[keyof TEvents]\n\nexport type EventDefinition<TEvent extends BaseEvents[string] = BaseEvents[string]> = SchemaDefinition<TEvent> & {\n recurrence?: {\n cron: string\n payload: z.input<TEvent>\n }\n attributes?: Record<string, string>\n}\n\nexport type ConfigurationDefinition<TConfig extends BaseConfig = BaseConfig> = SchemaDefinition<TConfig>\n\nexport type UserDefinition = {\n tags?: Record<string, TagDefinition>\n}\n\nexport type ConversationDefinition = {\n tags?: Record<string, TagDefinition>\n}\n\nexport type MessageDefinition = {\n tags?: Record<string, TagDefinition>\n}\n\nexport type SecretDefinition = {\n optional?: boolean\n description?: string\n}\n\nexport type ActionDefinition<TAction extends BaseActions[string] = BaseActions[string]> = {\n title?: string\n description?: string\n input: SchemaDefinition<TAction>\n output: SchemaDefinition<z.ZuiObjectOrRefSchema> // cannot infer both input and output types (typescript limitation)\n attributes?: Record<string, string>\n}\n\nexport type WorkflowDefinition<TWorkflow extends BaseWorkflows[string] = BaseWorkflows[string]> = {\n title?: string\n description?: string\n input: SchemaDefinition<TWorkflow>\n output: SchemaDefinition<z.ZuiObjectSchema> // cannot infer both input and output types (typescript limitation)\n tags?: Record<string, TagDefinition>\n}\n\nexport type TableDefinition<TTable extends BaseTables[string] = BaseTables[string]> = Merge<\n Omit<Table, 'id' | 'createdAt' | 'updatedAt' | 'name'>,\n {\n schema: TTable\n }\n>\n\nexport type ResolvedIntegrationConfigInstance<I extends IntegrationPackage = IntegrationPackage> = {\n enabled?: boolean\n alias: string\n disabledChannels?: StringKeys<NonNullable<I['definition']['channels']>>[]\n} & (\n | {\n configurationType?: null\n configuration: z.input<NonNullable<I['definition']['configuration']>['schema']>\n }\n | ValueOf<{\n [K in StringKeys<NonNullable<I['definition']['configurations']>>]: {\n configurationType: K\n configuration: z.input<NonNullable<I['definition']['configurations']>[K]['schema']>\n }\n }>\n)\n\ntype IntegrationConfigInstance<I extends IntegrationPackage = IntegrationPackage> = Omit<\n ResolvedIntegrationConfigInstance<I>,\n 'alias'\n> & { alias?: string }\n\ntype _ResolvedPluginConfigInstance<P extends PluginPackage = PluginPackage> = {\n alias: string\n configuration: z.input<NonNullable<P['definition']['configuration']>['schema']>\n interfaces: {\n [I in keyof NonNullable<P['definition']['interfaces']>]: PluginInterfaceExtension\n }\n integrations: {\n [I in keyof NonNullable<P['definition']['integrations']>]: PluginIntegrationExtension\n }\n}\n\ntype PluginConfigInstance<P extends PluginPackage = PluginPackage> = Omit<\n _ResolvedPluginConfigInstance<P>,\n 'alias' | 'integrations' | 'interfaces'\n> & {\n alias?: string\n /** Backing integrations for the plugin's dependencies */\n dependencies: {\n [K in StringKeys<NonNullable<P['definition']['interfaces']>>]: {\n /**\n * Alias of the integration to use to fullfil this dependency.\n *\n * This is the alias given when adding the integration to the bot\n * via `addIntegration()`.\n */\n integrationAlias: string\n /**\n * Alias of the interface within the integration.\n *\n * This is the alias defined by the integration package for the\n * interface it implements.\n */\n integrationInterfaceAlias: string\n }\n } & {\n [K in StringKeys<NonNullable<P['definition']['integrations']>>]: {\n /**\n * Alias of the integration to use to fullfil this dependency.\n *\n * This is the alias given when adding the integration to the bot\n * via `addIntegration()`.\n */\n integrationAlias: string\n }\n }\n}\n\nexport type IntegrationInstance = IntegrationPackage & ResolvedIntegrationConfigInstance\nexport type PluginInstance = PluginPackage & _ResolvedPluginConfigInstance\n\nexport type BotDefinitionProps<\n TStates extends BaseStates = BaseStates,\n TEvents extends BaseEvents = BaseEvents,\n TActions extends BaseActions = BaseActions,\n TTables extends BaseTables = BaseTables,\n TWorkflows extends BaseWorkflows = BaseWorkflows,\n> = {\n integrations?: {\n [K: string]: IntegrationInstance\n }\n plugins?: {\n [K: string]: PluginInstance\n }\n user?: UserDefinition\n conversation?: ConversationDefinition\n message?: MessageDefinition\n states?: {\n [K in keyof TStates]: StateDefinition<TStates[K]>\n }\n configuration?: ConfigurationDefinition\n events?: {\n [K in keyof TEvents]: EventDefinition<TEvents[K]>\n }\n /** @deprecated Use the `recurrence` field on each event in `events` instead. */\n recurringEvents?: Record<string, RecurringEventDefinition<TEvents>>\n actions?: {\n [K in keyof TActions]: ActionDefinition<TActions[K]>\n }\n tables?: {\n [K in keyof TTables]: TableDefinition<TTables[K]>\n }\n\n secrets?: Record<string, SecretDefinition>\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflows?: {\n [K in keyof TWorkflows]: WorkflowDefinition<TWorkflows[K]>\n }\n\n attributes?: Record<string, string>\n\n __advanced?: SchemaTransformOptions\n}\n\nexport class BotDefinition<\n TStates extends BaseStates = BaseStates,\n TEvents extends BaseEvents = BaseEvents,\n TActions extends BaseActions = BaseActions,\n TTables extends BaseTables = BaseTables,\n TWorkflows extends BaseWorkflows = BaseWorkflows,\n> {\n public readonly integrations: this['props']['integrations']\n public readonly plugins: this['props']['plugins']\n public readonly user: this['props']['user']\n public readonly conversation: this['props']['conversation']\n public readonly message: this['props']['message']\n public readonly states: this['props']['states']\n public readonly configuration: this['props']['configuration']\n public readonly events: this['props']['events']\n public readonly recurringEvents: this['props']['recurringEvents']\n public readonly actions: this['props']['actions']\n public readonly tables: this['props']['tables']\n public readonly secrets: this['props']['secrets']\n public readonly workflows: this['props']['workflows']\n public readonly attributes: this['props']['attributes']\n public readonly __advanced: this['props']['__advanced']\n\n /** Bot definition with plugins merged into it */\n public readonly withPlugins: Pick<\n this['props'],\n 'user' | 'conversation' | 'message' | 'states' | 'events' | 'recurringEvents' | 'actions' | 'tables' | 'workflows'\n >\n\n public constructor(public readonly props: BotDefinitionProps<TStates, TEvents, TActions, TTables, TWorkflows>) {\n const events = stripRecurringFromEvents(\n props.events as Record<string, EventDefinition> | undefined\n ) as this['props']['events']\n const recurringEvents = resolveRecurringEvents(\n props.events as Record<string, EventDefinition>,\n props.recurringEvents as BotDefinitionProps['recurringEvents']\n )\n\n this.integrations = props.integrations\n this.plugins = props.plugins\n this.user = props.user\n this.conversation = props.conversation\n this.message = props.message\n this.states = props.states\n this.configuration = props.configuration\n this.events = events\n this.recurringEvents = recurringEvents\n this.actions = props.actions\n this.tables = props.tables\n this.secrets = props.secrets\n this.workflows = props.workflows\n this.attributes = props.attributes\n this.__advanced = props.__advanced\n\n this.withPlugins = {\n user: props.user,\n conversation: props.conversation,\n message: props.message,\n states: props.states,\n events,\n recurringEvents,\n actions: props.actions,\n tables: props.tables,\n workflows: props.workflows,\n }\n }\n\n public get metadata() {\n return { sdkVersion: SDK_VERSION } as const\n }\n\n public readonly clone?: (overrides?: Partial<BotDefinitionProps>) => BotDefinition = (overrides?) => {\n // TODO: make non-optional on next major (CLI and SDK share the same major, so the CLI can always rely on clone being present)\n return new BotDefinition({\n ...this.props,\n integrations: this.integrations,\n plugins: this.plugins,\n ...overrides,\n } as BotDefinitionProps)\n }\n\n public addIntegration<I extends IntegrationPackage>(integrationPkg: I, config?: IntegrationConfigInstance<I>): this {\n const self = this as Writable<BotDefinition>\n if (!self.integrations) {\n self.integrations = {}\n }\n\n const integrationAlias = config?.alias ?? integrationPkg.name\n\n if (self.integrations[integrationAlias]) {\n throw new DefinitionError(`Another integration with alias \"${integrationAlias}\" is already installed in the bot`)\n }\n\n const configurationType = config && 'configurationType' in config ? config.configurationType : undefined\n const rawConfiguration = config && 'configuration' in config ? (config.configuration ?? {}) : {}\n\n const configSchema = configurationType\n ? integrationPkg.definition.configurations?.[configurationType]?.schema\n : integrationPkg.definition.configuration?.schema\n\n // Use safeParse to avoid throwing on validation errors at definition time (e.g. genenv placeholders\n // or extra keys in catchall(z.never()) schemas). Spread rawConfiguration first to preserve unknown\n // keys, then overlay the parsed result so that z.default() values are applied for omitted fields.\n const parseResult = configSchema ? configSchema.safeParse(rawConfiguration) : null\n const configuration = parseResult?.success ? { ...rawConfiguration, ...parseResult.data } : rawConfiguration\n\n self.integrations[integrationAlias] = {\n ...integrationPkg,\n alias: integrationAlias,\n enabled: config?.enabled,\n configurationType,\n configuration,\n disabledChannels: config?.disabledChannels,\n }\n return this\n }\n\n public addPlugin<P extends PluginPackage>(pluginPkg: P, config: PluginConfigInstance<P>): this {\n const self = this as Writable<BotDefinition>\n if (!self.plugins) {\n self.plugins = {}\n }\n\n const pluginAlias = config.alias ?? pluginPkg.name\n\n if (self.plugins[pluginAlias]) {\n throw new DefinitionError(`Another plugin with alias \"${pluginAlias}\" is already installed in the bot`)\n }\n // Resolve backing integrations for plugin interfaces:\n const interfaces: Record<string, PluginInterfaceExtension> = Object.fromEntries(\n Object.entries(config.dependencies ?? {})\n .filter(([_, dep]) => 'integrationInterfaceAlias' in dep)\n .map(([pluginIfaceAlias, pluginIfaceConfig]) => {\n const integrationInstance = this.integrations?.[pluginIfaceConfig.integrationAlias]\n\n if (!integrationInstance) {\n const availableIntegrations = Object.keys(this.integrations ?? {}).join(', ') || '(none)'\n\n throw new DefinitionError(\n `Interface with alias \"${pluginIfaceAlias}\" of plugin with alias \"${pluginAlias}\" ` +\n `references integration with alias \"${pluginIfaceConfig.integrationAlias}\" which is not installed. ` +\n 'Please make sure to add the integration via addIntegration() before calling addPlugin().\\n' +\n `Available integration aliases: ${availableIntegrations}`\n )\n }\n\n const integrationInterfaceExtension =\n integrationInstance.definition.interfaces?.[pluginIfaceConfig.integrationInterfaceAlias]\n\n if (!integrationInterfaceExtension) {\n const availableInterfaces =\n Object.keys(integrationInstance.definition.interfaces ?? {}).join(', ') || '(none)'\n\n throw new DefinitionError(\n `Interface with alias \"${pluginIfaceConfig.integrationInterfaceAlias}\" does not exist in integration ` +\n `\"${integrationInstance.name}\" referenced by interface with alias \"${pluginIfaceAlias}\" of plugin ` +\n `with alias \"${pluginAlias}\".\\nAvailable interface aliases: ${availableInterfaces}`\n )\n }\n\n return [\n pluginIfaceAlias,\n {\n ...integrationInterfaceExtension,\n id: integrationInstance.id,\n name: integrationInstance.name,\n version: integrationInstance.version,\n ...pluginIfaceConfig,\n } satisfies PluginInterfaceExtension,\n ]\n })\n )\n\n // Resolve backing integrations for plugin integrations:\n const integrations: Record<string, PluginIntegrationExtension> = Object.fromEntries(\n Object.entries(config.dependencies ?? {})\n .filter(([_, dep]) => !('integrationInterfaceAlias' in dep))\n .map(([pluginIntegAlias, pluginIntegConfig]) => {\n const integrationInstance = this.integrations?.[pluginIntegConfig.integrationAlias]\n\n if (!integrationInstance) {\n const availableIntegrations = Object.keys(this.integrations ?? {}).join(', ') || '(none)'\n\n throw new Error(\n `Integration with alias \"${pluginIntegAlias}\" of plugin with alias \"${pluginAlias}\" ` +\n `references integration with alias \"${pluginIntegConfig.integrationAlias}\" which is not installed. ` +\n 'Please make sure to add the integration via addIntegration() before calling addPlugin().\\n' +\n `Available integration aliases: ${availableIntegrations}`\n )\n }\n\n return [\n pluginIntegAlias,\n { ...integrationInstance, ...pluginIntegConfig } satisfies PluginIntegrationExtension,\n ]\n })\n )\n\n const rawPluginConfiguration = config.configuration ?? {}\n const pluginConfigSchema = pluginPkg.definition.configuration?.schema\n // Use safeParse to avoid throwing on validation errors at definition time (e.g. genenv placeholders\n // or extra keys in catchall(z.never()) schemas). Spread rawPluginConfiguration first to preserve\n // unknown keys, then overlay the parsed result so that z.default() values are applied for omitted fields.\n const pluginParseResult = pluginConfigSchema ? pluginConfigSchema.safeParse(rawPluginConfiguration) : null\n const pluginConfiguration = pluginParseResult?.success\n ? { ...rawPluginConfiguration, ...pluginParseResult.data }\n : rawPluginConfiguration\n\n self.plugins[pluginAlias] = {\n ...pluginPkg,\n alias: pluginAlias,\n configuration: pluginConfiguration,\n interfaces,\n integrations,\n }\n\n self.withPlugins.user = this._mergeUser(self.withPlugins.user, pluginPkg.definition.user)\n self.withPlugins.conversation = this._mergeConversation(\n self.withPlugins.conversation,\n pluginPkg.definition.conversation\n )\n self.withPlugins.message = this._mergeMessage(self.withPlugins.message, pluginPkg.definition.message)\n self.withPlugins.recurringEvents = this._mergeRecurringEvents(\n self.withPlugins.recurringEvents,\n pluginPkg.definition.recurringEvents\n )\n self.withPlugins.tables = this._mergeTables(self.withPlugins.tables, pluginPkg.definition.tables)\n self.withPlugins.workflows = this._mergeWorkflows(self.withPlugins.workflows, pluginPkg.definition.workflows)\n\n self.withPlugins.states = this._mergeStates(\n self.withPlugins.states,\n this._prefixKeysWithPluginAlias(pluginPkg.definition.states, pluginAlias)\n )\n self.withPlugins.events = this._mergeEvents(\n self.withPlugins.events,\n this._prefixKeysWithPluginAlias(pluginPkg.definition.events, pluginAlias)\n )\n self.withPlugins.actions = this._mergeActions(\n self.withPlugins.actions,\n this._prefixKeysWithPluginAlias(pluginPkg.definition.actions, pluginAlias)\n )\n\n return this\n }\n\n private _mergeUser = (\n user1: BotDefinitionProps['user'],\n user2: BotDefinitionProps['user']\n ): BotDefinitionProps['user'] => {\n return {\n tags: {\n ...user1?.tags,\n ...user2?.tags,\n },\n }\n }\n\n private _mergeConversation = (\n conversation1: BotDefinitionProps['conversation'],\n conversation2: BotDefinitionProps['conversation']\n ): BotDefinitionProps['conversation'] => {\n return {\n tags: {\n ...conversation1?.tags,\n ...conversation2?.tags,\n },\n }\n }\n\n private _mergeMessage = (\n message1: BotDefinitionProps['message'],\n message2: BotDefinitionProps['message']\n ): BotDefinitionProps['message'] => {\n return {\n tags: {\n ...message1?.tags,\n ...message2?.tags,\n },\n }\n }\n\n private _mergeStates = (\n states1: BotDefinitionProps['states'],\n states2: BotDefinitionProps['states']\n ): BotDefinitionProps['states'] => {\n return {\n ...states1,\n ...states2,\n }\n }\n\n private _mergeEvents = (\n events1: BotDefinitionProps['events'],\n events2: BotDefinitionProps['events']\n ): BotDefinitionProps['events'] => {\n return {\n ...events1,\n ...events2,\n }\n }\n\n private _mergeRecurringEvents = (\n recurringEvents1: BotDefinitionProps['recurringEvents'],\n recurringEvents2: BotDefinitionProps['recurringEvents']\n ): BotDefinitionProps['recurringEvents'] => {\n return {\n ...recurringEvents1,\n ...recurringEvents2,\n }\n }\n\n private _mergeActions = (\n actions1: BotDefinitionProps['actions'],\n actions2: BotDefinitionProps['actions']\n ): BotDefinitionProps['actions'] => {\n return {\n ...actions1,\n ...actions2,\n }\n }\n\n private _mergeTables = (\n tables1: BotDefinitionProps['tables'],\n tables2: BotDefinitionProps['tables']\n ): BotDefinitionProps['tables'] => {\n return {\n ...tables1,\n ...tables2,\n }\n }\n\n private _mergeWorkflows = (\n workflows1: BotDefinitionProps['workflows'],\n workflows2: BotDefinitionProps['workflows']\n ): BotDefinitionProps['workflows'] => {\n return {\n ...workflows1,\n ...workflows2,\n }\n }\n\n private _prefixKeysWithPluginAlias = <TRecord extends Record<string, unknown>>(\n obj: TRecord | undefined,\n pluginAlias: string\n ): TRecord =>\n utils.records.mapKeys(obj ?? {}, (key) => `${pluginAlias}${consts.PLUGIN_PREFIX_SEPARATOR}${key}`) as TRecord\n\n /**\n * Returns a copy of the bot definition where all interface entity references\n * are resolved to the base entity schema as extended by the backing\n * integration.\n */\n public dereferencePluginEntities(): this {\n const zuiReferenceMap = this._buildZuiReferenceMap()\n\n return {\n ...this,\n withPlugins: {\n ...this.withPlugins,\n events: this._dereferenceDefinitionSchemas(this.withPlugins.events, zuiReferenceMap),\n states: this._dereferenceDefinitionSchemas(this.withPlugins.states, zuiReferenceMap),\n tables: this._dereferenceDefinitionSchemas(this.withPlugins.tables, zuiReferenceMap),\n actions: this._dereferenceActionDefinitionSchemas(this.withPlugins.actions, zuiReferenceMap),\n },\n plugins: Object.fromEntries(\n (Object.entries(this.plugins ?? {}) as [pluginAlias: string, PluginInstance][]).map(\n ([pluginAlias, pluginInstance]) => [\n pluginAlias,\n {\n ...pluginInstance,\n definition: {\n ...pluginInstance.definition,\n configuration: this._dereferenceDefinitionSchema(\n pluginInstance.definition.configuration,\n zuiReferenceMap\n ),\n events: this._dereferenceDefinitionSchemas(pluginInstance.definition.events, zuiReferenceMap),\n states: this._dereferenceDefinitionSchemas(pluginInstance.definition.states, zuiReferenceMap),\n tables: this._dereferenceDefinitionSchemas(pluginInstance.definition.tables, zuiReferenceMap),\n actions: this._dereferenceActionDefinitionSchemas(pluginInstance.definition.actions, zuiReferenceMap),\n },\n },\n ]\n )\n ),\n } as typeof this\n }\n\n private _buildZuiReferenceMap(): Record<string, z.ZodTypeAny> {\n const zuiReferenceMap: Record<string, z.ZodTypeAny> = {}\n\n const installedPlugins = Object.entries(this.plugins ?? {}) as [pluginAlias: string, PluginInstance][]\n\n for (const [pluginAlias, pluginInstance] of installedPlugins) {\n const pluginInterfaceExtensions = Object.entries(pluginInstance.interfaces ?? {}) as [\n interfaceAlias: string,\n PluginInterfaceExtension,\n ][]\n\n for (const [interfaceAlias, pluginInterfaceExtension] of pluginInterfaceExtensions) {\n const backingIntegration = this.integrations?.[pluginInterfaceExtension.integrationAlias]\n\n if (!backingIntegration) {\n throw new DefinitionError(\n `Interface with alias \"${interfaceAlias}\" of plugin with alias \"${pluginAlias}\" references integration \"${pluginInterfaceExtension.name}\" which is not installed`\n )\n }\n\n const entityExtensions = Object.entries(pluginInterfaceExtension.entities ?? {}) as [\n entityAlias: string,\n {\n name: string\n },\n ][]\n\n for (const [entityAlias, { name: interfaceEntityName }] of entityExtensions) {\n const entitySchema = backingIntegration.definition.entities?.[interfaceEntityName]?.schema\n\n if (!entitySchema) {\n // This should never happen\n throw new Error(\n `Interface entity \"${interfaceEntityName}\" does not exist in integration \"${backingIntegration.name}\"`\n )\n }\n\n zuiReferenceMap[`interface:${interfaceAlias}/entities/${entityAlias}`] = entitySchema\n }\n }\n }\n\n return zuiReferenceMap\n }\n\n private _dereferenceZuiSchema(\n schema: z.ZuiObjectOrRefSchema,\n zuiReferenceMap: Record<string, z.ZodTypeAny>\n ): z.ZuiObjectSchema {\n return schema.dereference(zuiReferenceMap) as z.ZuiObjectSchema\n }\n\n private _dereferenceDefinitionSchemas<TDefinitionRecord extends Record<string, { schema: z.ZuiObjectOrRefSchema }>>(\n definitions: TDefinitionRecord | undefined,\n zuiReferenceMap: Record<string, z.ZodTypeAny>\n ): TDefinitionRecord {\n return Object.fromEntries(\n Object.entries(definitions ?? {}).map(([key, definition]) => [\n key,\n this._dereferenceDefinitionSchema(definition, zuiReferenceMap),\n ])\n ) as TDefinitionRecord\n }\n\n private _dereferenceDefinitionSchema<TDefinition extends { schema: z.ZuiObjectOrRefSchema } | undefined>(\n definition: TDefinition,\n zuiReferenceMap: Record<string, z.ZodTypeAny>\n ): TDefinition {\n return definition\n ? { ...definition, schema: this._dereferenceZuiSchema(definition.schema, zuiReferenceMap) }\n : definition\n }\n\n private _dereferenceActionDefinitionSchemas<\n TDefinitionRecord extends Record<\n string,\n { input: { schema: z.ZuiObjectOrRefSchema }; output: { schema: z.ZuiObjectOrRefSchema } }\n >,\n >(definitions: TDefinitionRecord | undefined, zuiReferenceMap: Record<string, z.ZodTypeAny>): TDefinitionRecord {\n return Object.fromEntries(\n Object.entries(definitions ?? {}).map(([key, definition]) => [\n key,\n {\n ...definition,\n input: { schema: this._dereferenceZuiSchema(definition.input.schema, zuiReferenceMap) },\n output: { schema: this._dereferenceZuiSchema(definition.output.schema, zuiReferenceMap) },\n },\n ])\n ) as TDefinitionRecord\n }\n}\n", "import { BotDefinitionProps, EventDefinition, RecurringEventDefinition } from '../bot/definition'\nimport { SafeOmit } from '../utils/type-utils'\n\ntype StrippedEvents<TEvents extends Record<string, EventDefinition>> = {\n [K in keyof TEvents]: SafeOmit<TEvents[K], 'recurrence'>\n}\n\nexport function stripRecurringFromEvents<TEvents extends Record<string, EventDefinition>>(\n events: TEvents\n): StrippedEvents<TEvents>\nexport function stripRecurringFromEvents<TEvents extends Record<string, EventDefinition>>(\n events: TEvents | undefined\n): StrippedEvents<TEvents> | undefined\nexport function stripRecurringFromEvents<TEvents extends Record<string, EventDefinition>>(\n events: TEvents | undefined\n): StrippedEvents<TEvents> | undefined {\n if (!events) return undefined\n return Object.fromEntries(\n Object.entries(events).map(([key, { recurrence: _, ...rest }]) => [key, rest])\n ) as StrippedEvents<TEvents>\n}\n\nexport function resolveRecurringEvents(\n events: Record<string, EventDefinition> | undefined,\n explicitRecurringEvents: BotDefinitionProps['recurringEvents']\n): BotDefinitionProps['recurringEvents'] {\n const derived: NonNullable<BotDefinitionProps['recurringEvents']> = Object.fromEntries(\n Object.entries(events ?? {})\n .map(([eventName, event]): [string, RecurringEventDefinition] | null =>\n event.recurrence\n ? [\n eventName,\n { type: eventName, payload: event.recurrence.payload, schedule: { cron: event.recurrence.cron } },\n ]\n : null\n )\n .filter((x) => x !== null)\n )\n const merged = { ...derived, ...explicitRecurringEvents }\n return Object.keys(merged).length ? merged : undefined\n}\n", "import { Workflow } from '@holocronlab/botruntime-client'\nimport type { Server } from 'node:http'\nimport { PLUGIN_PREFIX_SEPARATOR } from '../consts'\nimport { BasePlugin, PluginImplementation } from '../plugin'\nimport { serve } from '../serve'\nimport * as utils from '../utils'\nimport { BaseBot } from './common'\nimport {\n botHandler,\n ActionHandlers,\n MessageHandlers,\n EventHandlers,\n StateExpiredHandlers,\n HookHandlers,\n WorkflowHandlers,\n MessageHandlersMap,\n EventHandlersMap,\n StateExpiredHandlersMap,\n HookHandlersMap,\n WorkflowHandlersMap,\n OrderedMessageHandlersMap,\n OrderedEventHandlersMap,\n OrderedStateExpiredHandlersMap,\n OrderedHookHandlersMap,\n OrderedWorkflowHandlersMap,\n BotHandlers,\n UnimplementedActionHandlers,\n WorkflowUpdateType,\n InjectedHandlerProps,\n InjectedBotHandlers,\n RegisterHandler,\n} from './server'\nimport { proxyWorkflows, wrapWorkflowInstance } from './workflow-proxy'\n\nexport type BotImplementationProps<TBot extends BaseBot = BaseBot, TPlugins extends Record<string, BasePlugin> = {}> = {\n register?: RegisterHandler<TBot>\n actions: UnimplementedActionHandlers<TBot, TPlugins>\n plugins: {\n [K in utils.types.StringKeys<TPlugins>]: PluginImplementation<TPlugins[K]>\n }\n}\n\nexport class BotImplementation<TBot extends BaseBot = BaseBot, TPlugins extends Record<string, BasePlugin> = {}>\n implements InjectedBotHandlers<TBot>\n{\n private _registerHandler: RegisterHandler<TBot> | undefined\n private _actionHandlers: ActionHandlers<any>\n private _messageHandlers: OrderedMessageHandlersMap<any> = {}\n private _eventHandlers: OrderedEventHandlersMap<any> = {}\n private _stateExpiredHandlers: OrderedStateExpiredHandlersMap<any> = {}\n private _hookHandlers: OrderedHookHandlersMap<any> = {\n before_incoming_event: {},\n before_incoming_message: {},\n before_outgoing_message: {},\n before_outgoing_call_action: {},\n before_incoming_call_action: {},\n after_incoming_event: {},\n after_incoming_message: {},\n after_outgoing_message: {},\n after_outgoing_call_action: {},\n after_incoming_call_action: {},\n }\n private _workflowHandlers: OrderedWorkflowHandlersMap<any> = {\n started: {},\n continued: {},\n timed_out: {},\n }\n\n private _plugins: Record<string, PluginImplementation<any>> = {}\n\n private _registerOrder: number = 0\n\n public constructor(public readonly props: BotImplementationProps<TBot, TPlugins>) {\n this._registerHandler = props.register\n this._actionHandlers = props.actions as ActionHandlers<TBot>\n this._plugins = props.plugins\n }\n\n public get registerHandler(): RegisterHandler<TBot> | undefined {\n return this._registerHandler\n }\n\n public get actionHandlers(): InjectedBotHandlers<TBot>['actionHandlers'] {\n return new Proxy(\n {},\n {\n get: (_, actionName: string) => {\n const action = this._actionHandlers[actionName]\n if (action) {\n return utils.functions.setName(\n (props: Omit<Parameters<typeof action>[0], keyof InjectedHandlerProps<TBot>>) =>\n action({ ...props, workflows: proxyWorkflows(props) }),\n action.name\n )\n }\n\n for (const [pluginAlias, plugin] of Object.entries(this._plugins)) {\n const [actionPrefix, nameWithoutPrefix] = actionName.split(PLUGIN_PREFIX_SEPARATOR)\n if (actionPrefix !== pluginAlias || !nameWithoutPrefix) {\n continue\n }\n return plugin.actionHandlers[nameWithoutPrefix]\n }\n\n return undefined\n },\n }\n ) as InjectedBotHandlers<TBot>['actionHandlers']\n }\n\n public get messageHandlers(): InjectedBotHandlers<TBot>['messageHandlers'] {\n return new Proxy(\n {},\n {\n /** returns both the message handlers for the target type but global as well */\n get: (_, messageName: string) => {\n const pluginHandlers = Object.values(this._plugins).flatMap(\n (plugin) => plugin.messageHandlers[messageName] ?? []\n )\n const selfSpecificHandlers = messageName === '*' ? [] : (this._messageHandlers[messageName] ?? [])\n const selfGlobalHandlers = this._messageHandlers['*'] ?? []\n const selfHandlers = [...selfSpecificHandlers, ...selfGlobalHandlers]\n .sort((a, b) => a.order - b.order)\n .map(({ handler }) =>\n utils.functions.setName(\n (props: Omit<Parameters<typeof handler>[0], keyof InjectedHandlerProps<TBot>>) =>\n handler({ ...props, workflows: proxyWorkflows(props) }),\n handler.name\n )\n )\n\n return utils.arrays.unique([...pluginHandlers, ...selfHandlers])\n },\n }\n ) as InjectedBotHandlers<TBot>['messageHandlers']\n }\n\n public get eventHandlers(): InjectedBotHandlers<TBot>['eventHandlers'] {\n return new Proxy(\n {},\n {\n /** returns both the event handlers for the target type but global as well */\n get: (_, eventName: string) => {\n const pluginHandlers = Object.values(this._plugins).flatMap((plugin) => plugin.eventHandlers[eventName] ?? [])\n\n const selfSpecificHandlers = eventName === '*' ? [] : (this._eventHandlers[eventName] ?? [])\n const selfGlobalHandlers = this._eventHandlers['*'] ?? []\n const selfHandlers = [...selfSpecificHandlers, ...selfGlobalHandlers]\n .sort((a, b) => a.order - b.order)\n .map(({ handler }) =>\n utils.functions.setName(\n (props: Omit<Parameters<typeof handler>[0], keyof InjectedHandlerProps<TBot>>) =>\n handler({ ...props, workflows: proxyWorkflows(props) }),\n handler.name\n )\n )\n\n return utils.arrays.unique([...pluginHandlers, ...selfHandlers])\n },\n }\n ) as InjectedBotHandlers<TBot>['eventHandlers']\n }\n\n public get stateExpiredHandlers(): InjectedBotHandlers<TBot>['stateExpiredHandlers'] {\n return new Proxy(\n {},\n {\n /** returns both the state expired handlers for the target type but global as well */\n get: (_, stateName: string) => {\n const pluginHandlers = Object.values(this._plugins).flatMap(\n (plugin) => plugin.stateExpiredHandlers[stateName] ?? []\n )\n\n const selfSpecificHandlers = stateName === '*' ? [] : (this._stateExpiredHandlers[stateName] ?? [])\n const selfGlobalHandlers = this._stateExpiredHandlers['*'] ?? []\n const selfHandlers = [...selfSpecificHandlers, ...selfGlobalHandlers]\n .sort((a, b) => a.order - b.order)\n .map(({ handler }) =>\n utils.functions.setName(\n (props: Omit<Parameters<typeof handler>[0], keyof InjectedHandlerProps<TBot>>) =>\n handler({ ...props, workflows: proxyWorkflows(props) }),\n handler.name\n )\n )\n\n return utils.arrays.unique([...pluginHandlers, ...selfHandlers])\n },\n }\n ) as InjectedBotHandlers<TBot>['stateExpiredHandlers']\n }\n\n public get hookHandlers(): InjectedBotHandlers<TBot>['hookHandlers'] {\n return new Proxy(\n {},\n {\n get: (_, hookType: utils.types.StringKeys<HookHandlersMap<TBot>>) => {\n const hooks = this._hookHandlers[hookType]\n if (!hooks) {\n return undefined\n }\n\n return new Proxy(\n {},\n {\n get: (_, hookDataName: string) => {\n const pluginHandlers = Object.values(this._plugins).flatMap(\n (plugin) => (plugin.hookHandlers[hookType]?.[hookDataName] ?? []) as typeof selfHandlers\n )\n\n const selfHooks = this._hookHandlers[hookType] ?? {}\n const selfSpecificHandlers = hookDataName === '*' ? [] : (selfHooks[hookDataName] ?? [])\n const selfGlobalHandlers = selfHooks['*'] ?? []\n const selfHandlers = [...selfSpecificHandlers, ...selfGlobalHandlers]\n .sort((a, b) => a.order - b.order)\n .map(({ handler }) =>\n utils.functions.setName(\n (props: any) => handler({ ...props, workflows: proxyWorkflows(props) }),\n handler.name\n )\n )\n\n return utils.arrays.unique([...pluginHandlers, ...selfHandlers])\n },\n }\n )\n },\n }\n ) as InjectedBotHandlers<TBot>['hookHandlers']\n }\n\n public get workflowHandlers(): InjectedBotHandlers<TBot>['workflowHandlers'] {\n return new Proxy(\n {},\n {\n get: (_, updateType: WorkflowUpdateType) => {\n const handlersOfType = this._workflowHandlers[updateType]\n if (!handlersOfType) {\n return undefined\n }\n\n return new Proxy(\n {},\n {\n get: (_, workflowName: string) => {\n const selfHandlers =\n handlersOfType[workflowName]\n ?.sort((a, b) => a.order - b.order)\n .map(({ handler }) =>\n utils.functions.setName(\n async (props: Omit<Parameters<typeof handler>[0], keyof InjectedHandlerProps<TBot>>) => {\n let currentWorkflowState: Workflow = props.workflow\n await handler({\n ...props,\n workflow: wrapWorkflowInstance({\n ...props,\n onWorkflowUpdate(newState) {\n currentWorkflowState = newState\n },\n }),\n workflows: proxyWorkflows(props),\n })\n return currentWorkflowState\n },\n handler.name\n )\n ) ?? []\n\n const pluginHandlers = Object.values(this._plugins).flatMap(\n (plugin) => plugin.workflowHandlers[updateType]?.[workflowName] ?? []\n )\n\n return utils.arrays.unique([...selfHandlers, ...pluginHandlers])\n },\n }\n )\n },\n }\n ) as InjectedBotHandlers<TBot>['workflowHandlers']\n }\n\n public readonly on = {\n message: <T extends utils.types.StringKeys<MessageHandlersMap<TBot>>>(\n type: T,\n handler: MessageHandlers<TBot>[T]\n ): void => {\n this._messageHandlers[type] = utils.arrays.safePush(this._messageHandlers[type], {\n handler: handler as MessageHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n event: <T extends utils.types.StringKeys<EventHandlersMap<TBot>>>(\n type: T,\n handler: EventHandlers<TBot>[T]\n ): void => {\n this._eventHandlers[type] = utils.arrays.safePush(this._eventHandlers[type], {\n handler: handler as EventHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n stateExpired: <T extends utils.types.StringKeys<StateExpiredHandlersMap<TBot>>>(\n type: T,\n handler: StateExpiredHandlers<TBot>[T]\n ): void => {\n this._stateExpiredHandlers[type] = utils.arrays.safePush(this._stateExpiredHandlers[type], {\n handler: handler as StateExpiredHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n beforeIncomingEvent: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['before_incoming_event']>>(\n type: T,\n handler: HookHandlers<TBot>['before_incoming_event'][T]\n ) => {\n this._hookHandlers.before_incoming_event[type] = utils.arrays.safePush(\n this._hookHandlers.before_incoming_event[type],\n { handler: handler as HookHandlers<any>['before_incoming_event'][string], order: this._registerOrder++ }\n )\n },\n beforeIncomingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['before_incoming_message']>>(\n type: T,\n handler: HookHandlers<TBot>['before_incoming_message'][T]\n ) => {\n this._hookHandlers.before_incoming_message[type] = utils.arrays.safePush(\n this._hookHandlers.before_incoming_message[type],\n { handler: handler as HookHandlers<any>['before_incoming_message'][string], order: this._registerOrder++ }\n )\n },\n beforeOutgoingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['before_outgoing_message']>>(\n type: T,\n handler: HookHandlers<TBot>['before_outgoing_message'][T]\n ) => {\n this._hookHandlers.before_outgoing_message[type] = utils.arrays.safePush(\n this._hookHandlers.before_outgoing_message[type],\n { handler: handler as HookHandlers<any>['before_outgoing_message'][string], order: this._registerOrder++ }\n )\n },\n beforeOutgoingCallAction: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['before_outgoing_call_action']>>(\n type: T,\n handler: HookHandlers<TBot>['before_outgoing_call_action'][T]\n ) => {\n this._hookHandlers.before_outgoing_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.before_outgoing_call_action[type],\n { handler: handler as HookHandlers<any>['before_outgoing_call_action'][string], order: this._registerOrder++ }\n )\n },\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n beforeIncomingCallAction: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['before_incoming_call_action']>>(\n type: T,\n handler: HookHandlers<TBot>['before_incoming_call_action'][T]\n ) => {\n this._hookHandlers.before_incoming_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.before_incoming_call_action[type],\n { handler: handler as HookHandlers<any>['before_incoming_call_action'][string], order: this._registerOrder++ }\n )\n },\n afterIncomingEvent: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['after_incoming_event']>>(\n type: T,\n handler: HookHandlers<TBot>['after_incoming_event'][T]\n ) => {\n this._hookHandlers.after_incoming_event[type] = utils.arrays.safePush(\n this._hookHandlers.after_incoming_event[type],\n { handler: handler as HookHandlers<any>['after_incoming_event'][string], order: this._registerOrder++ }\n )\n },\n afterIncomingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['after_incoming_message']>>(\n type: T,\n handler: HookHandlers<TBot>['after_incoming_message'][T]\n ) => {\n this._hookHandlers.after_incoming_message[type] = utils.arrays.safePush(\n this._hookHandlers.after_incoming_message[type],\n { handler: handler as HookHandlers<any>['after_incoming_message'][string], order: this._registerOrder++ }\n )\n },\n afterOutgoingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['after_outgoing_message']>>(\n type: T,\n handler: HookHandlers<TBot>['after_outgoing_message'][T]\n ) => {\n this._hookHandlers.after_outgoing_message[type] = utils.arrays.safePush(\n this._hookHandlers.after_outgoing_message[type],\n { handler: handler as HookHandlers<any>['after_outgoing_message'][string], order: this._registerOrder++ }\n )\n },\n afterOutgoingCallAction: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['after_outgoing_call_action']>>(\n type: T,\n handler: HookHandlers<TBot>['after_outgoing_call_action'][T]\n ) => {\n this._hookHandlers.after_outgoing_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.after_outgoing_call_action[type],\n { handler: handler as HookHandlers<any>['after_outgoing_call_action'][string], order: this._registerOrder++ }\n )\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n afterIncomingCallAction: <T extends utils.types.StringKeys<HookHandlersMap<TBot>['after_incoming_call_action']>>(\n type: T,\n handler: HookHandlers<TBot>['after_incoming_call_action'][T]\n ) => {\n this._hookHandlers.after_incoming_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.after_incoming_call_action[type],\n { handler: handler as HookHandlers<any>['after_incoming_call_action'][string], order: this._registerOrder++ }\n )\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflowStart: <T extends utils.types.StringKeys<WorkflowHandlersMap<TBot>['started']>>(\n type: T,\n handler: WorkflowHandlers<TBot>[T]\n ): void => {\n this._workflowHandlers.started[type] = utils.arrays.safePush(this._workflowHandlers.started[type], {\n handler: handler as WorkflowHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflowContinue: <T extends utils.types.StringKeys<WorkflowHandlersMap<TBot>['continued']>>(\n type: T,\n handler: WorkflowHandlers<TBot>[T]\n ): void => {\n this._workflowHandlers.continued[type] = utils.arrays.safePush(this._workflowHandlers.continued[type], {\n handler: handler as WorkflowHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflowTimeout: <T extends utils.types.StringKeys<WorkflowHandlersMap<TBot>['timed_out']>>(\n type: T,\n handler: WorkflowHandlers<TBot>[T]\n ): void => {\n this._workflowHandlers.timed_out[type] = utils.arrays.safePush(this._workflowHandlers.timed_out[type], {\n handler: handler as WorkflowHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n }\n\n public readonly handler = botHandler(this as unknown as BotHandlers<any>)\n\n public readonly start = (port?: number): Promise<Server> => serve(this.handler, port)\n}\n", "import { Client, InvalidPayloadError, Message, State, User, Conversation } from '@holocronlab/botruntime-client'\nimport { retryConfig } from '../../retry'\nimport { Request, Response, parseBody, handlerErrorToHttpResponse } from '../../serve'\nimport * as utils from '../../utils/type-utils'\nimport { BotLogger } from '../bot-logger'\nimport { BotSpecificClient } from '../client'\nimport * as common from '../common'\nimport { extractContext } from './context'\nimport { SUCCESS_RESPONSE } from './responses'\nimport * as types from './types'\nimport { handleWorkflowUpdateEvent } from './workflows/update-handler'\n\nexport * from './types'\n\nexport const botHandler =\n (bot: types.BotHandlers<common.BaseBot>) =>\n async (req: Request): Promise<Response | void> => {\n const ctx = extractContext(req.headers)\n const logger = new BotLogger()\n\n const vanillaClient = new Client({\n botId: ctx.botId,\n retry: retryConfig,\n })\n const botClient = new BotSpecificClient<common.BaseBot>(vanillaClient, {\n before: {\n createMessage: async (req) => {\n const beforeOutgoingMessageHooks = bot.hookHandlers.before_outgoing_message[req.type] ?? []\n for (const handler of beforeOutgoingMessageHooks) {\n const client = new BotSpecificClient(vanillaClient)\n const hookOutput = await handler({\n client,\n ctx,\n logger: logger.with({ conversationId: req.conversationId, userId: req.userId }),\n data: req,\n })\n req = hookOutput?.data ?? req\n }\n return req\n },\n callAction: async (req) => {\n const beforeOutgoingCallActionHooks = bot.hookHandlers.before_outgoing_call_action[req.type] ?? []\n for (const handler of beforeOutgoingCallActionHooks) {\n const client = new BotSpecificClient(vanillaClient)\n const hookOutput = await handler({\n client,\n ctx,\n logger,\n data: req,\n })\n req = hookOutput?.data ?? req\n }\n return req\n },\n },\n after: {\n createMessage: async (res) => {\n const afterOutgoingMessageHooks = bot.hookHandlers.after_outgoing_message[res.message.type] ?? []\n for (const handler of afterOutgoingMessageHooks) {\n const client = new BotSpecificClient(vanillaClient)\n const hookOutput = await handler({\n client,\n ctx,\n logger: logger.with({\n messageId: res.message.id,\n conversationId: res.message.conversationId,\n userId: res.message.userId,\n }),\n data: res,\n })\n res = hookOutput?.data ?? res\n }\n return res\n },\n callAction: async (res, req) => {\n const { type } = req\n const afterOutgoingCallActionHooks = bot.hookHandlers.after_outgoing_call_action[type] ?? []\n for (const handler of afterOutgoingCallActionHooks) {\n const client = new BotSpecificClient(vanillaClient)\n const hookOutput = await handler({\n client,\n ctx,\n logger,\n data: {\n type,\n ...res,\n },\n })\n res = hookOutput?.data ?? res\n }\n return res\n },\n },\n })\n\n const props: types.ServerProps = {\n req,\n ctx,\n logger,\n client: botClient,\n self: bot,\n }\n\n try {\n switch (ctx.operation) {\n case 'action_triggered':\n return await onActionTriggered(props)\n case 'event_received':\n return await onEventReceived(props)\n case 'register':\n return await onRegister(props)\n case 'unregister':\n return await onUnregister(props)\n case 'ping':\n return await onPing(props)\n default:\n throw new InvalidPayloadError(`Unknown operation ${ctx.operation}`)\n }\n } catch (thrown: unknown) {\n const { status, body, error } = handlerErrorToHttpResponse({\n thrown,\n unexpectedErrorMessage: 'An unexpected error occurred in the bot.',\n })\n\n status >= 500 ? logger.error(error.message, thrown) : logger.error(error.message)\n return { status, body }\n }\n }\n\nconst onPing = async (_: types.ServerProps): Promise<Response> => {\n return SUCCESS_RESPONSE\n}\n\nconst onRegister = async (serverProps: types.ServerProps): Promise<Response> => {\n await serverProps.self.registerHandler?.({\n client: serverProps.client,\n ctx: serverProps.ctx,\n logger: serverProps.logger,\n })\n return SUCCESS_RESPONSE\n}\n\nconst onUnregister = async (_: types.ServerProps): Promise<Response> => {\n // this is currently never called\n return SUCCESS_RESPONSE\n}\n\nconst onEventReceived = async (serverProps: types.ServerProps): Promise<Response> => {\n const { ctx, logger, req, client, self } = serverProps\n const common: types.CommonHandlerProps<common.BaseBot> = { client, ctx, logger }\n\n type AnyEventPayload = utils.ValueOf<types.EventPayloads<common.BaseBot>>\n const body = parseBody<AnyEventPayload>(req)\n\n common.logger = common.logger.with({\n eventId: body.event.id,\n messageId: body.event.messageId,\n conversationId: body.event.conversationId,\n userId: body.event.userId,\n })\n\n if (ctx.type === 'workflow_update') {\n return await handleWorkflowUpdateEvent(serverProps, body.event as types.WorkflowUpdateEvent)\n }\n\n if (ctx.type === 'message_created') {\n const event = body.event\n let message: Message = event.payload.message\n const user: User = event.payload.user\n const conversation: Conversation = event.payload.conversation\n\n common.logger = common.logger.with({\n messageId: message.id,\n conversationId: message.conversationId,\n userId: message.userId,\n })\n\n const beforeIncomingMessageHooks = self.hookHandlers.before_incoming_message[message.type] ?? []\n for (const handler of beforeIncomingMessageHooks) {\n const hookOutput = await handler({\n ...common,\n user,\n conversation,\n data: message,\n })\n message = hookOutput?.data ?? message\n if (hookOutput?.stop) {\n return SUCCESS_RESPONSE\n }\n }\n\n const messagePayload: Parameters<(typeof messageHandlers)[number]>[0] = {\n ...common,\n user,\n conversation,\n message,\n event,\n }\n const messageHandlers = self.messageHandlers[message.type] ?? []\n for (const handler of messageHandlers) {\n await handler(messagePayload)\n }\n\n const afterIncomingMessageHooks = self.hookHandlers.after_incoming_message[message.type] ?? []\n for (const handler of afterIncomingMessageHooks) {\n const hookOutput = await handler({\n ...common,\n user,\n conversation,\n data: message,\n })\n message = hookOutput?.data ?? message\n if (hookOutput?.stop) {\n return SUCCESS_RESPONSE\n }\n }\n\n return SUCCESS_RESPONSE\n }\n\n if (ctx.type === 'state_expired') {\n const event = body.event\n const state: State = event.payload.state\n const statePayload: Parameters<(typeof stateHandlers)[number]>[0] = {\n ...common,\n state: state as types.IncomingStates<common.BaseBot>[string],\n }\n\n const stateHandlers = self.stateExpiredHandlers[state.name] ?? []\n for (const handler of stateHandlers) {\n await handler(statePayload)\n }\n\n return SUCCESS_RESPONSE\n }\n\n let event = body.event\n const beforeIncomingEventHooks = self.hookHandlers.before_incoming_event[event.type] ?? []\n for (const handler of beforeIncomingEventHooks) {\n const hookOutput = await handler({\n ...common,\n data: event,\n })\n event = hookOutput?.data ?? event\n if (hookOutput?.stop) {\n return SUCCESS_RESPONSE\n }\n }\n\n const eventPayload: Parameters<(typeof eventHandlers)[number]>[0] = { ...common, event }\n const eventHandlers = self.eventHandlers[event.type] ?? []\n for (const handler of eventHandlers) {\n await handler(eventPayload)\n }\n\n const afterIncomingEventHooks = self.hookHandlers.after_incoming_event[event.type] ?? []\n for (const handler of afterIncomingEventHooks) {\n const hookOutput = await handler({\n ...common,\n data: event,\n })\n event = hookOutput?.data ?? event\n if (hookOutput?.stop) {\n return SUCCESS_RESPONSE\n }\n }\n\n return SUCCESS_RESPONSE\n}\n\nconst onActionTriggered = async ({ ctx, logger, req, client, self }: types.ServerProps): Promise<Response> => {\n type AnyActionPayload = utils.ValueOf<types.ActionHandlerPayloads<common.BaseBot>>\n let { input, type } = parseBody<AnyActionPayload>(req)\n\n if (!type) {\n throw new InvalidPayloadError('Missing action type')\n }\n\n // TODO: this should probably run even if the action is called in memory\n const beforeIncomingCallActionHooks = self.hookHandlers.before_incoming_call_action[type] ?? []\n for (const handler of beforeIncomingCallActionHooks) {\n const hookOutput = await handler({\n ctx,\n logger,\n client,\n data: {\n type,\n input,\n },\n })\n input = hookOutput?.data?.input ?? input\n type = hookOutput?.data?.type ?? type\n }\n\n const action = self.actionHandlers[type]\n if (!action) {\n throw new InvalidPayloadError(`Action ${type} not found`)\n }\n\n let output = await action({ ctx, logger, input, client, type })\n\n const afterIncomingCallActionHooks = self.hookHandlers.after_incoming_call_action[type] ?? []\n for (const handler of afterIncomingCallActionHooks) {\n const hookOutput = await handler({\n ctx,\n logger,\n client,\n data: {\n type,\n output,\n },\n })\n type = hookOutput?.data?.type ?? type\n output = hookOutput?.data?.output ?? output\n }\n\n const response = { output }\n return {\n status: 200,\n body: JSON.stringify(response),\n }\n}\n", "import { BaseLogger } from '../base-logger'\n\ntype BotLogOptions = {\n userId?: string\n conversationId?: string\n workflowId?: string\n eventId?: string\n messageId?: string\n}\n\nexport class BotLogger extends BaseLogger<BotLogOptions> {\n public constructor(options?: BotLogOptions) {\n super({\n ...options,\n })\n }\n\n public override with(options: BotLogOptions) {\n return new BotLogger({ ...this.defaultOptions, ...options })\n }\n\n public withUserId(userId: string) {\n return this.with({\n userId,\n })\n }\n\n public withConversationId(conversationId: string) {\n return this.with({\n conversationId,\n })\n }\n\n public withWorkflowId(workflowId: string) {\n return this.with({\n workflowId,\n })\n }\n\n public withEventId(eventId: string) {\n return this.with({\n eventId,\n })\n }\n\n public withMessageId(messageId: string) {\n return this.with({\n messageId,\n })\n }\n}\n", "import * as client from '@holocronlab/botruntime-client'\nimport * as common from '../common'\nimport * as types from './types'\n\nexport * from './types'\n\n/**\n * Just like the regular botpress client, but typed with the bot's properties.\n */\nexport class BotSpecificClient<TBot extends common.BaseBot> implements types.ClientOperations<TBot> {\n public constructor(\n private _client: client.Client,\n private _hooks: types.ClientHooks = { before: {}, after: {} }\n ) {}\n\n /**\n * Access the underlying Botpress client.\n * This is useful for operations that are not available in the BotSpecificClient.\n * You probably shouldn't use this directly if you don't know what you're doing.\n */\n public get _inner(): client.Client {\n return this._client\n }\n\n public getConversation: types.GetConversation<TBot> = ((x) =>\n this._run('getConversation', x)) as types.GetConversation<TBot>\n public listConversations: types.ListConversations<TBot> = ((x) =>\n this._run('listConversations', x)) as types.ListConversations<TBot>\n public updateConversation: types.UpdateConversation<TBot> = ((x) =>\n this._run('updateConversation', x)) as types.UpdateConversation<TBot>\n public deleteConversation: types.DeleteConversation<TBot> = ((x) =>\n this._run('deleteConversation', x)) as types.DeleteConversation<TBot>\n public listParticipants: types.ListParticipants<TBot> = ((x) =>\n this._run('listParticipants', x)) as types.ListParticipants<TBot>\n public addParticipant: types.AddParticipant<TBot> = ((x) =>\n this._run('addParticipant', x)) as types.AddParticipant<TBot>\n public getParticipant: types.GetParticipant<TBot> = ((x) =>\n this._run('getParticipant', x)) as types.GetParticipant<TBot>\n public removeParticipant: types.RemoveParticipant<TBot> = ((x) =>\n this._run('removeParticipant', x)) as types.RemoveParticipant<TBot>\n public createEvent: types.CreateEvent<TBot> = ((x) => this._run('createEvent', x)) as types.CreateEvent<TBot>\n public getEvent: types.GetEvent<TBot> = ((x) => this._run('getEvent', x)) as types.GetEvent<TBot>\n public listEvents: types.ListEvents<TBot> = ((x) => this._run('listEvents', x)) as types.ListEvents<TBot>\n public createMessage: types.CreateMessage<TBot> = ((x) => this._run('createMessage', x)) as types.CreateMessage<TBot>\n public getMessage: types.GetMessage<TBot> = ((x) => this._run('getMessage', x)) as types.GetMessage<TBot>\n public updateMessage: types.UpdateMessage<TBot> = ((x) => this._run('updateMessage', x)) as types.UpdateMessage<TBot>\n public listMessages: types.ListMessages<TBot> = ((x) => this._run('listMessages', x)) as types.ListMessages<TBot>\n public deleteMessage: types.DeleteMessage<TBot> = ((x) => this._run('deleteMessage', x)) as types.DeleteMessage<TBot>\n public getUser: types.GetUser<TBot> = ((x) => this._run('getUser', x)) as types.GetUser<TBot>\n public listUsers: types.ListUsers<TBot> = ((x) => this._run('listUsers', x)) as types.ListUsers<TBot>\n public updateUser: types.UpdateUser<TBot> = ((x) => this._run('updateUser', x)) as types.UpdateUser<TBot>\n public deleteUser: types.DeleteUser<TBot> = ((x) => this._run('deleteUser', x)) as types.DeleteUser<TBot>\n public getState: types.GetState<TBot> = ((x) => this._run('getState', x)) as types.GetState<TBot>\n public setState: types.SetState<TBot> = ((x) => this._run('setState', x)) as types.SetState<TBot>\n public getOrSetState: types.GetOrSetState<TBot> = ((x) => this._run('getOrSetState', x)) as types.GetOrSetState<TBot>\n public patchState: types.PatchState<TBot> = ((x) => this._run('patchState', x)) as types.PatchState<TBot>\n public callAction: types.CallAction<TBot> = ((x) => this._run('callAction', x)) as types.CallAction<TBot>\n public uploadFile: types.UploadFile<TBot> = ((x) => this._run('uploadFile', x)) as types.UploadFile<TBot>\n public upsertFile: types.UpsertFile<TBot> = ((x) => this._run('upsertFile', x)) as types.UpsertFile<TBot>\n public deleteFile: types.DeleteFile<TBot> = ((x) => this._run('deleteFile', x)) as types.DeleteFile<TBot>\n public listFiles: types.ListFiles<TBot> = ((x) => this._run('listFiles', x)) as types.ListFiles<TBot>\n public getFile: types.GetFile<TBot> = ((x) => this._run('getFile', x)) as types.GetFile<TBot>\n public updateFileMetadata: types.UpdateFileMetadata<TBot> = ((x) =>\n this._run('updateFileMetadata', x)) as types.UpdateFileMetadata<TBot>\n public searchFiles: types.SearchFiles<TBot> = ((x) => this._run('searchFiles', x)) as types.SearchFiles<TBot>\n public trackAnalytics: types.TrackAnalytics<TBot> = ((x) =>\n this._run('trackAnalytics', x)) as types.TrackAnalytics<TBot>\n public getTableRow: types.GetTableRow<TBot> = ((x) => this._run('getTableRow', x)) as types.GetTableRow<TBot>\n public createTableRows: types.CreateTableRows<TBot> = ((x) =>\n this._run('createTableRows', x)) as types.CreateTableRows<TBot>\n public findTableRows: types.FindTableRows<TBot> = ((x) => this._run('findTableRows', x)) as types.FindTableRows<TBot>\n public deleteTableRows: types.DeleteTableRows<TBot> = ((x) =>\n this._run('deleteTableRows', x)) as types.DeleteTableRows<TBot>\n public updateTableRows: types.UpdateTableRows<TBot> = ((x) =>\n this._run('updateTableRows', x)) as types.UpdateTableRows<TBot>\n public upsertTableRows: types.UpsertTableRows<TBot> = ((x) =>\n this._run('upsertTableRows', x)) as types.UpsertTableRows<TBot>\n public createWorkflow: types.CreateWorkflow<TBot> = ((x) =>\n this._run('createWorkflow', x)) as types.CreateWorkflow<TBot>\n public getOrCreateWorkflow: types.GetOrCreateWorkflow<TBot> = ((x) =>\n this._run('getOrCreateWorkflow', x)) as types.GetOrCreateWorkflow<TBot>\n public getWorkflow: types.GetWorkflow<TBot> = ((x) => this._run('getWorkflow', x)) as types.GetWorkflow<TBot>\n public updateWorkflow: types.UpdateWorkflow<TBot> = ((x) =>\n this._run('updateWorkflow', x)) as types.UpdateWorkflow<TBot>\n public deleteWorkflow: types.DeleteWorkflow<TBot> = ((x) =>\n this._run('deleteWorkflow', x)) as types.DeleteWorkflow<TBot>\n public listWorkflows: types.ListWorkflows<TBot> = ((x) => this._run('listWorkflows', x)) as types.ListWorkflows<TBot>\n\n /**\n * @deprecated Use `callAction` to delegate the conversation creation to an integration.\n */\n public createConversation: types.CreateConversation<TBot> = (x) => this._client.createConversation(x)\n /**\n * @deprecated Use `callAction` to delegate the conversation creation to an integration.\n */\n public getOrCreateConversation: types.GetOrCreateConversation<TBot> = (x) => this._client.getOrCreateConversation(x)\n /**\n * @deprecated Use `callAction` to delegate the user creation to an integration.\n */\n public createUser: types.CreateUser<TBot> = (x) => this._client.createUser(x)\n /**\n * @deprecated Use `callAction` to delegate the user creation to an integration.\n */\n public getOrCreateUser: types.GetOrCreateUser<TBot> = (x) => this._client.getOrCreateUser(x)\n\n private _run = async <K extends client.Operation>(\n operation: K,\n req: client.ClientInputs[K]\n ): Promise<client.ClientOutputs[K]> => {\n const before = this._hooks.before[operation]\n if (before) {\n req = await before(req)\n }\n\n let res = (await this._client[operation](req as any)) as client.ClientOutputs[K]\n\n const after = this._hooks.after[operation]\n if (after) {\n res = await after(res, req)\n }\n\n return res\n }\n}\n", "import * as client from '@holocronlab/botruntime-client'\nimport * as utils from '../../utils/type-utils'\nimport * as common from '../common'\n\ntype Arg<F extends (...args: any[]) => any> = Parameters<F>[number]\ntype Res<F extends (...args: any[]) => any> = ReturnType<F>\n\ntype EventResponse<TBot extends common.BaseBot> = {\n event: {\n [K in keyof common.EnumerateEvents<TBot>]: utils.Merge<\n client.Event,\n { type: K; payload: common.EnumerateEvents<TBot>[K] }\n >\n }[keyof common.EnumerateEvents<TBot>]\n}\n\ntype MessageResponse<\n TBot extends common.BaseBot,\n TMessage extends keyof common.GetMessages<TBot> = keyof common.GetMessages<TBot>,\n> = {\n // TODO: use bot definiton message property to infer allowed tags\n message: utils.ValueOf<{\n [K in keyof common.GetMessages<TBot> as K extends TMessage ? K : never]: utils.Merge<\n client.Message,\n { type: K; payload: common.GetMessages<TBot>[K] }\n >\n }>\n}\n\ntype StateResponse<\n TBot extends common.BaseBot,\n TState extends keyof TBot['states'] = keyof TBot['states'],\n> = utils.Merge<\n Awaited<Res<client.Client['getState']>>,\n {\n state: utils.Merge<\n Awaited<Res<client.Client['getState']>>['state'],\n {\n type: utils.Cast<TBot['states'][TState]['type'], string>\n payload: TBot['states'][TState]['payload']\n }\n >\n }\n>\n\nexport type CreateConversation<_TBot extends common.BaseBot> = client.Client['createConversation']\nexport type GetConversation<_TBot extends common.BaseBot> = client.Client['getConversation']\nexport type ListConversations<_TBot extends common.BaseBot> = client.Client['listConversations']\nexport type GetOrCreateConversation<_TBot extends common.BaseBot> = client.Client['getOrCreateConversation']\nexport type UpdateConversation<_TBot extends common.BaseBot> = client.Client['updateConversation']\nexport type DeleteConversation<_TBot extends common.BaseBot> = client.Client['deleteConversation']\n\nexport type ListParticipants<_TBot extends common.BaseBot> = client.Client['listParticipants']\nexport type AddParticipant<_TBot extends common.BaseBot> = client.Client['addParticipant']\nexport type GetParticipant<_TBot extends common.BaseBot> = client.Client['getParticipant']\nexport type RemoveParticipant<_TBot extends common.BaseBot> = client.Client['removeParticipant']\n\nexport type CreateEvent<TBot extends common.BaseBot> = <TEvent extends keyof TBot['events']>(\n x: utils.Merge<\n Arg<client.Client['createEvent']>,\n {\n type: utils.Cast<TEvent, string>\n payload: TBot['events'][TEvent]\n }\n >\n) => Promise<EventResponse<TBot>>\n\nexport type GetEvent<TBot extends common.BaseBot> = (x: Arg<client.Client['getEvent']>) => Promise<EventResponse<TBot>>\nexport type ListEvents<_TBot extends common.BaseBot> = client.Client['listEvents'] // TODO: type properly\n\nexport type CreateMessage<TBot extends common.BaseBot> = <TMessage extends keyof common.GetMessages<TBot>>(\n x: utils.Merge<\n Arg<client.Client['createMessage']>,\n {\n type: utils.Cast<TMessage, string>\n payload: utils.Cast<common.GetMessages<TBot>[TMessage], Record<string, any>>\n // TODO: use bot definiton message property to infer allowed tags\n }\n >\n) => Promise<MessageResponse<TBot, TMessage>>\n\nexport type GetMessage<TBot extends common.BaseBot> = (\n x: Arg<client.Client['getMessage']>\n) => Promise<MessageResponse<TBot>>\nexport type UpdateMessage<TBot extends common.BaseBot> = (\n x: Arg<client.Client['updateMessage']>\n) => Promise<MessageResponse<TBot>>\nexport type ListMessages<_TBot extends common.BaseBot> = client.Client['listMessages'] // TODO: type properly\nexport type DeleteMessage<_TBot extends common.BaseBot> = client.Client['deleteMessage']\n\nexport type CreateUser<_TBot extends common.BaseBot> = client.Client['createUser']\nexport type GetUser<_TBot extends common.BaseBot> = client.Client['getUser']\nexport type ListUsers<_TBot extends common.BaseBot> = client.Client['listUsers']\nexport type GetOrCreateUser<_TBot extends common.BaseBot> = client.Client['getOrCreateUser']\nexport type UpdateUser<_TBot extends common.BaseBot> = client.Client['updateUser']\nexport type DeleteUser<_TBot extends common.BaseBot> = client.Client['deleteUser']\n\nexport type GetState<TBot extends common.BaseBot> = <TState extends keyof TBot['states']>(\n x: utils.Merge<\n Arg<client.Client['getState']>,\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TBot['states'][TState]['type'], string>\n }\n >\n) => Promise<StateResponse<TBot, TState>>\n\nexport type SetState<TBot extends common.BaseBot> = <TState extends keyof TBot['states']>(\n x: utils.Merge<\n Arg<client.Client['setState']>,\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TBot['states'][TState]['type'], string>\n payload: TBot['states'][TState]['payload'] | null\n }\n >\n) => Promise<StateResponse<TBot, TState>>\n\nexport type GetOrSetState<TBot extends common.BaseBot> = <TState extends keyof TBot['states']>(\n x: utils.Merge<\n Arg<client.Client['getOrSetState']>,\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TBot['states'][TState]['type'], string>\n payload: TBot['states'][TState]['payload']\n }\n >\n) => Promise<StateResponse<TBot, TState>>\n\nexport type PatchState<TBot extends common.BaseBot> = <TState extends keyof TBot['states']>(\n x: utils.Merge<\n Arg<client.Client['patchState']>,\n {\n name: utils.Cast<TState, string>\n type: utils.Cast<TBot['states'][TState]['type'], string>\n payload: Partial<TBot['states'][TState]['payload']>\n }\n >\n) => Promise<StateResponse<TBot, TState>>\n\nexport type CallAction<TBot extends common.BaseBot> = <ActionType extends keyof common.EnumerateActions<TBot>>(\n x: utils.Merge<\n Arg<client.Client['callAction']>,\n {\n type: utils.Cast<ActionType, string>\n input: utils.Cast<common.EnumerateActions<TBot>[ActionType], common.IntegrationInstanceActionDefinition>['input']\n }\n >\n) => Promise<\n utils.Merge<\n Awaited<Res<client.Client['callAction']>>,\n {\n output: utils.Cast<\n common.EnumerateActions<TBot>[ActionType],\n common.IntegrationInstanceActionDefinition\n >['output']\n }\n >\n>\n\nexport type UploadFile<_TBot extends common.BaseBot> = client.Client['uploadFile']\nexport type UpsertFile<_TBot extends common.BaseBot> = client.Client['upsertFile']\nexport type DeleteFile<_TBot extends common.BaseBot> = client.Client['deleteFile']\nexport type ListFiles<_TBot extends common.BaseBot> = client.Client['listFiles']\nexport type GetFile<_TBot extends common.BaseBot> = client.Client['getFile']\nexport type UpdateFileMetadata<_TBot extends common.BaseBot> = client.Client['updateFileMetadata']\nexport type SearchFiles<_TBot extends common.BaseBot> = client.Client['searchFiles']\n\nexport type CreateWorkflow<TBot extends common.BaseBot> = <TWorkflowName extends utils.StringKeys<TBot['workflows']>>(\n x: utils.Merge<\n Arg<client.Client['createWorkflow']>,\n {\n name: utils.Cast<TWorkflowName, string>\n input: utils.Cast<TBot['workflows'][TWorkflowName], common.IntegrationInstanceActionDefinition>['input']\n tags?: utils.AtLeastOneProperty<TBot['workflows'][TWorkflowName]['tags']>\n }\n >\n) => Promise<\n Readonly<{\n workflow: utils.Merge<\n Awaited<Res<client.Client['createWorkflow']>>['workflow'],\n {\n name: NoInfer<TWorkflowName>\n }\n >\n }>\n>\n\nexport type GetOrCreateWorkflow<TBot extends common.BaseBot> = <\n TWorkflowName extends utils.StringKeys<TBot['workflows']>,\n>(\n x: utils.Merge<\n Arg<client.Client['getOrCreateWorkflow']>,\n {\n name: utils.Cast<TWorkflowName, string>\n input: utils.Cast<TBot['workflows'][TWorkflowName], common.IntegrationInstanceActionDefinition>['input']\n tags?: utils.AtLeastOneProperty<TBot['workflows'][TWorkflowName]['tags']>\n }\n >\n) => Promise<\n Readonly<{\n workflow: utils.Merge<\n Awaited<Res<client.Client['getOrCreateWorkflow']>>['workflow'],\n {\n name: NoInfer<TWorkflowName>\n }\n >\n }>\n>\n\n// FIXME: there's no way to infer types for getWorkflow, since all we have is its id\nexport type GetWorkflow<_TBot extends common.BaseBot> = client.Client['getWorkflow']\n\n// FIXME: there's no way to infer types for updateWorkflow, since all we have is its id\nexport type UpdateWorkflow<_TBot extends common.BaseBot> = client.Client['updateWorkflow']\n\n// FIXME: there's no way to infer types for deleteWorkflow, since all we have is its id\nexport type DeleteWorkflow<_TBot extends common.BaseBot> = client.Client['deleteWorkflow']\n\nexport type ListWorkflows<TBot extends common.BaseBot> = <TWorkflowName extends utils.StringKeys<TBot['workflows']>>(\n x: utils.Merge<\n Arg<client.Client['listWorkflows']>,\n {\n name?: utils.Cast<TWorkflowName, string>\n tags?: utils.AtLeastOneProperty<TBot['workflows'][TWorkflowName]['tags']>\n }\n >\n) => Promise<Readonly<Awaited<Res<client.Client['listWorkflows']>>>>\n\nexport type GetTableRow<TBot extends common.BaseBot> = <\n TableName extends keyof common.EnumerateTables<TBot>,\n Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>>,\n>(\n x: utils.Merge<\n Arg<client.Client['getTableRow']>,\n {\n table: utils.Cast<TableName, string>\n id: client.Row['id']\n }\n >\n) => Promise<\n Readonly<\n utils.Merge<\n Awaited<Res<client.Client['getTableRow']>>,\n {\n row: Awaited<Res<client.Client['getTableRow']>>['row'] & Columns\n }\n >\n >\n>\nexport type CreateTableRows<TBot extends common.BaseBot> = <\n TableName extends keyof common.EnumerateTables<TBot>,\n Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>>,\n>(\n x: utils.Merge<\n Arg<client.Client['createTableRows']>,\n {\n table: utils.Cast<TableName, string>\n rows: utils.AtLeastOne<utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>>>\n }\n >\n) => Promise<\n Readonly<\n utils.Merge<\n Awaited<Res<client.Client['createTableRows']>>,\n {\n rows: Awaited<Res<client.Client['createTableRows']>>['rows'] & Columns[]\n }\n >\n >\n>\n\n// FIXME: The table row filters are defined in the upstream tables-api package, but\n// they're not exported, so we have to redefine them here. Ideally, we\n// should have a single source of truth for these types.\n\ntype TableRowQueryGroup = 'key' | 'avg' | 'max' | 'min' | 'sum' | 'count'\n\ntype TableRowExtraColumns = {\n /**\n * Unique identifier for the row.\n */\n id: number\n /**\n * Timestamp of row creation.\n */\n createdAt: string\n /**\n * Timestamp of the last row update.\n */\n updatedAt: string\n}\n\ntype TableRowFilter<\n TBot extends common.BaseBot,\n TableName extends keyof common.EnumerateTables<TBot>,\n Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>> & TableRowExtraColumns,\n> = TableRowColumnFilters<Columns> | TableRowLogicalFilter<TBot, TableName, Columns>\n\ntype TableRowColumnFilters<Columns> = utils.AtLeastOneProperty<{\n [K in Extract<keyof Columns, string>]: TableColumnComparisonFilter<Columns[K]>\n}>\n\ntype TableRowLogicalFilter<\n TBot extends common.BaseBot,\n TableName extends keyof common.EnumerateTables<TBot>,\n Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>> & TableRowExtraColumns,\n> = utils.ExactlyOneProperty<{\n $and: utils.AtLeastOne<TableRowFilter<TBot, TableName, Columns>>\n $or: utils.AtLeastOne<TableRowFilter<TBot, TableName, Columns>>\n $not: TableRowColumnFilters<Columns>\n}>\n\ntype TableColumnComparisonFilter<ColumnType> =\n | ColumnType\n | utils.ExactlyOneProperty<{\n $eq: ColumnType\n $gt: ColumnType\n $gte: ColumnType\n $lt: ColumnType\n $lte: ColumnType\n $ne: ColumnType\n $mod: [number, number]\n $in: utils.AtLeastOne<ColumnType>\n $nin: utils.AtLeastOne<ColumnType>\n $exists: boolean\n $size: number\n }>\n\nexport type FindTableRows<TBot extends common.BaseBot> = <\n TableName extends keyof common.EnumerateTables<TBot>,\n Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>> & TableRowExtraColumns,\n>(\n x: utils.Merge<\n Arg<client.Client['findTableRows']>,\n {\n table: utils.Cast<TableName, string>\n filter?: TableRowFilter<TBot, NoInfer<TableName>, NoInfer<Columns>>\n group?: NoInfer<\n utils.AtLeastOneProperty<{\n [K in Extract<keyof Columns, string>]: TableRowQueryGroup | TableRowQueryGroup[]\n }>\n >\n orderBy?: NoInfer<Extract<keyof Columns, string>>\n }\n >\n) => Promise<\n Readonly<\n utils.Merge<\n Awaited<Res<client.Client['findTableRows']>>,\n {\n rows: Awaited<Res<client.Client['findTableRows']>>['rows'] & Columns[]\n }\n >\n >\n>\n\nexport type DeleteTableRows<TBot extends common.BaseBot> = <TableName extends keyof common.EnumerateTables<TBot>>(\n x: utils.Merge<\n Arg<client.Client['deleteTableRows']>,\n {\n table: utils.Cast<TableName, string>\n filter?: TableRowFilter<TBot, TableName>\n }\n >\n) => Promise<Readonly<Awaited<Res<client.Client['deleteTableRows']>>>>\n\nexport type UpdateTableRows<TBot extends common.BaseBot> = <\n TableName extends keyof common.EnumerateTables<TBot>,\n Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>>,\n>(\n x: utils.Merge<\n Arg<client.Client['updateTableRows']>,\n {\n table: utils.Cast<TableName, string>\n rows: utils.AtLeastOne<utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>> & { id: number }>\n }\n >\n) => Promise<\n Readonly<\n utils.Merge<\n Awaited<Res<client.Client['updateTableRows']>>,\n {\n rows: Awaited<Res<client.Client['updateTableRows']>>['rows'] & Columns[]\n }\n >\n >\n>\n\nexport type UpsertTableRows<TBot extends common.BaseBot> = <\n TableName extends keyof common.EnumerateTables<TBot>,\n Columns = utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>>,\n>(\n x: utils.Merge<\n Arg<client.Client['upsertTableRows']>,\n {\n table: utils.Cast<TableName, string>\n rows: utils.AtLeastOne<utils.Cast<common.EnumerateTables<TBot>[TableName], Record<string, any>> & { id?: number }>\n keyColumn?: NoInfer<Extract<keyof common.EnumerateTables<TBot>[TableName], string>> | 'id'\n }\n >\n) => Promise<\n Readonly<\n utils.Merge<\n Awaited<Res<client.Client['upsertTableRows']>>,\n {\n inserted: Awaited<Res<client.Client['upsertTableRows']>>['inserted'] & Columns[]\n updated: Awaited<Res<client.Client['upsertTableRows']>>['updated'] & Columns[]\n }\n >\n >\n>\n\nexport type TrackAnalytics<_TBot extends common.BaseBot> = client.Client['trackAnalytics']\n\nexport type ClientOperations<TBot extends common.BaseBot> = {\n getConversation: GetConversation<TBot>\n listConversations: ListConversations<TBot>\n updateConversation: UpdateConversation<TBot>\n deleteConversation: DeleteConversation<TBot>\n listParticipants: ListParticipants<TBot>\n addParticipant: AddParticipant<TBot>\n getParticipant: GetParticipant<TBot>\n removeParticipant: RemoveParticipant<TBot>\n getEvent: GetEvent<TBot>\n createEvent: CreateEvent<TBot>\n listEvents: ListEvents<TBot>\n createMessage: CreateMessage<TBot>\n getMessage: GetMessage<TBot>\n updateMessage: UpdateMessage<TBot>\n listMessages: ListMessages<TBot>\n deleteMessage: DeleteMessage<TBot>\n getUser: GetUser<TBot>\n listUsers: ListUsers<TBot>\n updateUser: UpdateUser<TBot>\n deleteUser: DeleteUser<TBot>\n getState: GetState<TBot>\n setState: SetState<TBot>\n getOrSetState: GetOrSetState<TBot>\n patchState: PatchState<TBot>\n callAction: CallAction<TBot>\n uploadFile: UploadFile<TBot>\n upsertFile: UpsertFile<TBot>\n deleteFile: DeleteFile<TBot>\n listFiles: ListFiles<TBot>\n getFile: GetFile<TBot>\n updateFileMetadata: UpdateFileMetadata<TBot>\n searchFiles: SearchFiles<TBot>\n trackAnalytics: TrackAnalytics<TBot>\n getTableRow: GetTableRow<TBot>\n createTableRows: CreateTableRows<TBot>\n findTableRows: FindTableRows<TBot>\n deleteTableRows: DeleteTableRows<TBot>\n updateTableRows: UpdateTableRows<TBot>\n upsertTableRows: UpsertTableRows<TBot>\n}\n\nexport type ClientInputs<TBot extends common.BaseBot> = {\n [K in keyof ClientOperations<TBot>]: Arg<ClientOperations<TBot>[K]>\n}\n\nexport type ClientOutputs<TBot extends common.BaseBot> = {\n [K in keyof ClientOperations<TBot>]: Awaited<Res<ClientOperations<TBot>[K]>>\n}\n\ntype ClientHooksBefore = {\n [K in client.Operation]?: (x: client.ClientInputs[K]) => Promise<client.ClientInputs[K]>\n}\n\ntype ClientHooksAfter = {\n [K in client.Operation]?: (y: client.ClientOutputs[K], x: client.ClientInputs[K]) => Promise<client.ClientOutputs[K]>\n}\n\nexport type ClientHooks = {\n before: ClientHooksBefore\n after: ClientHooksAfter\n}\n", "import { z } from '@holocronlab/botruntime-zui'\nimport {\n BOT_ID_HEADER,\n CONFIGURATION_PAYLOAD_HEADER,\n OPERATION_TYPE_HEADER,\n OPERATION_SUBTYPE_HEADER,\n} from '../../consts'\nimport { throwError } from '../../utils/error-utils'\nimport { BotContext } from './types'\n\nconst botOperationSchema = z.enum(['event_received', 'register', 'unregister', 'ping', 'action_triggered'])\n\nexport const extractContext = (headers: Record<string, string | undefined>): BotContext => ({\n botId: headers[BOT_ID_HEADER] || throwError('Missing bot id header'),\n operation: botOperationSchema.parse(headers[OPERATION_TYPE_HEADER]),\n type: headers[OPERATION_SUBTYPE_HEADER] || throwError('Missing type header'),\n configuration: JSON.parse(\n Buffer.from(headers[CONFIGURATION_PAYLOAD_HEADER] || throwError('Missing configuration header'), 'base64').toString(\n 'utf-8'\n )\n ),\n})\n", "export const SUCCESS_RESPONSE = { status: 200 } as const\n", "import { Response } from '../../../serve'\nimport { SUCCESS_RESPONSE } from '../responses'\nimport * as types from '../types'\nimport { bridgeUpdateTypeToSnakeCase } from './update-type-conv'\n\nconst WORKFLOW_UPDATE_TYPES = [\n 'child_workflow_deleted',\n 'child_workflow_finished',\n 'workflow_timedout',\n 'workflow_started',\n 'workflow_continued',\n] as const\n\nexport const handleWorkflowUpdateEvent = async (\n rawProps: types.ServerProps,\n event: types.WorkflowUpdateEvent\n): Promise<Response> => {\n if (rawProps.ctx.type !== 'workflow_update' || !WORKFLOW_UPDATE_TYPES.includes(event.payload.type)) {\n throw new Error('Unexpected event type')\n }\n\n const props = { ...rawProps, logger: _attachWorkflowContextToLogger(rawProps, event) }\n\n if (!event.payload.workflow.name) {\n props.logger.warn(\n 'Received workflow update event without a workflow name. Assuming this workflow was not defined by the bot.',\n event.payload.workflow\n )\n return SUCCESS_RESPONSE\n }\n\n switch (event.payload.type) {\n case 'child_workflow_deleted':\n case 'child_workflow_finished':\n props.logger.info(\n `Received child workflow event \"${event.payload.type}\", but child workflows are not yet supported`\n )\n break\n case 'workflow_timedout':\n case 'workflow_started':\n case 'workflow_continued':\n return await _handleWorkflowUpdate(props, event)\n default:\n event.payload.type satisfies never\n }\n\n return SUCCESS_RESPONSE\n}\n\nconst _attachWorkflowContextToLogger = (\n props: types.ServerProps,\n event: types.WorkflowUpdateEvent\n): types.ServerProps['logger'] =>\n props.logger.with({\n eventId: event.id,\n workflowId: event.payload.workflow.id,\n conversationId: event.payload.conversation?.id,\n userId: event.payload.user?.id,\n })\n\nconst _handleWorkflowUpdate = async (props: types.ServerProps, event: types.WorkflowUpdateEvent): Promise<Response> => {\n const updateType = bridgeUpdateTypeToSnakeCase(event.payload.type)\n const handlers = props.self.workflowHandlers[updateType]?.[event.payload.workflow.name]\n\n if (!handlers || handlers.length === 0) {\n props.logger.warn(`No ${updateType} handler found for workflow \"${event.payload.workflow.name}\"`)\n return SUCCESS_RESPONSE\n }\n\n const { updatedWorkflow } = await _dispatchToHandlers(props, event)\n\n if (updatedWorkflow.status === 'pending') {\n props.logger.warn(\n `Workflow \"${event.payload.workflow.name}\" is still in pending status after processing \"${updateType}\" event. ` +\n 'This may indicate that the workflow was not properly acknowledged or terminated by the handler. '\n )\n }\n\n return SUCCESS_RESPONSE\n}\n\ntype WorkflowState = types.WorkflowUpdateEventPayload['workflow']\n\nconst _dispatchToHandlers = async (\n props: types.ServerProps,\n event: types.WorkflowUpdateEvent\n): Promise<{ updatedWorkflow: WorkflowState }> => {\n const updateType = bridgeUpdateTypeToSnakeCase(event.payload.type)\n const handlers = props.self.workflowHandlers[updateType]?.[event.payload.workflow.name]\n\n let currentWorkflowState: WorkflowState = structuredClone(event.payload.workflow)\n\n for (const handler of handlers ?? []) {\n currentWorkflowState = await handler({\n ...props,\n event,\n conversation: event.payload.conversation,\n user: event.payload.user,\n workflow: currentWorkflowState,\n })\n }\n\n return { updatedWorkflow: currentWorkflowState }\n}\n", "import * as types from '../types'\n\nexport const bridgeUpdateTypeToSnakeCase = (updateType: types.BridgeWorkflowUpdateType): types.WorkflowUpdateType => {\n switch (updateType) {\n case 'workflow_continued':\n return 'continued'\n case 'workflow_started':\n return 'started'\n case 'workflow_timedout':\n return 'timed_out'\n default:\n throw new Error(`Unsupported workflow update type: ${updateType}`)\n }\n}\n", "import * as client from '@holocronlab/botruntime-client'\nimport * as plugin from '../../plugin'\nimport type { Request } from '../../serve'\nimport * as utils from '../../utils/type-utils'\nimport { type BotLogger } from '../bot-logger'\nimport { BotSpecificClient } from '../client'\nimport * as common from '../common'\nimport type * as workflowProxy from '../workflow-proxy/types'\n\nexport type BotOperation = 'event_received' | 'register' | 'unregister' | 'ping' | 'action_triggered'\nexport type BotContext = {\n botId: string\n type: string\n operation: BotOperation\n configuration: {\n payload: string\n }\n}\n\ntype _IncomingEvents<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<common.EnumerateEvents<TBot>>]: utils.Merge<\n client.Event,\n { type: K; payload: common.EnumerateEvents<TBot>[K] }\n >\n}\n\ntype _IncomingMessages<TBot extends common.BaseBot> = {\n // TODO: use bot definiton message property to infer allowed tags\n [K in utils.StringKeys<common.GetMessages<TBot>>]: utils.Merge<\n //\n client.Message,\n { type: K; payload: common.GetMessages<TBot>[K] }\n >\n}\n\ntype _IncomingStates<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<common.EnumerateStates<TBot>>]: utils.Merge<\n client.State,\n {\n name: K\n type: common.EnumerateStates<TBot>[K]['type']\n payload: common.EnumerateStates<TBot>[K]['payload']\n }\n >\n}\n\ntype _OutgoingMessageRequests<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<common.GetMessages<TBot>>]: utils.Merge<\n client.ClientInputs['createMessage'],\n { type: K; payload: common.GetMessages<TBot>[K] }\n >\n}\n\ntype _OutgoingMessageResponses<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<common.GetMessages<TBot>>]: utils.Merge<\n client.ClientOutputs['createMessage'],\n {\n message: utils.Merge<client.Message, { type: K; payload: common.GetMessages<TBot>[K] }>\n }\n >\n}\n\ntype _OutgoingCallActionRequests<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<common.EnumerateActionInputs<TBot>>]: utils.Merge<\n client.ClientInputs['callAction'],\n { type: K; input: common.EnumerateActionInputs<TBot>[K] }\n >\n}\n\ntype _OutgoingCallActionResponses<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<common.EnumerateActionOutputs<TBot>>]: utils.Merge<\n client.ClientOutputs['callAction'],\n { type: K; output: common.EnumerateActionOutputs<TBot>[K] }\n >\n}\n\ntype _IncomingCallActionRequest<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<TBot['actions']>]: { type: K; input: TBot['actions'][K]['input'] }\n}\n\ntype _IncomingCallActionResponses<TBot extends common.BaseBot> = {\n [K in utils.StringKeys<TBot['actions']>]: { type: K; output: TBot['actions'][K]['output'] }\n}\n\nexport type AnyIncomingEvent<TBot extends common.BaseBot> = utils.ValueOf<_IncomingEvents<TBot>>\nexport type AnyIncomingMessage<TBot extends common.BaseBot> = utils.ValueOf<_IncomingMessages<TBot>>\nexport type AnyOutgoingMessageRequest<TBot extends common.BaseBot> = utils.ValueOf<_OutgoingMessageRequests<TBot>>\nexport type AnyOutgoingMessageResponse<TBot extends common.BaseBot> = utils.ValueOf<_OutgoingMessageResponses<TBot>>\nexport type AnyOutgoingCallActionRequest<TBot extends common.BaseBot> = utils.ValueOf<_OutgoingCallActionRequests<TBot>>\nexport type AnyOutgoingCallActionResponse<TBot extends common.BaseBot> = utils.ValueOf<\n _OutgoingCallActionResponses<TBot>\n>\nexport type AnyIncomingCallActionRequest<TBot extends common.BaseBot> = utils.ValueOf<_IncomingCallActionRequest<TBot>>\nexport type AnyIncomingCallActionResponse<TBot extends common.BaseBot> = utils.ValueOf<\n _IncomingCallActionResponses<TBot>\n>\n\nexport type IncomingEvents<TBot extends common.BaseBot> = _IncomingEvents<TBot> & {\n '*': AnyIncomingEvent<TBot>\n}\nexport type IncomingMessages<TBot extends common.BaseBot> = _IncomingMessages<TBot> & {\n '*': AnyIncomingMessage<TBot>\n}\nexport type IncomingStates<_TBot extends common.BaseBot> = _IncomingStates<_TBot> & {\n '*': client.State\n}\nexport type OutgoingMessageRequests<TBot extends common.BaseBot> = _OutgoingMessageRequests<TBot> & {\n '*': AnyOutgoingMessageRequest<TBot>\n}\nexport type OutgoingMessageResponses<TBot extends common.BaseBot> = _OutgoingMessageResponses<TBot> & {\n '*': AnyOutgoingMessageResponse<TBot>\n}\nexport type OutgoingCallActionRequests<TBot extends common.BaseBot> = _OutgoingCallActionRequests<TBot> & {\n '*': AnyOutgoingCallActionRequest<TBot>\n}\nexport type OutgoingCallActionResponses<TBot extends common.BaseBot> = _OutgoingCallActionResponses<TBot> & {\n '*': AnyOutgoingCallActionResponse<TBot>\n}\nexport type IncomingCallActionRequest<TBot extends common.BaseBot> = _IncomingCallActionRequest<TBot> & {\n '*': AnyIncomingCallActionRequest<TBot>\n}\nexport type IncomingCallActionResponses<TBot extends common.BaseBot> = _IncomingCallActionResponses<TBot> & {\n '*': AnyIncomingCallActionResponse<TBot>\n}\n\nexport type BotClient<TBot extends common.BaseBot> = BotSpecificClient<TBot>\n\nexport type CommonHandlerProps<TBot extends common.BaseBot> = {\n ctx: BotContext\n logger: BotLogger\n client: BotClient<TBot>\n}\n\nexport type InjectedHandlerProps<TBot extends common.BaseBot> = {\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflows: workflowProxy.WorkflowProxy<TBot>\n}\n\nexport type ExtendedHandlerProps<TBot extends common.BaseBot> = CommonHandlerProps<TBot> & InjectedHandlerProps<TBot>\n\nexport type MessagePayloads<TBot extends common.BaseBot> = {\n [TMessageName in utils.StringKeys<IncomingMessages<TBot>>]: ExtendedHandlerProps<TBot> & {\n message: IncomingMessages<TBot>[TMessageName]\n user: client.User\n conversation: client.Conversation\n event: client.Event\n }\n}\n\nexport type MessageHandlers<TBot extends common.BaseBot> = {\n [TMessageName in utils.StringKeys<IncomingMessages<TBot>>]: (\n args: MessagePayloads<TBot>[TMessageName]\n ) => Promise<void>\n}\n\nexport type EventPayloads<TBot extends common.BaseBot> = {\n [TEventName in utils.StringKeys<IncomingEvents<TBot>>]: ExtendedHandlerProps<TBot> & {\n event: IncomingEvents<TBot>[TEventName]\n }\n}\n\nexport type EventHandlers<TBot extends common.BaseBot> = {\n [TEventName in utils.StringKeys<IncomingEvents<TBot>>]: (args: EventPayloads<TBot>[TEventName]) => Promise<void>\n}\n\nexport type StateExpiredPayloads<TBot extends common.BaseBot> = {\n [TSateName in utils.StringKeys<IncomingStates<TBot>>]: ExtendedHandlerProps<TBot> & {\n state: IncomingStates<TBot>[TSateName]\n }\n}\n\nexport type StateExpiredHandlers<TBot extends common.BaseBot> = {\n [TSateName in utils.StringKeys<IncomingStates<TBot>>]: (args: StateExpiredPayloads<TBot>[TSateName]) => Promise<void>\n}\n\nexport type ActionHandlerPayloads<TBot extends common.BaseBot> = {\n [TActionName in utils.StringKeys<TBot['actions']>]: ExtendedHandlerProps<TBot> & {\n type?: TActionName\n input: TBot['actions'][TActionName]['input']\n }\n}\n\nexport type ActionHandlers<TBot extends common.BaseBot> = {\n [TActionName in utils.StringKeys<TBot['actions']>]: (\n props: ActionHandlerPayloads<TBot>[TActionName]\n ) => Promise<TBot['actions'][TActionName]['output']>\n}\n\nexport type ActionHandlersMap<TBot extends common.BaseBot> = {\n [TActionName in utils.StringKeys<TBot['actions']>]?: (\n props: Omit<Parameters<ActionHandlers<TBot>[TActionName]>[0], keyof InjectedHandlerProps<TBot>>\n ) => Promise<Awaited<ReturnType<ActionHandlers<TBot>[TActionName]>>>\n}\n\nexport type BridgeWorkflowUpdateType =\n | 'child_workflow_deleted'\n | 'child_workflow_finished'\n | 'workflow_timedout'\n | 'workflow_started'\n | 'workflow_continued'\nexport type WorkflowUpdateEventPayload = {\n type: BridgeWorkflowUpdateType\n childWorkflow?: client.Workflow\n workflow: client.Workflow\n conversation?: client.Conversation\n user?: client.User\n}\nexport type WorkflowUpdateEvent = utils.Merge<\n client.Event,\n {\n type: 'workflow_update'\n payload: WorkflowUpdateEventPayload\n }\n>\n\nexport type WorkflowPayloads<TBot extends common.BaseBot> = {\n [TWorkflowName in utils.StringKeys<TBot['workflows']>]: ExtendedHandlerProps<TBot> & {\n conversation?: client.Conversation\n user?: client.User\n event: WorkflowUpdateEvent\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflow: workflowProxy.ActionableWorkflow<TBot, TWorkflowName>\n }\n}\n\nexport type WorkflowHandlers<TBot extends common.BaseBot> = {\n [TWorkflowName in utils.StringKeys<TBot['workflows']>]: (\n props: WorkflowPayloads<TBot>[TWorkflowName]\n ) => Promise<void>\n}\n\ntype BaseHookDefinition = {\n stoppable?: boolean\n data: any\n /**\n * Per-hook-type extra props injected into the hook handler input. Only set\n * for hooks where the bot runtime already has the relevant context (e.g.\n * incoming message hooks).\n */\n extraInputs?: object\n}\ntype HookDefinition<THookDef extends BaseHookDefinition = BaseHookDefinition> = THookDef\n\n/**\n * TODO: add hooks for:\n * - before_register\n * - after_register\n * - before_state_expired\n * - after_state_expired\n */\nexport type HookDefinitions<TBot extends common.BaseBot> = {\n before_incoming_event: HookDefinition<{\n stoppable: true\n data: _IncomingEvents<TBot> & { '*': AnyIncomingEvent<TBot> }\n }>\n before_incoming_message: HookDefinition<{\n stoppable: true\n data: _IncomingMessages<TBot> & { '*': AnyIncomingMessage<TBot> }\n extraInputs: {\n user?: client.User\n conversation?: client.Conversation\n }\n }>\n before_outgoing_message: HookDefinition<{\n stoppable: false\n data: _OutgoingMessageRequests<TBot> & { '*': AnyOutgoingMessageRequest<TBot> }\n }>\n before_outgoing_call_action: HookDefinition<{\n stoppable: false\n data: _OutgoingCallActionRequests<TBot> & { '*': AnyOutgoingCallActionRequest<TBot> }\n }>\n before_incoming_call_action: HookDefinition<{\n stoppable: false\n data: _IncomingCallActionRequest<TBot> & { '*': AnyIncomingCallActionRequest<TBot> }\n }>\n after_incoming_event: HookDefinition<{\n stoppable: true\n data: _IncomingEvents<TBot> & { '*': AnyIncomingEvent<TBot> }\n }>\n after_incoming_message: HookDefinition<{\n stoppable: true\n data: _IncomingMessages<TBot> & { '*': AnyIncomingMessage<TBot> }\n extraInputs: {\n user?: client.User\n conversation?: client.Conversation\n }\n }>\n after_outgoing_message: HookDefinition<{\n stoppable: false\n data: _OutgoingMessageResponses<TBot> & { '*': AnyOutgoingMessageResponse<TBot> }\n }>\n after_outgoing_call_action: HookDefinition<{\n stoppable: false\n data: _OutgoingCallActionResponses<TBot> & { '*': AnyOutgoingCallActionResponse<TBot> }\n }>\n after_incoming_call_action: HookDefinition<{\n stoppable: false\n data: _IncomingCallActionResponses<TBot> & { '*': AnyIncomingCallActionResponse<TBot> }\n }>\n}\n\nexport type HookData<TBot extends common.BaseBot> = {\n [THookType in utils.StringKeys<HookDefinitions<TBot>>]: {\n [THookDataName in utils.StringKeys<\n HookDefinitions<TBot>[THookType]['data']\n >]: HookDefinitions<TBot>[THookType]['data'][THookDataName]\n }\n}\n\ntype _HookExtraInputs<TBot extends common.BaseBot> = {\n [THookType in utils.StringKeys<HookDefinitions<TBot>>]: HookDefinitions<TBot>[THookType] extends {\n extraInputs: infer T\n }\n ? T\n : {}\n}\n\nexport type HookInputs<TBot extends common.BaseBot> = {\n [THookType in utils.StringKeys<HookData<TBot>>]: {\n [THookDataName in utils.StringKeys<HookData<TBot>[THookType]>]: ExtendedHandlerProps<TBot> &\n _HookExtraInputs<TBot>[THookType] & {\n data: HookData<TBot>[THookType][THookDataName]\n }\n }\n}\n\nexport type HookOutputs<TBot extends common.BaseBot> = {\n [THookType in utils.StringKeys<HookData<TBot>>]: {\n [THookDataName in utils.StringKeys<HookData<TBot>[THookType]>]: {\n data?: HookData<TBot>[THookType][THookDataName]\n } & (HookDefinitions<TBot>[THookType]['stoppable'] extends true ? { stop?: boolean } : {})\n }\n}\n\nexport type HookHandlers<TBot extends common.BaseBot> = {\n [THookType in utils.StringKeys<HookData<TBot>>]: {\n [THookDataName in utils.StringKeys<HookData<TBot>[THookType]>]: (\n input: HookInputs<TBot>[THookType][THookDataName]\n ) => Promise<HookOutputs<TBot>[THookType][THookDataName] | undefined>\n }\n}\n\nexport type MessageHandlersMap<TBot extends common.BaseBot> = {\n [TMessageName in utils.StringKeys<IncomingMessages<TBot>>]?: ((\n props: Omit<Parameters<MessageHandlers<TBot>[TMessageName]>[0], keyof InjectedHandlerProps<TBot>>\n ) => Promise<void>)[]\n}\n\nexport type EventHandlersMap<TBot extends common.BaseBot> = {\n [TEventName in utils.StringKeys<IncomingEvents<TBot>>]?: ((\n props: Omit<Parameters<EventHandlers<TBot>[TEventName]>[0], keyof InjectedHandlerProps<TBot>>\n ) => Promise<void>)[]\n}\n\nexport type StateExpiredHandlersMap<TBot extends common.BaseBot> = {\n [TStateName in utils.StringKeys<IncomingStates<TBot>>]?: ((\n props: Omit<Parameters<StateExpiredHandlers<TBot>[TStateName]>[0], keyof InjectedHandlerProps<TBot>>\n ) => Promise<void>)[]\n}\n\nexport type HookHandlersMap<TBot extends common.BaseBot> = {\n [THookType in utils.StringKeys<HookData<TBot>>]: {\n [THookDataName in utils.StringKeys<HookData<TBot>[THookType]>]?: ((\n props: Omit<Parameters<HookHandlers<TBot>[THookType][THookDataName]>[0], keyof InjectedHandlerProps<TBot>>\n ) => Promise<Awaited<ReturnType<HookHandlers<TBot>[THookType][THookDataName]>>>)[]\n }\n}\n\nexport type WorkflowUpdateType = 'started' | 'continued' | 'timed_out'\nexport type WorkflowHandlersMap<TBot extends common.BaseBot> = {\n [TWorkflowUpdateType in WorkflowUpdateType]: {\n [TWorkflowName in utils.StringKeys<TBot['workflows']>]?: ((\n props: Omit<\n Parameters<WorkflowHandlers<TBot>[TWorkflowName]>[0],\n keyof InjectedHandlerProps<TBot> | 'workflow'\n > & {\n workflow: client.Workflow\n }\n ) => Promise<client.Workflow>)[]\n }\n}\n\nexport type OrderedMessageHandlersMap<TBot extends common.BaseBot> = {\n [TMessageName in utils.StringKeys<IncomingMessages<TBot>>]?: {\n handler: MessageHandlers<TBot>[TMessageName]\n order: number\n }[]\n}\n\nexport type OrderedEventHandlersMap<TBot extends common.BaseBot> = {\n [TEventName in utils.StringKeys<IncomingEvents<TBot>>]?: { handler: EventHandlers<TBot>[TEventName]; order: number }[]\n}\n\nexport type OrderedStateExpiredHandlersMap<TBot extends common.BaseBot> = {\n [TStateName in utils.StringKeys<IncomingStates<TBot>>]?: {\n handler: StateExpiredHandlers<TBot>[TStateName]\n order: number\n }[]\n}\n\nexport type OrderedHookHandlersMap<TBot extends common.BaseBot> = {\n [THookType in utils.StringKeys<HookData<TBot>>]: {\n [THookDataName in utils.StringKeys<HookData<TBot>[THookType]>]?: {\n handler: HookHandlers<TBot>[THookType][THookDataName]\n order: number\n }[]\n }\n}\n\nexport type OrderedWorkflowHandlersMap<TBot extends common.BaseBot> = {\n [TWorkflowUpdateType in WorkflowUpdateType]: {\n [TWorkflowName in utils.StringKeys<TBot['workflows']>]?: {\n handler: WorkflowHandlers<TBot>[TWorkflowName]\n order: number\n }[]\n }\n}\n\nexport type RegisterHandler<TBot extends common.BaseBot> = (props: CommonHandlerProps<TBot>) => Promise<void>\n\n/**\n * Bot handlers without InjectedHandlerProps\n *\n * TODO:\n * the consumer of this type shouldnt be able to access \"*\" directly;\n * \"*\" is meant the user who registers an handler, not for the user who calls the handler\n */\nexport type BotHandlers<TBot extends common.BaseBot> = {\n registerHandler?: RegisterHandler<TBot>\n actionHandlers: ActionHandlersMap<TBot>\n messageHandlers: MessageHandlersMap<TBot>\n eventHandlers: EventHandlersMap<TBot>\n stateExpiredHandlers: StateExpiredHandlersMap<TBot>\n hookHandlers: HookHandlersMap<TBot>\n workflowHandlers: WorkflowHandlersMap<TBot>\n}\n/** identical to BotHandlers, but contains the injected properties */\nexport type InjectedBotHandlers<TBot extends common.BaseBot> = {\n registerHandler?: RegisterHandler<TBot>\n actionHandlers: ActionHandlers<TBot>\n messageHandlers: {\n [TMessageName in utils.StringKeys<IncomingMessages<TBot>>]?: MessageHandlers<TBot>[TMessageName][]\n }\n eventHandlers: {\n [TEventName in utils.StringKeys<IncomingEvents<TBot>>]?: EventHandlers<TBot>[TEventName][]\n }\n stateExpiredHandlers: {\n [TStateName in utils.StringKeys<IncomingStates<TBot>>]?: StateExpiredHandlers<TBot>[TStateName][]\n }\n hookHandlers: {\n [THookType in utils.StringKeys<HookData<TBot>>]: {\n [THookDataName in utils.StringKeys<HookData<TBot>[THookType]>]?: HookHandlers<TBot>[THookType][THookDataName][]\n }\n }\n workflowHandlers: {\n [TWorkflowUpdateType in WorkflowUpdateType]: {\n [TWorkflowName in utils.StringKeys<TBot['workflows']>]?: WorkflowHandlers<TBot>[TWorkflowName][]\n }\n }\n}\n\n// plugins\n\ntype _GetPluginPrefix<TKey extends string> = `${TKey}#`\n\ntype ImplementedActions<\n _TBot extends common.BaseBot,\n TPlugins extends Record<string, plugin.BasePlugin>,\n> = utils.UnionToIntersection<\n utils.ValueOf<{\n [TPlugin in utils.StringKeys<TPlugins>]: {\n [TAction in utils.StringKeys<\n TPlugins[TPlugin]['actions']\n > as `${_GetPluginPrefix<utils.Cast<TPlugin, string>>}${utils.Cast<TAction, string>}`]: TPlugins[TPlugin]['actions'][TAction]\n }\n }>\n>\n\ntype UnimplementedActions<TBot extends common.BaseBot, TPlugins extends Record<string, plugin.BasePlugin>> = Omit<\n TBot['actions'],\n utils.StringKeys<ImplementedActions<TBot, TPlugins>>\n>\n\nexport type ImplementedActionHandlers<\n TBot extends common.BaseBot,\n TPlugins extends Record<string, plugin.BasePlugin>,\n> = {\n [K in utils.StringKeys<ImplementedActions<TBot, TPlugins>>]: ActionHandlers<TBot>[utils.Cast<\n K,\n keyof ActionHandlers<TBot>\n >]\n}\n\nexport type UnimplementedActionHandlers<\n TBot extends common.BaseBot,\n TPlugins extends Record<string, plugin.BasePlugin>,\n> = {\n [K in utils.StringKeys<UnimplementedActions<TBot, TPlugins>>]: ActionHandlers<TBot>[utils.Cast<\n K,\n keyof ActionHandlers<TBot>\n >]\n}\n\nexport type ServerProps = CommonHandlerProps<common.BaseBot> & {\n req: Request\n self: BotHandlers<common.BaseBot>\n}\n", "export * from './proxy'\nexport * from './types'\n", "import type * as client from '@holocronlab/botruntime-client'\nimport type { BotSpecificClient } from '../../bot'\nimport { prefixTagsIfNeeded, unprefixTagsOwnedByPlugin } from '../../plugin/tag-prefixer'\nimport { createAsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\nimport type { BaseBot } from '../common'\nimport * as botServerTypes from '../server/types'\nimport type { WorkflowProxy, ActionableWorkflow } from './types'\n\n// FIXME: Plugin (and bot) workflow definitions are currently being created on\n// the fly at run time. However, they should be part of the bot/plugin\n// definition. The SDK currently gives the illusion that they are defined\n// at deploy time, but in reality they are not. Nothing about the\n// workflows is sent to the backend at deploy time.\n//\n// This is being tracked as https://linear.app/botpress/issue/KKN-292\n//\n// Since currently each workflow definition is unique to a workflow run,\n// the tags are not prefixed by the plugin instance's alias. This is\n// because the backend's input validation prevents us from having a `#`\n// character in the workflow definition's tag definition. The plugin\n// prefix separator should only be present when we merge a plugin's\n// definitions into a bot (ie when installing a plugin in a bot). It\n// should not be allowed when calling the createWorkflow endpoint\n// directly, which is what the CLI currently does.\n//\n// Once we have proper deploy-time workflow definitions, we should\n// prefix/unprefix the tags like we do in the other plugin proxies.\n//\n// This means removing `undefined /* props.pluginAlias */` and replacing\n// it with `props.pluginAlias` in the calls to `prefixTagsIfNeeded()` and\n// `unprefixTagsOwnedByPlugin()`.\n\nexport const proxyWorkflows = <TBot extends BaseBot>(props: {\n client: BotSpecificClient<TBot> | client.Client\n pluginAlias?: string\n}): WorkflowProxy<TBot> =>\n new Proxy({} as WorkflowProxy<TBot>, {\n get: <TWorkflowName extends typeUtils.StringKeys<TBot['workflows']>>(_: unknown, workflowName: TWorkflowName) =>\n ({\n listInstances: (input) =>\n createAsyncCollection(({ nextToken }) =>\n props.client\n .listWorkflows({\n ...input,\n name: workflowName as typeUtils.Cast<TWorkflowName, string>,\n nextToken,\n })\n .then(({ meta, workflows }) => ({\n meta,\n items: workflows.map((workflow) => wrapWorkflowInstance<TBot, TWorkflowName>({ ...props, workflow })),\n }))\n ),\n startNewInstance: async (input) => {\n const { workflow } = await props.client.createWorkflow({\n name: workflowName as typeUtils.Cast<TWorkflowName, string>,\n status: 'pending',\n ...prefixTagsIfNeeded(input, { alias: undefined /* props.pluginAlias */ }),\n })\n return { workflow: wrapWorkflowInstance<TBot, TWorkflowName>({ ...props, workflow }) }\n },\n }) satisfies WorkflowProxy<TBot>[TWorkflowName],\n })\n\nexport const wrapWorkflowInstance = <\n TBot extends BaseBot,\n TWorkflowName extends typeUtils.StringKeys<TBot['workflows']>,\n>(props: {\n client: BotSpecificClient<TBot> | client.Client\n workflow: client.Workflow\n event?: botServerTypes.WorkflowUpdateEvent\n onWorkflowUpdate?: (newState: client.Workflow) => Promise<void> | void\n pluginAlias?: string\n}): ActionableWorkflow<TBot, TWorkflowName> => {\n let isAcknowledged = false\n\n return {\n ...(unprefixTagsOwnedByPlugin(props.workflow, { alias: undefined /* props.pluginAlias */ }) as ActionableWorkflow<\n TBot,\n TWorkflowName\n >),\n\n async update(x) {\n const { workflow } = await props.client.updateWorkflow({\n id: props.workflow.id,\n ...prefixTagsIfNeeded(x, { alias: undefined /* props.pluginAlias */ }),\n })\n await props.onWorkflowUpdate?.(workflow)\n\n return { workflow: wrapWorkflowInstance<TBot, TWorkflowName>({ ...props, workflow }) }\n },\n\n async acknowledgeStartOfProcessing() {\n if (!props.event || props.workflow.status !== 'pending' || isAcknowledged) {\n return {\n workflow: wrapWorkflowInstance<TBot, TWorkflowName>(props),\n }\n }\n\n const { workflow } = await props.client.updateWorkflow({\n id: props.workflow.id,\n status: 'in_progress',\n eventId: props.event.id,\n })\n isAcknowledged = true\n\n await props.onWorkflowUpdate?.(workflow)\n\n return { workflow: wrapWorkflowInstance<TBot, TWorkflowName>({ ...props, workflow }) }\n },\n\n async setFailed({ failureReason }) {\n const { workflow } = await props.client.updateWorkflow({\n id: props.workflow.id,\n status: 'failed',\n failureReason,\n })\n\n await props.onWorkflowUpdate?.(workflow)\n\n return { workflow: wrapWorkflowInstance<TBot, TWorkflowName>({ ...props, workflow }) }\n },\n\n async setCompleted({ output } = {}) {\n const { workflow } = await props.client.updateWorkflow({ id: props.workflow.id, status: 'completed', output })\n await props.onWorkflowUpdate?.(workflow)\n\n return { workflow: wrapWorkflowInstance<TBot, TWorkflowName>({ ...props, workflow }) }\n },\n\n async cancel() {\n const { workflow } = await props.client.updateWorkflow({ id: props.workflow.id, status: 'cancelled' })\n await props.onWorkflowUpdate?.(workflow)\n\n return { workflow: wrapWorkflowInstance<TBot, TWorkflowName>({ ...props, workflow }) }\n },\n }\n}\n", "import { PLUGIN_PREFIX_SEPARATOR } from '../consts'\n\nexport const unprefixTagsOwnedByPlugin = <T extends {} | { tags?: Record<string, string> }>(\n obj: T,\n { alias }: { alias?: string }\n): T => {\n if (!('tags' in obj) || !alias) {\n return obj\n }\n\n const prefix = `${alias}${PLUGIN_PREFIX_SEPARATOR}` as const\n\n const unprefixedTags = Object.fromEntries(\n Object.entries(obj.tags ?? {}).flatMap(([key, value]) =>\n key.startsWith(prefix) ? [[key.slice(prefix.length), value]] : []\n )\n )\n\n return {\n ...obj,\n tags: unprefixedTags,\n }\n}\n\nexport const prefixTagsIfNeeded = <T extends {} | { tags?: Record<string, string> }>(\n obj: T,\n { alias }: { alias?: string }\n): T => {\n if (!('tags' in obj) || !alias) {\n return obj\n }\n\n const prefix = `${alias}${PLUGIN_PREFIX_SEPARATOR}` as const\n\n const prefixedTags = Object.fromEntries(\n Object.entries(obj.tags ?? {}).map(([key, value]) => [key.startsWith(prefix) ? key : `${prefix}${key}`, value])\n )\n\n return {\n ...obj,\n tags: prefixedTags,\n }\n}\n", "type _PageLister<R> = (t: { nextToken?: string }) => Promise<{ items: R[]; meta: { nextToken?: string } }>\n\nclass AsyncCollection<T> implements AsyncIterableIterator<T> {\n private _nextToken?: string\n private _elementsBuffer: T[] = []\n private _isExhausted = false\n\n public constructor(private _list: _PageLister<T>) {}\n\n // Allows iterating with for-await-of loops:\n public [Symbol.asyncIterator](): AsyncIterableIterator<T> {\n return this\n }\n\n /**\n * Get the next element from the collection and advance the iterator.\n */\n public async next(): Promise<IteratorResult<T, undefined>> {\n if (this._bufferIsEmpty && !this._isExhausted) {\n await this._fetchNextPageIntoBuffer()\n }\n\n if (this._bufferIsEmpty) {\n return { done: true, value: undefined }\n }\n\n return { done: false, value: this._elementsBuffer.shift()! }\n }\n\n /**\n * Take the next n elements from the collection, advancing the iterator, and\n * return them as an array.\n */\n public async take(amount: number): Promise<T[]> {\n const arr: T[] = []\n for (let i = 0; i < amount; ++i) {\n const result = await this.next()\n if (result.done) {\n break\n }\n arr.push(result.value)\n }\n return arr\n }\n\n /**\n * Take the next n pages of elements from the collection, advancing the\n * iterator, and return the elements as an array.\n */\n public async takePage(amount: number): Promise<T[]> {\n for (let i = 0; i < amount; ++i) {\n if (!this._isExhausted) {\n await this._fetchNextPageIntoBuffer()\n }\n }\n\n const elements = [...this._elementsBuffer]\n this._elementsBuffer.length = 0\n\n return elements\n }\n\n /**\n * Take all remaining elements from in collection, moving the iterator to the\n * end, and return them as an array.\n */\n public async takeAll(): Promise<T[]> {\n return this.take(Number.POSITIVE_INFINITY)\n }\n\n /**\n * Returns true if there are no more elements to fetch in the collection.\n */\n public get isExhausted() {\n return this._isExhausted\n }\n\n private async _fetchNextPageIntoBuffer(): Promise<void> {\n const { items, meta } = await this._list({ nextToken: this._nextToken })\n\n this._elementsBuffer.push(...items)\n this._nextToken = meta.nextToken\n\n if (!meta.nextToken) {\n this._isExhausted = true\n }\n }\n\n private get _bufferIsEmpty(): boolean {\n return this._elementsBuffer.length === 0\n }\n}\n\nexport type { AsyncCollection }\nexport const createAsyncCollection = <T>(listFn: _PageLister<T>) => new AsyncCollection<T>(listFn)\n", "import type * as client from '@holocronlab/botruntime-client'\nimport { AsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\nimport type * as commonTypes from '../common'\n\nexport type WorkflowProxy<TBot extends commonTypes.BaseBot = commonTypes.BaseBot> = Readonly<{\n [TWorkflowName in typeUtils.StringKeys<TBot['workflows']>]: Readonly<{\n startNewInstance: (\n x: Pick<client.ClientInputs['createWorkflow'], 'conversationId' | 'userId' | 'timeoutAt'> & {\n tags?: typeUtils.AtLeastOneProperty<TBot['workflows'][TWorkflowName]['tags']>\n input: TBot['workflows'][TWorkflowName]['input']\n }\n ) => Promise<\n Readonly<\n Omit<client.ClientOutputs['createWorkflow'], 'workflow'> & {\n workflow: ActionableWorkflow<TBot, TWorkflowName>\n }\n >\n >\n\n listInstances: (\n x?: Pick<client.ClientInputs['listWorkflows'], 'conversationId' | 'userId'> & {\n tags?: typeUtils.AtLeastOneProperty<TBot['workflows'][TWorkflowName]['tags']>\n /**\n * Filter by statuses:\n *\n * - `pending` - Workflow is created but not started yet\n * - `in_progress` - Workflow is currently running\n * - `failed` - Workflow finished with errors\n * - `completed` - Workflow finished successfully\n * - `cancelled` - Workflow finished due to cancellation through the API\n * - `timedout` - Workflow finished due to timeout\n * - `listening` - Workflow is waiting for an event to continue\n * - `paused` - Workflow was paused through the API\n */\n statuses?: client.Workflow['status'][]\n }\n ) => AsyncCollection<ActionableWorkflow<TBot, TWorkflowName>>\n }>\n}>\n\nexport type ActionableWorkflow<\n TBot extends commonTypes.BaseBot,\n TWorkflowName extends typeUtils.StringKeys<TBot['workflows']>,\n> = Readonly<\n client.Workflow & {\n name: TWorkflowName\n input: typeUtils.Cast<TBot['workflows'][TWorkflowName], commonTypes.IntegrationInstanceActionDefinition>['input']\n output: Partial<\n typeUtils.Cast<TBot['workflows'][TWorkflowName], commonTypes.IntegrationInstanceActionDefinition>['output']\n >\n tags: Partial<TBot['workflows'][TWorkflowName]['tags']>\n\n /**\n * Updates the current workflow instance\n */\n update(\n x: typeUtils.AtLeastOneProperty<\n Pick<client.ClientInputs['updateWorkflow'], 'userId' | 'timeoutAt'> & {\n tags?: typeUtils.AtLeastOneProperty<TBot['workflows'][TWorkflowName]['tags']>\n output?: typeUtils.Cast<\n TBot['workflows'][TWorkflowName],\n commonTypes.IntegrationInstanceActionDefinition\n >['output']\n }\n >\n ): Promise<{ workflow: ActionableWorkflow<TBot, TWorkflowName> }>\n\n /**\n * Acknowledges the start of processing for a pending workflow instance.\n * If the workflow is not in pending status or has already been\n * acknowledged, this is a no-op.\n *\n * This method **should be called in every workflow handler** as soon as the\n * workflow **starts doing work**. If no work needs to be done, setCompleted\n * or setFailed should be called instead.\n *\n * Should a workflow not be acknowledged **in a timely fashion**, it will be\n * retriggered 3 times before being marked as failed.\n */\n acknowledgeStartOfProcessing(): Promise<{ workflow: ActionableWorkflow<TBot, TWorkflowName> }>\n\n /**\n * Marks the current workflow instance as failed and stops execution\n */\n setFailed(\n x: Required<Pick<client.ClientInputs['updateWorkflow'], 'failureReason'>>\n ): Promise<{ workflow: ActionableWorkflow<TBot, TWorkflowName> }>\n\n /**\n * Marks the current workflow instance as completed and stops execution\n */\n setCompleted(x?: {\n output?: typeUtils.Cast<\n TBot['workflows'][TWorkflowName],\n commonTypes.IntegrationInstanceActionDefinition\n >['output']\n }): Promise<{ workflow: ActionableWorkflow<TBot, TWorkflowName> }>\n\n /**\n * Discards all output data and cancels the current workflow instance\n */\n cancel(): Promise<{ workflow: ActionableWorkflow<TBot, TWorkflowName> }>\n }\n>\n", "export * from './generic'\nexport * from './types'\n", "import { BaseIntegration, DefaultIntegration, InputBaseIntegration } from '../../integration/common/generic'\nimport * as utils from '../../utils/type-utils'\nimport * as def from '../definition'\n\nexport * from '../../integration/common/generic'\n\nexport type BaseAction = {\n input: any\n output: any\n}\n\nexport type BaseTable = {\n [k: string]: any\n}\n\nexport type BaseWorkflow = {\n input: any\n output: any\n tags?: {\n [k: string]: string\n }\n}\n\nexport type BaseState = {\n type: def.StateType\n payload: any\n}\n\nexport type BaseBot = {\n integrations: Record<string, BaseIntegration>\n events: Record<string, any>\n states: Record<string, BaseState>\n actions: Record<string, BaseAction>\n tables: Record<string, BaseTable>\n workflows: Record<string, BaseWorkflow>\n}\n\nexport type InputBaseBot = utils.DeepPartial<BaseBot>\nexport type DefaultBot<B extends InputBaseBot> = {\n events: utils.Default<B['events'], BaseBot['events']>\n states: utils.Default<B['states'], BaseBot['states']>\n actions: utils.Default<B['actions'], BaseBot['actions']>\n integrations: undefined extends B['integrations']\n ? BaseBot['integrations']\n : {\n [K in keyof B['integrations']]: DefaultIntegration<utils.Cast<B['integrations'][K], InputBaseIntegration>>\n }\n tables: utils.Default<B['tables'], BaseBot['tables']>\n workflows: utils.Default<B['workflows'], BaseBot['workflows']>\n}\n", "import { Join, UnionToIntersection, Split, Cast } from '../../utils/type-utils'\nimport { BaseBot } from './generic'\n\nexport type IntegrationInstanceDefinition = BaseBot['integrations'][string]\nexport type IntegrationInstanceConfigurationDefinition = IntegrationInstanceDefinition['configuration']\nexport type IntegrationInstanceActionDefinition = IntegrationInstanceDefinition['actions'][string]\nexport type IntegrationInstanceChannelDefinition = IntegrationInstanceDefinition['channels'][string]\nexport type IntegrationInstanceMessageDefinition = IntegrationInstanceChannelDefinition['messages'][string]\nexport type IntegrationInstanceEventDefinition = IntegrationInstanceDefinition['events'][string]\nexport type IntegrationInstanceStateDefinition = IntegrationInstanceDefinition['states'][string]\nexport type IntegrationInstanceUserDefinition = IntegrationInstanceDefinition['user']\n\ntype ActionKey<TIntegrationName extends string, TActionName extends string> = string extends TIntegrationName\n ? string\n : string extends TActionName\n ? string\n : Join<[TIntegrationName, ':', TActionName]>\n\nexport type EnumerateActions<TBot extends BaseBot> = UnionToIntersection<\n {\n [TIntegrationName in keyof TBot['integrations']]: {\n [TActionName in keyof TBot['integrations'][TIntegrationName]['actions'] as ActionKey<\n Cast<TIntegrationName, string>,\n Cast<TActionName, string>\n >]: TBot['integrations'][TIntegrationName]['actions'][TActionName]\n }\n }[keyof TBot['integrations']]\n> & {}\n\nexport type EnumerateActionInputs<TBot extends BaseBot> = {\n [K in keyof EnumerateActions<TBot>]: Cast<EnumerateActions<TBot>[K], IntegrationInstanceActionDefinition>['input']\n}\n\nexport type EnumerateActionOutputs<TBot extends BaseBot> = {\n [K in keyof EnumerateActions<TBot>]: Cast<EnumerateActions<TBot>[K], IntegrationInstanceActionDefinition>['output']\n}\n\ntype EventKey<TIntegrationName extends string, TEventName extends string> = string extends TIntegrationName\n ? string\n : string extends TEventName\n ? string\n : Join<[TIntegrationName, ':', TEventName]>\n\nexport type EnumerateEvents<TBot extends BaseBot> = UnionToIntersection<\n {\n [TIntegrationName in keyof TBot['integrations']]: {\n [TEventName in keyof TBot['integrations'][TIntegrationName]['events'] as EventKey<\n Cast<TIntegrationName, string>,\n Cast<TEventName, string>\n >]: TBot['integrations'][TIntegrationName]['events'][TEventName]\n }\n }[keyof TBot['integrations']]\n> & {\n [TEventName in keyof TBot['events']]: TBot['events'][TEventName]\n}\n\ntype ChannelKey<TIntegrationName extends string, TChannelName extends string> = string extends TIntegrationName\n ? string\n : string extends TChannelName\n ? string\n : Join<[TIntegrationName, ':', TChannelName]>\n\nexport type EnumerateChannels<TBot extends BaseBot> = UnionToIntersection<\n {\n [TIntegrationName in keyof TBot['integrations']]: {\n [TChannelName in keyof TBot['integrations'][TIntegrationName]['channels'] as ChannelKey<\n Cast<TIntegrationName, string>,\n Cast<TChannelName, string>\n >]: TBot['integrations'][TIntegrationName]['channels'][TChannelName]\n }\n }[keyof TBot['integrations']]\n> & {}\n\ntype MessageKey<\n TIntegrationName extends string,\n TChannelName extends string,\n TMessageName extends string,\n> = string extends TIntegrationName\n ? string\n : string extends TChannelName\n ? string\n : string extends TMessageName\n ? string\n : Join<[TIntegrationName, ':', TChannelName, ':', TMessageName]>\n\nexport type EnumerateMessages<TBot extends BaseBot> = UnionToIntersection<\n {\n [TIntegrationName in keyof TBot['integrations']]: {\n [TChannelName in keyof TBot['integrations'][TIntegrationName]['channels']]: {\n [TMessageName in keyof TBot['integrations'][TIntegrationName]['channels'][TChannelName]['messages'] as MessageKey<\n Cast<TIntegrationName, string>,\n Cast<TChannelName, string>,\n Cast<TMessageName, string>\n >]: TBot['integrations'][TIntegrationName]['channels'][TChannelName]['messages'][TMessageName]\n }\n }[keyof TBot['integrations'][TIntegrationName]['channels']]\n }[keyof TBot['integrations']]\n> & {}\n\nexport type GetMessages<TBot extends BaseBot> = {\n [K in keyof EnumerateMessages<TBot> as Cast<Split<K, ':'>[2], string>]: EnumerateMessages<TBot>[K]\n}\n\nexport type EnumerateStates<TBot extends BaseBot> = {\n [K in keyof TBot['states']]: TBot['states'][K]\n}\n\nexport type EnumerateTables<TBot extends BaseBot> = {\n [K in keyof TBot['tables']]: TBot['tables'][K]\n}\n", "export * from './definition'\nexport * from './common'\n", "import { SchemaTransformOptions } from '../common/types'\nimport { ActionDefinition, ChannelDefinition, EntityDefinition, EventDefinition } from '../integration/definition'\nimport * as utils from '../utils'\nimport { SDK_VERSION } from '../version'\nimport { z } from '../zui'\n\ntype BaseEvents = Record<string, z.ZuiObjectSchema>\ntype BaseActions = Record<string, z.ZuiObjectSchema>\ntype BaseMessages = Record<string, z.ZuiObjectSchema>\ntype BaseChannels = Record<string, BaseMessages>\ntype BaseEntities = Record<string, z.ZuiObjectSchema>\n\ntype EntityReferences<TEntities extends BaseEntities> = {\n [K in keyof TEntities]: z.ZodRef\n}\n\ntype GenericEventDefinition<TEntities extends BaseEntities, TEvent extends BaseEvents[string] = BaseEvents[string]> = {\n schema: z.GenericZuiSchema<EntityReferences<TEntities>, TEvent>\n attributes?: Record<string, string>\n}\n\ntype GenericChannelDefinition<\n TEntities extends BaseEntities,\n TChannel extends BaseChannels[string] = BaseChannels[string],\n> = {\n messages: {\n [K in keyof TChannel]: {\n schema: z.GenericZuiSchema<EntityReferences<TEntities>, TChannel[K]>\n }\n }\n}\n\ntype GenericActionDefinition<\n TEntities extends BaseEntities,\n TAction extends BaseActions[string] = BaseActions[string],\n> = {\n title?: string\n description?: string\n billable?: boolean\n cacheable?: boolean\n input: { schema: z.GenericZuiSchema<EntityReferences<TEntities>, TAction> }\n output: { schema: z.GenericZuiSchema<EntityReferences<TEntities>, z.ZuiObjectSchema> }\n attributes?: Record<string, string>\n}\n\nexport type InterfaceDefinitionProps<\n TName extends string = string,\n TVersion extends string = string,\n TEntities extends BaseEntities = BaseEntities,\n TActions extends BaseActions = BaseActions,\n TEvents extends BaseEntities = BaseEntities,\n TChannels extends BaseChannels = BaseChannels,\n> = {\n name: TName\n version: TVersion\n\n title?: string\n description?: string\n icon?: string\n readme?: string\n\n attributes?: Record<string, string>\n\n entities?: {\n [K in keyof TEntities]: EntityDefinition<TEntities[K]>\n }\n\n events?: { [K in keyof TEvents]: GenericEventDefinition<TEntities, TEvents[K]> }\n\n actions?: {\n [K in keyof TActions]: GenericActionDefinition<TEntities, TActions[K]>\n }\n\n channels?: {\n [K in keyof TChannels]: GenericChannelDefinition<TEntities, TChannels[K]>\n }\n\n __advanced?: SchemaTransformOptions\n}\n\nexport class InterfaceDefinition<\n TName extends string = string,\n TVersion extends string = string,\n TEntities extends BaseEntities = BaseEntities,\n TActions extends BaseActions = BaseActions,\n TEvents extends BaseEvents = BaseEvents,\n TChannels extends BaseChannels = BaseChannels,\n> {\n public readonly name: this['props']['name']\n public readonly version: this['props']['version']\n\n public readonly title: this['props']['title']\n public readonly description: this['props']['description']\n public readonly icon: this['props']['icon']\n public readonly readme: this['props']['readme']\n public readonly attributes: this['props']['attributes']\n\n public readonly entities: { [K in keyof TEntities]: EntityDefinition<TEntities[K]> }\n public readonly events: { [K in keyof TEvents]: EventDefinition<TEvents[K]> }\n public readonly actions: { [K in keyof TActions]: ActionDefinition<TActions[K]> }\n public readonly channels: { [K in keyof TChannels]: ChannelDefinition<TChannels[K]> }\n\n public readonly __advanced: this['props']['__advanced']\n\n public constructor(\n public readonly props: InterfaceDefinitionProps<TName, TVersion, TEntities, TActions, TEvents, TChannels>\n ) {\n this.name = props.name\n this.version = props.version\n this.icon = props.icon\n this.title = props.title\n this.description = props.description\n this.readme = props.readme\n this.entities = props.entities ?? ({} as this['entities'])\n this.attributes = props.attributes\n this.__advanced = props.__advanced\n\n const entityReferences = this._getEntityReference(this.entities)\n\n const events: Record<string, EventDefinition> =\n props.events === undefined\n ? {}\n : utils.records.mapValues(\n props.events,\n (event): EventDefinition => ({\n ...event,\n schema: event.schema(entityReferences),\n })\n )\n\n const actions: Record<string, ActionDefinition> =\n props.actions === undefined\n ? {}\n : utils.records.mapValues(\n props.actions,\n (action): ActionDefinition => ({\n ...action,\n input: {\n ...action.input,\n schema: action.input.schema(entityReferences),\n },\n output: {\n ...action.output,\n schema: action.output.schema(entityReferences),\n },\n })\n )\n\n const channels: Record<string, ChannelDefinition> =\n props.channels === undefined\n ? {}\n : utils.records.mapValues(\n props.channels,\n (channel): ChannelDefinition => ({\n ...channel,\n messages: utils.records.mapValues(channel.messages, (message) => ({\n ...message,\n schema: message.schema(entityReferences),\n })),\n })\n )\n\n this.events = events as this['events']\n this.actions = actions as this['actions']\n this.channels = channels as this['channels']\n }\n\n public get metadata() {\n return { sdkVersion: SDK_VERSION } as const\n }\n\n public readonly clone?: (overrides?: Partial<InterfaceDefinitionProps>) => InterfaceDefinition = (overrides?) => {\n // TODO: make non-optional on next major (CLI and SDK share the same major, so the CLI can always rely on clone being present)\n return new InterfaceDefinition({ ...this.props, ...overrides } as InterfaceDefinitionProps)\n }\n\n private _getEntityReference = (entities: Record<string, EntityDefinition>): EntityReferences<TEntities> => {\n const entityReferences: Record<string, z.ZodRef> = {} as EntityReferences<TEntities>\n for (const [entityName, entityDef] of Object.entries(entities)) {\n const title = entityDef.schema._def['x-zui']?.title\n const description = entityDef.schema._def.description\n\n const refSchema = z.ref(entityName)\n if (title) {\n refSchema.title(title)\n }\n if (description) {\n refSchema.describe(description)\n }\n\n entityReferences[entityName] = refSchema\n }\n return entityReferences as EntityReferences<TEntities>\n }\n}\n", "export * from './generic'\n", "import * as utils from '../../utils/type-utils'\n\nexport type BaseChannel = {\n messages: Record<string, any>\n}\n\nexport type BaseUser = {\n tags: Record<string, any>\n}\n\nexport type BaseAction = {\n input: any\n output: any\n}\n\nexport type BaseInterface = {\n name: string\n version: string\n actions: Record<string, BaseAction>\n channels: Record<string, BaseChannel>\n events: Record<string, any>\n entities: Record<string, any>\n}\n\nexport type InputBaseChannel = utils.DeepPartial<BaseChannel>\nexport type DefaultChannel<C extends InputBaseChannel> = {\n messages: utils.Default<C['messages'], BaseChannel['messages']>\n}\n\nexport type InputBaseInterface = utils.DeepPartial<BaseInterface>\nexport type DefaultInterface<I extends InputBaseInterface> = {\n name: utils.Default<I['name'], BaseInterface['name']>\n version: utils.Default<I['version'], BaseInterface['version']>\n actions: utils.Default<I['actions'], BaseInterface['actions']>\n events: utils.Default<I['events'], BaseInterface['events']>\n entities: utils.Default<I['entities'], BaseInterface['entities']>\n channels: undefined extends I['channels']\n ? BaseInterface['channels']\n : {\n [K in keyof I['channels']]: DefaultChannel<utils.Cast<I['channels'][K], InputBaseChannel>>\n }\n}\n", "export * from './definition'\nexport * from './implementation'\nexport * from './server'\nexport * from './common'\n", "import {\n BotDefinitionProps,\n StateDefinition as BotStateDefinition,\n EventDefinition as BotEventDefinition,\n ConfigurationDefinition as BotConfigurationDefinition,\n UserDefinition,\n ConversationDefinition,\n MessageDefinition,\n ActionDefinition as BotActionDefinition,\n TableDefinition as BotTableDefinition,\n WorkflowDefinition,\n} from '../bot/definition'\nimport { stripRecurringFromEvents, resolveRecurringEvents } from '../common/recurring-events'\nimport { SchemaTransformOptions } from '../common/types'\nimport { DefinitionError } from '../errors'\nimport { IntegrationPackage, InterfacePackage } from '../package'\nimport * as typeUtils from '../utils/type-utils'\nimport { SDK_VERSION } from '../version'\nimport { z } from '../zui'\n\nexport { UserDefinition, ConversationDefinition, MessageDefinition, WorkflowDefinition } from '../bot/definition'\n\ntype BaseConfig = z.ZuiObjectOrRefSchema\ntype BaseStates = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseEvents = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseActions = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseInterfaces = Record<string, InterfacePackage>\ntype BaseIntegrations = Record<string, IntegrationPackage>\ntype BaseTables = Record<string, z.ZuiObjectOrRefSchema>\ntype BaseWorkflows = Record<string, z.ZuiObjectSchema>\n\nexport type TableDefinition<TTable extends BaseTables[string] = BaseTables[string]> = typeUtils.Merge<\n BotTableDefinition,\n {\n schema: TTable\n }\n>\n\nexport type ConfigurationDefinition<TConfig extends BaseConfig = BaseConfig> = typeUtils.Merge<\n BotConfigurationDefinition,\n {\n schema: TConfig\n }\n>\n\nexport type StateDefinition<TState extends BaseStates[string] = BaseStates[string]> = typeUtils.Merge<\n BotStateDefinition,\n {\n schema: TState\n }\n>\n\nexport type EventDefinition<TEvent extends BaseEvents[string] = BaseEvents[string]> = typeUtils.Merge<\n BotEventDefinition,\n {\n schema: TEvent\n }\n>\n\nexport type ActionDefinition<TAction extends BaseActions[string] = BaseActions[string]> = typeUtils.Merge<\n BotActionDefinition,\n {\n input: { schema: TAction }\n output: { schema: z.ZuiObjectOrRefSchema }\n }\n>\n\n/*\n * @deprecated Use the `recurring` field on `EventDefinition` instead.\n */\nexport type RecurringEventDefinition<TEvents extends BaseEvents = BaseEvents> = {\n [K in keyof TEvents]: {\n type: K\n payload: z.infer<TEvents[K]>\n schedule: {\n cron: string\n }\n }\n}[keyof TEvents]\n\nexport type ZuiSchemaWithEntityReferences<\n TInterfaces extends BaseInterfaces,\n TReturnType extends z.ZuiObjectOrRefSchema,\n> =\n | ((props: {\n entities: {\n [TInterfaceAlias in keyof TInterfaces]: {\n [TEntityName in keyof TInterfaces[TInterfaceAlias]['definition']['entities']]: z.ZodRef\n }\n }\n }) => TReturnType)\n | TReturnType\n\ntype GenericDefinition<\n TInterfaces extends BaseInterfaces,\n TDefinition extends { schema: z.ZuiObjectOrRefSchema },\n> = typeUtils.Merge<\n TDefinition,\n {\n schema: ZuiSchemaWithEntityReferences<TInterfaces, TDefinition['schema']>\n }\n>\n\ntype GenericNestedDefinition<\n TInterfaces extends BaseInterfaces,\n TDefinition extends { [k: string]: any },\n TKeys extends string,\n> = Omit<TDefinition, TKeys> & {\n [TKey in TKeys]: Omit<TDefinition[TKey], 'schema'> & {\n schema: ZuiSchemaWithEntityReferences<TInterfaces, TDefinition[TKey]['schema']>\n }\n}\n\nexport type PluginDefinitionProps<\n TName extends string = string,\n TVersion extends string = string,\n TConfig extends BaseConfig = BaseConfig,\n TStates extends BaseStates = BaseStates,\n TEvents extends BaseEvents = BaseEvents,\n TActions extends BaseActions = BaseActions,\n TInterfaces extends BaseInterfaces = BaseInterfaces,\n TIntegrations extends BaseIntegrations = BaseIntegrations,\n TTables extends BaseTables = BaseTables,\n TWorkflows extends BaseWorkflows = BaseWorkflows,\n> = {\n name: TName\n version: TVersion\n\n title?: string\n description?: string\n icon?: string\n readme?: string\n\n attributes?: Record<string, string>\n\n integrations?: TIntegrations\n interfaces?: TInterfaces\n user?: UserDefinition\n conversation?: ConversationDefinition\n message?: MessageDefinition\n states?: {\n [K in keyof TStates]: GenericDefinition<TInterfaces, StateDefinition<TStates[K]>>\n }\n configuration?: GenericDefinition<TInterfaces, ConfigurationDefinition<TConfig>>\n events?: {\n [K in keyof TEvents]: GenericDefinition<TInterfaces, EventDefinition<TEvents[K]>>\n }\n /** @deprecated Use the `recurrence` field on each event in `events` instead. */\n recurringEvents?: Record<string, RecurringEventDefinition<TEvents>>\n actions?: {\n [K in keyof TActions]: GenericNestedDefinition<TInterfaces, ActionDefinition<TActions[K]>, 'input' | 'output'>\n }\n tables?: {\n [K in keyof TTables]: GenericDefinition<TInterfaces, TableDefinition<TTables[K]>>\n }\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflows?: {\n [K in keyof TWorkflows]: WorkflowDefinition<TWorkflows[K]>\n }\n\n __advanced?: SchemaTransformOptions\n}\n\nexport class PluginDefinition<\n TName extends string = string,\n TVersion extends string = string,\n TConfig extends BaseConfig = BaseConfig,\n TStates extends BaseStates = BaseStates,\n TEvents extends BaseEvents = BaseEvents,\n TActions extends BaseActions = BaseActions,\n TInterfaces extends BaseInterfaces = BaseInterfaces,\n TIntegrations extends BaseIntegrations = BaseIntegrations,\n TTables extends BaseTables = BaseTables,\n TWorkflows extends BaseWorkflows = BaseWorkflows,\n> {\n public readonly name: this['props']['name']\n public readonly version: this['props']['version']\n\n public readonly title: this['props']['title']\n public readonly description: this['props']['description']\n public readonly icon: this['props']['icon']\n public readonly readme: this['props']['readme']\n\n public readonly attributes: this['props']['attributes']\n\n public readonly integrations: this['props']['integrations']\n public readonly interfaces: this['props']['interfaces']\n\n public readonly user: this['props']['user']\n public readonly conversation: this['props']['conversation']\n public readonly message: this['props']['message']\n public readonly states: {\n [K in keyof TStates]: StateDefinition<TStates[K]>\n }\n public readonly configuration?: ConfigurationDefinition<TConfig>\n public readonly events: {\n [K in keyof TEvents]: EventDefinition<TEvents[K]>\n }\n public readonly recurringEvents: this['props']['recurringEvents']\n public readonly actions: {\n [K in keyof TActions]: ActionDefinition<TActions[K]>\n }\n public readonly tables: {\n [K in keyof TTables]: TableDefinition<TTables[K]>\n }\n public readonly workflows: this['props']['workflows']\n public readonly __advanced: this['props']['__advanced']\n\n public constructor(\n public readonly props: PluginDefinitionProps<\n TName,\n TVersion,\n TConfig,\n TStates,\n TEvents,\n TActions,\n TInterfaces,\n TIntegrations,\n TTables,\n TWorkflows\n >\n ) {\n // entities.<interfaceAlias>.<entityName> -> ZodRef\n const entities = Object.fromEntries(\n Object.entries(props.interfaces ?? {}).map(([interfaceAlias, interfaceDef]) => [\n interfaceAlias,\n Object.fromEntries(\n Object.entries(interfaceDef.definition.entities ?? {}).map(([entityName]) => [\n entityName,\n z.ref(`interface:${interfaceAlias}/entities/${entityName}`),\n ])\n ),\n ])\n ) as {\n [TInterfaceAlias in keyof TInterfaces]: {\n [TEntityName in keyof TInterfaces[TInterfaceAlias]['definition']['entities']]: z.ZodRef\n }\n }\n\n this.name = props.name\n this.version = props.version\n this.icon = props.icon\n this.readme = props.readme\n this.title = props.title\n this.description = props.description\n this.integrations = props.integrations\n this.interfaces = props.interfaces\n this.user = props.user\n this.conversation = props.conversation\n this.message = props.message\n this.workflows = props.workflows\n this.attributes = props.attributes\n this.__advanced = props.__advanced\n\n const aliases = new Set<string>()\n\n for (const alias of [...Object.keys(props.integrations ?? {}), ...Object.keys(props.interfaces ?? {})]) {\n if (aliases.has(alias)) {\n throw new DefinitionError(\n `Duplicate interface or integration alias detected in plugin definition: '${alias}'. ` +\n 'Please use unique aliases for each interface and integration.'\n )\n }\n aliases.add(alias)\n }\n\n this.configuration = props.configuration\n ? {\n ...props.configuration,\n schema:\n typeof props.configuration.schema === 'object'\n ? props.configuration.schema\n : props.configuration.schema({ entities }),\n }\n : undefined\n\n this.states = Object.fromEntries(\n Object.entries(props.states ?? {}).map(\n ([stateName, stateDef]: [keyof TStates, NonNullable<(typeof props)['states']>[keyof TStates]]) => [\n stateName,\n {\n ...stateDef,\n schema: typeof stateDef.schema === 'object' ? stateDef.schema : stateDef.schema({ entities }),\n } as StateDefinition<TStates[keyof TStates]>,\n ]\n )\n ) as { [K in keyof TStates]: StateDefinition<TStates[K]> }\n\n const resolvedEvents = Object.fromEntries(\n Object.entries(props.events ?? {}).map(\n ([eventName, eventDef]: [keyof TEvents, NonNullable<(typeof props)['events']>[keyof TEvents]]) => [\n eventName,\n {\n ...eventDef,\n schema: typeof eventDef.schema === 'object' ? eventDef.schema : eventDef.schema({ entities }),\n } as EventDefinition<TEvents[keyof TEvents]>,\n ]\n )\n ) as { [K in keyof TEvents]: EventDefinition<TEvents[K]> }\n\n this.events = stripRecurringFromEvents(resolvedEvents)\n this.recurringEvents = resolveRecurringEvents(\n resolvedEvents as Record<string, EventDefinition>,\n props.recurringEvents as BotDefinitionProps['recurringEvents']\n )\n\n this.actions = Object.fromEntries(\n Object.entries(props.actions ?? {}).map(\n ([actionName, actionDef]: [keyof TActions, NonNullable<(typeof props)['actions']>[keyof TActions]]) => [\n actionName,\n {\n ...actionDef,\n input: {\n ...actionDef.input,\n schema:\n typeof actionDef.input.schema === 'object'\n ? actionDef.input.schema\n : actionDef.input.schema({ entities }),\n },\n output: {\n ...actionDef.output,\n schema:\n typeof actionDef.output.schema === 'object'\n ? actionDef.output.schema\n : actionDef.output.schema({ entities }),\n },\n } as ActionDefinition<TActions[keyof TActions]>,\n ]\n )\n ) as { [K in keyof TActions]: ActionDefinition<TActions[K]> }\n\n this.tables = Object.fromEntries(\n Object.entries(props.tables ?? {}).map(\n ([tableName, tableDef]: [keyof TTables, NonNullable<(typeof props)['tables']>[keyof TTables]]) => [\n tableName,\n {\n ...tableDef,\n schema: typeof tableDef.schema === 'object' ? tableDef.schema : tableDef.schema({ entities }),\n } as TableDefinition<TTables[keyof TTables]>,\n ]\n )\n ) as { [K in keyof TTables]: TableDefinition<TTables[K]> }\n }\n\n public get metadata() {\n return { sdkVersion: SDK_VERSION } as const\n }\n\n public readonly clone?: (overrides?: Partial<PluginDefinitionProps>) => PluginDefinition = (overrides?) => {\n // TODO: make non-optional on next major (CLI and SDK share the same major, so the CLI can always rely on clone being present)\n return new PluginDefinition({ ...this.props, ...overrides } as PluginDefinitionProps)\n }\n\n /**\n * Returns a copy of the plugin definition where all entity references are\n * resolved to the base entity schema defined by the interface. This does not\n * include any additional properties that may be added to the entity by the\n * backing integration.\n *\n * If `intersectWithUnknownRecord` is `true` (default), the entity schemas\n * will be intersected with `z.record(z.string(), z.unknown())` to make it\n * explicit that the backing integration may have added additional properties.\n */\n public dereferenceEntities(\n { intersectWithUnknownRecord }: { intersectWithUnknownRecord?: boolean } = {\n intersectWithUnknownRecord: true,\n }\n ): this {\n const zuiReferenceMap = this._buildZuiReferenceMap(intersectWithUnknownRecord)\n\n return {\n ...this,\n configuration: this.configuration\n ? {\n ...this.configuration,\n schema: this._dereferenceZuiSchema(this.configuration.schema, zuiReferenceMap),\n }\n : undefined,\n events: this._dereferenceDefinitionSchemas(this.events, zuiReferenceMap),\n states: this._dereferenceDefinitionSchemas(this.states, zuiReferenceMap),\n tables: this._dereferenceDefinitionSchemas(this.tables, zuiReferenceMap),\n actions: this._dereferenceActionDefinitionSchemas(this.actions, zuiReferenceMap),\n } as typeof this\n }\n\n private _buildZuiReferenceMap(intersectWithUnknownRecord?: boolean): Record<string, z.ZodTypeAny> {\n return Object.fromEntries(\n (Object.entries(this.interfaces ?? {}) as [string, InterfacePackage][]).flatMap(\n ([interfaceAlias, interfacePackage]) =>\n Object.entries(interfacePackage.definition.entities ?? {}).map(([entityName, entityDefinition]) => [\n `interface:${interfaceAlias}/entities/${entityName}`,\n intersectWithUnknownRecord\n ? entityDefinition.schema.and(z.record(z.string(), z.unknown()))\n : entityDefinition.schema,\n ])\n )\n )\n }\n\n private _dereferenceZuiSchema(\n schema: z.ZuiObjectOrRefSchema,\n zuiReferenceMap: Record<string, z.ZodTypeAny>\n ): z.ZuiObjectSchema {\n return schema.dereference(zuiReferenceMap) as z.ZuiObjectSchema\n }\n\n private _dereferenceDefinitionSchemas<TDefinitionRecord extends Record<string, { schema: z.ZuiObjectOrRefSchema }>>(\n definitions: TDefinitionRecord | undefined,\n zuiReferenceMap: Record<string, z.ZodTypeAny>\n ): TDefinitionRecord {\n return Object.fromEntries(\n Object.entries(definitions ?? {}).map(([key, definition]) => [\n key,\n { ...definition, schema: this._dereferenceZuiSchema(definition.schema, zuiReferenceMap) },\n ])\n ) as TDefinitionRecord\n }\n\n private _dereferenceActionDefinitionSchemas<\n TDefinitionRecord extends Record<\n string,\n { input: { schema: z.ZuiObjectOrRefSchema }; output: { schema: z.ZuiObjectOrRefSchema } }\n >,\n >(definitions: TDefinitionRecord | undefined, zuiReferenceMap: Record<string, z.ZodTypeAny>): TDefinitionRecord {\n return Object.fromEntries(\n Object.entries(definitions ?? {}).map(([key, definition]) => [\n key,\n {\n ...definition,\n input: { schema: this._dereferenceZuiSchema(definition.input.schema, zuiReferenceMap) },\n output: { schema: this._dereferenceZuiSchema(definition.output.schema, zuiReferenceMap) },\n },\n ])\n ) as TDefinitionRecord\n }\n}\n", "import * as client from '@holocronlab/botruntime-client'\nimport type {\n MessageHandlersMap as BotMessageHandlersMap,\n EventHandlersMap as BotEventHandlersMap,\n StateExpiredHandlersMap as BotStateExpiredHandlersMap,\n HookHandlersMap as BotHookHandlersMap,\n WorkflowHandlersMap as BotWorkflowHandlersMap,\n ActionHandlersMap as BotActionHandlersMap,\n BotHandlers,\n BotSpecificClient,\n WorkflowUpdateType,\n} from '../bot'\nimport { WorkflowProxy, proxyWorkflows, wrapWorkflowInstance } from '../bot/workflow-proxy'\nimport * as utils from '../utils'\nimport { ActionProxy, proxyActions } from './action-proxy'\nimport { BasePlugin, PluginRuntimeProps } from './common'\nimport { ConversationFinder, proxyConversation, proxyConversations } from './conversation-proxy'\nimport { EventProxy, proxyEvents } from './event-proxy'\nimport { proxyMessage, proxyMessages } from './message-proxy'\nimport {\n ActionHandlers,\n MessageHandlers,\n EventHandlers,\n StateExpiredHandlers,\n HookHandlers,\n WorkflowHandlers,\n HookHandlersMap,\n WorkflowHandlersMap,\n OrderedMessageHandlersMap,\n OrderedEventHandlersMap,\n OrderedStateExpiredHandlersMap,\n OrderedHookHandlersMap,\n OrderedWorkflowHandlersMap,\n HookInputsWithoutInjectedProps,\n ActionHandlerPayloadsWithoutInjectedProps,\n StateExpiredPayloadsWithoutInjectedProps,\n MessagePayloadsWithoutInjectedProps,\n EventPayloadsWithoutInjectedProps,\n WorkflowPayloadsWithoutInjectedProps,\n InjectedHandlerProps,\n} from './server/types'\nimport { proxyStates, StateProxy } from './state-proxy'\nimport { unprefixTagsOwnedByPlugin } from './tag-prefixer'\nimport { proxyUser, proxyUsers, type UserFinder } from './user-proxy'\n\nexport type PluginImplementationProps<TPlugin extends BasePlugin = BasePlugin> = {\n actions: ActionHandlers<TPlugin>\n}\n\ntype WithMessageContext<T> = T & { user: client.User; conversation: client.Conversation }\n\nconst _hookInputHasMessageContext = <T extends object>(input: T): input is WithMessageContext<T> =>\n 'user' in input && 'conversation' in input\n\ntype Tools<TPlugin extends BasePlugin = BasePlugin> = InjectedHandlerProps<TPlugin>\n\nexport class PluginImplementation<TPlugin extends BasePlugin = BasePlugin> implements BotHandlers<TPlugin> {\n private _runtimeProps: PluginRuntimeProps<TPlugin> | undefined\n\n private _actionHandlers: ActionHandlers<any>\n private _messageHandlers: OrderedMessageHandlersMap = {}\n private _eventHandlers: OrderedEventHandlersMap = {}\n private _stateExpiredHandlers: OrderedStateExpiredHandlersMap = {}\n private _hookHandlers: OrderedHookHandlersMap = {\n before_incoming_event: {},\n before_incoming_message: {},\n before_outgoing_message: {},\n before_outgoing_call_action: {},\n before_incoming_call_action: {},\n after_incoming_event: {},\n after_incoming_message: {},\n after_outgoing_message: {},\n after_outgoing_call_action: {},\n after_incoming_call_action: {},\n }\n private _workflowHandlers: OrderedWorkflowHandlersMap = {\n started: {},\n continued: {},\n timed_out: {},\n }\n\n private _registerOrder: number = 0\n\n public constructor(public readonly props: PluginImplementationProps<TPlugin>) {\n this._actionHandlers = props.actions\n }\n\n public initialize(props: PluginRuntimeProps<TPlugin>): this {\n this._runtimeProps = props\n return this\n }\n\n private get _runtime() {\n if (!this._runtimeProps) {\n throw new Error(\n 'Plugin not correctly initialized. This is likely because you access your plugin config outside of an handler.'\n )\n }\n return this._runtimeProps\n }\n\n private _getTools(client: BotSpecificClient<any>): Tools {\n const { configuration, interfaces, integrations, alias } = this._runtime\n const actions = proxyActions(client, this._runtime) as ActionProxy<BasePlugin>\n const states = proxyStates(client, this._runtime) as StateProxy<BasePlugin>\n const workflows = proxyWorkflows({ client, pluginAlias: this._runtime.alias }) as WorkflowProxy<BasePlugin>\n const events = proxyEvents(client, this._runtime) as EventProxy<BasePlugin>\n const users = proxyUsers({ client, pluginAlias: this._runtime.alias }) as UserFinder<BasePlugin>\n const conversations = proxyConversations({ client, plugin: this._runtime }) as ConversationFinder<BasePlugin>\n const messages = proxyMessages({ client, plugin: this._runtime })\n\n return {\n configuration,\n interfaces,\n integrations,\n actions,\n states,\n alias,\n workflows,\n events,\n users,\n conversations,\n messages,\n }\n }\n\n public get actionHandlers(): BotActionHandlersMap<TPlugin> {\n return new Proxy(\n {},\n {\n get: (_: unknown, actionName: string) => {\n actionName = this._stripAliasPrefix(actionName)\n const handler = this._actionHandlers[actionName]\n if (!handler) {\n return undefined\n }\n return utils.functions.setName(\n (input: utils.types.ValueOf<ActionHandlerPayloadsWithoutInjectedProps<TPlugin>>) =>\n handler({ ...input, ...this._getTools(input.client) }),\n handler.name\n )\n },\n }\n ) as BotActionHandlersMap<TPlugin>\n }\n\n public get messageHandlers(): BotMessageHandlersMap<TPlugin> {\n return new Proxy(\n {},\n {\n get: (_: unknown, messageName: string) => {\n messageName = this._stripAliasPrefix(messageName as string)\n const specificHandlers = messageName === '*' ? [] : (this._messageHandlers[messageName] ?? [])\n const globalHandlers = this._messageHandlers['*'] ?? []\n const allHandlers = utils.arrays\n .unique([...specificHandlers, ...globalHandlers])\n .sort((a, b) => a.order - b.order)\n return allHandlers.map(({ handler }) =>\n utils.functions.setName(\n (input: utils.types.ValueOf<MessagePayloadsWithoutInjectedProps<TPlugin>>) =>\n handler({\n ...input,\n user: proxyUser({\n ...input,\n conversationId: input.conversation.id,\n pluginAlias: this._runtime.alias,\n }),\n message: proxyMessage<BasePlugin>({\n ...input,\n plugin: this._runtime,\n message: input.message,\n }),\n conversation: proxyConversation({\n ...input,\n plugin: this._runtime,\n conversation: input.conversation,\n }),\n ...this._getTools(input.client),\n }),\n handler.name\n )\n )\n },\n }\n ) as BotMessageHandlersMap<TPlugin>\n }\n\n public get eventHandlers(): BotEventHandlersMap<TPlugin> {\n return new Proxy(\n {},\n {\n get: (_: unknown, eventName: string) => {\n eventName = this._stripAliasPrefix(eventName)\n\n // if prop is \"github:prOpened\", include both \"github:prOpened\" and \"creatable:itemCreated\"\n\n const specificHandlers = eventName === '*' ? [] : (this._eventHandlers[eventName] ?? [])\n\n const interfaceHandlers = Object.entries(this._eventHandlers)\n .filter(([e]) => this._eventResolvesTo(e, eventName))\n .flatMap(([, handlers]) => handlers ?? [])\n\n const globalHandlers = this._eventHandlers['*'] ?? []\n const allHandlers = utils.arrays\n .unique([...specificHandlers, ...interfaceHandlers, ...globalHandlers])\n .sort((a, b) => a.order - b.order)\n\n return allHandlers.map(({ handler }) =>\n utils.functions.setName(\n (input: utils.types.ValueOf<EventPayloadsWithoutInjectedProps<TPlugin>>) =>\n handler({ ...input, ...this._getTools(input.client) }),\n handler.name\n )\n )\n },\n }\n ) as BotEventHandlersMap<TPlugin>\n }\n\n public get stateExpiredHandlers(): BotStateExpiredHandlersMap<TPlugin> {\n return new Proxy(\n {},\n {\n get: (_: unknown, stateName: string) => {\n stateName = this._stripAliasPrefix(stateName)\n\n const specificHandlers = stateName === '*' ? [] : (this._stateExpiredHandlers[stateName] ?? [])\n const globalHandlers = this._stateExpiredHandlers['*'] ?? []\n const allHandlers = utils.arrays\n .unique([...specificHandlers, ...globalHandlers])\n .sort((a, b) => a.order - b.order)\n return allHandlers.map(({ handler }) =>\n utils.functions.setName(\n (input: utils.types.ValueOf<StateExpiredPayloadsWithoutInjectedProps<TPlugin>>) =>\n handler({ ...input, ...this._getTools(input.client) }),\n handler.name\n )\n )\n },\n }\n ) as BotStateExpiredHandlersMap<TPlugin>\n }\n\n public get hookHandlers(): BotHookHandlersMap<TPlugin> {\n return new Proxy(\n {},\n {\n get: (_, hookType: utils.types.StringKeys<HookHandlersMap<TPlugin>>) => {\n const hooks = this._hookHandlers[hookType]\n if (!hooks) {\n return undefined\n }\n return new Proxy(\n {},\n {\n get: (_: unknown, hookDataName: string) => {\n hookDataName = this._stripAliasPrefix(hookDataName)\n\n const specificHandlers = hookDataName === '*' ? [] : (hooks[hookDataName] ?? [])\n\n // for \"before_incoming_event\", \"after_incoming_event\" and other event related hooks\n const interfaceHandlers = Object.entries(hooks)\n .filter(([e]) => this._eventResolvesTo(e, hookDataName))\n .flatMap(([, handlers]) => handlers ?? [])\n\n const globalHandlers = hooks['*'] ?? []\n const handlers = utils.arrays\n .unique([...specificHandlers, ...interfaceHandlers, ...globalHandlers])\n .sort((a, b) => a.order - b.order)\n\n return handlers.map(({ handler }) =>\n utils.functions.setName(\n (input: utils.types.ValueOf<HookInputsWithoutInjectedProps<TPlugin>>['*']) => {\n const data = unprefixTagsOwnedByPlugin(input.data, { alias: this._runtime.alias })\n const tools = this._getTools(input.client)\n\n let extraProps: Record<string, any> = {}\n\n // `before_incoming_message` and `after_incoming_message` carry the raw\n // `user` and `conversation` from the incoming event payload; wrap them\n // as proxies so handlers see the same shape as `plugin.on.message(...)`.\n // Other hook types don't carry these fields, so we just forward.\n if (_hookInputHasMessageContext(input)) {\n const user = proxyUser({\n client: input.client,\n user: input.user,\n conversationId: input.conversation.id,\n pluginAlias: this._runtime.alias,\n })\n\n const conversation = proxyConversation({\n client: input.client,\n plugin: this._runtime,\n conversation: input.conversation,\n })\n\n extraProps = { user, conversation }\n }\n\n return handler({ ...input, data, ...extraProps, ...tools })\n },\n handler.name\n )\n )\n },\n }\n )\n },\n }\n ) as BotHookHandlersMap<TPlugin>\n }\n\n public get workflowHandlers(): BotWorkflowHandlersMap<TPlugin> {\n return new Proxy(\n {},\n {\n get: (_, updateType: WorkflowUpdateType) => {\n const handlersOfType = this._workflowHandlers[updateType]\n if (!handlersOfType) {\n return undefined\n }\n\n return new Proxy(\n {},\n {\n get: (_, workflowName: string) => {\n const selfHandlers = handlersOfType[workflowName]?.sort((a, b) => a.order - b.order) ?? []\n\n return selfHandlers.map(({ handler }) =>\n utils.functions.setName(\n async (input: utils.types.ValueOf<WorkflowPayloadsWithoutInjectedProps<TPlugin>>) => {\n let currentWorkflowState = input.workflow\n await handler({\n ...input,\n workflow: wrapWorkflowInstance({\n ...input,\n workflow: currentWorkflowState,\n onWorkflowUpdate(newState) {\n currentWorkflowState = newState\n },\n pluginAlias: this._runtime.alias,\n }),\n ...this._getTools(input.client),\n })\n return currentWorkflowState\n },\n handler.name\n )\n )\n },\n }\n )\n },\n }\n ) as BotWorkflowHandlersMap<TPlugin>\n }\n\n public readonly on = {\n message: <T extends utils.types.StringKeys<MessageHandlers<TPlugin>>>(\n type: T,\n handler: MessageHandlers<TPlugin>[T]\n ): void => {\n this._messageHandlers[type] = utils.arrays.safePush(this._messageHandlers[type], {\n handler: handler as unknown as MessageHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n event: <T extends utils.types.StringKeys<EventHandlers<TPlugin>>>(\n type: T,\n handler: EventHandlers<TPlugin>[T]\n ): void => {\n this._eventHandlers[type] = utils.arrays.safePush(this._eventHandlers[type], {\n handler: handler as unknown as EventHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n stateExpired: <T extends utils.types.StringKeys<StateExpiredHandlers<TPlugin>>>(\n type: T,\n handler: StateExpiredHandlers<TPlugin>[T]\n ): void => {\n this._stateExpiredHandlers[type] = utils.arrays.safePush(this._stateExpiredHandlers[type], {\n handler: handler as unknown as StateExpiredHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n beforeIncomingEvent: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['before_incoming_event']>>(\n type: T,\n handler: HookHandlers<TPlugin>['before_incoming_event'][T]\n ) => {\n this._hookHandlers.before_incoming_event[type] = utils.arrays.safePush(\n this._hookHandlers.before_incoming_event[type],\n {\n handler: handler as unknown as HookHandlers<any>['before_incoming_event'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n beforeIncomingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['before_incoming_message']>>(\n type: T,\n handler: HookHandlers<TPlugin>['before_incoming_message'][T]\n ) => {\n this._hookHandlers.before_incoming_message[type] = utils.arrays.safePush(\n this._hookHandlers.before_incoming_message[type],\n {\n handler: handler as unknown as HookHandlers<any>['before_incoming_message'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n beforeOutgoingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['before_outgoing_message']>>(\n type: T,\n handler: HookHandlers<TPlugin>['before_outgoing_message'][T]\n ) => {\n this._hookHandlers.before_outgoing_message[type] = utils.arrays.safePush(\n this._hookHandlers.before_outgoing_message[type],\n {\n handler: handler as unknown as HookHandlers<any>['before_outgoing_message'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n beforeOutgoingCallAction: <\n T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['before_outgoing_call_action']>,\n >(\n type: T,\n handler: HookHandlers<TPlugin>['before_outgoing_call_action'][T]\n ) => {\n this._hookHandlers.before_outgoing_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.before_outgoing_call_action[type],\n {\n handler: handler as unknown as HookHandlers<any>['before_outgoing_call_action'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n beforeIncomingCallAction: <\n T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['before_incoming_call_action']>,\n >(\n type: T,\n handler: HookHandlers<TPlugin>['before_incoming_call_action'][T]\n ) => {\n this._hookHandlers.before_incoming_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.before_incoming_call_action[type],\n {\n handler: handler as unknown as HookHandlers<any>['before_incoming_call_action'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n afterIncomingEvent: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['after_incoming_event']>>(\n type: T,\n handler: HookHandlers<TPlugin>['after_incoming_event'][T]\n ) => {\n this._hookHandlers.after_incoming_event[type] = utils.arrays.safePush(\n this._hookHandlers.after_incoming_event[type],\n {\n handler: handler as unknown as HookHandlers<any>['after_incoming_event'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n afterIncomingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['after_incoming_message']>>(\n type: T,\n handler: HookHandlers<TPlugin>['after_incoming_message'][T]\n ) => {\n this._hookHandlers.after_incoming_message[type] = utils.arrays.safePush(\n this._hookHandlers.after_incoming_message[type],\n {\n handler: handler as unknown as HookHandlers<any>['after_incoming_message'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n afterOutgoingMessage: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['after_outgoing_message']>>(\n type: T,\n handler: HookHandlers<TPlugin>['after_outgoing_message'][T]\n ) => {\n this._hookHandlers.after_outgoing_message[type] = utils.arrays.safePush(\n this._hookHandlers.after_outgoing_message[type],\n {\n handler: handler as unknown as HookHandlers<any>['after_outgoing_message'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n afterOutgoingCallAction: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['after_outgoing_call_action']>>(\n type: T,\n handler: HookHandlers<TPlugin>['after_outgoing_call_action'][T]\n ) => {\n this._hookHandlers.after_outgoing_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.after_outgoing_call_action[type],\n {\n handler: handler as unknown as HookHandlers<any>['after_outgoing_call_action'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n afterIncomingCallAction: <T extends utils.types.StringKeys<HookHandlersMap<TPlugin>['after_incoming_call_action']>>(\n type: T,\n handler: HookHandlers<TPlugin>['after_incoming_call_action'][T]\n ) => {\n this._hookHandlers.after_incoming_call_action[type] = utils.arrays.safePush(\n this._hookHandlers.after_incoming_call_action[type],\n {\n handler: handler as unknown as HookHandlers<any>['after_incoming_call_action'][string],\n order: this._registerOrder++,\n }\n )\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflowStart: <T extends utils.types.StringKeys<WorkflowHandlersMap<TPlugin>['started']>>(\n type: T,\n handler: WorkflowHandlers<TPlugin>[T]\n ): void => {\n this._workflowHandlers.started[type] = utils.arrays.safePush(this._workflowHandlers.started[type], {\n handler: handler as unknown as WorkflowHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflowContinue: <T extends utils.types.StringKeys<WorkflowHandlersMap<TPlugin>['continued']>>(\n type: T,\n handler: WorkflowHandlers<TPlugin>[T]\n ): void => {\n this._workflowHandlers.continued[type] = utils.arrays.safePush(this._workflowHandlers.continued[type], {\n handler: handler as unknown as WorkflowHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflowTimeout: <T extends utils.types.StringKeys<WorkflowHandlersMap<TPlugin>['timed_out']>>(\n type: T,\n handler: WorkflowHandlers<TPlugin>[T]\n ): void => {\n this._workflowHandlers.timed_out[type] = utils.arrays.safePush(this._workflowHandlers.timed_out[type], {\n handler: handler as unknown as WorkflowHandlers<any>[string],\n order: this._registerOrder++,\n })\n },\n }\n\n /**\n * checks if the actual event resolves to the target event\n */\n private _eventResolvesTo = (actualEventRef: string, targetEventRef: string) => {\n const NAMESPACE_SEPARATOR = ':'\n const [pluginIfaceOrIntAlias, ifaceOrIntEvent] = actualEventRef.split(NAMESPACE_SEPARATOR)\n if (!pluginIfaceOrIntAlias || !ifaceOrIntEvent) {\n return false\n }\n\n // match '<plugin-iface-alias>:<iface-event>' => '<bot-int-alias>:<int-event>':\n const iface = this._runtime.interfaces[pluginIfaceOrIntAlias]\n\n if (\n iface &&\n targetEventRef === `${iface.integrationAlias}${NAMESPACE_SEPARATOR}${iface?.events?.[ifaceOrIntEvent]?.name}`\n ) {\n return true\n }\n\n const integration = this._runtime.integrations[pluginIfaceOrIntAlias]\n\n // match '<plugin-int-alias>:<int-event>' => '<bot-int-alias>:<int-event>':\n if (integration && targetEventRef === `${integration.integrationAlias}${NAMESPACE_SEPARATOR}${ifaceOrIntEvent}`) {\n return true\n }\n\n return false\n }\n\n private _stripAliasPrefix = (prop: string) => {\n const { alias } = this._runtime\n if (!alias) {\n return prop\n }\n const prefix = `${alias}#`\n return prop.startsWith(prefix) ? prop.slice(prefix.length) : prop\n }\n}\n", "export * from './proxy'\nexport * from './types'\n", "import { Client } from '@holocronlab/botruntime-client'\nimport { BotSpecificClient, EnumerateActions } from '../../bot'\nimport type * as typeUtils from '../../utils/type-utils'\nimport { BasePlugin, PluginRuntimeProps } from '../common'\nimport { ActionProxy } from './types'\n\nexport const proxyActions = <TPlugin extends BasePlugin>(\n client: BotSpecificClient<TPlugin> | Client,\n props: PluginRuntimeProps<TPlugin>\n): ActionProxy<TPlugin> =>\n new Proxy<Partial<ActionProxy<TPlugin>>>(\n {},\n {\n get: (_target, integrationOrInterfaceAlias: string) =>\n new Proxy(\n {},\n {\n get: (_target, actionName: string) => (input: Record<string, any>) => {\n const integrationAlias = (\n props.integrations[integrationOrInterfaceAlias] ?? props.interfaces[integrationOrInterfaceAlias]\n )?.integrationAlias\n const actualActionName =\n props.interfaces[integrationOrInterfaceAlias]?.actions?.[actionName]?.name ?? actionName\n\n return client\n .callAction({\n type: `${integrationAlias}:${actualActionName}` as typeUtils.Cast<\n keyof EnumerateActions<TPlugin>,\n string\n >,\n input,\n })\n .then((res) => res.output)\n },\n }\n ),\n }\n ) as ActionProxy<TPlugin>\n", "import * as utils from '../../utils/type-utils'\nimport { BasePlugin } from '../common'\n\ntype IntegrationActionProxy<TPlugin extends BasePlugin> = {\n [TIntegrationName in keyof TPlugin['integrations']]: {\n [TActionName in keyof TPlugin['integrations'][TIntegrationName]['actions']]: (\n input: TPlugin['integrations'][TIntegrationName]['actions'][TActionName]['input']\n ) => Promise<TPlugin['integrations'][TIntegrationName]['actions'][TActionName]['output']>\n }\n}\n\ntype InterfacesActionProxy<TPlugin extends BasePlugin> = {\n [TInterfaceName in keyof TPlugin['interfaces']]: {\n [TActionName in keyof TPlugin['interfaces'][TInterfaceName]['actions']]: (\n input: TPlugin['interfaces'][TInterfaceName]['actions'][TActionName]['input']\n ) => Promise<TPlugin['interfaces'][TInterfaceName]['actions'][TActionName]['output']>\n }\n}\n\n// TODO: add self bot actions in proxy\n\nexport type ActionProxy<TPlugin extends BasePlugin> = utils.Normalize<\n IntegrationActionProxy<TPlugin> & InterfacesActionProxy<TPlugin>\n>\n", "export { proxyConversation, proxyConversations } from './proxy'\nexport { ActionableConversation, ConversationFinder } from './types'\n", "import type * as client from '@holocronlab/botruntime-client'\nimport type { BotSpecificClient } from '../../bot'\n\nimport type { commonTypes } from '../../common'\nimport { type AsyncCollection, createAsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\nimport type { BasePlugin, PluginRuntimeProps } from '../common'\nimport { proxyMessage } from '../message-proxy/proxy'\nimport { prefixTagsIfNeeded, unprefixTagsOwnedByPlugin } from '../tag-prefixer'\nimport { proxyUser } from '../user-proxy'\nimport type { ActionableConversation, ConversationFinder } from './types'\n\nexport const proxyConversations = <TPlugin extends BasePlugin>(props: {\n client: BotSpecificClient<TPlugin> | client.Client\n plugin?: PluginRuntimeProps<TPlugin>\n}): ConversationFinder<TPlugin> =>\n new Proxy(\n {},\n {\n get: (_target, interfaceOrIntegrationAlias: string) =>\n new Proxy(\n {},\n {\n get: (_target2, channel: string) => {\n return {\n list(listProps): any {\n const integrationName =\n props.plugin?.interfaces[interfaceOrIntegrationAlias]?.integrationAlias ??\n props.plugin?.integrations[interfaceOrIntegrationAlias]?.integrationAlias\n\n const actualChannelName =\n props.plugin?.interfaces[interfaceOrIntegrationAlias]?.channels?.[channel]?.name ?? channel\n\n return createAsyncCollection(({ nextToken }) =>\n props.client\n .listConversations({\n ...prefixTagsIfNeeded(listProps ?? {}, { alias: props.plugin?.alias }),\n channel: actualChannelName === '*' ? undefined : actualChannelName,\n integrationName: integrationName === '*' ? undefined : integrationName,\n nextToken,\n })\n .then(({ meta, conversations }) => ({\n meta,\n items: conversations.map((conversation) => proxyConversation({ ...props, conversation })),\n }))\n ) satisfies AsyncCollection<ActionableConversation<TPlugin>>\n },\n\n async getById({ id }): Promise<any> {\n const response = await props.client.getConversation({ id })\n return proxyConversation({\n ...props,\n conversation: response.conversation,\n }) satisfies ActionableConversation<TPlugin>\n },\n } satisfies ConversationFinder<TPlugin>['*']['*']\n },\n }\n ),\n }\n ) as ConversationFinder<TPlugin>\n\nexport const proxyConversation = <TPlugin extends BasePlugin>(props: {\n client: BotSpecificClient<TPlugin> | client.Client\n plugin?: PluginRuntimeProps<TPlugin>\n conversation: client.Conversation\n}): ActionableConversation<TPlugin> => {\n // Client.GetMessageResponse conflicts with MessageResponse<TPlugin>:\n const vanillaClient = props.client as client.Client\n\n return {\n ...(unprefixTagsOwnedByPlugin(props.conversation, { alias: props.plugin?.alias }) as typeUtils.Merge<\n client.Conversation,\n { tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['message']['tags']>> }\n >),\n\n async delete() {\n await vanillaClient.deleteConversation({ id: props.conversation.id })\n },\n\n async update(data) {\n const { conversation: updatedConversation } = await vanillaClient.updateConversation({\n ...prefixTagsIfNeeded(data, { alias: props.plugin?.alias }),\n id: props.conversation.id,\n })\n\n return proxyConversation({ ...props, conversation: updatedConversation })\n },\n\n async getMessage({ id }) {\n const response = await vanillaClient.getMessage({ id })\n return proxyMessage({ ...props, message: response.message })\n },\n\n async getOrCreateMessage(data) {\n const { message } = await vanillaClient.getOrCreateMessage({\n ...prefixTagsIfNeeded(data, { alias: props.plugin?.alias }),\n conversationId: props.conversation.id,\n })\n\n return proxyMessage({ ...props, message })\n },\n\n async createMessage(data) {\n const { message } = await vanillaClient.createMessage({\n ...prefixTagsIfNeeded(data, { alias: props.plugin?.alias }),\n conversationId: props.conversation.id,\n })\n\n return proxyMessage({ ...props, message })\n },\n\n listMessages(listProps) {\n return createAsyncCollection(({ nextToken }) =>\n vanillaClient\n .listMessages({\n ...prefixTagsIfNeeded(listProps ?? {}, { alias: props.plugin?.alias }),\n conversationId: props.conversation.id,\n nextToken,\n })\n .then(({ meta, messages }) => ({\n meta,\n items: messages.map((message) => proxyMessage({ ...props, message })),\n }))\n )\n },\n\n listParticipants() {\n return createAsyncCollection(({ nextToken }) =>\n vanillaClient\n .listParticipants({\n id: props.conversation.id,\n nextToken,\n })\n .then(({ meta, participants }) => ({\n meta,\n items: participants.map((user) =>\n proxyUser<TPlugin, string>({ ...props, user, conversationId: props.conversation.id })\n ),\n }))\n )\n },\n }\n}\n", "import type * as client from '@holocronlab/botruntime-client'\nimport type { BotSpecificClient } from '../../bot'\nimport type { commonTypes } from '../../common'\nimport { createAsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\n\nimport type { BasePlugin, PluginRuntimeProps } from '../common'\nimport { prefixTagsIfNeeded, unprefixTagsOwnedByPlugin } from '../tag-prefixer'\nimport type { ActionableMessage, AnyPluginMessage, MessageFinder } from './types'\n\nexport const proxyMessages = <TPlugin extends BasePlugin>(props: {\n client: BotSpecificClient<TPlugin> | client.Client\n plugin?: PluginRuntimeProps<TPlugin>\n}): MessageFinder<TPlugin> => ({\n async getById({ id }) {\n const response = await (props.client.getMessage({ id }) as Promise<client.ClientOutputs['getMessage']>)\n return proxyMessage({ ...props, message: response.message as client.Message })\n },\n\n list(listProps) {\n return createAsyncCollection(({ nextToken }) =>\n props.client\n .listMessages({\n ...prefixTagsIfNeeded(listProps ?? {}, { alias: props.plugin?.alias }),\n nextToken,\n })\n .then(({ meta, messages }) => ({\n meta,\n items: messages.map((message) => proxyMessage({ ...props, message })),\n }))\n )\n },\n})\n\nexport const proxyMessage = <\n TPlugin extends BasePlugin,\n TMessage extends client.Message | AnyPluginMessage<TPlugin> = AnyPluginMessage<TPlugin>,\n>(props: {\n client: BotSpecificClient<TPlugin> | client.Client\n plugin?: PluginRuntimeProps<TPlugin>\n message: TMessage\n}): ActionableMessage<TPlugin, TMessage> => ({\n ...(unprefixTagsOwnedByPlugin(props.message, { alias: props.plugin?.alias }) as unknown as typeUtils.Merge<\n TMessage,\n {\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['conversation']['tags']>>\n }\n >),\n\n async delete() {\n await props.client.deleteMessage({ id: props.message.id })\n },\n\n async update(data) {\n const { message: updatedMessage } = await props.client.updateMessage({\n ...prefixTagsIfNeeded(data, { alias: props.plugin?.alias }),\n id: props.message.id,\n })\n\n return proxyMessage({ ...props, message: updatedMessage as TMessage })\n },\n})\n", "export { proxyUsers, proxyUser } from './proxy'\nexport { UserFinder, ActionableUser } from './types'\n", "import type * as client from '@holocronlab/botruntime-client'\nimport type { BotSpecificClient } from '../../bot'\nimport type { commonTypes } from '../../common'\nimport { createAsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\nimport type { BasePlugin } from '../common'\nimport { prefixTagsIfNeeded, unprefixTagsOwnedByPlugin } from '../tag-prefixer'\nimport type {\n UserFinder,\n ActionableUser,\n BaseActionableUser,\n ActionableUserWithoutConversation,\n ActionableUserWithConversation,\n} from './types'\n\nexport const proxyUsers = <TPlugin extends BasePlugin>(props: {\n client: BotSpecificClient<TPlugin> | client.Client\n pluginAlias?: string\n}): UserFinder<TPlugin> => ({\n list(listProps) {\n return createAsyncCollection(({ nextToken }) =>\n props.client\n .listUsers({\n ...prefixTagsIfNeeded(listProps ?? {}, { alias: props.pluginAlias }),\n nextToken,\n })\n .then(({ meta, users }) => ({\n meta,\n items: users.map((user) => proxyUser({ ...props, conversationId: listProps?.conversationId, user })),\n }))\n )\n },\n\n async getById({ id }) {\n const response = await props.client.getUser({ id })\n return proxyUser({ ...props, user: response.user, conversationId: undefined })\n },\n})\n\nexport const proxyUser = <TPlugin extends BasePlugin, TConversationId extends string | undefined>(props: {\n client: BotSpecificClient<TPlugin> | client.Client\n conversationId?: TConversationId\n pluginAlias?: string\n user: client.User\n}): ActionableUser<TPlugin, TConversationId> => {\n const baseActionableUser = {\n ...(unprefixTagsOwnedByPlugin(props.user, { alias: props.pluginAlias }) as typeUtils.Merge<\n client.User,\n {\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['user']['tags']>>\n }\n >),\n\n async update(data) {\n const { user: updatedUser } = await props.client.updateUser({\n ...prefixTagsIfNeeded(data, { alias: props.pluginAlias }),\n id: props.user.id,\n })\n\n return proxyUser({ ...props, user: updatedUser })\n },\n } satisfies BaseActionableUser<TPlugin, TConversationId>\n\n return (\n props.conversationId\n ? ({\n ...baseActionableUser,\n async removeFromConversation() {\n await props.client.removeParticipant({ id: props.conversationId!, userId: props.user.id })\n\n return proxyUser({\n ...props,\n conversationId: undefined,\n })\n },\n } satisfies ActionableUserWithConversation<TPlugin, TConversationId>)\n : ({\n ...baseActionableUser,\n async addToConversation({ conversationId }) {\n const { participant } = await props.client.addParticipant({ id: conversationId, userId: props.user.id })\n\n return proxyUser({\n ...props,\n user: participant,\n conversationId,\n })\n },\n } satisfies ActionableUserWithoutConversation<TPlugin, TConversationId>)\n ) as ActionableUser<TPlugin, TConversationId>\n}\n", "import { ClientInputs, User } from '@holocronlab/botruntime-client'\nimport type { commonTypes } from '../../common'\nimport type { AsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\nimport { BasePlugin } from '../common'\n\nexport type UserFinder<TPlugin extends BasePlugin> = {\n list: <TConversationId extends string | undefined = undefined>(props?: {\n conversationId?: TConversationId\n tags?: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['user']['tags']>>\n }) => AsyncCollection<ActionableUser<TPlugin, TConversationId>>\n getById: (props: { id: string }) => Promise<ActionableUser<TPlugin>>\n}\n\nexport type ActionableUser<\n TPlugin extends BasePlugin,\n TConversationId extends string | undefined = undefined,\n> = TConversationId extends string\n ? ActionableUserWithConversation<TPlugin, TConversationId>\n : ActionableUserWithoutConversation<TPlugin, TConversationId>\n\nexport type ActionableUserWithConversation<\n TPlugin extends BasePlugin,\n TConversationId extends string | undefined,\n> = BaseActionableUser<TPlugin, TConversationId> & {\n removeFromConversation: () => Promise<ActionableUser<TPlugin, undefined>>\n}\n\nexport type ActionableUserWithoutConversation<\n TPlugin extends BasePlugin,\n TConversationId extends string | undefined,\n> = BaseActionableUser<TPlugin, TConversationId> & {\n addToConversation: <TNewConversationId extends string>(props: {\n conversationId: TNewConversationId\n }) => Promise<ActionableUser<TPlugin, TNewConversationId>>\n}\n\nexport type BaseActionableUser<\n TPlugin extends BasePlugin,\n TConversationId extends string | undefined = undefined,\n> = typeUtils.Merge<\n User,\n {\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['user']['tags']>>\n }\n> & {\n update: (\n props: typeUtils.Merge<\n Omit<ClientInputs['updateUser'], 'id'>,\n {\n tags?: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['user']['tags']>>\n }\n >\n ) => Promise<ActionableUser<TPlugin, TConversationId>>\n}\n", "import type * as client from '@holocronlab/botruntime-client'\nimport type { commonTypes } from '../../common'\nimport type { AsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\nimport type { BasePlugin } from '../common'\nimport type * as messageProxy from '../message-proxy/types'\nimport type * as userProxy from '../user-proxy/types'\n\nexport type ConversationFinder<TPlugin extends BasePlugin> = _ConversationFinderForDepType<TPlugin, 'interfaces'> &\n _ConversationFinderForDepType<TPlugin, 'integrations'>\n\ntype _ConversationFinderForDepType<TPlugin extends BasePlugin, TDepType extends 'interfaces' | 'integrations'> = {\n [TAlias in typeUtils.StringKeys<TPlugin[TDepType]> | '*']: {\n [TChannelName in TAlias extends '*'\n ? '*'\n : typeUtils.StringKeys<TPlugin[TDepType][TAlias]['channels']> | '*']: _ConversationFinderForChannel<\n TPlugin,\n TChannelName,\n _MessageForChannel<\n TPlugin,\n TDepType,\n TAlias extends '*' ? string : TAlias,\n TChannelName extends '*' ? string : TChannelName\n >\n >\n }\n}\n\ntype _ConversationFinderForChannel<\n TPlugin extends BasePlugin,\n TChannelName extends string,\n TMessage extends client.Message,\n> = {\n list: (\n props?: typeUtils.Merge<\n Omit<client.ClientInputs['listConversations'], 'integrationName' | 'channel' | 'nextToken'>,\n { tags?: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['conversation']['tags']>> }\n >\n ) => AsyncCollection<ActionableConversation<TPlugin, TChannelName extends '*' ? string : TChannelName, TMessage>>\n getById: (props: {\n id: string\n }) => Promise<ActionableConversation<TPlugin, TChannelName extends '*' ? string : TChannelName, TMessage>>\n}\n\ntype _MessageForChannel<\n TPlugin extends BasePlugin,\n TDepType extends 'interfaces' | 'integrations',\n TAlias extends keyof TPlugin[TDepType],\n TChannelName extends keyof TPlugin[TDepType][TAlias]['channels'],\n> = _FallbackWhenNever<\n Omit<client.Message, 'type' | 'payload' | 'tags'> &\n typeUtils.ValueOf<{\n [TMessageName in typeUtils.StringKeys<TPlugin[TDepType][TAlias]['channels'][TChannelName]['messages']>]: {\n type: TMessageName\n payload: TPlugin[TDepType][TAlias]['channels'][TChannelName]['messages'][TMessageName]\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['message']['tags']>>\n }\n }>,\n typeUtils.Merge<client.Message, { tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['message']['tags']>> }>\n>\n\ntype _FallbackWhenNever<T, TFallback> = [T] extends [never] ? TFallback : T\n\nexport type ActionableConversation<\n TPlugin extends BasePlugin,\n TChannelName extends string = string,\n TMessage extends client.Message = client.Message,\n> = typeUtils.Merge<\n client.Conversation,\n {\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['conversation']['tags']>>\n channel: TChannelName\n }\n> & {\n delete: () => Promise<void>\n update: (\n props: typeUtils.Merge<\n Omit<client.ClientInputs['updateConversation'], 'id'>,\n { tags?: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['conversation']['tags']>> }\n >\n ) => Promise<ActionableConversation<TPlugin, TChannelName, TMessage>>\n getMessage: (props: { id: string }) => Promise<messageProxy.ActionableMessage<TPlugin, TMessage>>\n getOrCreateMessage: (\n props: Omit<client.ClientInputs['getOrCreateMessage'], 'conversationId' | 'tags' | 'type' | 'payload'> &\n typeUtils.DistributivePick<TMessage, 'type' | 'payload'> & {\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['message']['tags']>>\n }\n ) => Promise<messageProxy.ActionableMessage<TPlugin, TMessage>>\n createMessage: (\n props: Omit<client.ClientInputs['createMessage'], 'conversationId' | 'tags' | 'type' | 'payload'> &\n typeUtils.DistributivePick<TMessage, 'type' | 'payload'> & {\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['message']['tags']>>\n }\n ) => Promise<messageProxy.ActionableMessage<TPlugin, TMessage>>\n listMessages: (\n props?: typeUtils.Merge<\n Omit<client.ClientInputs['listMessages'], 'conversationId' | 'nextToken'>,\n { tags?: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['message']['tags']>> }\n >\n ) => AsyncCollection<messageProxy.ActionableMessage<TPlugin, TMessage>>\n listParticipants: () => AsyncCollection<userProxy.ActionableUser<TPlugin, string>>\n}\n", "export * from './proxy'\nexport * from './types'\n", "import type * as client from '@holocronlab/botruntime-client'\nimport { BotSpecificClient } from '../../bot'\nimport * as consts from '../../consts'\nimport { type AsyncCollection, createAsyncCollection } from '../../utils/api-paging-utils'\nimport { BasePlugin, PluginRuntimeProps } from '../common'\nimport { EventProxy, EventSchedule, EventSender } from './types'\n\ntype _EventSenderProps = {\n client: BotSpecificClient<any> | client.Client\n eventName: string\n conversationId?: string\n userId?: string\n messageId?: string\n}\n\nclass _EventSender implements EventSender<object> {\n public constructor(private _props: _EventSenderProps) {}\n\n public async emit(eventPayload: object): Promise<client.Event> {\n const { conversationId, userId, messageId } = this._props\n const { event } = await this._props.client.createEvent({\n type: this._props.eventName,\n payload: eventPayload,\n conversationId,\n userId,\n messageId,\n })\n return event\n }\n\n public async schedule(eventPayload: object, schedule: EventSchedule): Promise<client.Event> {\n const { conversationId, userId, messageId } = this._props\n const { event } = await this._props.client.createEvent({\n type: this._props.eventName,\n payload: eventPayload,\n conversationId,\n userId,\n messageId,\n schedule,\n })\n return event\n }\n\n public withConversationId(conversationId: string): this {\n return new _EventSender({\n ...this._props,\n conversationId,\n }) as this\n }\n\n public withUserId(userId: string): this {\n return new _EventSender({\n ...this._props,\n userId,\n }) as this\n }\n\n public withMessageId(messageId: string): this {\n return new _EventSender({\n ...this._props,\n messageId,\n }) as this\n }\n\n public async getById(props: { id: string }): Promise<client.Event> {\n const response = await this._props.client.getEvent({ id: props.id })\n return response.event\n }\n\n public list(\n props?: Omit<client.ClientInputs['listEvents'], 'type' | 'nextToken' | 'conversationId' | 'messageId' | 'userId'>\n ): AsyncCollection<client.Event> {\n return createAsyncCollection(({ nextToken }) =>\n this._props.client\n .listEvents({\n ...props,\n type: this._props.eventName,\n conversationId: this._props.conversationId,\n userId: this._props.userId,\n messageId: this._props.messageId,\n nextToken,\n })\n .then(({ meta, events }) => ({\n meta,\n items: events,\n }))\n )\n }\n}\n\nexport const proxyEvents = <TPlugin extends BasePlugin>(\n client: BotSpecificClient<TPlugin> | client.Client,\n props: PluginRuntimeProps<TPlugin>\n): EventProxy<TPlugin> =>\n new Proxy(\n {},\n {\n get: (_target, eventName: string) => {\n const actualName =\n props.alias !== undefined ? `${props.alias}${consts.PLUGIN_PREFIX_SEPARATOR}${eventName}` : eventName\n return new _EventSender({\n client,\n eventName: actualName,\n })\n },\n }\n ) as EventProxy<TPlugin>\n", "import type * as client from '@holocronlab/botruntime-client'\nimport type { AsyncCollection } from '../../utils/api-paging-utils'\nimport type * as utils from '../../utils/type-utils'\nimport type { BasePlugin } from '../common'\n\nexport type EventSchedule = NonNullable<client.ClientInputs['createEvent']['schedule']>\nexport type EventSender<TPayload> = {\n emit: (event: TPayload) => Promise<client.Event>\n schedule: (event: TPayload, schedule: EventSchedule) => Promise<client.Event>\n withConversationId: (conversationId: string) => EventSender<TPayload>\n withUserId: (userId: string) => EventSender<TPayload>\n withMessageId: (messageId: string) => EventSender<TPayload>\n list: (\n props?: Omit<client.ClientInputs['listEvents'], 'type' | 'nextToken' | 'conversationId' | 'messageId' | 'userId'>\n ) => AsyncCollection<client.Event>\n getById: (props: { id: string }) => Promise<client.Event>\n}\n\nexport type EventProxy<TPlugin extends BasePlugin> = utils.Normalize<{\n [TEventName in keyof TPlugin['events']]: EventSender<TPlugin['events'][TEventName]>\n}>\n", "export { proxyMessage, proxyMessages } from './proxy'\nexport { ActionableMessage, MessageFinder } from './types'\n", "import type * as client from '@holocronlab/botruntime-client'\nimport type { GetMessages } from '../../bot'\nimport type { commonTypes } from '../../common'\nimport type { AsyncCollection } from '../../utils/api-paging-utils'\nimport type * as typeUtils from '../../utils/type-utils'\nimport type { BasePlugin } from '../common'\nimport type { IncomingMessages } from '../server'\n\nexport type MessageFinder<TPlugin extends BasePlugin> = {\n list: (props?: Omit<client.ClientInputs['listMessages'], 'nextToken'>) => AsyncCollection<ActionableMessage<TPlugin>>\n getById: (props: { id: string }) => Promise<ActionableMessage<TPlugin>>\n}\n\nexport type AnyPluginMessage<TPlugin extends BasePlugin> =\n | IncomingMessages<TPlugin>['*']\n | IncomingMessages<TPlugin>[typeUtils.StringKeys<GetMessages<TPlugin>>]\n\nexport type ActionableMessage<\n TPlugin extends BasePlugin,\n TMessage extends client.Message | AnyPluginMessage<TPlugin> = client.Message,\n> = typeUtils.Merge<\n TMessage,\n {\n tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['conversation']['tags']>>\n }\n> & {\n delete: () => Promise<void>\n update: (\n props: typeUtils.Merge<\n Omit<client.ClientInputs['updateMessage'], 'id'>,\n { tags: commonTypes.ToTags<typeUtils.StringKeys<TPlugin['message']['tags']>> }\n >\n ) => Promise<ActionableMessage<TPlugin, TMessage>>\n}\n", "export * from './proxy'\nexport * from './types'\n", "import { Client } from '@holocronlab/botruntime-client'\nimport { BotSpecificClient, StateType } from '../../bot'\nimport * as consts from '../../consts'\nimport { BasePlugin, PluginRuntimeProps } from '../common'\nimport { StateProxy, StateRepo } from './types'\n\nclass _StateRepo<TPayload extends object> implements StateRepo<TPayload> {\n public constructor(\n private _client: BotSpecificClient<any> | Client,\n private _stateType: StateType,\n private _stateName: string\n ) {}\n\n public async get(id: string): Promise<TPayload> {\n return await this._client\n .getState({\n type: this._stateType,\n name: this._stateName,\n id,\n })\n .then((r) => r.state.payload)\n }\n\n public async set(id: string, payload: TPayload, options?: { expiryMs: number }): Promise<void> {\n await this._client.setState({\n type: this._stateType,\n name: this._stateName,\n id,\n payload,\n expiry: options?.expiryMs,\n })\n return\n }\n\n public async getOrSet(id: string, payload: TPayload, options?: { expiryMs: number }): Promise<TPayload> {\n return await this._client\n .getOrSetState({\n type: this._stateType,\n name: this._stateName,\n id,\n payload,\n expiry: options?.expiryMs,\n })\n .then((r) => r.state.payload)\n }\n\n public async delete(id: string): Promise<void> {\n await this._client.setState({\n type: this._stateType,\n name: this._stateName,\n id,\n payload: null,\n })\n return\n }\n\n public async patch(id: string, payload: Partial<TPayload>): Promise<void> {\n await this._client.patchState({\n type: this._stateType,\n name: this._stateName,\n id,\n payload,\n })\n return\n }\n}\n\nexport const proxyStates = <TPlugin extends BasePlugin>(\n client: BotSpecificClient<TPlugin> | Client,\n props: PluginRuntimeProps<TPlugin>\n): StateProxy<TPlugin> =>\n new Proxy<Partial<StateProxy<TPlugin>>>(\n {},\n {\n get: (_target, stateType: StateType) => {\n return new Proxy(\n {},\n {\n get: (_target, stateName: string) => {\n const actualName =\n props.alias !== undefined ? `${props.alias}${consts.PLUGIN_PREFIX_SEPARATOR}${stateName}` : stateName\n return new _StateRepo(client, stateType, actualName)\n },\n }\n )\n },\n }\n ) as StateProxy<TPlugin>\n", "import * as bot from '../../bot'\nimport * as utils from '../../utils/type-utils'\nimport { BasePlugin } from '../common'\n\ntype _EnumerateStates<TPlugin extends BasePlugin> = {\n [TStateName in keyof TPlugin['states']]: TPlugin['states'][TStateName] & { name: TStateName }\n}\n\ntype _FilterStates<TPlugin extends BasePlugin, TStateType extends bot.StateType> = Extract<\n utils.ValueOf<_EnumerateStates<TPlugin>>,\n { type: TStateType }\n>['name']\n\ntype _GetStatePayload<\n TPlugin extends BasePlugin,\n TStateName extends string | number | symbol,\n> = TPlugin['states'][utils.Cast<TStateName, keyof TPlugin['states']>]['payload']\n\nexport type StateRepo<TPayload> = {\n get: (id: string) => Promise<TPayload>\n set: (id: string, payload: TPayload, options?: { expiryMs: number }) => Promise<void>\n getOrSet: (id: string, payload: TPayload, options?: { expiryMs: number }) => Promise<TPayload>\n delete: (id: string) => Promise<void>\n patch: (id: string, payload: Partial<TPayload>) => Promise<void>\n}\n\nexport type StateProxy<TPlugin extends BasePlugin> = utils.Normalize<{\n [TStateType in bot.StateType]: {\n [TStateName in _FilterStates<TPlugin, TStateType>]: StateRepo<_GetStatePayload<TPlugin, TStateName>>\n }\n}>\n", "export * from './types'\n", "import * as client from '@holocronlab/botruntime-client'\nimport * as bot from '../../bot'\nimport * as workflowProxy from '../../bot/workflow-proxy'\nimport * as utils from '../../utils/type-utils'\nimport * as actionProxy from '../action-proxy'\nimport * as common from '../common'\nimport * as conversationProxy from '../conversation-proxy'\nimport * as eventProxy from '../event-proxy'\nimport * as messageProxy from '../message-proxy'\nimport * as stateProxy from '../state-proxy'\nimport * as userProxy from '../user-proxy'\n\ntype EnumeratePluginEvents<TPlugin extends common.BasePlugin> = bot.EnumerateEvents<TPlugin> &\n common.EnumerateInterfaceEvents<TPlugin>\n\ntype _IncomingEvents<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<EnumeratePluginEvents<TPlugin>>]: utils.Merge<\n client.Event,\n { type: K; payload: EnumeratePluginEvents<TPlugin>[K] }\n >\n}\n\ntype _IncomingMessages<TPlugin extends common.BasePlugin> = {\n // TODO: use bot definiton message property to infer allowed tags\n [K in utils.StringKeys<bot.GetMessages<TPlugin>>]: utils.Merge<\n //\n client.Message,\n { type: Extract<K, string>; payload: bot.GetMessages<TPlugin>[K] }\n >\n}\n\ntype _IncomingStates<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<bot.EnumerateStates<TPlugin>>]: utils.Merge<\n client.State,\n { name: K; payload: bot.EnumerateStates<TPlugin>[K] }\n >\n}\n\ntype _OutgoingMessageRequests<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<bot.GetMessages<TPlugin>>]: utils.Merge<\n client.ClientInputs['createMessage'],\n { type: K; payload: bot.GetMessages<TPlugin>[K] }\n >\n}\n\ntype _OutgoingMessageResponses<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<bot.GetMessages<TPlugin>>]: utils.Merge<\n client.ClientOutputs['createMessage'],\n {\n message: utils.Merge<client.Message, { type: K; payload: bot.GetMessages<TPlugin>[K] }>\n }\n >\n}\n\ntype _OutgoingCallActionRequests<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<bot.EnumerateActionInputs<TPlugin>>]: utils.Merge<\n client.ClientInputs['callAction'],\n { type: K; input: bot.EnumerateActionInputs<TPlugin>[K] }\n >\n}\n\ntype _OutgoingCallActionResponses<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<bot.EnumerateActionOutputs<TPlugin>>]: utils.Merge<\n client.ClientOutputs['callAction'],\n { type: K; output: bot.EnumerateActionOutputs<TPlugin>[K] }\n >\n}\n\ntype _IncomingCallActionRequests<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<TPlugin['actions']>]: { type: K; input: TPlugin['actions'][K]['input'] }\n}\n\ntype _IncomingCallActionResponses<TPlugin extends common.BasePlugin> = {\n [K in utils.StringKeys<TPlugin['actions']>]: { type: K; output: TPlugin['actions'][K]['output'] }\n}\n\nexport type AnyIncomingEvent<_TPlugin extends common.BasePlugin> = client.Event\nexport type AnyIncomingMessage<_TPlugin extends common.BasePlugin> = client.Message\nexport type AnyOutgoingMessageRequest<_TPlugin extends common.BasePlugin> = client.ClientInputs['createMessage']\nexport type AnyOutgoingMessageResponse<_TPlugin extends common.BasePlugin> = client.ClientOutputs['createMessage']\nexport type AnyOutgoingCallActionRequest<_TPlugin extends common.BasePlugin> = client.ClientInputs['callAction']\nexport type AnyOutgoingCallActionResponse<_TPlugin extends common.BasePlugin> = client.ClientOutputs['callAction'] & {\n type: string\n}\nexport type AnyIncomingCallActionRequest<_TPlugin extends common.BasePlugin> = {\n type: string\n input: Record<string, unknown>\n}\nexport type AnyIncomingCallActionResponse<_TPlugin extends common.BasePlugin> = {\n type: string\n output: Record<string, unknown>\n}\n\nexport type IncomingEvents<TPlugin extends common.BasePlugin> = _IncomingEvents<TPlugin> & {\n '*': AnyIncomingEvent<TPlugin>\n}\nexport type IncomingMessages<TPlugin extends common.BasePlugin> = _IncomingMessages<TPlugin> & {\n '*': AnyIncomingMessage<TPlugin>\n}\nexport type IncomingStates<_TPlugin extends common.BasePlugin> = _IncomingStates<_TPlugin> & {\n '*': client.State\n}\nexport type OutgoingMessageRequests<TPlugin extends common.BasePlugin> = _OutgoingMessageRequests<TPlugin> & {\n '*': AnyOutgoingMessageRequest<TPlugin>\n}\nexport type OutgoingMessageResponses<TPlugin extends common.BasePlugin> = _OutgoingMessageResponses<TPlugin> & {\n '*': AnyOutgoingMessageResponse<TPlugin>\n}\nexport type OutgoingCallActionRequests<TPlugin extends common.BasePlugin> = _OutgoingCallActionRequests<TPlugin> & {\n '*': AnyOutgoingCallActionRequest<TPlugin>\n}\nexport type OutgoingCallActionResponses<TPlugin extends common.BasePlugin> = _OutgoingCallActionResponses<TPlugin> & {\n '*': AnyOutgoingCallActionResponse<TPlugin>\n}\nexport type IncomingCallActionRequest<TPlugin extends common.BasePlugin> = _IncomingCallActionRequests<TPlugin> & {\n '*': AnyIncomingCallActionRequest<TPlugin>\n}\nexport type IncomingCallActionResponse<TPlugin extends common.BasePlugin> = _IncomingCallActionResponses<TPlugin> & {\n '*': AnyIncomingCallActionResponse<TPlugin>\n}\n\n// TODO: some ressources should be strongly type while leaving room for unknown definitions\nexport type PluginClient<_TPlugin extends common.BasePlugin> = bot.BotSpecificClient<common.BasePlugin>\n\nexport type CommonHandlerProps<TPlugin extends common.BasePlugin> = {\n ctx: bot.BotContext\n logger: bot.BotLogger\n /**\n * Please use the `users`, `conversations`, `actions`, `messages`, `states`,\n * `events`, `workflows` utilities instead of accessing the client directly.\n *\n * For example, you can replace `props.client.listUsers(...)` with\n * `props.users.list(...).take(n)`\n */\n client: PluginClient<TPlugin>\n}\n\nexport type InjectedHandlerProps<TPlugin extends common.BasePlugin> = {\n configuration: common.PluginConfiguration<TPlugin>\n /**\n * Mapping of plugin interface dependencies to the integrations that\n * implement them.\n */\n interfaces: common.PluginInterfaceExtensions<TPlugin>\n /**\n * Mapping of plugin integration dependencies to the integrations that\n * implement them.\n */\n integrations: common.PluginIntegrationExtensions<TPlugin>\n /**\n * Alias of the plugin within the bot. This is usually equal to the plugin's\n * name, but may be different if the bot has multiple instances of the same\n * plugin installed.\n */\n alias: string\n /**\n * Allows calling actions defined by the plugins's integration and interface\n * dependencies.\n */\n actions: actionProxy.ActionProxy<TPlugin>\n /**\n * Allows querying and mutating states defined by the plugin.\n */\n states: stateProxy.StateProxy<TPlugin>\n /**\n * Allows emitting events defined by the plugin.\n */\n events: eventProxy.EventProxy<TPlugin>\n /**\n * Allows querying and mutating users.\n */\n users: userProxy.UserFinder<TPlugin>\n /**\n * Allows querying and mutating conversations on channels defined by the\n * plugin's integration and interface dependencies.\n */\n conversations: conversationProxy.ConversationFinder<TPlugin>\n /**\n * Allows querying and mutating individual messages.\n */\n messages: messageProxy.MessageFinder<TPlugin>\n\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflows: workflowProxy.WorkflowProxy<TPlugin>\n}\n\ntype _WithInjectedProps<\n T extends Record<string, Record<string, any>>,\n TPlugin extends common.BasePlugin,\n TMerge extends object = {},\n> = {\n [K in keyof T]: utils.Merge<T[K], TMerge> & InjectedHandlerProps<TPlugin>\n}\n\ntype _WithInjectedPropsFn<\n T extends Record<string, (args: any) => any>,\n TPlugin extends common.BasePlugin,\n TMerge extends object = {},\n> = {\n [K in keyof T]: (args: utils.Merge<Parameters<T[K]>[0], TMerge> & InjectedHandlerProps<TPlugin>) => ReturnType<T[K]>\n}\n\nexport type MessagePayloadsWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TMessageName in utils.StringKeys<IncomingMessages<TPlugin>>]: CommonHandlerProps<TPlugin> & {\n message: IncomingMessages<TPlugin>[TMessageName]\n user: client.User\n conversation: client.Conversation\n event: client.Event\n }\n}\n\nexport type MessageHandlersWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TMessageName in utils.StringKeys<IncomingMessages<TPlugin>>]: (\n args: MessagePayloadsWithoutInjectedProps<TPlugin>[TMessageName]\n ) => Promise<void>\n}\n\nexport type MessageHandlers<TPlugin extends common.BasePlugin> = _WithInjectedPropsFn<\n MessageHandlersWithoutInjectedProps<TPlugin>,\n TPlugin,\n {\n user: userProxy.ActionableUser<TPlugin, string>\n conversation: conversationProxy.ActionableConversation<TPlugin>\n message: messageProxy.ActionableMessage<TPlugin>\n }\n>\n\nexport type EventPayloadsWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TEventName in utils.StringKeys<IncomingEvents<TPlugin>>]: CommonHandlerProps<TPlugin> & {\n event: IncomingEvents<TPlugin>[TEventName]\n }\n}\n\nexport type EventPayloads<TPlugin extends common.BasePlugin> = _WithInjectedProps<\n EventPayloadsWithoutInjectedProps<TPlugin>,\n TPlugin\n>\n\nexport type EventHandlersWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TEventName in utils.StringKeys<IncomingEvents<TPlugin>>]: (\n args: EventPayloadsWithoutInjectedProps<TPlugin>[TEventName]\n ) => Promise<void>\n}\n\nexport type EventHandlers<TPlugin extends common.BasePlugin> = _WithInjectedPropsFn<\n EventHandlersWithoutInjectedProps<TPlugin>,\n TPlugin\n>\n\nexport type StateExpiredPayloadsWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TSateName in utils.StringKeys<IncomingStates<TPlugin>>]: CommonHandlerProps<TPlugin> & {\n state: IncomingStates<TPlugin>[TSateName]\n }\n}\n\nexport type StateExpiredPayloads<TPlugin extends common.BasePlugin> = _WithInjectedProps<\n StateExpiredPayloadsWithoutInjectedProps<TPlugin>,\n TPlugin\n>\n\nexport type StateExpiredHandlersWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TSateName in utils.StringKeys<IncomingStates<TPlugin>>]: (\n args: StateExpiredPayloadsWithoutInjectedProps<TPlugin>[TSateName]\n ) => Promise<void>\n}\n\nexport type StateExpiredHandlers<TPlugin extends common.BasePlugin> = _WithInjectedPropsFn<\n StateExpiredHandlersWithoutInjectedProps<TPlugin>,\n TPlugin\n>\n\nexport type ActionHandlerPayloadsWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TActionName in utils.StringKeys<TPlugin['actions']>]: CommonHandlerProps<TPlugin> & {\n type?: TActionName\n input: TPlugin['actions'][TActionName]['input']\n }\n}\n\nexport type ActionHandlerPayloads<TPlugin extends common.BasePlugin> = _WithInjectedProps<\n ActionHandlerPayloadsWithoutInjectedProps<TPlugin>,\n TPlugin\n>\n\nexport type ActionHandlersWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TActionName in utils.StringKeys<TPlugin['actions']>]: (\n props: ActionHandlerPayloadsWithoutInjectedProps<TPlugin>[TActionName]\n ) => Promise<TPlugin['actions'][TActionName]['output']>\n}\n\nexport type ActionHandlers<TPlugin extends common.BasePlugin> = _WithInjectedPropsFn<\n ActionHandlersWithoutInjectedProps<TPlugin>,\n TPlugin\n>\n\nexport type WorkflowPayloadsWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TWorkflowName in utils.StringKeys<TPlugin['workflows']>]: CommonHandlerProps<TPlugin> & {\n conversation?: client.Conversation\n user?: client.User\n event: bot.WorkflowUpdateEvent\n workflow: client.Workflow\n }\n}\n\nexport type WorkflowPayloads<TPlugin extends common.BasePlugin> = _WithInjectedProps<\n {\n [TWorkflowName in keyof WorkflowPayloadsWithoutInjectedProps<TPlugin>]: utils.Merge<\n WorkflowPayloadsWithoutInjectedProps<TPlugin>[TWorkflowName],\n {\n /**\n * # EXPERIMENTAL\n * This API is experimental and may change in the future.\n */\n workflow: workflowProxy.ActionableWorkflow<TPlugin, TWorkflowName>\n }\n >\n },\n TPlugin\n>\n\nexport type WorkflowHandlersWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [TWorkflowName in utils.StringKeys<TPlugin['workflows']>]: (\n props: WorkflowPayloadsWithoutInjectedProps<TPlugin>[TWorkflowName]\n ) => Promise<void>\n}\n\nexport type WorkflowHandlers<TPlugin extends common.BasePlugin> = {\n [TWorkflowName in utils.StringKeys<TPlugin['workflows']>]: (\n props: utils.Merge<\n WorkflowPayloads<TPlugin>[TWorkflowName],\n {\n workflow: workflowProxy.ActionableWorkflow<TPlugin, TWorkflowName>\n }\n >\n ) => Promise<void>\n}\n\ntype BaseHookDefinition = {\n stoppable?: boolean\n data: any\n /**\n * Per-hook-type extra props injected into the hook handler input. Only set\n * for hooks where the bot runtime already has the relevant context (e.g.\n * incoming message hooks). The `raw` shape uses `client.User`/\n * `client.Conversation`; the `injected` shape replaces them with proxies.\n */\n extraInputs?: { raw: object; injected: object }\n}\ntype HookDefinition<THookDef extends BaseHookDefinition = BaseHookDefinition> = THookDef\n\n/**\n * TODO: add hooks for:\n * - before_register\n * - after_register\n * - before_state_expired\n * - after_state_expired\n */\n\nexport type HookDefinitionType = keyof HookDefinitions<common.BasePlugin>\n\nexport type HookDefinitions<TPlugin extends common.BasePlugin> = {\n before_incoming_event: HookDefinition<{\n stoppable: true\n data: _IncomingEvents<TPlugin> & { '*': AnyIncomingEvent<TPlugin> }\n }>\n before_incoming_message: HookDefinition<{\n stoppable: true\n data: _IncomingMessages<TPlugin> & { '*': AnyIncomingMessage<TPlugin> }\n extraInputs: {\n raw: {\n user?: client.User\n conversation?: client.Conversation\n }\n injected: {\n user?: userProxy.ActionableUser<TPlugin, string>\n conversation?: conversationProxy.ActionableConversation<TPlugin>\n }\n }\n }>\n before_outgoing_message: HookDefinition<{\n stoppable: false\n data: _OutgoingMessageRequests<TPlugin> & { '*': AnyOutgoingMessageRequest<TPlugin> }\n }>\n before_outgoing_call_action: HookDefinition<{\n stoppable: false\n data: _OutgoingCallActionRequests<TPlugin> & { '*': AnyOutgoingCallActionRequest<TPlugin> }\n }>\n before_incoming_call_action: HookDefinition<{\n stoppable: true\n data: _IncomingCallActionRequests<TPlugin> & { '*': AnyIncomingCallActionRequest<TPlugin> }\n }>\n after_incoming_event: HookDefinition<{\n stoppable: true\n data: _IncomingEvents<TPlugin> & { '*': AnyIncomingEvent<TPlugin> }\n }>\n after_incoming_message: HookDefinition<{\n stoppable: true\n data: _IncomingMessages<TPlugin> & { '*': AnyIncomingMessage<TPlugin> }\n extraInputs: {\n raw: {\n user?: client.User\n conversation?: client.Conversation\n }\n injected: {\n user?: userProxy.ActionableUser<TPlugin, string>\n conversation?: conversationProxy.ActionableConversation<TPlugin>\n }\n }\n }>\n after_outgoing_message: HookDefinition<{\n stoppable: false\n data: _OutgoingMessageResponses<TPlugin> & { '*': AnyOutgoingMessageResponse<TPlugin> }\n }>\n after_outgoing_call_action: HookDefinition<{\n stoppable: false\n data: _OutgoingCallActionResponses<TPlugin> & { '*': AnyOutgoingCallActionResponse<TPlugin> }\n }>\n after_incoming_call_action: HookDefinition<{\n stoppable: true\n data: _IncomingCallActionResponses<TPlugin> & { '*': AnyIncomingCallActionResponse<TPlugin> }\n }>\n}\n\nexport type HookData<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: {\n [THookDataName in utils.StringKeys<\n HookDefinitions<TPlugin>[THookType]['data']\n >]: HookDefinitions<TPlugin>[THookType]['data'][THookDataName]\n }\n}\n\ntype _HookExtraInputsRaw<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: HookDefinitions<TPlugin>[THookType] extends {\n extraInputs: { raw: infer T }\n }\n ? T\n : {}\n}\n\ntype _HookExtraInputsInjected<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: HookDefinitions<TPlugin>[THookType] extends {\n extraInputs: { injected: infer T }\n }\n ? T\n : {}\n}\n\nexport type HookInputsWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: {\n [THookDataName in utils.StringKeys<HookData<TPlugin>[THookType]>]: CommonHandlerProps<TPlugin> &\n _HookExtraInputsRaw<TPlugin>[THookType] & {\n data: HookData<TPlugin>[THookType][THookDataName]\n }\n }\n}\n\nexport type HookInputs<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: _WithInjectedProps<\n HookInputsWithoutInjectedProps<TPlugin>[THookType],\n TPlugin,\n _HookExtraInputsInjected<TPlugin>[THookType]\n >\n}\n\nexport type HookOutputs<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: {\n [THookDataName in utils.StringKeys<HookData<TPlugin>[THookType]>]: {\n data?: HookData<TPlugin>[THookType][THookDataName]\n } & (HookDefinitions<TPlugin>[THookType]['stoppable'] extends true ? { stop?: boolean } : {})\n }\n}\n\nexport type HookHandlersWithoutInjectedProps<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: {\n [THookDataName in utils.StringKeys<HookData<TPlugin>[THookType]>]: (\n input: HookInputsWithoutInjectedProps<TPlugin>[THookType][THookDataName]\n ) => Promise<HookOutputs<TPlugin>[THookType][THookDataName] | undefined>\n }\n}\n\nexport type HookHandlers<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: _WithInjectedPropsFn<\n HookHandlersWithoutInjectedProps<TPlugin>[THookType],\n TPlugin,\n _HookExtraInputsInjected<TPlugin>[THookType]\n >\n}\n\nexport type AnyHookHandler<TPlugin extends common.BasePlugin> = (\n input: CommonHandlerProps<TPlugin> & {\n data: any\n } & InjectedHandlerProps<TPlugin>\n) => Promise<\n | {\n data?: any\n stop?: boolean\n }\n | undefined\n>\n\nexport type HookHandlersMap<TPlugin extends common.BasePlugin> = {\n [THookType in HookDefinitionType]: {\n [THookDataName in utils.StringKeys<\n HookData<TPlugin>[THookType]\n >]?: HookHandlersWithoutInjectedProps<TPlugin>[THookType][THookDataName][]\n }\n}\n\nexport type WorkflowHandlersMap<TPlugin extends common.BasePlugin> = {\n [TWorkflowUpdateType in bot.WorkflowUpdateType]: {\n [TWorkflowName in utils.StringKeys<TPlugin['workflows']>]?: {\n handler: (\n props: Omit<Parameters<WorkflowHandlersWithoutInjectedProps<TPlugin>[TWorkflowName]>[0], 'workflow'> & {\n workflow: client.Workflow\n }\n ) => Promise<client.Workflow>\n order: number\n }[]\n }\n}\n\nexport type OrderedMessageHandlersMap = {\n [TMessageName in string]?: {\n handler: MessageHandlers<common.BasePlugin>[TMessageName]\n order: number\n }[]\n}\n\nexport type OrderedEventHandlersMap = {\n [TEventName in string]?: {\n handler: EventHandlers<common.BasePlugin>['*']\n order: number\n }[]\n}\n\nexport type OrderedStateExpiredHandlersMap = {\n [TStateName in string]?: {\n handler: StateExpiredHandlers<common.BasePlugin>['*']\n order: number\n }[]\n}\n\nexport type OrderedHookHandlersMap = {\n [THookType in HookDefinitionType]: {\n [THookDataName in string]?: {\n handler: AnyHookHandler<common.BasePlugin>\n order: number\n }[]\n }\n}\n\nexport type OrderedWorkflowHandlersMap = {\n [TWorkflowUpdateType in bot.WorkflowUpdateType]: {\n [TWorkflowName in string]?: {\n handler: WorkflowHandlers<common.BasePlugin>['*']\n order: number\n }[]\n }\n}\n\n/** Plugin handlers without InjectedHandlerProps */\nexport type PluginHandlers<TPlugin extends common.BasePlugin> = {\n actionHandlers: ActionHandlersWithoutInjectedProps<TPlugin>\n messageHandlers: {\n [TMessageName in utils.StringKeys<\n IncomingMessages<TPlugin>\n >]?: MessageHandlersWithoutInjectedProps<TPlugin>[TMessageName][]\n }\n eventHandlers: {\n [TEventName in utils.StringKeys<IncomingEvents<TPlugin>>]?: EventHandlersWithoutInjectedProps<TPlugin>[TEventName][]\n }\n stateExpiredHandlers: {\n [TStateName in utils.StringKeys<\n IncomingStates<TPlugin>\n >]?: StateExpiredHandlersWithoutInjectedProps<TPlugin>[TStateName][]\n }\n hookHandlers: {\n [THookType in HookDefinitionType]: {\n [THookDataName in utils.StringKeys<\n HookData<TPlugin>[THookType]\n >]?: HookHandlersWithoutInjectedProps<TPlugin>[THookType][THookDataName][]\n }\n }\n workflowHandlers: {\n [TWorkflowUpdateType in bot.WorkflowUpdateType]: {\n [TWorkflowName in utils.StringKeys<\n TPlugin['workflows']\n >]?: WorkflowHandlersWithoutInjectedProps<TPlugin>[TWorkflowName][]\n }\n }\n}\n\n/** identical to PluginHandlers, but contains the injected properties */\nexport type InjectedPluginHandlers<TPlugin extends common.BasePlugin> = {\n actionHandlers: ActionHandlers<TPlugin>\n messageHandlers: {\n [TMessageName in utils.StringKeys<IncomingMessages<TPlugin>>]?: MessageHandlers<TPlugin>[TMessageName][]\n }\n eventHandlers: {\n [TEventName in utils.StringKeys<IncomingEvents<TPlugin>>]?: EventHandlers<TPlugin>[TEventName][]\n }\n stateExpiredHandlers: {\n [TStateName in utils.StringKeys<IncomingStates<TPlugin>>]?: StateExpiredHandlers<TPlugin>[TStateName][]\n }\n hookHandlers: {\n [THookType in HookDefinitionType]: {\n [THookDataName in utils.StringKeys<\n HookData<TPlugin>[THookType]\n >]?: HookHandlers<TPlugin>[THookType][THookDataName][]\n }\n }\n workflowHandlers: {\n [TWorkflowUpdateType in bot.WorkflowUpdateType]: {\n [TWorkflowName in utils.StringKeys<TPlugin['workflows']>]?: WorkflowHandlers<TPlugin>[TWorkflowName][]\n }\n }\n}\n", "export * from './types'\nexport * from './generic'\n", "import type { BaseInterface } from '../../interface'\nimport type { Cast, Join, UnionToIntersection } from '../../utils/type-utils'\nimport type { BasePlugin } from './generic'\n\ntype EventKey<TIntegrationName extends string, TEventName extends string> = string extends TIntegrationName\n ? string\n : string extends TEventName\n ? string\n : Join<[TIntegrationName, ':', TEventName]>\n\nexport type EnumerateInterfaceEvents<TPlugin extends BasePlugin> = UnionToIntersection<\n {\n [TInterfaceName in keyof TPlugin['interfaces']]: {\n [TEventName in keyof TPlugin['interfaces'][TInterfaceName]['events'] as EventKey<\n Cast<TInterfaceName, string>,\n Cast<TEventName, string>\n >]: TPlugin['interfaces'][TInterfaceName]['events'][TEventName]\n }\n }[keyof TPlugin['interfaces']]\n>\n\n/**\n * Used by a bot to tell the plugin what integration should be used to implement an interface.\n */\nexport type PluginInterfaceExtension<TInterface extends BaseInterface = BaseInterface> = {\n id?: string // id of the integration to use\n name: string // name of the integration to use\n version: string // version of the integration to use\n integrationAlias: string\n integrationInterfaceAlias: string\n entities: { [K in keyof TInterface['entities']]: { name: string } }\n actions: { [K in keyof TInterface['actions']]: { name: string } }\n events: { [K in keyof TInterface['events']]: { name: string } }\n channels: { [K in keyof TInterface['channels']]: { name: string } }\n}\n\nexport type PluginIntegrationExtension = {\n id?: string\n name: string\n version: string\n integrationAlias: string\n}\n\nexport type PluginInterfaceExtensions<TPlugin extends BasePlugin = BasePlugin> = {\n [TPluginInterfaceAlias in keyof TPlugin['interfaces']]: PluginInterfaceExtension<\n TPlugin['interfaces'][TPluginInterfaceAlias]\n >\n}\n\nexport type PluginIntegrationExtensions<TPlugin extends BasePlugin = BasePlugin> = {\n [TPluginIntegrationAlias in keyof TPlugin['integrations']]: PluginIntegrationExtension\n}\n\nexport type PluginConfiguration<TPlugin extends BasePlugin> = TPlugin['configuration']\n\nexport type PluginRuntimeProps<TPlugin extends BasePlugin = BasePlugin> = {\n alias: string\n configuration: PluginConfiguration<TPlugin>\n interfaces: PluginInterfaceExtensions<TPlugin>\n integrations: PluginIntegrationExtensions<TPlugin>\n}\n", "import * as bot from '../../bot'\nimport { BaseIntegration, DefaultIntegration, InputBaseIntegration } from '../../integration/common/generic'\nimport { BaseInterface, InputBaseInterface, DefaultInterface } from '../../interface/common/generic'\nimport * as utils from '../../utils/type-utils'\n\nexport type BaseAction = {\n input: any\n output: any\n}\n\nexport type BaseTable = {\n [k: string]: any\n}\n\nexport type BaseWorkflow = {\n input: any\n output: any\n tags?: {\n [k: string]: string\n }\n}\n\nexport type BaseState = {\n type: bot.StateType\n payload: any\n}\n\nexport type BasePlugin = {\n name: string\n version: string\n configuration: any\n integrations: Record<string, BaseIntegration>\n interfaces: Record<string, BaseInterface>\n events: Record<string, any>\n states: Record<string, BaseState>\n actions: Record<string, BaseAction>\n tables: Record<string, BaseTable>\n workflows: Record<string, BaseWorkflow>\n conversation: {\n tags: Record<string, any>\n }\n user: {\n tags: Record<string, any>\n }\n message: {\n tags: Record<string, any>\n }\n}\n\nexport type InputBasePlugin = utils.DeepPartial<BasePlugin>\nexport type DefaultPlugin<B extends utils.DeepPartial<BasePlugin>> = {\n name: utils.Default<B['name'], BasePlugin['name']>\n version: utils.Default<B['version'], BasePlugin['version']>\n configuration: utils.Default<B['configuration'], BasePlugin['configuration']>\n events: utils.Default<B['events'], BasePlugin['events']>\n states: utils.Default<B['states'], BasePlugin['states']>\n actions: utils.Default<B['actions'], BasePlugin['actions']>\n tables: utils.Default<B['tables'], BasePlugin['tables']>\n workflows: utils.Default<B['workflows'], BasePlugin['workflows']>\n integrations: undefined extends B['integrations']\n ? BasePlugin['integrations']\n : {\n [K in keyof B['integrations']]: DefaultIntegration<utils.Cast<B['integrations'][K], InputBaseIntegration>>\n }\n interfaces: undefined extends B['interfaces']\n ? BasePlugin['interfaces']\n : {\n [K in keyof B['interfaces']]: DefaultInterface<utils.Cast<B['interfaces'][K], InputBaseInterface>>\n }\n conversation: utils.Default<B['conversation'], BasePlugin['conversation']>\n user: utils.Default<B['user'], BasePlugin['user']>\n message: utils.Default<B['message'], BasePlugin['message']>\n}\n", "import * as semver from 'semver'\nimport { Package } from './package'\nimport { PluginDefinition } from './plugin/definition'\n\ntype GenericPackage = Exclude<Package, PluginDefinition>\n\n/**\n * Returns the major version range for a given package.\n * Version utility helpers are only intended to be used with plugins.\n **/\nexport function allWithinMajorOf<T extends GenericPackage>(pkg: T): T & { version: string } {\n const major = semver.major(pkg.version)\n return { ...pkg, version: `>=${major}.0.0 <${major + 1}.0.0` }\n}\n\n/**\n * Returns the minor version range for a given package.\n * Version utility helpers are only intended to be used with plugins.\n **/\nexport function allWithinMinorOf<T extends GenericPackage>(pkg: T): T & { version: string } {\n const major = semver.major(pkg.version)\n const minor = semver.minor(pkg.version)\n return {\n ...pkg,\n version: `>=${major}.${minor}.0 <${major}.${minor + 1}.0`,\n }\n}\n", "import * as integration from './integration'\nimport * as intrface from './interface'\nimport * as plugin from './plugin'\nimport * as utils from './utils/type-utils'\n\ntype NameVersion = {\n name: string\n version: string\n}\n\ntype PackageReference = NameVersion & {\n id?: string\n uri?: string\n}\n\ntype Attributes = { attributes?: Record<string, string> }\n\ntype IntegrationPackageDefinitionInterface = utils.Merge<PackageReference, integration.InterfaceExtension>\ntype IntegrationPackageDefinition = NameVersion &\n Attributes & {\n configuration?: integration.ConfigurationDefinition\n configurations?: Record<string, integration.AdditionalConfigurationDefinition>\n events?: Record<string, integration.EventDefinition>\n actions?: Record<string, integration.ActionDefinition>\n channels?: Record<string, integration.ChannelDefinition>\n states?: Record<string, integration.StateDefinition>\n user?: integration.UserDefinition\n secrets?: Record<string, integration.SecretDefinition>\n entities?: Record<string, integration.EntityDefinition>\n interfaces?: Record<string, IntegrationPackageDefinitionInterface>\n }\n\ntype InterfacePackageDefinition = NameVersion &\n Attributes & {\n entities?: Record<string, integration.EntityDefinition>\n events?: Record<string, integration.EventDefinition>\n actions?: Record<string, integration.ActionDefinition>\n channels?: Record<string, integration.ChannelDefinition>\n }\n\ntype PluginPackageDefinition = NameVersion &\n Attributes & {\n integrations?: Record<string, PackageReference>\n interfaces?: Record<string, PackageReference>\n user?: plugin.UserDefinition\n conversation?: plugin.ConversationDefinition\n message?: plugin.MessageDefinition\n states?: Record<string, plugin.StateDefinition>\n configuration?: plugin.ConfigurationDefinition\n events?: Record<string, plugin.EventDefinition>\n recurringEvents?: Record<string, plugin.RecurringEventDefinition>\n actions?: Record<string, plugin.ActionDefinition>\n tables?: Record<string, plugin.TableDefinition>\n workflows?: Record<string, plugin.WorkflowDefinition>\n }\n\nexport type IntegrationPackage = PackageReference & {\n type: 'integration'\n definition: IntegrationPackageDefinition\n implementation?: null\n}\n\nexport type InterfacePackage = PackageReference & {\n type: 'interface'\n definition: InterfacePackageDefinition\n implementation?: null\n}\n\nexport type PluginPackage = PackageReference & {\n type: 'plugin'\n definition: PluginPackageDefinition\n implementation: Buffer\n}\n\nexport type Package = IntegrationPackage | InterfacePackage | PluginPackage\n\ntype _test_expect_integration_definition_to_be_valid_package = utils.AssertExtends<\n integration.IntegrationDefinition,\n IntegrationPackageDefinition\n>\n\ntype _test_expect_interface_definition_to_be_valid_package = utils.AssertExtends<\n intrface.InterfaceDefinition,\n InterfacePackageDefinition\n>\n\ntype _test_expect_plugin_definition_to_be_valid_package = utils.AssertExtends<\n plugin.PluginDefinition,\n PluginPackageDefinition\n>\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["init_dirname", "__esmMin", "process_exports", "__export", "_debugEnd", "_debugProcess", "_events", "_eventsCount", "_exiting", "_fatalExceptions", "_getActiveHandles", "_getActiveRequests", "_kill", "_linkedBinding", "_maxListeners", "_preload_modules", "_rawDebug", "_startProfilerIdleNotifier", "_stopProfilerIdleNotifier", "_tickCallback", "abort", "addListener", "allowedNodeEnvironmentFlags", "arch", "argv", "argv0", "assert", "binding", "browser", "chdir", "config", "cpuUsage", "cwd", "debugPort", "process", "dlopen", "domain", "emit", "emitWarning", "env", "execArgv", "execPath", "exit", "features", "hasUncaughtExceptionCaptureCallback", "hrtime", "kill", "listeners", "memoryUsage", "moduleLoadList", "nextTick", "off", "on", "once", "openStdin", "pid", "platform", "ppid", "prependListener", "prependOnceListener", "reallyExit", "release", "removeAllListeners", "removeListener", "resourceUsage", "setSourceMapsEnabled", "setUncaughtExceptionCaptureCallback", "stderr", "stdin", "stdout", "title", "umask", "uptime", "version", "versions", "unimplemented", "name", "cleanUpNextTick", "draining", "currentQueue", "queue", "queueIndex", "drainQueue", "timeout", "len", "fun", "args", "i", "Item", "array", "noop", "condition", "message", "_performance", "previousTimestamp", "baseNow", "clocktime", "seconds", "nanoseconds", "nanoPerSec", "nowOffset", "init_process", "__esmMin", "init_dirname", "init_buffer", "type", "mask", "dir", "time", "diff", "init_process", "__esmMin", "dew$2", "_dewExec$2", "exports$2", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "dew$1", "_dewExec$1", "exports$1", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "d", "s", "value", "c", "rt", "dew", "_dewExec", "exports", "base64", "ieee754", "customInspectSymbol", "Buffer", "SlowBuffer", "K_MAX_LENGTH", "typedArraySupport", "proto", "createBuffer", "length", "buf", "arg", "encodingOrOffset", "allocUnsafe", "from", "fromString", "fromArrayView", "isInstance", "fromArrayBuffer", "valueOf", "b", "fromObject", "assertSize", "size", "alloc", "fill", "encoding", "checked", "string", "actual", "fromArrayLike", "array", "arrayView", "copy", "byteOffset", "obj", "numberIsNaN", "a", "x", "y", "list", "pos", "mustMatch", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "str", "max", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexSize", "arrLength", "valLength", "read", "foundIndex", "found", "j", "hexWrite", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "base64Write", "ucs2Write", "utf16leToBytes", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "ret", "out", "hexSliceLookupTable", "bytes", "newBuf", "checkOffset", "ext", "noAssert", "mul", "defineBigIntMethod", "validateNumber", "first", "last", "boundsError", "lo", "hi", "checkInt", "min", "maxBytes", "wrtBigUInt64LE", "checkIntBI", "wrtBigUInt64BE", "limit", "sub", "checkIEEE754", "writeFloat", "littleEndian", "writeDouble", "targetStart", "errors", "E", "sym", "getMessage", "Base", "name", "range", "input", "msg", "received", "addNumericalSeparator", "checkBounds", "type", "INVALID_BASE64_RE", "base64clean", "units", "leadSurrogate", "byteArray", "src", "dst", "alphabet", "table", "i16", "fn", "BufferBigIntNotDefined", "init_chunk_DtuTasat", "__esmMin", "init_dirname", "init_buffer", "init_process", "exports", "Buffer", "INSPECT_MAX_BYTES", "kMaxLength", "init_buffer", "__esmMin", "init_dirname", "init_process", "init_chunk_DtuTasat", "dew", "init_buffer", "__esmMin", "dew", "_dewExec", "exports", "ctor", "superCtor", "TempCtor", "init_chunk_CkFCi_G1", "__esmMin", "init_dirname", "init_buffer", "init_process", "o", "u", "e", "f", "v", "t", "r", "i", "s", "a", "l", "h", "n", "c", "p", "y", "init_chunk_tHuMsdT0", "__esmMin", "init_dirname", "init_buffer", "init_process", "init_chunk_DtDiafJB", "__esmMin", "init_dirname", "init_buffer", "init_process", "init_chunk_tHuMsdT0", "y", "emitter", "event", "resolve", "reject", "eventListener", "args", "errorListener", "err", "unconsumedEventValues", "unconsumedPromises", "error", "finished", "iterator", "value", "p", "eventHandler", "errorHandler", "promise", "toError", "i$2", "u$2", "c$2", "e", "t$3", "r$2", "h$1", "f$1", "l$2", "s$1", "a$1", "d$1", "t", "n$2", "m$1", "p$1", "c$1", "O", "S", "l$1", "y", "b", "B", "k", "E", "D", "U", "P", "x", "I", "M", "z", "F", "m", "u$1", "T", "N", "W", "$", "C", "V", "G", "R", "J", "_", "H", "h", "Z", "j", "q", "A", "K", "s", "w", "L", "p", "v", "oe", "r", "fe", "ye", "X", "be", "ue", "ae", "we", "n", "ge", "i", "de", "le", "o", "u", "Ae", "ce", "f", "me", "je", "a", "c", "pe", "ke", "se", "he", "ve", "Oe", "Be", "Se", "De", "e$2", "o$3", "T$1", "l", "t$1", "o$1", "n$1", "e$1", "r$1", "t$2", "i$1", "o$2", "d", "Q", "Y", "ee", "te", "re", "ne", "ie", "Ee", "promisify", "init_chunk_D3uu3VYh", "__esmMin", "init_dirname", "init_buffer", "init_process", "g", "promisify", "init_chunk_CbQqNoLO", "__esmMin", "init_dirname", "init_buffer", "init_process", "init_chunk_D3uu3VYh", "X", "unimplemented", "name", "cleanUpNextTick", "draining", "currentQueue", "queue", "queueIndex", "drainQueue", "timeout", "len", "nextTick", "fun", "args", "i", "Item", "array", "noop", "_linkedBinding", "dlopen", "_getActiveRequests", "_getActiveHandles", "assert", "condition", "message", "hasUncaughtExceptionCaptureCallback", "uptime", "_performance", "hrtime", "previousTimestamp", "baseNow", "clocktime", "seconds", "nanoseconds", "nanoPerSec", "on", "process", "listeners", "title", "arch", "platform", "env", "argv", "execArgv", "version", "versions", "emitWarning", "binding", "umask", "cwd", "chdir", "release", "_rawDebug", "moduleLoadList", "domain", "_exiting", "config", "reallyExit", "_kill", "cpuUsage", "resourceUsage", "memoryUsage", "kill", "exit", "openStdin", "allowedNodeEnvironmentFlags", "features", "_fatalExceptions", "setUncaughtExceptionCaptureCallback", "_tickCallback", "_debugProcess", "_debugEnd", "_startProfilerIdleNotifier", "_stopProfilerIdleNotifier", "stdout", "stderr", "stdin", "abort", "pid", "ppid", "execPath", "debugPort", "argv0", "_preload_modules", "setSourceMapsEnabled", "nowOffset", "_maxListeners", "_events", "_eventsCount", "addListener", "once", "off", "removeListener", "removeAllListeners", "emit", "prependListener", "prependOnceListener", "init_chunk_DEMDiNwt", "__esmMin", "init_dirname", "init_buffer", "init_process", "type", "mask", "dir", "time", "diff", "dew", "_dewExec", "exports", "deprecate", "fn", "msg", "config", "warned", "deprecated", "_global", "name", "val", "init_chunk_BsRZ0PEC", "__esmMin", "init_dirname", "init_buffer", "init_process", "dew$1", "_dewExec$1", "exports$2", "buffer", "dew", "Buffer", "copyProps", "src", "dst", "key", "SafeBuffer", "arg", "encodingOrOffset", "length", "size", "fill", "encoding", "buf", "_dewExec", "exports$1", "isEncoding", "_normalizeEncoding", "enc", "retried", "normalizeEncoding", "nenc", "StringDecoder", "nb", "utf16Text", "utf16End", "utf8FillLast", "base64Text", "base64End", "simpleWrite", "simpleEnd", "r", "i", "utf8End", "utf8Text", "utf8CheckByte", "byte", "utf8CheckIncomplete", "self", "j", "utf8CheckExtraBytes", "p", "total", "end", "c", "n", "exports", "init_chunk_CcCWfKp1", "__esmMin", "init_dirname", "init_buffer", "init_process", "init_chunk_DtuTasat", "dew", "_dewExec", "exports", "process", "cachedSetTimeout", "cachedClearTimeout", "defaultSetTimout", "defaultClearTimeout", "runTimeout", "fun", "_global", "runClearTimeout", "marker", "queue", "draining", "currentQueue", "queueIndex", "cleanUpNextTick", "drainQueue", "timeout", "len", "args", "i", "Item", "array", "noop", "name", "dir", "init_chunk_b0rmRow7", "__esmMin", "init_dirname", "init_buffer", "init_process", "dew$1", "_dewExec$1", "exports$1", "process$1", "process", "assertPath", "path", "normalizeStringPosix", "allowAboveRoot", "res", "lastSegmentLength", "lastSlash", "dots", "code", "i", "lastSlashIndex", "_format", "sep", "pathObject", "dir", "base", "posix", "resolvedPath", "resolvedAbsolute", "cwd", "isAbsolute", "trailingSeparator", "joined", "arg", "from", "to", "fromStart", "fromEnd", "fromLen", "toStart", "toEnd", "toLen", "length", "lastCommonSep", "fromCode", "toCode", "out", "hasRoot", "end", "matchedSlash", "ext", "start", "extIdx", "firstNonSlashEnd", "startDot", "startPart", "preDotState", "ret", "i$1", "r$2", "f$1", "o", "r", "t", "n", "e", "e$2", "l$1", "e$1", "O", "s", "h", "a", "dew", "_dewExec", "exports", "T$1", "fileURLToPath$1", "isWindows$1", "getPathFromURLWin$1", "getPathFromURLPosix$1", "url", "hostname", "pathname", "third", "forwardSlashRegEx$1", "letter", "CHAR_LOWERCASE_A$1", "CHAR_LOWERCASE_Z$1", "pathToFileURL$1", "filepath", "resolved", "filePathLast", "CHAR_FORWARD_SLASH$1", "CHAR_BACKWARD_SLASH$1", "outURL", "percentRegEx$1", "backslashRegEx$1", "newlineRegEx$1", "carriageReturnRegEx$1", "tabRegEx$1", "fileURLToPath", "isWindows", "getPathFromURLWin", "getPathFromURLPosix", "forwardSlashRegEx", "CHAR_LOWERCASE_A", "CHAR_LOWERCASE_Z", "pathToFileURL", "exports$2", "CHAR_FORWARD_SLASH", "CHAR_BACKWARD_SLASH", "percentRegEx", "backslashRegEx", "newlineRegEx", "carriageReturnRegEx", "tabRegEx", "t$1", "o$2", "n$2", "c$1", "u$1", "a$1", "d", "h$1", "p$1", "n$1", "r$1", "o$1", "l", "p", "c", "u", "f", "m", "v", "g", "y", "b", "processPlatform$1", "processPlatform", "init_chunk_DHWh_hmB", "__esmMin", "init_dirname", "init_buffer", "init_process", "init_chunk_D3uu3VYh", "init_chunk_b0rmRow7", "j", "q", "x", "A", "C", "I", "w", "N", "U", "k", "S", "R", "$", "z", "H", "L", "Z", "_", "E", "P", "T", "B", "D", "F", "G", "http_exports", "__export", "Agent", "ClientRequest", "IncomingMessage", "METHODS", "STATUS_CODES", "exports", "get", "globalAgent", "request", "dew$k", "_dewExec$k", "exports$l", "isFunction", "_global$5", "xhr", "getXHR", "checkTypeSupport", "type", "value", "dew$j", "_dewExec$j", "exports$k", "y", "dew$i", "_dewExec$i", "exports$j", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "obj", "_toPropertyKey", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "descriptor", "_createClass", "protoProps", "staticProps", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_require", "dew", "Buffer", "_require2", "X", "inspect", "custom", "copyBuffer", "src", "offset", "BufferList", "v", "entry", "ret", "s", "p", "n", "hasStrings", "c", "str", "nb", "buf", "_", "options", "dew$h", "_dewExec$h", "exports$i", "process$1", "process", "destroy", "err", "cb", "_this", "readableDestroyed", "writableDestroyed", "emitErrorNT", "emitCloseNT", "emitErrorAndCloseNT", "self", "undestroy", "errorOrDestroy", "stream", "rState", "wState", "dew$g", "_dewExec$g", "exports$h", "codes", "createErrorType", "code", "message", "Base", "getMessage", "arg1", "arg2", "arg3", "NodeError", "oneOf", "expected", "thing", "len", "startsWith", "search", "pos", "endsWith", "this_len", "includes", "start", "name", "actual", "determiner", "msg", "dew$f", "_dewExec$f", "exports$g", "ERR_INVALID_OPT_VALUE", "highWaterMarkFrom", "isDuplex", "duplexKey", "getHighWaterMark", "state", "hwm", "dew$e", "_dewExec$e", "exports$f", "Writable", "CorkedRequest", "onCorkedFinish", "Duplex", "WritableState", "internalUtil", "Stream", "OurUint8Array", "_global$4", "_uint8ArrayToBuffer", "chunk", "_isUint8Array", "destroyImpl", "_require$codes", "ERR_INVALID_ARG_TYPE", "ERR_METHOD_NOT_IMPLEMENTED", "ERR_MULTIPLE_CALLBACK", "ERR_STREAM_CANNOT_PIPE", "ERR_STREAM_DESTROYED", "ERR_STREAM_NULL_VALUES", "ERR_STREAM_WRITE_AFTER_END", "ERR_UNKNOWN_ENCODING", "nop", "dew$d", "noDecode", "er", "onwrite", "current", "out", "realHasInstance", "writeAfterEnd", "validChunk", "encoding", "isBuf", "writeOrBuffer", "clearBuffer", "decodeChunk", "newChunk", "last", "doWrite", "writev", "onwriteError", "sync", "finishMaybe", "onwriteStateUpdate", "finished", "needFinish", "afterWrite", "onwriteDrain", "l", "buffer", "holder", "count", "allBuffers", "endWritable", "callFinal", "prefinish", "need", "corkReq", "_dewExec$d", "exports$e", "objectKeys", "Readable", "dew$9", "method", "onend", "onEndNT", "dew$c", "_dewExec$c", "exports$d", "ERR_STREAM_PREMATURE_CLOSE", "once", "callback", "called", "_len", "args", "_key", "noop", "isRequest", "eos", "opts", "readable", "writable", "onlegacyfinish", "onfinish", "writableEnded", "readableEnded", "onerror", "onclose", "onrequest", "dew$b", "_dewExec$b", "exports$c", "_Object$setPrototypeO", "kLastResolve", "kLastReject", "kError", "kEnded", "kLastPromise", "kHandlePromise", "kStream", "createIterResult", "done", "readAndResolve", "iter", "resolve", "data", "onReadable", "wrapForNext", "lastPromise", "reject", "AsyncIteratorPrototype", "ReadableStreamAsyncIteratorPrototype", "error", "promise", "_this2", "createReadableStreamAsyncIterator", "_Object$create", "iterator", "dew$a", "_dewExec$a", "exports$b", "_dewExec$9", "exports$a", "ReadableState", "EElistenerCount", "emitter", "_global$3", "debugUtil", "debug", "ERR_STREAM_PUSH_AFTER_EOF", "ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "StringDecoder", "from", "kProxyEvents", "prependListener", "event", "fn", "skipChunkCheck", "readableAddChunk", "addToFront", "onEofChunk", "chunkInvalid", "addChunk", "maybeReadMore", "emitReadable", "enc", "decoder", "content", "MAX_HWM", "computeNewHighWaterMark", "howMuchToRead", "nOrig", "endReadable", "doRead", "fromList", "emitReadable_", "flow", "maybeReadMore_", "dest", "pipeOpts", "doEnd", "endFn", "unpipe", "onunpipe", "unpipeInfo", "cleanup", "ondrain", "pipeOnDrain", "cleanedUp", "ondata", "indexOf", "dests", "index", "ev", "nReadingNextTick", "updateReadableListening", "resume", "resume_", "paused", "endReadableNT", "iterable", "xs", "x", "dew$8", "_dewExec$8", "exports$9", "Transform", "ERR_TRANSFORM_ALREADY_TRANSFORMING", "ERR_TRANSFORM_WITH_LENGTH_0", "afterTransform", "ts", "rs", "err2", "dew$7", "_dewExec$7", "exports$8", "PassThrough", "dew$6", "_dewExec$6", "exports$7", "ERR_MISSING_ARGS", "destroyer", "reading", "writing", "closed", "destroyed", "call", "pipe", "to", "popCallback", "streams", "pipeline", "destroys", "dew$5", "_dewExec$5", "exports$6", "dew$4", "_dewExec$4", "exports$5", "capability", "inherits", "rStates", "response", "mode", "resetTimers", "_global$2", "read", "reader", "result", "header", "headers", "matches", "mimeType", "charsetMatch", "newData", "dew$3", "_dewExec$3", "exports$4", "decideMode", "preferBinary", "useFetch", "_global$1", "lowerName", "unsafeHeaders", "headersObj", "body", "headersList", "keyName", "signal", "controller", "reason", "statusValid", "status", "timeout", "dew$2", "_dewExec$2", "exports$3", "extend", "hasOwnProperty", "dew$1", "_dewExec$1", "exports$2", "_dewExec", "exports$1", "statusCodes", "url", "h", "http", "defaultProtocol", "_global", "protocol", "host", "port", "path", "req", "init_http", "__esmMin", "init_dirname", "init_buffer", "init_process", "init_chunk_CkFCi_G1", "init_chunk_DtDiafJB", "init_chunk_tHuMsdT0", "init_chunk_DtuTasat", "init_chunk_CbQqNoLO", "init_chunk_D3uu3VYh", "init_chunk_DEMDiNwt", "init_chunk_BsRZ0PEC", "init_chunk_CcCWfKp1", "init_chunk_DHWh_hmB", "init_chunk_b0rmRow7", "init_dirname", "init_buffer", "init_process", "message_exports", "__export", "defaults", "markdown", "markdownBloc", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "z", "NonEmptyString", "z", "textMessageSchema", "markdownMessageSchema", "imageMessageSchema", "audioMessageSchema", "videoMessageSchema", "fileMessageSchema", "locationMessageSchema", "cardSchema", "choiceSchema", "carouselSchema", "blocItemSchema", "blocSchema", "markdown", "markdownBloc", "defaults", "init_dirname", "init_buffer", "init_process", "WELL_KNOWN_ATTRIBUTES", "OAUTH_IDENTIFIER_HEADER", "init_dirname", "init_buffer", "init_process", "InvalidPayloadError", "isApiError", "RuntimeError", "isNode", "init_dirname", "init_buffer", "init_process", "log", "parseBody", "req", "InvalidPayloadError", "thrown", "handlerErrorToHttpResponse", "unexpectedErrorMessage", "error", "isApiError", "runtimeError", "RuntimeError", "serve", "handler", "port", "callback", "defaultCallback", "isNode", "server", "res", "request", "mapIncomingMessageToRequest", "response", "log", "incoming", "body", "readBody", "headers", "i", "key", "value", "url", "trimPrefix", "prefix", "resolve", "reject", "chunk", "e", "isApiError", "RuntimeError", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "errors_exports", "__export", "DefinitionError", "isDefinitionError", "init_dirname", "init_buffer", "init_process", "error", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "record_utils_exports", "__export", "mapKeys", "mapValues", "mergeRecords", "pairs", "stripUndefinedProps", "values", "init_dirname", "init_buffer", "init_process", "obj", "fn", "key", "value", "a", "b", "merge", "allKeys", "uniqueKeys", "result", "aValue", "bValue", "array_utils_exports", "__export", "safePush", "unique", "init_dirname", "init_buffer", "init_process", "arr", "values", "init_dirname", "init_buffer", "init_process", "function_utils_exports", "__export", "setName", "init_dirname", "init_buffer", "init_process", "f", "name", "resolveInterface", "intrface", "name", "version", "resolved", "statement", "record_utils_exports", "entity", "entitySchemas", "actionName", "action", "resolvedInputSchema", "resolvedOutputSchema", "newActionName", "eventName", "event", "resolvedEventSchema", "newEventName", "channelName", "channel", "messages", "messageName", "message", "resolvedMessageSchema", "newChannelName", "init_dirname", "init_buffer", "init_process", "version", "SDK_VERSION", "version", "init_dirname", "init_buffer", "init_process", "schemaName", "createStore", "props", "record_utils_exports", "e", "k", "isBranded", "schema", "getName", "init_dirname", "init_buffer", "init_process", "IntegrationDefinition", "_IntegrationDefinition", "props", "SDK_VERSION", "overrides", "interfacePkg", "builder", "entities", "actions", "events", "channels", "self", "entityNames", "e", "key", "resolved", "statement", "resolveInterface", "record_utils_exports", "extensionBuilderInput", "createStore", "extensionBuilderOutput", "unbrandedEntity", "_k", "isBranded", "DefinitionError", "getName", "a", "b", "messages", "conversation", "message", "aDef", "bDef", "aShape", "bShape", "z", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "Client", "InvalidPayloadError", "init_dirname", "init_buffer", "init_process", "client", "retryConfig", "err", "retryCount", "axiosError", "_getRetryAfterSeconds", "headers", "headerNames", "headerName", "headerValue", "_parseHeaderToSeconds", "secondsDiff", "_isDateString", "_parseDateToSeconds", "futureDate", "_parseDateString", "currentDate", "date", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "IntegrationSpecificClient", "_client", "x", "r", "init_dirname", "init_buffer", "init_process", "ActionMetadataStore", "cost", "init_dirname", "init_buffer", "init_process", "z", "init_dirname", "init_buffer", "init_process", "PLUGIN_PREFIX_SEPARATOR", "BOT_ID_HEADER", "BOT_USER_ID_HEADER", "INTEGRATION_ID_HEADER", "INTEGRATION_ALIAS_HEADER", "WEBHOOK_ID_HEADER", "CONFIGURATION_TYPE_HEADER", "CONFIGURATION_PAYLOAD_HEADER", "OPERATION_TYPE_HEADER", "OPERATION_SUBTYPE_HEADER", "init_dirname", "init_buffer", "init_process", "throwError", "thrown", "integrationOperationSchema", "z", "extractContext", "headers", "BOT_ID_HEADER", "throwError", "BOT_USER_ID_HEADER", "INTEGRATION_ID_HEADER", "INTEGRATION_ALIAS_HEADER", "WEBHOOK_ID_HEADER", "OPERATION_TYPE_HEADER", "CONFIGURATION_TYPE_HEADER", "Buffer", "CONFIGURATION_PAYLOAD_HEADER", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "exports$k", "_dewExec$k", "dew$k", "obj", "sym", "symObj", "symVal", "syms", "descriptor", "exports$j", "_dewExec$j", "dew$j", "exports$i", "_dewExec$i", "dew$i", "exports$h", "_dewExec$h", "dew$h", "exports$g", "_dewExec$g", "dew$g", "exports$f", "_dewExec$f", "dew$f", "exports$e", "_dewExec$e", "dew$e", "exports$d", "_dewExec$d", "dew$d", "exports$c", "_dewExec$c", "dew$c", "origSymbol", "hasSymbolSham", "exports$b", "_dewExec$b", "dew$b", "test", "$Object", "exports$a", "_dewExec$a", "dew$a", "ERROR_MESSAGE", "toStr", "max", "funcType", "concatty", "a", "b", "arr", "i", "j", "slicy", "arrLike", "offset", "joiny", "joiner", "str", "that", "target", "args", "bound", "binder", "result", "boundLength", "boundArgs", "Empty", "exports$9", "_dewExec$9", "dew$9", "implementation", "exports$8", "_dewExec$8", "dew$8", "call", "$hasOwn", "bind", "exports$7", "_dewExec$7", "dew$7", "undefined$1", "$Error", "$EvalError", "$RangeError", "$ReferenceError", "$SyntaxError", "$TypeError", "$URIError", "$Function", "getEvalledConstructor", "expressionSyntax", "$gOPD", "throwTypeError", "ThrowTypeError", "hasSymbols", "hasProto", "getProto", "x", "needsEval", "TypedArray", "INTRINSICS", "e", "errorProto", "doEval", "name", "value", "fn", "gen", "LEGACY_ALIASES", "hasOwn", "$concat", "$spliceApply", "$replace", "$strSlice", "$exec", "rePropName", "reEscapeChar", "stringToPath", "string", "first", "last", "match", "number", "quote", "subString", "getBaseIntrinsic", "allowMissing", "intrinsicName", "alias", "parts", "intrinsicBaseName", "intrinsic", "intrinsicRealName", "skipFurtherCaching", "isOwn", "part", "desc", "exports$6", "_dewExec$6", "dew$6", "GetIntrinsic", "$defineProperty", "exports$5", "_dewExec$5", "dew$5", "exports$4", "_dewExec$4", "dew$4", "gopd", "property", "nonEnumerable", "nonWritable", "nonConfigurable", "loose", "exports$3", "_dewExec$3", "dew$3", "hasPropertyDescriptors", "exports$2", "_dewExec$2", "dew$2", "define", "hasDescriptors", "gOPD", "$floor", "length", "functionLengthIsConfigurable", "functionLengthIsWritable", "exports$1", "_dewExec$1", "dew$1", "setFunctionLength", "$apply", "$call", "$reflectApply", "$max", "originalFunction", "func", "applyBind", "exports", "_dewExec", "dew", "callBind", "$indexOf", "init_chunk_CkFCi_G1", "init_chunk_DEMDiNwt", "exports$c", "_dewExec$b", "dew$b", "hasSymbols", "dew$k", "exports$b", "_dewExec$a", "dew$a", "hasToStringTag", "callBound", "dew", "$toString", "isStandardArguments", "value", "isLegacyArguments", "supportsStandardArguments", "exports$a", "_dewExec$9", "dew$9", "toStr", "fnToStr", "isFnRegex", "getProto", "getGeneratorFunc", "GeneratorFunction", "fn", "str", "generatorFunc", "exports$9", "_dewExec$8", "dew$8", "reflectApply", "badArrayLike", "isCallableMarker", "_", "constructorRegex", "isES6ClassFn", "fnStr", "tryFunctionObject", "objectClass", "fnClass", "genClass", "ddaClass", "ddaClass2", "ddaClass3", "isIE68", "isDDA", "all", "e", "strClass", "exports$8", "_dewExec$7", "dew$7", "isCallable", "hasOwnProperty", "forEachArray", "array", "iterator", "receiver", "i", "len", "forEachString", "string", "forEachObject", "object", "k", "forEach", "list", "thisArg", "exports$7", "_dewExec$6", "dew$6", "exports$6", "_dewExec$5", "_global$2", "dew$5", "possibleNames", "g", "out", "exports$5", "_dewExec$4", "_global$1", "dew$4", "availableTypedArrays", "callBind", "dew$1", "gOPD", "typedArrays", "$slice", "getPrototypeOf", "$indexOf", "cache", "typedArray", "arr", "proto", "descriptor", "superProto", "tryTypedArrays", "found", "getter", "trySlices", "name", "tag", "exports$4", "_dewExec$3", "dew$3", "whichTypedArray", "exports$3", "_dewExec$2", "dew$2", "isArgumentsObject", "isGeneratorFunction", "isTypedArray", "uncurryThis", "f", "BigIntSupported", "SymbolSupported", "ObjectToString", "numberValue", "stringValue", "booleanValue", "bigIntValue", "symbolValue", "checkBoxedPrimitive", "prototypeValueOf", "isPromise", "input", "isArrayBufferView", "isDataView", "isUint8Array", "isUint8ClampedArray", "isUint16Array", "isUint32Array", "isInt8Array", "isInt16Array", "isInt32Array", "isFloat32Array", "isFloat64Array", "isBigInt64Array", "isBigUint64Array", "isMapToString", "isMap", "isSetToString", "isSet", "isWeakMapToString", "isWeakMap", "isWeakSetToString", "isWeakSet", "isArrayBufferToString", "isArrayBuffer", "isDataViewToString", "SharedArrayBufferCopy", "isSharedArrayBufferToString", "isSharedArrayBuffer", "isAsyncFunction", "isMapIterator", "isSetIterator", "isGeneratorObject", "isWebAssemblyCompiledModule", "isNumberObject", "isStringObject", "isBooleanObject", "isBigIntObject", "isSymbolObject", "isBoxedPrimitive", "isAnyArrayBuffer", "method", "exports$2", "_dewExec$1", "arg", "exports$1", "_dewExec", "_global", "process$1", "process", "getOwnPropertyDescriptors", "obj", "keys", "descriptors", "formatRegExp", "isString", "objects", "inspect", "args", "x", "isNull", "isObject", "msg", "warned", "deprecated", "debugs", "debugEnvRegex", "debugEnv", "set", "pid", "opts", "ctx", "stylizeNoColor", "isBoolean", "isUndefined", "stylizeWithColor", "formatValue", "styleType", "style", "arrayToHash", "hash", "val", "idx", "recurseTimes", "isFunction", "ret", "primitive", "formatPrimitive", "visibleKeys", "isError", "formatError", "isRegExp", "isDate", "base", "braces", "isArray", "n", "output", "formatArray", "key", "formatProperty", "reduceToSingleString", "simple", "isNumber", "l", "desc", "line", "length", "prev", "cur", "ar", "isNullOrUndefined", "isSymbol", "re", "objectToString", "d", "isPrimitive", "o", "pad", "months", "timestamp", "time", "origin", "add", "prop", "kCustomPromisifiedSymbol", "original", "promiseResolve", "promiseReject", "promise", "resolve", "reject", "err", "callbackifyOnRejected", "reason", "cb", "newReason", "callbackify", "callbackified", "maybeCb", "self", "rej", "exports", "_extend", "debuglog", "deprecate", "format", "inherits", "isBuffer", "log", "promisify", "types", "TextEncoder", "TextDecoder", "BaseLogger", "defaultOptions", "args", "level", "msg", "exports", "process_exports", "IntegrationLogger", "_IntegrationLogger", "BaseLogger", "options", "userId", "conversationId", "visibleToBotOwners", "hiddenToIntegrationOwners", "level", "msg", "botId", "integrationId", "integrationAlias", "init_dirname", "init_buffer", "init_process", "extractTracingHeaders", "headers", "acc", "header", "getServerProps", "ctx", "req", "instance", "traceId", "vanillaClient", "Client", "retryConfig", "client", "IntegrationSpecificClient", "logger", "IntegrationLogger", "handleOperation", "props", "onWebhook", "onRegister", "onUnregister", "onMessageCreated", "onActionTriggered", "onPing", "onCreateUser", "onCreateConversation", "InvalidPayloadError", "integrationHandler", "extractContext", "response", "onUnknownOperationHandler", "thrown", "status", "body", "error", "handlerErrorToHttpResponse", "_", "incomingRequest", "parseBody", "webhookUrl", "tags", "channel", "conversation", "user", "type", "payload", "message", "channelHandler", "messageHandler", "input", "action", "metadata", "ActionMetadataStore", "handler", "IntegrationImplementation", "props", "integrationHandler", "port", "serve", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "stripRecurringFromEvents", "events", "key", "_", "rest", "resolveRecurringEvents", "explicitRecurringEvents", "merged", "eventName", "event", "x", "BotDefinition", "_BotDefinition", "props", "events", "stripRecurringFromEvents", "recurringEvents", "resolveRecurringEvents", "SDK_VERSION", "overrides", "integrationPkg", "config", "self", "integrationAlias", "DefinitionError", "configurationType", "rawConfiguration", "configSchema", "parseResult", "configuration", "pluginPkg", "pluginAlias", "interfaces", "_", "dep", "pluginIfaceAlias", "pluginIfaceConfig", "integrationInstance", "availableIntegrations", "integrationInterfaceExtension", "availableInterfaces", "integrations", "pluginIntegAlias", "pluginIntegConfig", "rawPluginConfiguration", "pluginConfigSchema", "pluginParseResult", "pluginConfiguration", "user1", "user2", "conversation1", "conversation2", "message1", "message2", "states1", "states2", "events1", "events2", "recurringEvents1", "recurringEvents2", "actions1", "actions2", "tables1", "tables2", "workflows1", "workflows2", "obj", "record_utils_exports", "key", "PLUGIN_PREFIX_SEPARATOR", "zuiReferenceMap", "pluginInstance", "installedPlugins", "pluginInterfaceExtensions", "interfaceAlias", "pluginInterfaceExtension", "backingIntegration", "entityExtensions", "entityAlias", "interfaceEntityName", "entitySchema", "schema", "definitions", "definition", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "Client", "InvalidPayloadError", "init_dirname", "init_buffer", "init_process", "BotLogger", "_BotLogger", "BaseLogger", "options", "userId", "conversationId", "workflowId", "eventId", "messageId", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "BotSpecificClient", "_client", "_hooks", "x", "operation", "req", "before", "res", "after", "init_dirname", "init_buffer", "init_process", "z", "botOperationSchema", "z", "extractContext", "headers", "BOT_ID_HEADER", "throwError", "OPERATION_TYPE_HEADER", "OPERATION_SUBTYPE_HEADER", "Buffer", "CONFIGURATION_PAYLOAD_HEADER", "init_dirname", "init_buffer", "init_process", "SUCCESS_RESPONSE", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "bridgeUpdateTypeToSnakeCase", "updateType", "WORKFLOW_UPDATE_TYPES", "handleWorkflowUpdateEvent", "rawProps", "event", "props", "_attachWorkflowContextToLogger", "SUCCESS_RESPONSE", "_handleWorkflowUpdate", "updateType", "bridgeUpdateTypeToSnakeCase", "handlers", "updatedWorkflow", "_dispatchToHandlers", "currentWorkflowState", "handler", "init_dirname", "init_buffer", "init_process", "botHandler", "bot", "req", "ctx", "extractContext", "logger", "BotLogger", "vanillaClient", "Client", "retryConfig", "botClient", "BotSpecificClient", "beforeOutgoingMessageHooks", "handler", "client", "beforeOutgoingCallActionHooks", "res", "afterOutgoingMessageHooks", "type", "afterOutgoingCallActionHooks", "props", "onActionTriggered", "onEventReceived", "onRegister", "onUnregister", "onPing", "InvalidPayloadError", "thrown", "status", "body", "error", "handlerErrorToHttpResponse", "_", "SUCCESS_RESPONSE", "serverProps", "self", "common", "parseBody", "handleWorkflowUpdateEvent", "event", "message", "user", "conversation", "beforeIncomingMessageHooks", "hookOutput", "messagePayload", "messageHandlers", "afterIncomingMessageHooks", "state", "statePayload", "stateHandlers", "beforeIncomingEventHooks", "eventPayload", "eventHandlers", "afterIncomingEventHooks", "input", "beforeIncomingCallActionHooks", "action", "output", "afterIncomingCallActionHooks", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "unprefixTagsOwnedByPlugin", "obj", "alias", "prefix", "PLUGIN_PREFIX_SEPARATOR", "unprefixedTags", "key", "value", "prefixTagsIfNeeded", "prefixedTags", "init_dirname", "init_buffer", "init_process", "AsyncCollection", "_list", "amount", "arr", "i", "result", "elements", "items", "meta", "createAsyncCollection", "listFn", "proxyWorkflows", "props", "_", "workflowName", "input", "createAsyncCollection", "nextToken", "meta", "workflows", "workflow", "wrapWorkflowInstance", "prefixTagsIfNeeded", "isAcknowledged", "unprefixTagsOwnedByPlugin", "x", "failureReason", "output", "init_dirname", "init_buffer", "init_process", "BotImplementation", "props", "_", "actionName", "action", "function_utils_exports", "proxyWorkflows", "pluginAlias", "plugin", "actionPrefix", "nameWithoutPrefix", "PLUGIN_PREFIX_SEPARATOR", "messageName", "pluginHandlers", "selfSpecificHandlers", "selfGlobalHandlers", "selfHandlers", "a", "b", "handler", "array_utils_exports", "eventName", "stateName", "hookType", "hookDataName", "selfHooks", "updateType", "handlersOfType", "workflowName", "currentWorkflowState", "wrapWorkflowInstance", "newState", "type", "botHandler", "port", "serve", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "InterfaceDefinition", "_InterfaceDefinition", "props", "entityReferences", "events", "record_utils_exports", "event", "actions", "action", "channels", "channel", "message", "SDK_VERSION", "overrides", "entities", "entityName", "entityDef", "title", "description", "refSchema", "z", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "PluginDefinition", "_PluginDefinition", "props", "entities", "interfaceAlias", "interfaceDef", "entityName", "z", "aliases", "alias", "DefinitionError", "stateName", "stateDef", "resolvedEvents", "eventName", "eventDef", "stripRecurringFromEvents", "resolveRecurringEvents", "actionName", "actionDef", "tableName", "tableDef", "SDK_VERSION", "overrides", "intersectWithUnknownRecord", "zuiReferenceMap", "interfacePackage", "entityDefinition", "schema", "definitions", "key", "definition", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "proxyActions", "client", "props", "_target", "integrationOrInterfaceAlias", "actionName", "input", "integrationAlias", "actualActionName", "res", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "proxyMessages", "props", "id", "response", "proxyMessage", "listProps", "createAsyncCollection", "nextToken", "prefixTagsIfNeeded", "meta", "messages", "message", "unprefixTagsOwnedByPlugin", "data", "updatedMessage", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "proxyUsers", "props", "listProps", "createAsyncCollection", "nextToken", "prefixTagsIfNeeded", "meta", "users", "user", "proxyUser", "id", "response", "baseActionableUser", "unprefixTagsOwnedByPlugin", "data", "updatedUser", "conversationId", "participant", "init_dirname", "init_buffer", "init_process", "proxyConversations", "props", "_target", "interfaceOrIntegrationAlias", "_target2", "channel", "listProps", "integrationName", "actualChannelName", "createAsyncCollection", "nextToken", "prefixTagsIfNeeded", "meta", "conversations", "conversation", "proxyConversation", "id", "response", "vanillaClient", "unprefixTagsOwnedByPlugin", "data", "updatedConversation", "proxyMessage", "message", "messages", "participants", "user", "proxyUser", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "_EventSender", "__EventSender", "_props", "eventPayload", "conversationId", "userId", "messageId", "event", "schedule", "props", "createAsyncCollection", "nextToken", "meta", "events", "proxyEvents", "client", "_target", "eventName", "actualName", "PLUGIN_PREFIX_SEPARATOR", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "_StateRepo", "_client", "_stateType", "_stateName", "id", "r", "payload", "options", "proxyStates", "client", "props", "_target", "stateType", "stateName", "actualName", "PLUGIN_PREFIX_SEPARATOR", "init_dirname", "init_buffer", "init_process", "_hookInputHasMessageContext", "input", "PluginImplementation", "props", "client", "configuration", "interfaces", "integrations", "alias", "actions", "proxyActions", "states", "proxyStates", "workflows", "proxyWorkflows", "events", "proxyEvents", "users", "proxyUsers", "conversations", "proxyConversations", "messages", "proxyMessages", "_", "actionName", "handler", "function_utils_exports", "messageName", "specificHandlers", "globalHandlers", "array_utils_exports", "a", "b", "proxyUser", "proxyMessage", "proxyConversation", "eventName", "interfaceHandlers", "e", "handlers", "stateName", "hookType", "hooks", "hookDataName", "data", "unprefixTagsOwnedByPlugin", "tools", "extraProps", "user", "conversation", "updateType", "handlersOfType", "workflowName", "currentWorkflowState", "wrapWorkflowInstance", "newState", "type", "actualEventRef", "targetEventRef", "pluginIfaceOrIntAlias", "ifaceOrIntEvent", "iface", "integration", "prop", "prefix", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "version_utils_exports", "__export", "allWithinMajorOf", "allWithinMinorOf", "init_dirname", "init_buffer", "init_process", "semver", "pkg", "major", "minor", "init_dirname", "init_buffer", "init_process"]
|
|
7
|
+
}
|