every-plugin 0.4.13 → 0.4.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/rspack/index.cjs +82 -80
- package/dist/build/rspack/index.cjs.map +1 -0
- package/dist/build/rspack/index.d.cts +1 -1
- package/dist/build/rspack/index.d.cts.map +1 -0
- package/dist/build/rspack/index.d.mts +1 -1
- package/dist/build/rspack/index.d.mts.map +1 -0
- package/dist/build/rspack/index.mjs +82 -80
- package/dist/build/rspack/index.mjs.map +1 -0
- package/dist/errors-9sNpYLv5.d.mts +1 -1
- package/dist/errors-9sNpYLv5.d.mts.map +1 -0
- package/dist/errors-CVnoPl9v.cjs +1 -1
- package/dist/errors-CVnoPl9v.cjs.map +1 -0
- package/dist/errors-D7keKf7a.mjs +1 -1
- package/dist/errors-D7keKf7a.mjs.map +1 -0
- package/dist/errors-DKPPPYYT.d.cts +1 -1
- package/dist/errors-DKPPPYYT.d.cts.map +1 -0
- package/dist/fetch-8DauUFDh.mjs +335 -0
- package/dist/fetch-8DauUFDh.mjs.map +1 -0
- package/dist/fetch-CrBvwsZ4.cjs +336 -0
- package/dist/fetch-CrBvwsZ4.cjs.map +1 -0
- package/dist/index-Coz54d1B.d.mts +387 -0
- package/dist/index-Coz54d1B.d.mts.map +1 -0
- package/dist/index-G63gBZIY.d.cts +386 -0
- package/dist/index-G63gBZIY.d.cts.map +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -0
- package/dist/normalize-BW7kk8Lk.d.cts +1 -1
- package/dist/normalize-BW7kk8Lk.d.cts.map +1 -0
- package/dist/normalize-D4Qh0wVk.cjs +1 -1
- package/dist/normalize-D4Qh0wVk.cjs.map +1 -0
- package/dist/normalize-D7nae0Hn.mjs +1 -1
- package/dist/normalize-D7nae0Hn.mjs.map +1 -0
- package/dist/normalize-eB_j86fm.d.mts +1 -1
- package/dist/normalize-eB_j86fm.d.mts.map +1 -0
- package/dist/package-BoyftHDo.mjs +150 -0
- package/dist/package-BoyftHDo.mjs.map +1 -0
- package/dist/package-CgNIVjVe.cjs +155 -0
- package/dist/package-CgNIVjVe.cjs.map +1 -0
- package/dist/plugins-C6MGKdD-.mjs +790 -0
- package/dist/plugins-C6MGKdD-.mjs.map +1 -0
- package/dist/plugins-DNaNtkG7.cjs +791 -0
- package/dist/plugins-DNaNtkG7.cjs.map +1 -0
- package/dist/runtime/index.cjs +2 -2
- package/dist/runtime/index.d.cts +1 -1
- package/dist/runtime/index.d.mts +1 -1
- package/dist/runtime/index.mjs +2 -2
- package/dist/runtime-60AkNpI0.mjs +476 -0
- package/dist/runtime-60AkNpI0.mjs.map +1 -0
- package/dist/runtime-BcksCIA1.cjs +541 -0
- package/dist/runtime-BcksCIA1.cjs.map +1 -0
- package/dist/standard-CkH8zNkx.mjs +584 -0
- package/dist/standard-CkH8zNkx.mjs.map +1 -0
- package/dist/standard-v75BC6Z5.cjs +685 -0
- package/dist/standard-v75BC6Z5.cjs.map +1 -0
- package/dist/testing/index.cjs +3 -3
- package/dist/testing/index.cjs.map +1 -0
- package/dist/testing/index.d.cts +2 -2
- package/dist/testing/index.d.cts.map +1 -0
- package/dist/testing/index.d.mts +2 -2
- package/dist/testing/index.d.mts.map +1 -0
- package/dist/testing/index.mjs +3 -3
- package/dist/testing/index.mjs.map +1 -0
- package/dist/zod-A7Pti5IV.d.cts +1 -1
- package/dist/zod-A7Pti5IV.d.cts.map +1 -0
- package/dist/zod-BVo51kgJ.mjs +1 -1
- package/dist/zod-BVo51kgJ.mjs.map +1 -0
- package/dist/zod-DYghWCz1.cjs +1 -1
- package/dist/zod-DYghWCz1.cjs.map +1 -0
- package/dist/zod-Zw8dlP3j.d.mts +1 -1
- package/dist/zod-Zw8dlP3j.d.mts.map +1 -0
- package/package.json +1 -1
- package/dist/fetch-CGzn1Uf7.cjs +0 -336
- package/dist/fetch-ycs0raYN.mjs +0 -335
- package/dist/index-matrPV4m.d.cts +0 -382
- package/dist/index-qxKsRmCb.d.mts +0 -383
- package/dist/package-CMoV9xVN.cjs +0 -155
- package/dist/package-WZ0vKAyb.mjs +0 -150
- package/dist/plugins-Cmsm3gW1.cjs +0 -791
- package/dist/plugins-hpi2GlaX.mjs +0 -790
- package/dist/runtime-B4AItsDQ.mjs +0 -458
- package/dist/runtime-D5bSEcHa.cjs +0 -523
- package/dist/standard-0wBehDUp.cjs +0 -685
- package/dist/standard-CYaRay89.mjs +0 -584
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-v75BC6Z5.cjs","names":["value","#cleanup","#next","#isDone","#isExecuteComplete","ORPCError","value","value","#serialize","value"],"sources":["../../../node_modules/.bun/@orpc+shared@1.10.4+460773ef8ff1e07c/node_modules/@orpc/shared/dist/index.mjs","../../../node_modules/.bun/@orpc+standard-server@1.10.4+460773ef8ff1e07c/node_modules/@orpc/standard-server/dist/index.mjs","../../../node_modules/.bun/@orpc+client@1.10.4+460773ef8ff1e07c/node_modules/@orpc/client/dist/shared/client.DmkMd_GB.mjs","../../../node_modules/.bun/@orpc+openapi-client@1.10.4+460773ef8ff1e07c/node_modules/@orpc/openapi-client/dist/shared/openapi-client.t9fCAe3x.mjs","../../../node_modules/.bun/@orpc+client@1.10.4+460773ef8ff1e07c/node_modules/@orpc/client/dist/shared/client.Di65MWxv.mjs","../../../node_modules/.bun/@orpc+openapi-client@1.10.4+460773ef8ff1e07c/node_modules/@orpc/openapi-client/dist/shared/openapi-client.B2Q9qU5m.mjs"],"sourcesContent":["export { group, guard, mapEntries, mapValues, omit, retry, sleep } from 'radash';\n\nfunction resolveMaybeOptionalOptions(rest) {\n return rest[0] ?? {};\n}\n\nfunction toArray(value) {\n return Array.isArray(value) ? value : value === void 0 || value === null ? [] : [value];\n}\nfunction splitInHalf(arr) {\n const half = Math.ceil(arr.length / 2);\n return [arr.slice(0, half), arr.slice(half)];\n}\n\nfunction readAsBuffer(source) {\n if (typeof source.bytes === \"function\") {\n return source.bytes();\n }\n return source.arrayBuffer();\n}\n\nconst ORPC_NAME = \"orpc\";\nconst ORPC_SHARED_PACKAGE_NAME = \"@orpc/shared\";\nconst ORPC_SHARED_PACKAGE_VERSION = \"1.10.4\";\n\nclass AbortError extends Error {\n constructor(...rest) {\n super(...rest);\n this.name = \"AbortError\";\n }\n}\n\nfunction once(fn) {\n let cached;\n return () => {\n if (cached) {\n return cached.result;\n }\n const result = fn();\n cached = { result };\n return result;\n };\n}\nfunction sequential(fn) {\n let lastOperationPromise = Promise.resolve();\n return (...args) => {\n return lastOperationPromise = lastOperationPromise.catch(() => {\n }).then(() => {\n return fn(...args);\n });\n };\n}\nfunction defer(callback) {\n if (typeof setTimeout === \"function\") {\n setTimeout(callback, 0);\n } else {\n Promise.resolve().then(() => Promise.resolve().then(() => Promise.resolve().then(callback)));\n }\n}\n\nconst SPAN_ERROR_STATUS = 2;\nconst GLOBAL_OTEL_CONFIG_KEY = `__${ORPC_SHARED_PACKAGE_NAME}@${ORPC_SHARED_PACKAGE_VERSION}/otel/config__`;\nfunction setGlobalOtelConfig(config) {\n globalThis[GLOBAL_OTEL_CONFIG_KEY] = config;\n}\nfunction getGlobalOtelConfig() {\n return globalThis[GLOBAL_OTEL_CONFIG_KEY];\n}\nfunction startSpan(name, options = {}, context) {\n const tracer = getGlobalOtelConfig()?.tracer;\n return tracer?.startSpan(name, options, context);\n}\nfunction setSpanError(span, error, options = {}) {\n if (!span) {\n return;\n }\n const exception = toOtelException(error);\n span.recordException(exception);\n if (!options.signal?.aborted || options.signal.reason !== error) {\n span.setStatus({\n code: SPAN_ERROR_STATUS,\n message: exception.message\n });\n }\n}\nfunction setSpanAttribute(span, key, value) {\n if (!span || value === void 0) {\n return;\n }\n span.setAttribute(key, value);\n}\nfunction toOtelException(error) {\n if (error instanceof Error) {\n const exception = {\n message: error.message,\n name: error.name,\n stack: error.stack\n };\n if (\"code\" in error && (typeof error.code === \"string\" || typeof error.code === \"number\")) {\n exception.code = error.code;\n }\n return exception;\n }\n return { message: String(error) };\n}\nfunction toSpanAttributeValue(data) {\n if (data === void 0) {\n return \"undefined\";\n }\n try {\n return JSON.stringify(data, (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n if (value instanceof Map || value instanceof Set) {\n return Array.from(value);\n }\n return value;\n });\n } catch {\n return String(data);\n }\n}\nasync function runWithSpan({ name, context, ...options }, fn) {\n const tracer = getGlobalOtelConfig()?.tracer;\n if (!tracer) {\n return fn();\n }\n const callback = async (span) => {\n try {\n return await fn(span);\n } catch (e) {\n setSpanError(span, e, options);\n throw e;\n } finally {\n span.end();\n }\n };\n if (context) {\n return tracer.startActiveSpan(name, options, context, callback);\n } else {\n return tracer.startActiveSpan(name, options, callback);\n }\n}\nasync function runInSpanContext(span, fn) {\n const otelConfig = getGlobalOtelConfig();\n if (!span || !otelConfig) {\n return fn();\n }\n const ctx = otelConfig.trace.setSpan(otelConfig.context.active(), span);\n return otelConfig.context.with(ctx, fn);\n}\n\nclass AsyncIdQueue {\n openIds = /* @__PURE__ */ new Set();\n queues = /* @__PURE__ */ new Map();\n waiters = /* @__PURE__ */ new Map();\n get length() {\n return this.openIds.size;\n }\n get waiterIds() {\n return Array.from(this.waiters.keys());\n }\n hasBufferedItems(id) {\n return Boolean(this.queues.get(id)?.length);\n }\n open(id) {\n this.openIds.add(id);\n }\n isOpen(id) {\n return this.openIds.has(id);\n }\n push(id, item) {\n this.assertOpen(id);\n const pending = this.waiters.get(id);\n if (pending?.length) {\n pending.shift()[0](item);\n if (pending.length === 0) {\n this.waiters.delete(id);\n }\n } else {\n const items = this.queues.get(id);\n if (items) {\n items.push(item);\n } else {\n this.queues.set(id, [item]);\n }\n }\n }\n async pull(id) {\n this.assertOpen(id);\n const items = this.queues.get(id);\n if (items?.length) {\n const item = items.shift();\n if (items.length === 0) {\n this.queues.delete(id);\n }\n return item;\n }\n return new Promise((resolve, reject) => {\n const waitingPulls = this.waiters.get(id);\n const pending = [resolve, reject];\n if (waitingPulls) {\n waitingPulls.push(pending);\n } else {\n this.waiters.set(id, [pending]);\n }\n });\n }\n close({ id, reason } = {}) {\n if (id === void 0) {\n this.waiters.forEach((pendingPulls, id2) => {\n const error2 = reason ?? new AbortError(`[AsyncIdQueue] Queue[${id2}] was closed or aborted while waiting for pulling.`);\n pendingPulls.forEach(([, reject]) => reject(error2));\n });\n this.waiters.clear();\n this.openIds.clear();\n this.queues.clear();\n return;\n }\n const error = reason ?? new AbortError(`[AsyncIdQueue] Queue[${id}] was closed or aborted while waiting for pulling.`);\n this.waiters.get(id)?.forEach(([, reject]) => reject(error));\n this.waiters.delete(id);\n this.openIds.delete(id);\n this.queues.delete(id);\n }\n assertOpen(id) {\n if (!this.isOpen(id)) {\n throw new Error(`[AsyncIdQueue] Cannot access queue[${id}] because it is not open or aborted.`);\n }\n }\n}\n\nfunction isAsyncIteratorObject(maybe) {\n if (!maybe || typeof maybe !== \"object\") {\n return false;\n }\n return \"next\" in maybe && typeof maybe.next === \"function\" && Symbol.asyncIterator in maybe && typeof maybe[Symbol.asyncIterator] === \"function\";\n}\nconst fallbackAsyncDisposeSymbol = Symbol.for(\"asyncDispose\");\nconst asyncDisposeSymbol = Symbol.asyncDispose ?? fallbackAsyncDisposeSymbol;\nclass AsyncIteratorClass {\n #isDone = false;\n #isExecuteComplete = false;\n #cleanup;\n #next;\n constructor(next, cleanup) {\n this.#cleanup = cleanup;\n this.#next = sequential(async () => {\n if (this.#isDone) {\n return { done: true, value: void 0 };\n }\n try {\n const result = await next();\n if (result.done) {\n this.#isDone = true;\n }\n return result;\n } catch (err) {\n this.#isDone = true;\n throw err;\n } finally {\n if (this.#isDone && !this.#isExecuteComplete) {\n this.#isExecuteComplete = true;\n await this.#cleanup(\"next\");\n }\n }\n });\n }\n next() {\n return this.#next();\n }\n async return(value) {\n this.#isDone = true;\n if (!this.#isExecuteComplete) {\n this.#isExecuteComplete = true;\n await this.#cleanup(\"return\");\n }\n return { done: true, value };\n }\n async throw(err) {\n this.#isDone = true;\n if (!this.#isExecuteComplete) {\n this.#isExecuteComplete = true;\n await this.#cleanup(\"throw\");\n }\n throw err;\n }\n /**\n * asyncDispose symbol only available in esnext, we should fallback to Symbol.for('asyncDispose')\n */\n async [asyncDisposeSymbol]() {\n this.#isDone = true;\n if (!this.#isExecuteComplete) {\n this.#isExecuteComplete = true;\n await this.#cleanup(\"dispose\");\n }\n }\n [Symbol.asyncIterator]() {\n return this;\n }\n}\nfunction replicateAsyncIterator(source, count) {\n const queue = new AsyncIdQueue();\n const ids = Array.from({ length: count }, (_, i) => i.toString());\n let isSourceFinished = false;\n const start = once(async () => {\n try {\n while (true) {\n const item = await source.next();\n ids.forEach((id) => {\n if (queue.isOpen(id)) {\n queue.push(id, { next: item });\n }\n });\n if (item.done) {\n break;\n }\n }\n } catch (error) {\n ids.forEach((id) => {\n if (queue.isOpen(id)) {\n queue.push(id, { error });\n }\n });\n } finally {\n isSourceFinished = true;\n }\n });\n const replicated = ids.map((id) => {\n queue.open(id);\n return new AsyncIteratorClass(\n async () => {\n start();\n const item = await queue.pull(id);\n if (item.next) {\n return item.next;\n }\n throw item.error;\n },\n async (reason) => {\n queue.close({ id });\n if (reason !== \"next\" && !queue.length && !isSourceFinished) {\n isSourceFinished = true;\n await source?.return?.();\n }\n }\n );\n });\n return replicated;\n}\nfunction asyncIteratorWithSpan({ name, ...options }, iterator) {\n let span;\n return new AsyncIteratorClass(\n async () => {\n span ??= startSpan(name);\n try {\n const result = await runInSpanContext(span, () => iterator.next());\n span?.addEvent(result.done ? \"completed\" : \"yielded\");\n return result;\n } catch (err) {\n setSpanError(span, err, options);\n throw err;\n }\n },\n async (reason) => {\n try {\n if (reason !== \"next\") {\n await runInSpanContext(span, () => iterator.return?.());\n }\n } catch (err) {\n setSpanError(span, err, options);\n throw err;\n } finally {\n span?.end();\n }\n }\n );\n}\n\nclass EventPublisher {\n #listenersMap = /* @__PURE__ */ new Map();\n #maxBufferedEvents;\n constructor(options = {}) {\n this.#maxBufferedEvents = options.maxBufferedEvents ?? 100;\n }\n get size() {\n return this.#listenersMap.size;\n }\n /**\n * Emits an event and delivers the payload to all subscribed listeners.\n */\n publish(event, payload) {\n const listeners = this.#listenersMap.get(event);\n if (!listeners) {\n return;\n }\n for (const listener of listeners) {\n listener(payload);\n }\n }\n subscribe(event, listenerOrOptions) {\n if (typeof listenerOrOptions === \"function\") {\n let listeners = this.#listenersMap.get(event);\n if (!listeners) {\n this.#listenersMap.set(event, listeners = []);\n }\n listeners.push(listenerOrOptions);\n return once(() => {\n listeners.splice(listeners.indexOf(listenerOrOptions), 1);\n if (listeners.length === 0) {\n this.#listenersMap.delete(event);\n }\n });\n }\n const signal = listenerOrOptions?.signal;\n const maxBufferedEvents = listenerOrOptions?.maxBufferedEvents ?? this.#maxBufferedEvents;\n signal?.throwIfAborted();\n const bufferedEvents = [];\n const pullResolvers = [];\n const unsubscribe = this.subscribe(event, (payload) => {\n const resolver = pullResolvers.shift();\n if (resolver) {\n resolver[0]({ done: false, value: payload });\n } else {\n bufferedEvents.push(payload);\n if (bufferedEvents.length > maxBufferedEvents) {\n bufferedEvents.shift();\n }\n }\n });\n const abortListener = (event2) => {\n unsubscribe();\n pullResolvers.forEach((resolver) => resolver[1](event2.target.reason));\n pullResolvers.length = 0;\n bufferedEvents.length = 0;\n };\n signal?.addEventListener(\"abort\", abortListener, { once: true });\n return new AsyncIteratorClass(async () => {\n if (signal?.aborted) {\n throw signal.reason;\n }\n if (bufferedEvents.length > 0) {\n return { done: false, value: bufferedEvents.shift() };\n }\n return new Promise((resolve, reject) => {\n pullResolvers.push([resolve, reject]);\n });\n }, async () => {\n unsubscribe();\n signal?.removeEventListener(\"abort\", abortListener);\n pullResolvers.forEach((resolver) => resolver[0]({ done: true, value: void 0 }));\n pullResolvers.length = 0;\n bufferedEvents.length = 0;\n });\n }\n}\n\nclass SequentialIdGenerator {\n index = BigInt(1);\n generate() {\n const id = this.index.toString(36);\n this.index++;\n return id;\n }\n}\nfunction compareSequentialIds(a, b) {\n if (a.length !== b.length) {\n return a.length - b.length;\n }\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\nfunction onStart(callback) {\n return async (options, ...rest) => {\n await callback(options, ...rest);\n return await options.next();\n };\n}\nfunction onSuccess(callback) {\n return async (options, ...rest) => {\n const result = await options.next();\n await callback(result, options, ...rest);\n return result;\n };\n}\nfunction onError(callback) {\n return async (options, ...rest) => {\n try {\n return await options.next();\n } catch (error) {\n await callback(error, options, ...rest);\n throw error;\n }\n };\n}\nfunction onFinish(callback) {\n let state;\n return async (options, ...rest) => {\n try {\n const result = await options.next();\n state = [null, result, true];\n return result;\n } catch (error) {\n state = [error, void 0, false];\n throw error;\n } finally {\n await callback(state, options, ...rest);\n }\n };\n}\nfunction intercept(interceptors, options, main) {\n const next = (options2, index) => {\n const interceptor = interceptors[index];\n if (!interceptor) {\n return main(options2);\n }\n return interceptor({\n ...options2,\n next: (newOptions = options2) => next(newOptions, index + 1)\n });\n };\n return next(options, 0);\n}\n\nfunction parseEmptyableJSON(text) {\n if (!text) {\n return void 0;\n }\n return JSON.parse(text);\n}\nfunction stringifyJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction findDeepMatches(check, payload, segments = [], maps = [], values = []) {\n if (check(payload)) {\n maps.push(segments);\n values.push(payload);\n } else if (Array.isArray(payload)) {\n payload.forEach((v, i) => {\n findDeepMatches(check, v, [...segments, i], maps, values);\n });\n } else if (isObject(payload)) {\n for (const key in payload) {\n findDeepMatches(check, payload[key], [...segments, key], maps, values);\n }\n }\n return { maps, values };\n}\nfunction getConstructor(value) {\n if (!isTypescriptObject(value)) {\n return null;\n }\n return Object.getPrototypeOf(value)?.constructor;\n}\nfunction isObject(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || !proto || !proto.constructor;\n}\nfunction isTypescriptObject(value) {\n return !!value && (typeof value === \"object\" || typeof value === \"function\");\n}\nfunction clone(value) {\n if (Array.isArray(value)) {\n return value.map(clone);\n }\n if (isObject(value)) {\n const result = {};\n for (const key in value) {\n result[key] = clone(value[key]);\n }\n return result;\n }\n return value;\n}\nfunction get(object, path) {\n let current = object;\n for (const key of path) {\n if (!isTypescriptObject(current)) {\n return void 0;\n }\n current = current[key];\n }\n return current;\n}\nfunction isPropertyKey(value) {\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"symbol\";\n}\nconst NullProtoObj = /* @__PURE__ */ (() => {\n const e = function() {\n };\n e.prototype = /* @__PURE__ */ Object.create(null);\n Object.freeze(e.prototype);\n return e;\n})();\n\nfunction value(value2, ...args) {\n if (typeof value2 === \"function\") {\n return value2(...args);\n }\n return value2;\n}\nfunction fallback(value2, fallback2) {\n return value2 === void 0 ? fallback2 : value2;\n}\n\nfunction preventNativeAwait(target) {\n return new Proxy(target, {\n get(target2, prop, receiver) {\n const value2 = Reflect.get(target2, prop, receiver);\n if (prop !== \"then\" || typeof value2 !== \"function\") {\n return value2;\n }\n return new Proxy(value2, {\n apply(targetFn, thisArg, args) {\n if (args.length !== 2 || args.some((arg) => !isNativeFunction(arg))) {\n return Reflect.apply(targetFn, thisArg, args);\n }\n let shouldOmit = true;\n args[0].call(thisArg, preventNativeAwait(new Proxy(target2, {\n get: (target3, prop2, receiver2) => {\n if (shouldOmit && prop2 === \"then\") {\n shouldOmit = false;\n return void 0;\n }\n return Reflect.get(target3, prop2, receiver2);\n }\n })));\n }\n });\n }\n });\n}\nconst NATIVE_FUNCTION_REGEX = /^\\s*function\\s*\\(\\)\\s*\\{\\s*\\[native code\\]\\s*\\}\\s*$/;\nfunction isNativeFunction(fn) {\n return typeof fn === \"function\" && NATIVE_FUNCTION_REGEX.test(fn.toString());\n}\nfunction overlayProxy(target, partial) {\n const proxy = new Proxy(typeof target === \"function\" ? partial : target, {\n get(_, prop) {\n const targetValue = prop in partial ? partial : value(target);\n const v = Reflect.get(targetValue, prop);\n return typeof v === \"function\" ? v.bind(targetValue) : v;\n },\n has(_, prop) {\n return Reflect.has(partial, prop) || Reflect.has(value(target), prop);\n }\n });\n return proxy;\n}\n\nfunction streamToAsyncIteratorClass(stream) {\n const reader = stream.getReader();\n return new AsyncIteratorClass(\n async () => {\n return reader.read();\n },\n async () => {\n await reader.cancel();\n }\n );\n}\nfunction asyncIteratorToStream(iterator) {\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iterator.return?.();\n }\n });\n}\nfunction asyncIteratorToUnproxiedDataStream(iterator) {\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n const unproxied = isObject(value) ? { ...value } : Array.isArray(value) ? value.map((i) => i) : value;\n controller.enqueue(unproxied);\n }\n },\n async cancel() {\n await iterator.return?.();\n }\n });\n}\n\nfunction tryDecodeURIComponent(value) {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\n\nexport { AbortError, AsyncIdQueue, AsyncIteratorClass, EventPublisher, NullProtoObj, ORPC_NAME, ORPC_SHARED_PACKAGE_NAME, ORPC_SHARED_PACKAGE_VERSION, SequentialIdGenerator, asyncIteratorToStream, asyncIteratorToUnproxiedDataStream, asyncIteratorWithSpan, clone, compareSequentialIds, defer, fallback, findDeepMatches, get, getConstructor, getGlobalOtelConfig, intercept, isAsyncIteratorObject, isObject, isPropertyKey, isTypescriptObject, onError, onFinish, onStart, onSuccess, once, overlayProxy, parseEmptyableJSON, preventNativeAwait, readAsBuffer, replicateAsyncIterator, resolveMaybeOptionalOptions, runInSpanContext, runWithSpan, sequential, setGlobalOtelConfig, setSpanAttribute, setSpanError, splitInHalf, startSpan, streamToAsyncIteratorClass, stringifyJSON, toArray, toOtelException, toSpanAttributeValue, tryDecodeURIComponent, value };\n","import { isTypescriptObject, AsyncIteratorClass, tryDecodeURIComponent, toArray, once, isAsyncIteratorObject, replicateAsyncIterator } from '@orpc/shared';\n\nclass EventEncoderError extends TypeError {\n}\nclass EventDecoderError extends TypeError {\n}\nclass ErrorEvent extends Error {\n data;\n constructor(options) {\n super(options?.message ?? \"An error event was received\", options);\n this.data = options?.data;\n }\n}\n\nfunction decodeEventMessage(encoded) {\n const lines = encoded.replace(/\\n+$/, \"\").split(/\\n/);\n const message = {\n data: void 0,\n event: void 0,\n id: void 0,\n retry: void 0,\n comments: []\n };\n for (const line of lines) {\n const index = line.indexOf(\":\");\n const key = index === -1 ? line : line.slice(0, index);\n const value = index === -1 ? \"\" : line.slice(index + 1).replace(/^\\s/, \"\");\n if (index === 0) {\n message.comments.push(value);\n } else if (key === \"data\") {\n message.data ??= \"\";\n message.data += `${value}\n`;\n } else if (key === \"event\") {\n message.event = value;\n } else if (key === \"id\") {\n message.id = value;\n } else if (key === \"retry\") {\n const maybeInteger = Number.parseInt(value);\n if (Number.isInteger(maybeInteger) && maybeInteger >= 0 && maybeInteger.toString() === value) {\n message.retry = maybeInteger;\n }\n }\n }\n message.data = message.data?.replace(/\\n$/, \"\");\n return message;\n}\nclass EventDecoder {\n constructor(options = {}) {\n this.options = options;\n }\n incomplete = \"\";\n feed(chunk) {\n this.incomplete += chunk;\n const lastCompleteIndex = this.incomplete.lastIndexOf(\"\\n\\n\");\n if (lastCompleteIndex === -1) {\n return;\n }\n const completes = this.incomplete.slice(0, lastCompleteIndex).split(/\\n\\n/);\n this.incomplete = this.incomplete.slice(lastCompleteIndex + 2);\n for (const encoded of completes) {\n const message = decodeEventMessage(`${encoded}\n\n`);\n if (this.options.onEvent) {\n this.options.onEvent(message);\n }\n }\n this.incomplete = \"\";\n }\n end() {\n if (this.incomplete) {\n throw new EventDecoderError(\"Event Iterator ended before complete\");\n }\n }\n}\nclass EventDecoderStream extends TransformStream {\n constructor() {\n let decoder;\n super({\n start(controller) {\n decoder = new EventDecoder({\n onEvent: (event) => {\n controller.enqueue(event);\n }\n });\n },\n transform(chunk) {\n decoder.feed(chunk);\n },\n flush() {\n decoder.end();\n }\n });\n }\n}\n\nfunction assertEventId(id) {\n if (id.includes(\"\\n\")) {\n throw new EventEncoderError(\"Event's id must not contain a newline character\");\n }\n}\nfunction assertEventName(event) {\n if (event.includes(\"\\n\")) {\n throw new EventEncoderError(\"Event's event must not contain a newline character\");\n }\n}\nfunction assertEventRetry(retry) {\n if (!Number.isInteger(retry) || retry < 0) {\n throw new EventEncoderError(\"Event's retry must be a integer and >= 0\");\n }\n}\nfunction assertEventComment(comment) {\n if (comment.includes(\"\\n\")) {\n throw new EventEncoderError(\"Event's comment must not contain a newline character\");\n }\n}\nfunction encodeEventData(data) {\n const lines = data?.split(/\\n/) ?? [];\n let output = \"\";\n for (const line of lines) {\n output += `data: ${line}\n`;\n }\n return output;\n}\nfunction encodeEventComments(comments) {\n let output = \"\";\n for (const comment of comments ?? []) {\n assertEventComment(comment);\n output += `: ${comment}\n`;\n }\n return output;\n}\nfunction encodeEventMessage(message) {\n let output = \"\";\n output += encodeEventComments(message.comments);\n if (message.event !== void 0) {\n assertEventName(message.event);\n output += `event: ${message.event}\n`;\n }\n if (message.retry !== void 0) {\n assertEventRetry(message.retry);\n output += `retry: ${message.retry}\n`;\n }\n if (message.id !== void 0) {\n assertEventId(message.id);\n output += `id: ${message.id}\n`;\n }\n output += encodeEventData(message.data);\n output += \"\\n\";\n return output;\n}\n\nconst EVENT_SOURCE_META_SYMBOL = Symbol(\"ORPC_EVENT_SOURCE_META\");\nfunction withEventMeta(container, meta) {\n if (meta.id === void 0 && meta.retry === void 0 && !meta.comments?.length) {\n return container;\n }\n if (meta.id !== void 0) {\n assertEventId(meta.id);\n }\n if (meta.retry !== void 0) {\n assertEventRetry(meta.retry);\n }\n if (meta.comments !== void 0) {\n for (const comment of meta.comments) {\n assertEventComment(comment);\n }\n }\n return new Proxy(container, {\n get(target, prop, receiver) {\n if (prop === EVENT_SOURCE_META_SYMBOL) {\n return meta;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction getEventMeta(container) {\n return isTypescriptObject(container) ? Reflect.get(container, EVENT_SOURCE_META_SYMBOL) : void 0;\n}\n\nclass HibernationEventIterator extends AsyncIteratorClass {\n /**\n * this property is not transferred to the client, so it should be optional for type safety\n */\n hibernationCallback;\n constructor(hibernationCallback) {\n super(async () => {\n throw new Error(\"Cannot iterate over hibernating iterator directly\");\n }, async (reason) => {\n if (reason !== \"next\") {\n throw new Error(\"Cannot cleanup hibernating iterator directly\");\n }\n });\n this.hibernationCallback = hibernationCallback;\n }\n}\n\nfunction generateContentDisposition(filename) {\n const escapedFileName = filename.replace(/\"/g, '\\\\\"');\n const encodedFilenameStar = encodeURIComponent(filename).replace(/['()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`).replace(/%(7C|60|5E)/g, (str, hex) => String.fromCharCode(Number.parseInt(hex, 16)));\n return `inline; filename=\"${escapedFileName}\"; filename*=utf-8''${encodedFilenameStar}`;\n}\nfunction getFilenameFromContentDisposition(contentDisposition) {\n const encodedFilenameStarMatch = contentDisposition.match(/filename\\*=(UTF-8'')?([^;]*)/i);\n if (encodedFilenameStarMatch && typeof encodedFilenameStarMatch[2] === \"string\") {\n return tryDecodeURIComponent(encodedFilenameStarMatch[2]);\n }\n const encodedFilenameMatch = contentDisposition.match(/filename=\"((?:\\\\\"|[^\"])*)\"/i);\n if (encodedFilenameMatch && typeof encodedFilenameMatch[1] === \"string\") {\n return encodedFilenameMatch[1].replace(/\\\\\"/g, '\"');\n }\n}\nfunction mergeStandardHeaders(a, b) {\n const merged = { ...a };\n for (const key in b) {\n if (Array.isArray(b[key])) {\n merged[key] = [...toArray(merged[key]), ...b[key]];\n } else if (b[key] !== void 0) {\n if (Array.isArray(merged[key])) {\n merged[key] = [...merged[key], b[key]];\n } else if (merged[key] !== void 0) {\n merged[key] = [merged[key], b[key]];\n } else {\n merged[key] = b[key];\n }\n }\n }\n return merged;\n}\nfunction flattenHeader(header) {\n if (typeof header === \"string\" || header === void 0) {\n return header;\n }\n if (header.length === 0) {\n return void 0;\n }\n return header.join(\", \");\n}\nfunction replicateStandardLazyResponse(response, count) {\n const replicated = [];\n let bodyPromise;\n let replicatedAsyncIteratorObjects;\n for (let i = 0; i < count; i++) {\n replicated.push({\n ...response,\n body: once(async () => {\n const body = await (bodyPromise ??= response.body());\n if (!isAsyncIteratorObject(body)) {\n return body;\n }\n replicatedAsyncIteratorObjects ??= replicateAsyncIterator(body, count);\n return replicatedAsyncIteratorObjects.shift();\n })\n });\n }\n return replicated;\n}\nfunction isEventIteratorHeaders(headers) {\n return Boolean(flattenHeader(headers[\"content-type\"])?.startsWith(\"text/event-stream\") && flattenHeader(headers[\"content-disposition\"]) === void 0);\n}\n\nexport { ErrorEvent, EventDecoder, EventDecoderError, EventDecoderStream, EventEncoderError, HibernationEventIterator, assertEventComment, assertEventId, assertEventName, assertEventRetry, decodeEventMessage, encodeEventComments, encodeEventData, encodeEventMessage, flattenHeader, generateContentDisposition, getEventMeta, getFilenameFromContentDisposition, isEventIteratorHeaders, mergeStandardHeaders, replicateStandardLazyResponse, withEventMeta };\n","import { resolveMaybeOptionalOptions, getConstructor, isObject, AsyncIteratorClass, isTypescriptObject } from '@orpc/shared';\nimport { getEventMeta, withEventMeta } from '@orpc/standard-server';\n\nconst ORPC_CLIENT_PACKAGE_NAME = \"@orpc/client\";\nconst ORPC_CLIENT_PACKAGE_VERSION = \"1.10.4\";\n\nconst COMMON_ORPC_ERROR_DEFS = {\n BAD_REQUEST: {\n status: 400,\n message: \"Bad Request\"\n },\n UNAUTHORIZED: {\n status: 401,\n message: \"Unauthorized\"\n },\n FORBIDDEN: {\n status: 403,\n message: \"Forbidden\"\n },\n NOT_FOUND: {\n status: 404,\n message: \"Not Found\"\n },\n METHOD_NOT_SUPPORTED: {\n status: 405,\n message: \"Method Not Supported\"\n },\n NOT_ACCEPTABLE: {\n status: 406,\n message: \"Not Acceptable\"\n },\n TIMEOUT: {\n status: 408,\n message: \"Request Timeout\"\n },\n CONFLICT: {\n status: 409,\n message: \"Conflict\"\n },\n PRECONDITION_FAILED: {\n status: 412,\n message: \"Precondition Failed\"\n },\n PAYLOAD_TOO_LARGE: {\n status: 413,\n message: \"Payload Too Large\"\n },\n UNSUPPORTED_MEDIA_TYPE: {\n status: 415,\n message: \"Unsupported Media Type\"\n },\n UNPROCESSABLE_CONTENT: {\n status: 422,\n message: \"Unprocessable Content\"\n },\n TOO_MANY_REQUESTS: {\n status: 429,\n message: \"Too Many Requests\"\n },\n CLIENT_CLOSED_REQUEST: {\n status: 499,\n message: \"Client Closed Request\"\n },\n INTERNAL_SERVER_ERROR: {\n status: 500,\n message: \"Internal Server Error\"\n },\n NOT_IMPLEMENTED: {\n status: 501,\n message: \"Not Implemented\"\n },\n BAD_GATEWAY: {\n status: 502,\n message: \"Bad Gateway\"\n },\n SERVICE_UNAVAILABLE: {\n status: 503,\n message: \"Service Unavailable\"\n },\n GATEWAY_TIMEOUT: {\n status: 504,\n message: \"Gateway Timeout\"\n }\n};\nfunction fallbackORPCErrorStatus(code, status) {\n return status ?? COMMON_ORPC_ERROR_DEFS[code]?.status ?? 500;\n}\nfunction fallbackORPCErrorMessage(code, message) {\n return message || COMMON_ORPC_ERROR_DEFS[code]?.message || code;\n}\nconst GLOBAL_ORPC_ERROR_CONSTRUCTORS_SYMBOL = Symbol.for(`__${ORPC_CLIENT_PACKAGE_NAME}@${ORPC_CLIENT_PACKAGE_VERSION}/error/ORPC_ERROR_CONSTRUCTORS__`);\nvoid (globalThis[GLOBAL_ORPC_ERROR_CONSTRUCTORS_SYMBOL] ??= /* @__PURE__ */ new WeakSet());\nconst globalORPCErrorConstructors = globalThis[GLOBAL_ORPC_ERROR_CONSTRUCTORS_SYMBOL];\nclass ORPCError extends Error {\n defined;\n code;\n status;\n data;\n constructor(code, ...rest) {\n const options = resolveMaybeOptionalOptions(rest);\n if (options.status !== void 0 && !isORPCErrorStatus(options.status)) {\n throw new Error(\"[ORPCError] Invalid error status code.\");\n }\n const message = fallbackORPCErrorMessage(code, options.message);\n super(message, options);\n this.code = code;\n this.status = fallbackORPCErrorStatus(code, options.status);\n this.defined = options.defined ?? false;\n this.data = options.data;\n }\n toJSON() {\n return {\n defined: this.defined,\n code: this.code,\n status: this.status,\n message: this.message,\n data: this.data\n };\n }\n /**\n * Workaround for Next.js where different contexts use separate\n * dependency graphs, causing multiple ORPCError constructors existing and breaking\n * `instanceof` checks across contexts.\n *\n * This is particularly problematic with \"Optimized SSR\", where orpc-client\n * executes in one context but is invoked from another. When an error is thrown\n * in the execution context, `instanceof ORPCError` checks fail in the\n * invocation context due to separate class constructors.\n *\n * @todo Remove this and related code if Next.js resolves the multiple dependency graph issue.\n */\n static [Symbol.hasInstance](instance) {\n if (globalORPCErrorConstructors.has(this)) {\n const constructor = getConstructor(instance);\n if (constructor && globalORPCErrorConstructors.has(constructor)) {\n return true;\n }\n }\n return super[Symbol.hasInstance](instance);\n }\n}\nglobalORPCErrorConstructors.add(ORPCError);\nfunction isDefinedError(error) {\n return error instanceof ORPCError && error.defined;\n}\nfunction toORPCError(error) {\n return error instanceof ORPCError ? error : new ORPCError(\"INTERNAL_SERVER_ERROR\", {\n message: \"Internal server error\",\n cause: error\n });\n}\nfunction isORPCErrorStatus(status) {\n return status < 200 || status >= 400;\n}\nfunction isORPCErrorJson(json) {\n if (!isObject(json)) {\n return false;\n }\n const validKeys = [\"defined\", \"code\", \"status\", \"message\", \"data\"];\n if (Object.keys(json).some((k) => !validKeys.includes(k))) {\n return false;\n }\n return \"defined\" in json && typeof json.defined === \"boolean\" && \"code\" in json && typeof json.code === \"string\" && \"status\" in json && typeof json.status === \"number\" && isORPCErrorStatus(json.status) && \"message\" in json && typeof json.message === \"string\";\n}\nfunction createORPCErrorFromJson(json, options = {}) {\n return new ORPCError(json.code, {\n ...options,\n ...json\n });\n}\n\nfunction mapEventIterator(iterator, maps) {\n const mapError = async (error) => {\n let mappedError = await maps.error(error);\n if (mappedError !== error) {\n const meta = getEventMeta(error);\n if (meta && isTypescriptObject(mappedError)) {\n mappedError = withEventMeta(mappedError, meta);\n }\n }\n return mappedError;\n };\n return new AsyncIteratorClass(async () => {\n const { done, value } = await (async () => {\n try {\n return await iterator.next();\n } catch (error) {\n throw await mapError(error);\n }\n })();\n let mappedValue = await maps.value(value, done);\n if (mappedValue !== value) {\n const meta = getEventMeta(value);\n if (meta && isTypescriptObject(mappedValue)) {\n mappedValue = withEventMeta(mappedValue, meta);\n }\n }\n return { done, value: mappedValue };\n }, async () => {\n try {\n await iterator.return?.();\n } catch (error) {\n throw await mapError(error);\n }\n });\n}\n\nexport { COMMON_ORPC_ERROR_DEFS as C, ORPC_CLIENT_PACKAGE_NAME as O, ORPC_CLIENT_PACKAGE_VERSION as a, fallbackORPCErrorMessage as b, ORPCError as c, isORPCErrorStatus as d, isORPCErrorJson as e, fallbackORPCErrorStatus as f, createORPCErrorFromJson as g, isDefinedError as i, mapEventIterator as m, toORPCError as t };\n","import { isObject, NullProtoObj } from '@orpc/shared';\n\nclass StandardBracketNotationSerializer {\n maxArrayIndex;\n constructor(options = {}) {\n this.maxArrayIndex = options.maxBracketNotationArrayIndex ?? 9999;\n }\n serialize(data, segments = [], result = []) {\n if (Array.isArray(data)) {\n data.forEach((item, i) => {\n this.serialize(item, [...segments, i], result);\n });\n } else if (isObject(data)) {\n for (const key in data) {\n this.serialize(data[key], [...segments, key], result);\n }\n } else {\n result.push([this.stringifyPath(segments), data]);\n }\n return result;\n }\n deserialize(serialized) {\n if (serialized.length === 0) {\n return {};\n }\n const arrayPushStyles = /* @__PURE__ */ new WeakSet();\n const ref = { value: [] };\n for (const [path, value] of serialized) {\n const segments = this.parsePath(path);\n let currentRef = ref;\n let nextSegment = \"value\";\n segments.forEach((segment, i) => {\n if (!Array.isArray(currentRef[nextSegment]) && !isObject(currentRef[nextSegment])) {\n currentRef[nextSegment] = [];\n }\n if (i !== segments.length - 1) {\n if (Array.isArray(currentRef[nextSegment]) && !isValidArrayIndex(segment, this.maxArrayIndex)) {\n if (arrayPushStyles.has(currentRef[nextSegment])) {\n arrayPushStyles.delete(currentRef[nextSegment]);\n currentRef[nextSegment] = pushStyleArrayToObject(currentRef[nextSegment]);\n } else {\n currentRef[nextSegment] = arrayToObject(currentRef[nextSegment]);\n }\n }\n } else {\n if (Array.isArray(currentRef[nextSegment])) {\n if (segment === \"\") {\n if (currentRef[nextSegment].length && !arrayPushStyles.has(currentRef[nextSegment])) {\n currentRef[nextSegment] = arrayToObject(currentRef[nextSegment]);\n }\n } else {\n if (arrayPushStyles.has(currentRef[nextSegment])) {\n arrayPushStyles.delete(currentRef[nextSegment]);\n currentRef[nextSegment] = pushStyleArrayToObject(currentRef[nextSegment]);\n } else if (!isValidArrayIndex(segment, this.maxArrayIndex)) {\n currentRef[nextSegment] = arrayToObject(currentRef[nextSegment]);\n }\n }\n }\n }\n currentRef = currentRef[nextSegment];\n nextSegment = segment;\n });\n if (Array.isArray(currentRef) && nextSegment === \"\") {\n arrayPushStyles.add(currentRef);\n currentRef.push(value);\n } else if (nextSegment in currentRef) {\n if (Array.isArray(currentRef[nextSegment])) {\n currentRef[nextSegment].push(value);\n } else {\n currentRef[nextSegment] = [currentRef[nextSegment], value];\n }\n } else {\n currentRef[nextSegment] = value;\n }\n }\n return ref.value;\n }\n stringifyPath(segments) {\n return segments.map((segment) => {\n return segment.toString().replace(/[\\\\[\\]]/g, (match) => {\n switch (match) {\n case \"\\\\\":\n return \"\\\\\\\\\";\n case \"[\":\n return \"\\\\[\";\n case \"]\":\n return \"\\\\]\";\n /* v8 ignore next 2 */\n default:\n return match;\n }\n });\n }).reduce((result, segment, i) => {\n if (i === 0) {\n return segment;\n }\n return `${result}[${segment}]`;\n }, \"\");\n }\n parsePath(path) {\n const segments = [];\n let inBrackets = false;\n let currentSegment = \"\";\n let backslashCount = 0;\n for (let i = 0; i < path.length; i++) {\n const char = path[i];\n const nextChar = path[i + 1];\n if (inBrackets && char === \"]\" && (nextChar === void 0 || nextChar === \"[\") && backslashCount % 2 === 0) {\n if (nextChar === void 0) {\n inBrackets = false;\n }\n segments.push(currentSegment);\n currentSegment = \"\";\n i++;\n } else if (segments.length === 0 && char === \"[\" && backslashCount % 2 === 0) {\n inBrackets = true;\n segments.push(currentSegment);\n currentSegment = \"\";\n } else if (char === \"\\\\\") {\n backslashCount++;\n } else {\n currentSegment += \"\\\\\".repeat(backslashCount / 2) + char;\n backslashCount = 0;\n }\n }\n return inBrackets || segments.length === 0 ? [path] : segments;\n }\n}\nfunction isValidArrayIndex(value, maxIndex) {\n return /^0$|^[1-9]\\d*$/.test(value) && Number(value) <= maxIndex;\n}\nfunction arrayToObject(array) {\n const obj = new NullProtoObj();\n array.forEach((item, i) => {\n obj[i] = item;\n });\n return obj;\n}\nfunction pushStyleArrayToObject(array) {\n const obj = new NullProtoObj();\n obj[\"\"] = array.length === 1 ? array[0] : array;\n return obj;\n}\n\nexport { StandardBracketNotationSerializer as S };\n","import { toArray, runWithSpan, ORPC_NAME, isAsyncIteratorObject, asyncIteratorWithSpan, intercept, getGlobalOtelConfig, isObject, value, stringifyJSON } from '@orpc/shared';\nimport { mergeStandardHeaders, ErrorEvent } from '@orpc/standard-server';\nimport { C as COMMON_ORPC_ERROR_DEFS, d as isORPCErrorStatus, e as isORPCErrorJson, g as createORPCErrorFromJson, c as ORPCError, m as mapEventIterator, t as toORPCError } from './client.DmkMd_GB.mjs';\nimport { toStandardHeaders as toStandardHeaders$1 } from '@orpc/standard-server-fetch';\n\nclass CompositeStandardLinkPlugin {\n plugins;\n constructor(plugins = []) {\n this.plugins = [...plugins].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n }\n init(options) {\n for (const plugin of this.plugins) {\n plugin.init?.(options);\n }\n }\n}\n\nclass StandardLink {\n constructor(codec, sender, options = {}) {\n this.codec = codec;\n this.sender = sender;\n const plugin = new CompositeStandardLinkPlugin(options.plugins);\n plugin.init(options);\n this.interceptors = toArray(options.interceptors);\n this.clientInterceptors = toArray(options.clientInterceptors);\n }\n interceptors;\n clientInterceptors;\n call(path, input, options) {\n return runWithSpan(\n { name: `${ORPC_NAME}.${path.join(\"/\")}`, signal: options.signal },\n (span) => {\n span?.setAttribute(\"rpc.system\", ORPC_NAME);\n span?.setAttribute(\"rpc.method\", path.join(\".\"));\n if (isAsyncIteratorObject(input)) {\n input = asyncIteratorWithSpan(\n { name: \"consume_event_iterator_input\", signal: options.signal },\n input\n );\n }\n return intercept(this.interceptors, { ...options, path, input }, async ({ path: path2, input: input2, ...options2 }) => {\n const otelConfig = getGlobalOtelConfig();\n let otelContext;\n const currentSpan = otelConfig?.trace.getActiveSpan() ?? span;\n if (currentSpan && otelConfig) {\n otelContext = otelConfig?.trace.setSpan(otelConfig.context.active(), currentSpan);\n }\n const request = await runWithSpan(\n { name: \"encode_request\", context: otelContext },\n () => this.codec.encode(path2, input2, options2)\n );\n const response = await intercept(\n this.clientInterceptors,\n { ...options2, input: input2, path: path2, request },\n ({ input: input3, path: path3, request: request2, ...options3 }) => {\n return runWithSpan(\n { name: \"send_request\", signal: options3.signal, context: otelContext },\n () => this.sender.call(request2, options3, path3, input3)\n );\n }\n );\n const output = await runWithSpan(\n { name: \"decode_response\", context: otelContext },\n () => this.codec.decode(response, options2, path2, input2)\n );\n if (isAsyncIteratorObject(output)) {\n return asyncIteratorWithSpan(\n { name: \"consume_event_iterator_output\", signal: options2.signal },\n output\n );\n }\n return output;\n });\n }\n );\n }\n}\n\nconst STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES = {\n BIGINT: 0,\n DATE: 1,\n NAN: 2,\n UNDEFINED: 3,\n URL: 4,\n REGEXP: 5,\n SET: 6,\n MAP: 7\n};\nclass StandardRPCJsonSerializer {\n customSerializers;\n constructor(options = {}) {\n this.customSerializers = options.customJsonSerializers ?? [];\n if (this.customSerializers.length !== new Set(this.customSerializers.map((custom) => custom.type)).size) {\n throw new Error(\"Custom serializer type must be unique.\");\n }\n }\n serialize(data, segments = [], meta = [], maps = [], blobs = []) {\n for (const custom of this.customSerializers) {\n if (custom.condition(data)) {\n const result = this.serialize(custom.serialize(data), segments, meta, maps, blobs);\n meta.push([custom.type, ...segments]);\n return result;\n }\n }\n if (data instanceof Blob) {\n maps.push(segments);\n blobs.push(data);\n return [data, meta, maps, blobs];\n }\n if (typeof data === \"bigint\") {\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.BIGINT, ...segments]);\n return [data.toString(), meta, maps, blobs];\n }\n if (data instanceof Date) {\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.DATE, ...segments]);\n if (Number.isNaN(data.getTime())) {\n return [null, meta, maps, blobs];\n }\n return [data.toISOString(), meta, maps, blobs];\n }\n if (Number.isNaN(data)) {\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.NAN, ...segments]);\n return [null, meta, maps, blobs];\n }\n if (data instanceof URL) {\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.URL, ...segments]);\n return [data.toString(), meta, maps, blobs];\n }\n if (data instanceof RegExp) {\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.REGEXP, ...segments]);\n return [data.toString(), meta, maps, blobs];\n }\n if (data instanceof Set) {\n const result = this.serialize(Array.from(data), segments, meta, maps, blobs);\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.SET, ...segments]);\n return result;\n }\n if (data instanceof Map) {\n const result = this.serialize(Array.from(data.entries()), segments, meta, maps, blobs);\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.MAP, ...segments]);\n return result;\n }\n if (Array.isArray(data)) {\n const json = data.map((v, i) => {\n if (v === void 0) {\n meta.push([STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.UNDEFINED, ...segments, i]);\n return v;\n }\n return this.serialize(v, [...segments, i], meta, maps, blobs)[0];\n });\n return [json, meta, maps, blobs];\n }\n if (isObject(data)) {\n const json = {};\n for (const k in data) {\n if (k === \"toJSON\" && typeof data[k] === \"function\") {\n continue;\n }\n json[k] = this.serialize(data[k], [...segments, k], meta, maps, blobs)[0];\n }\n return [json, meta, maps, blobs];\n }\n return [data, meta, maps, blobs];\n }\n deserialize(json, meta, maps, getBlob) {\n const ref = { data: json };\n if (maps && getBlob) {\n maps.forEach((segments, i) => {\n let currentRef = ref;\n let preSegment = \"data\";\n segments.forEach((segment) => {\n currentRef = currentRef[preSegment];\n preSegment = segment;\n });\n currentRef[preSegment] = getBlob(i);\n });\n }\n for (const item of meta) {\n const type = item[0];\n let currentRef = ref;\n let preSegment = \"data\";\n for (let i = 1; i < item.length; i++) {\n currentRef = currentRef[preSegment];\n preSegment = item[i];\n }\n for (const custom of this.customSerializers) {\n if (custom.type === type) {\n currentRef[preSegment] = custom.deserialize(currentRef[preSegment]);\n break;\n }\n }\n switch (type) {\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.BIGINT:\n currentRef[preSegment] = BigInt(currentRef[preSegment]);\n break;\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.DATE:\n currentRef[preSegment] = new Date(currentRef[preSegment] ?? \"Invalid Date\");\n break;\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.NAN:\n currentRef[preSegment] = Number.NaN;\n break;\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.UNDEFINED:\n currentRef[preSegment] = void 0;\n break;\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.URL:\n currentRef[preSegment] = new URL(currentRef[preSegment]);\n break;\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.REGEXP: {\n const [, pattern, flags] = currentRef[preSegment].match(/^\\/(.*)\\/([a-z]*)$/);\n currentRef[preSegment] = new RegExp(pattern, flags);\n break;\n }\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.SET:\n currentRef[preSegment] = new Set(currentRef[preSegment]);\n break;\n case STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES.MAP:\n currentRef[preSegment] = new Map(currentRef[preSegment]);\n break;\n }\n }\n return ref.data;\n }\n}\n\nfunction toHttpPath(path) {\n return `/${path.map(encodeURIComponent).join(\"/\")}`;\n}\nfunction toStandardHeaders(headers) {\n if (typeof headers.forEach === \"function\") {\n return toStandardHeaders$1(headers);\n }\n return headers;\n}\nfunction getMalformedResponseErrorCode(status) {\n return Object.entries(COMMON_ORPC_ERROR_DEFS).find(([, def]) => def.status === status)?.[0] ?? \"MALFORMED_ORPC_ERROR_RESPONSE\";\n}\n\nclass StandardRPCLinkCodec {\n constructor(serializer, options) {\n this.serializer = serializer;\n this.baseUrl = options.url;\n this.maxUrlLength = options.maxUrlLength ?? 2083;\n this.fallbackMethod = options.fallbackMethod ?? \"POST\";\n this.expectedMethod = options.method ?? this.fallbackMethod;\n this.headers = options.headers ?? {};\n }\n baseUrl;\n maxUrlLength;\n fallbackMethod;\n expectedMethod;\n headers;\n async encode(path, input, options) {\n let headers = toStandardHeaders(await value(this.headers, options, path, input));\n if (options.lastEventId !== void 0) {\n headers = mergeStandardHeaders(headers, { \"last-event-id\": options.lastEventId });\n }\n const expectedMethod = await value(this.expectedMethod, options, path, input);\n const baseUrl = await value(this.baseUrl, options, path, input);\n const url = new URL(baseUrl);\n url.pathname = `${url.pathname.replace(/\\/$/, \"\")}${toHttpPath(path)}`;\n const serialized = this.serializer.serialize(input);\n if (expectedMethod === \"GET\" && !(serialized instanceof FormData) && !isAsyncIteratorObject(serialized)) {\n const maxUrlLength = await value(this.maxUrlLength, options, path, input);\n const getUrl = new URL(url);\n getUrl.searchParams.append(\"data\", stringifyJSON(serialized));\n if (getUrl.toString().length <= maxUrlLength) {\n return {\n body: void 0,\n method: expectedMethod,\n headers,\n url: getUrl,\n signal: options.signal\n };\n }\n }\n return {\n url,\n method: expectedMethod === \"GET\" ? this.fallbackMethod : expectedMethod,\n headers,\n body: serialized,\n signal: options.signal\n };\n }\n async decode(response) {\n const isOk = !isORPCErrorStatus(response.status);\n const deserialized = await (async () => {\n let isBodyOk = false;\n try {\n const body = await response.body();\n isBodyOk = true;\n return this.serializer.deserialize(body);\n } catch (error) {\n if (!isBodyOk) {\n throw new Error(\"Cannot parse response body, please check the response body and content-type.\", {\n cause: error\n });\n }\n throw new Error(\"Invalid RPC response format.\", {\n cause: error\n });\n }\n })();\n if (!isOk) {\n if (isORPCErrorJson(deserialized)) {\n throw createORPCErrorFromJson(deserialized);\n }\n throw new ORPCError(getMalformedResponseErrorCode(response.status), {\n status: response.status,\n data: { ...response, body: deserialized }\n });\n }\n return deserialized;\n }\n}\n\nclass StandardRPCSerializer {\n constructor(jsonSerializer) {\n this.jsonSerializer = jsonSerializer;\n }\n serialize(data) {\n if (isAsyncIteratorObject(data)) {\n return mapEventIterator(data, {\n value: async (value) => this.#serialize(value, false),\n error: async (e) => {\n return new ErrorEvent({\n data: this.#serialize(toORPCError(e).toJSON(), false),\n cause: e\n });\n }\n });\n }\n return this.#serialize(data, true);\n }\n #serialize(data, enableFormData) {\n const [json, meta_, maps, blobs] = this.jsonSerializer.serialize(data);\n const meta = meta_.length === 0 ? void 0 : meta_;\n if (!enableFormData || blobs.length === 0) {\n return {\n json,\n meta\n };\n }\n const form = new FormData();\n form.set(\"data\", stringifyJSON({ json, meta, maps }));\n blobs.forEach((blob, i) => {\n form.set(i.toString(), blob);\n });\n return form;\n }\n deserialize(data) {\n if (isAsyncIteratorObject(data)) {\n return mapEventIterator(data, {\n value: async (value) => this.#deserialize(value),\n error: async (e) => {\n if (!(e instanceof ErrorEvent)) {\n return e;\n }\n const deserialized = this.#deserialize(e.data);\n if (isORPCErrorJson(deserialized)) {\n return createORPCErrorFromJson(deserialized, { cause: e });\n }\n return new ErrorEvent({\n data: deserialized,\n cause: e\n });\n }\n });\n }\n return this.#deserialize(data);\n }\n #deserialize(data) {\n if (data === void 0) {\n return void 0;\n }\n if (!(data instanceof FormData)) {\n return this.jsonSerializer.deserialize(data.json, data.meta ?? []);\n }\n const serialized = JSON.parse(data.get(\"data\"));\n return this.jsonSerializer.deserialize(\n serialized.json,\n serialized.meta ?? [],\n serialized.maps,\n (i) => data.get(i.toString())\n );\n }\n}\n\nclass StandardRPCLink extends StandardLink {\n constructor(linkClient, options) {\n const jsonSerializer = new StandardRPCJsonSerializer(options);\n const serializer = new StandardRPCSerializer(jsonSerializer);\n const linkCodec = new StandardRPCLinkCodec(serializer, options);\n super(linkCodec, linkClient, options);\n }\n}\n\nexport { CompositeStandardLinkPlugin as C, StandardLink as S, STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES as a, StandardRPCJsonSerializer as b, StandardRPCLink as c, StandardRPCLinkCodec as d, StandardRPCSerializer as e, toStandardHeaders as f, getMalformedResponseErrorCode as g, toHttpPath as t };\n","import { toStandardHeaders, toHttpPath, getMalformedResponseErrorCode, StandardLink } from '@orpc/client/standard';\nimport { S as StandardBracketNotationSerializer } from './openapi-client.t9fCAe3x.mjs';\nimport { isObject, value, get, isAsyncIteratorObject } from '@orpc/shared';\nimport { isORPCErrorStatus, isORPCErrorJson, createORPCErrorFromJson, mapEventIterator, toORPCError } from '@orpc/client';\nimport { isContractProcedure, fallbackContractConfig, ORPCError } from '@orpc/contract';\nimport { mergeStandardHeaders, ErrorEvent } from '@orpc/standard-server';\n\nclass StandardOpenAPIJsonSerializer {\n customSerializers;\n constructor(options = {}) {\n this.customSerializers = options.customJsonSerializers ?? [];\n }\n serialize(data, hasBlobRef = { value: false }) {\n for (const custom of this.customSerializers) {\n if (custom.condition(data)) {\n const result = this.serialize(custom.serialize(data), hasBlobRef);\n return result;\n }\n }\n if (data instanceof Blob) {\n hasBlobRef.value = true;\n return [data, hasBlobRef.value];\n }\n if (data instanceof Set) {\n return this.serialize(Array.from(data), hasBlobRef);\n }\n if (data instanceof Map) {\n return this.serialize(Array.from(data.entries()), hasBlobRef);\n }\n if (Array.isArray(data)) {\n const json = data.map((v) => v === void 0 ? null : this.serialize(v, hasBlobRef)[0]);\n return [json, hasBlobRef.value];\n }\n if (isObject(data)) {\n const json = {};\n for (const k in data) {\n if (k === \"toJSON\" && typeof data[k] === \"function\") {\n continue;\n }\n json[k] = this.serialize(data[k], hasBlobRef)[0];\n }\n return [json, hasBlobRef.value];\n }\n if (typeof data === \"bigint\" || data instanceof RegExp || data instanceof URL) {\n return [data.toString(), hasBlobRef.value];\n }\n if (data instanceof Date) {\n return [Number.isNaN(data.getTime()) ? null : data.toISOString(), hasBlobRef.value];\n }\n if (Number.isNaN(data)) {\n return [null, hasBlobRef.value];\n }\n return [data, hasBlobRef.value];\n }\n}\n\nfunction standardizeHTTPPath(path) {\n return `/${path.replace(/\\/{2,}/g, \"/\").replace(/^\\/|\\/$/g, \"\")}`;\n}\nfunction getDynamicParams(path) {\n return path ? standardizeHTTPPath(path).match(/\\/\\{[^}]+\\}/g)?.map((v) => ({\n raw: v,\n name: v.match(/\\{\\+?([^}]+)\\}/)[1]\n })) : void 0;\n}\n\nclass StandardOpenapiLinkCodec {\n constructor(contract, serializer, options) {\n this.contract = contract;\n this.serializer = serializer;\n this.baseUrl = options.url;\n this.headers = options.headers ?? {};\n this.customErrorResponseBodyDecoder = options.customErrorResponseBodyDecoder;\n }\n baseUrl;\n headers;\n customErrorResponseBodyDecoder;\n async encode(path, input, options) {\n let headers = toStandardHeaders(await value(this.headers, options, path, input));\n if (options.lastEventId !== void 0) {\n headers = mergeStandardHeaders(headers, { \"last-event-id\": options.lastEventId });\n }\n const baseUrl = await value(this.baseUrl, options, path, input);\n const procedure = get(this.contract, path);\n if (!isContractProcedure(procedure)) {\n throw new Error(`[StandardOpenapiLinkCodec] expect a contract procedure at ${path.join(\".\")}`);\n }\n const inputStructure = fallbackContractConfig(\"defaultInputStructure\", procedure[\"~orpc\"].route.inputStructure);\n return inputStructure === \"compact\" ? this.#encodeCompact(procedure, path, input, options, baseUrl, headers) : this.#encodeDetailed(procedure, path, input, options, baseUrl, headers);\n }\n #encodeCompact(procedure, path, input, options, baseUrl, headers) {\n let httpPath = standardizeHTTPPath(procedure[\"~orpc\"].route.path ?? toHttpPath(path));\n let httpBody = input;\n const dynamicParams = getDynamicParams(httpPath);\n if (dynamicParams?.length) {\n if (!isObject(input)) {\n throw new TypeError(`[StandardOpenapiLinkCodec] Invalid input shape for \"compact\" structure when has dynamic params at ${path.join(\".\")}.`);\n }\n const body = { ...input };\n for (const param of dynamicParams) {\n const value2 = input[param.name];\n httpPath = httpPath.replace(param.raw, `/${encodeURIComponent(`${this.serializer.serialize(value2)}`)}`);\n delete body[param.name];\n }\n httpBody = Object.keys(body).length ? body : void 0;\n }\n const method = fallbackContractConfig(\"defaultMethod\", procedure[\"~orpc\"].route.method);\n const url = new URL(baseUrl);\n url.pathname = `${url.pathname.replace(/\\/$/, \"\")}${httpPath}`;\n if (method === \"GET\") {\n const serialized = this.serializer.serialize(httpBody, { outputFormat: \"URLSearchParams\" });\n for (const [key, value2] of serialized) {\n url.searchParams.append(key, value2);\n }\n return {\n url,\n method,\n headers,\n body: void 0,\n signal: options.signal\n };\n }\n return {\n url,\n method,\n headers,\n body: this.serializer.serialize(httpBody),\n signal: options.signal\n };\n }\n #encodeDetailed(procedure, path, input, options, baseUrl, headers) {\n let httpPath = standardizeHTTPPath(procedure[\"~orpc\"].route.path ?? toHttpPath(path));\n const dynamicParams = getDynamicParams(httpPath);\n if (!isObject(input) && input !== void 0) {\n throw new TypeError(`[StandardOpenapiLinkCodec] Invalid input shape for \"detailed\" structure at ${path.join(\".\")}.`);\n }\n if (dynamicParams?.length) {\n if (!isObject(input?.params)) {\n throw new TypeError(`[StandardOpenapiLinkCodec] Invalid input.params shape for \"detailed\" structure when has dynamic params at ${path.join(\".\")}.`);\n }\n for (const param of dynamicParams) {\n const value2 = input.params[param.name];\n httpPath = httpPath.replace(param.raw, `/${encodeURIComponent(`${this.serializer.serialize(value2)}`)}`);\n }\n }\n let mergedHeaders = headers;\n if (input?.headers !== void 0) {\n if (!isObject(input.headers)) {\n throw new TypeError(`[StandardOpenapiLinkCodec] Invalid input.headers shape for \"detailed\" structure at ${path.join(\".\")}.`);\n }\n mergedHeaders = mergeStandardHeaders(input.headers, headers);\n }\n const method = fallbackContractConfig(\"defaultMethod\", procedure[\"~orpc\"].route.method);\n const url = new URL(baseUrl);\n url.pathname = `${url.pathname.replace(/\\/$/, \"\")}${httpPath}`;\n if (input?.query !== void 0) {\n const query = this.serializer.serialize(input.query, { outputFormat: \"URLSearchParams\" });\n for (const [key, value2] of query) {\n url.searchParams.append(key, value2);\n }\n }\n if (method === \"GET\") {\n return {\n url,\n method,\n headers: mergedHeaders,\n body: void 0,\n signal: options.signal\n };\n }\n return {\n url,\n method,\n headers: mergedHeaders,\n body: this.serializer.serialize(input?.body),\n signal: options.signal\n };\n }\n async decode(response, _options, path) {\n const isOk = !isORPCErrorStatus(response.status);\n const deserialized = await (async () => {\n let isBodyOk = false;\n try {\n const body = await response.body();\n isBodyOk = true;\n return this.serializer.deserialize(body);\n } catch (error) {\n if (!isBodyOk) {\n throw new Error(\"Cannot parse response body, please check the response body and content-type.\", {\n cause: error\n });\n }\n throw new Error(\"Invalid OpenAPI response format.\", {\n cause: error\n });\n }\n })();\n if (!isOk) {\n const error = this.customErrorResponseBodyDecoder?.(deserialized, response);\n if (error !== null && error !== void 0) {\n throw error;\n }\n if (isORPCErrorJson(deserialized)) {\n throw createORPCErrorFromJson(deserialized);\n }\n throw new ORPCError(getMalformedResponseErrorCode(response.status), {\n status: response.status,\n data: { ...response, body: deserialized }\n });\n }\n const procedure = get(this.contract, path);\n if (!isContractProcedure(procedure)) {\n throw new Error(`[StandardOpenapiLinkCodec] expect a contract procedure at ${path.join(\".\")}`);\n }\n const outputStructure = fallbackContractConfig(\"defaultOutputStructure\", procedure[\"~orpc\"].route.outputStructure);\n if (outputStructure === \"compact\") {\n return deserialized;\n }\n return {\n status: response.status,\n headers: response.headers,\n body: deserialized\n };\n }\n}\n\nclass StandardOpenAPISerializer {\n constructor(jsonSerializer, bracketNotation) {\n this.jsonSerializer = jsonSerializer;\n this.bracketNotation = bracketNotation;\n }\n serialize(data, options = {}) {\n if (isAsyncIteratorObject(data) && !options.outputFormat) {\n return mapEventIterator(data, {\n value: async (value) => this.#serialize(value, { outputFormat: \"plain\" }),\n error: async (e) => {\n return new ErrorEvent({\n data: this.#serialize(toORPCError(e).toJSON(), { outputFormat: \"plain\" }),\n cause: e\n });\n }\n });\n }\n return this.#serialize(data, options);\n }\n #serialize(data, options) {\n const [json, hasBlob] = this.jsonSerializer.serialize(data);\n if (options.outputFormat === \"plain\") {\n return json;\n }\n if (options.outputFormat === \"URLSearchParams\") {\n const params = new URLSearchParams();\n for (const [path, value] of this.bracketNotation.serialize(json)) {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n params.append(path, value.toString());\n }\n }\n return params;\n }\n if (json instanceof Blob || json === void 0 || !hasBlob) {\n return json;\n }\n const form = new FormData();\n for (const [path, value] of this.bracketNotation.serialize(json)) {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n form.append(path, value.toString());\n } else if (value instanceof Blob) {\n form.append(path, value);\n }\n }\n return form;\n }\n deserialize(data) {\n if (data instanceof URLSearchParams || data instanceof FormData) {\n return this.bracketNotation.deserialize(Array.from(data.entries()));\n }\n if (isAsyncIteratorObject(data)) {\n return mapEventIterator(data, {\n value: async (value) => value,\n error: async (e) => {\n if (e instanceof ErrorEvent && isORPCErrorJson(e.data)) {\n return createORPCErrorFromJson(e.data, { cause: e });\n }\n return e;\n }\n });\n }\n return data;\n }\n}\n\nclass StandardOpenAPILink extends StandardLink {\n constructor(contract, linkClient, options) {\n const jsonSerializer = new StandardOpenAPIJsonSerializer(options);\n const bracketNotationSerializer = new StandardBracketNotationSerializer({ maxBracketNotationArrayIndex: 4294967294 });\n const serializer = new StandardOpenAPISerializer(jsonSerializer, bracketNotationSerializer);\n const linkCodec = new StandardOpenapiLinkCodec(contract, serializer, options);\n super(linkCodec, linkClient, options);\n }\n}\n\nexport { StandardOpenAPIJsonSerializer as S, StandardOpenAPILink as a, StandardOpenapiLinkCodec as b, StandardOpenAPISerializer as c, getDynamicParams as g, standardizeHTTPPath as s };\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
package/dist/testing/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_chunk = require('../chunk-zltIcp7o.cjs');
|
|
2
|
-
const require_runtime = require('../runtime-
|
|
2
|
+
const require_runtime = require('../runtime-BcksCIA1.cjs');
|
|
3
3
|
require('../normalize-D4Qh0wVk.cjs');
|
|
4
|
-
require('../package-
|
|
4
|
+
require('../package-CgNIVjVe.cjs');
|
|
5
5
|
let effect = require("effect");
|
|
6
6
|
|
|
7
7
|
//#region src/testing/mocks/module-federation.service.ts
|
|
@@ -75,4 +75,4 @@ const createTestPluginRuntime = createLocalPluginRuntime;
|
|
|
75
75
|
exports.createLocalPluginRuntime = createLocalPluginRuntime;
|
|
76
76
|
exports.createTestLayer = createTestLayer;
|
|
77
77
|
exports.createTestPluginRuntime = createTestPluginRuntime;
|
|
78
|
-
//# sourceMappingURL=
|
|
78
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["Layer","ModuleFederationService","Effect","ModuleFederationError","Layer","PluginRegistryTag","SecretsConfigTag","SecretsService","RegistryService","PluginLifecycleService","PluginService","PluginLoaderService","PluginRuntime","ManagedRuntime"],"sources":["../../src/testing/mocks/module-federation.service.ts","../../src/testing/index.ts"],"sourcesContent":["import { Effect, Layer } from \"effect\";\nimport type { LoadedPluginWithBinding } from \"../../plugin\";\nimport { ModuleFederationError } from \"../../runtime/errors\";\nimport { ModuleFederationService } from \"../../runtime/services/module-federation.service\";\n\nexport type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;\n\nexport const createMockModuleFederationServiceLayer = (pluginMap: PluginMap) =>\n Layer.succeed(\n ModuleFederationService,\n {\n registerRemote: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MOCK] registerRemote called for ${pluginId}`);\n if (!(pluginId in pluginMap)) {\n return yield* Effect.fail(\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: new Error(`Mock: Plugin ${pluginId} not available in test plugin map`),\n }),\n );\n }\n console.log(`[MOCK] registerRemote succeeded for ${pluginId}`);\n }),\n\n loadRemoteConstructor: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MOCK] loadRemoteConstructor called for ${pluginId}`);\n const PluginConstructor = pluginMap[pluginId];\n if (!PluginConstructor) {\n return yield* Effect.fail(\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: new Error(`Mock: Constructor for ${pluginId} not found in test plugin map`),\n }),\n );\n }\n console.log(`[MOCK] loadRemoteConstructor succeeded for ${pluginId}`);\n return PluginConstructor;\n }),\n } as any\n );\n","import { Layer, ManagedRuntime } from \"effect\";\nimport { PluginRuntime } from \"../runtime\";\nimport {\n\tPluginLifecycleService,\n\tPluginLoaderService,\n\tPluginRegistryTag,\n\tPluginService,\n\tRegistryService,\n\tSecretsConfigTag,\n\tSecretsService\n} from \"../runtime/services\";\nimport type { PluginRuntimeConfig, RegisteredPlugins } from \"../types\";\nimport { createMockModuleFederationServiceLayer, type PluginMap } from \"./mocks/module-federation.service\";\n\n/**\n * Validates that all plugin map keys exist in RegisteredPlugins.\n * This ensures proper type inference for client methods.\n */\ntype ValidatePluginMap<T extends PluginMap> = {\n\t[K in keyof T]: K extends keyof RegisteredPlugins\n\t\t? T[K]\n\t\t: `❌ Plugin key \"${K & string}\" not registered in RegisteredPlugins. Add it to your types.d.ts file.`;\n};\n\n/**\n * Simplified type inference for local plugin maps.\n * Just use the constructor types directly.\n *\n * @example\n * ```ts\n * const pluginMap = { \"my-plugin\": MyPlugin } as const;\n * type MyBindings = InferBindingsFromMap<typeof pluginMap>;\n * ```\n */\nexport type InferBindingsFromMap<T extends PluginMap> = {\n\t[K in keyof T]: T[K]\n} & RegisteredPlugins;\n\n/**\n * Creates a test layer with mock ModuleFederationService for unit testing.\n * This mirrors PluginService.Live() but uses mock ModuleFederationService.\n */\nexport const createTestLayer = <R extends RegisteredPlugins = RegisteredPlugins>(\n\tconfig: PluginRuntimeConfig<R>,\n\tpluginMap: PluginMap\n) => {\n\tconst secrets = config.secrets || {};\n\n\tconst contextLayer = Layer.mergeAll(\n\t\tLayer.succeed(PluginRegistryTag, config.registry),\n\t\tLayer.succeed(SecretsConfigTag, secrets),\n\t);\n\n\tconst mockModuleFederationLayer = createMockModuleFederationServiceLayer(pluginMap);\n\n\tconst servicesLayer = Layer.mergeAll(\n\t\tmockModuleFederationLayer,\n\t\tSecretsService.Default,\n\t\tRegistryService.Default,\n\t\tPluginLifecycleService.Default,\n\t).pipe(\n\t\tLayer.provide(contextLayer)\n\t);\n\n\treturn PluginService.Default.pipe(\n\t\tLayer.provide(PluginLoaderService.Default),\n\t\tLayer.provide(servicesLayer)\n\t);\n};\n\n/**\n * Creates a plugin runtime for locally available plugins (non-remote).\n * Automatically infers type bindings from the plugin map, eliminating\n * the need for manual RegistryBindings definitions.\n *\n * Ideal for:\n * - Unit and integration tests\n * - Local development and debugging\n * - Monorepo setups where all plugins are in the same workspace\n *\n * For production with remote Module Federation plugins, use createPluginRuntime().\n *\n * @example\n * ```ts\n * const pluginMap = { \"my-plugin\": MyPlugin } as const;\n * const runtime = createLocalPluginRuntime({ registry, secrets }, pluginMap);\n *\n * // Types are automatically inferred - no manual bindings needed!\n * const plugin = await runtime.usePlugin(\"my-plugin\", config);\n * ```\n */\nexport function createLocalPluginRuntime<TMap extends PluginMap & ValidatePluginMap<TMap>>(\n\tconfig: PluginRuntimeConfig,\n\tpluginMap: TMap\n): PluginRuntime<InferBindingsFromMap<TMap>> {\n\tconst layer = createTestLayer(config, pluginMap);\n\tconst runtime = ManagedRuntime.make(layer);\n\n\treturn new PluginRuntime<InferBindingsFromMap<TMap>>(runtime, config.registry);\n}\n\n/**\n * @deprecated Use `createLocalPluginRuntime` instead. This alias is kept for backward compatibility.\n */\nexport const createTestPluginRuntime = createLocalPluginRuntime;\n\n// Re-export useful types for tests\nexport type { EveryPlugin, PluginRegistry, RegisteredPlugins } from \"../types\";\nexport type { PluginMap, PluginRuntimeConfig };\n"],"mappings":";;;;;;;AAOA,MAAa,0CAA0C,cACrDA,aAAM,QACJC,yCACA;CACE,iBAAiB,UAAkB,QACjCC,cAAO,IAAI,aAAa;AACtB,UAAQ,IAAI,oCAAoC,WAAW;AAC3D,MAAI,EAAE,YAAY,WAChB,QAAO,OAAOA,cAAO,KACnB,IAAIC,sCAAsB;GACxB;GACA,WAAW;GACX,uBAAO,IAAI,MAAM,gBAAgB,SAAS,mCAAmC;GAC9E,CAAC,CACH;AAEH,UAAQ,IAAI,uCAAuC,WAAW;GAC9D;CAEJ,wBAAwB,UAAkB,QACxCD,cAAO,IAAI,aAAa;AACtB,UAAQ,IAAI,2CAA2C,WAAW;EAClE,MAAM,oBAAoB,UAAU;AACpC,MAAI,CAAC,kBACH,QAAO,OAAOA,cAAO,KACnB,IAAIC,sCAAsB;GACxB;GACA,WAAW;GACX,uBAAO,IAAI,MAAM,yBAAyB,SAAS,+BAA+B;GACnF,CAAC,CACH;AAEH,UAAQ,IAAI,8CAA8C,WAAW;AACrE,SAAO;GACP;CACL,CACF;;;;;;;;ACDH,MAAa,mBACZ,QACA,cACI;CACJ,MAAM,UAAU,OAAO,WAAW,EAAE;CAEpC,MAAM,eAAeC,aAAM,SAC1BA,aAAM,QAAQC,mCAAmB,OAAO,SAAS,EACjDD,aAAM,QAAQE,kCAAkB,QAAQ,CACxC;CAED,MAAM,4BAA4B,uCAAuC,UAAU;CAEnF,MAAM,gBAAgBF,aAAM,SAC3B,2BACAG,+BAAe,SACfC,gCAAgB,SAChBC,uCAAuB,QACvB,CAAC,KACDL,aAAM,QAAQ,aAAa,CAC3B;AAED,QAAOM,8BAAc,QAAQ,KAC5BN,aAAM,QAAQO,oCAAoB,QAAQ,EAC1CP,aAAM,QAAQ,cAAc,CAC5B;;;;;;;;;;;;;;;;;;;;;;;AAwBF,SAAgB,yBACf,QACA,WAC4C;CAC5C,MAAM,QAAQ,gBAAgB,QAAQ,UAAU;AAGhD,QAAO,IAAIQ,8BAFKC,sBAAe,KAAK,MAAM,EAEoB,OAAO,SAAS;;;;;AAM/E,MAAa,0BAA0B"}
|
package/dist/testing/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../zod-A7Pti5IV.cjs";
|
|
2
2
|
import "../errors-DKPPPYYT.cjs";
|
|
3
|
-
import { a as EveryPlugin, g as PluginRuntimeConfig, m as PluginRegistry, r as PluginService, t as PluginRuntime, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "../index-
|
|
3
|
+
import { a as EveryPlugin, g as PluginRuntimeConfig, m as PluginRegistry, r as PluginService, t as PluginRuntime, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "../index-G63gBZIY.cjs";
|
|
4
4
|
import "../normalize-BW7kk8Lk.cjs";
|
|
5
5
|
import { Layer } from "effect";
|
|
6
6
|
|
|
@@ -57,4 +57,4 @@ declare function createLocalPluginRuntime<TMap extends PluginMap & ValidatePlugi
|
|
|
57
57
|
declare const createTestPluginRuntime: typeof createLocalPluginRuntime;
|
|
58
58
|
//#endregion
|
|
59
59
|
export { type EveryPlugin, InferBindingsFromMap, type PluginMap, type PluginRegistry, type PluginRuntimeConfig, type RegisteredPlugins, createLocalPluginRuntime, createTestLayer, createTestPluginRuntime };
|
|
60
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/testing/mocks/module-federation.service.ts","../../src/testing/index.ts"],"sourcesContent":[],"mappings":";;;;;;;KAKY,SAAA,GAAY,eAAe;;;;;AAAvC;;KCaK,4BAA4B,2BACpB,IAAI,gBAAgB,oBAC7B,EAAE,sBACe,oFATsF;;;;;;;;;AAsB3G;;AACa,KADD,oBACC,CAAA,UAD8B,SAC9B,CAAA,GAAA,QAAI,MAAJ,CAAI,GAAA,CAAA,CAAE,CAAF,CAAA,EAAE,GACf,iBADe;;;AAOnB;;AAA8D,cAAjD,eAAiD,EAAA,CAAA,UAApB,iBAAoB,GAAA,iBAAA,CAAA,CAAA,MAAA,EACrD,mBADqD,CACjC,CADiC,CAAA,EAAA,SAAA,EAElD,SAFkD,EAAA,GAEzC,KAAA,CAAA,KAFyC,CAEzC,aAFyC,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;AAiD9D;;;;;;;;;;AAaA;;;;;iBAbgB,sCAAsC,YAAY,kBAAkB,eAC3E,gCACG,OACT,cAAc,qBAAqB;;;;cAUzB,gCAAuB"}
|
package/dist/testing/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../zod-Zw8dlP3j.mjs";
|
|
2
2
|
import "../errors-9sNpYLv5.mjs";
|
|
3
|
-
import { a as EveryPlugin, g as PluginRuntimeConfig, m as PluginRegistry, r as PluginService, t as PluginRuntime, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "../index-
|
|
3
|
+
import { a as EveryPlugin, g as PluginRuntimeConfig, m as PluginRegistry, r as PluginService, t as PluginRuntime, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "../index-Coz54d1B.mjs";
|
|
4
4
|
import "../normalize-eB_j86fm.mjs";
|
|
5
5
|
import { Layer } from "effect";
|
|
6
6
|
|
|
@@ -57,4 +57,4 @@ declare function createLocalPluginRuntime<TMap extends PluginMap & ValidatePlugi
|
|
|
57
57
|
declare const createTestPluginRuntime: typeof createLocalPluginRuntime;
|
|
58
58
|
//#endregion
|
|
59
59
|
export { type EveryPlugin, InferBindingsFromMap, type PluginMap, type PluginRegistry, type PluginRuntimeConfig, type RegisteredPlugins, createLocalPluginRuntime, createTestLayer, createTestPluginRuntime };
|
|
60
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/testing/mocks/module-federation.service.ts","../../src/testing/index.ts"],"sourcesContent":[],"mappings":";;;;;;;KAKY,SAAA,GAAY,eAAe;;;;;AAAvC;;KCaK,4BAA4B,2BACpB,IAAI,gBAAgB,oBAC7B,EAAE,sBACe,oFATsF;;;;;;;;;AAsB3G;;AACa,KADD,oBACC,CAAA,UAD8B,SAC9B,CAAA,GAAA,QAAI,MAAJ,CAAI,GAAA,CAAA,CAAE,CAAF,CAAA,EAAE,GACf,iBADe;;;AAOnB;;AAA8D,cAAjD,eAAiD,EAAA,CAAA,UAApB,iBAAoB,GAAA,iBAAA,CAAA,CAAA,MAAA,EACrD,mBADqD,CACjC,CADiC,CAAA,EAAA,SAAA,EAElD,SAFkD,EAAA,GAEzC,KAAA,CAAA,KAFyC,CAEzC,aAFyC,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;AAiD9D;;;;;;;;;;AAaA;;;;;iBAbgB,sCAAsC,YAAY,kBAAkB,eAC3E,gCACG,OACT,cAAc,qBAAqB;;;;cAUzB,gCAAuB"}
|
package/dist/testing/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as PluginRegistryTag, c as SecretsService, d as ModuleFederationError, i as PluginLoaderService, l as PluginLifecycleService, o as RegistryService, r as PluginService, s as SecretsConfigTag, t as PluginRuntime, u as ModuleFederationService } from "../runtime-
|
|
1
|
+
import { a as PluginRegistryTag, c as SecretsService, d as ModuleFederationError, i as PluginLoaderService, l as PluginLifecycleService, o as RegistryService, r as PluginService, s as SecretsConfigTag, t as PluginRuntime, u as ModuleFederationService } from "../runtime-60AkNpI0.mjs";
|
|
2
2
|
import "../normalize-D7nae0Hn.mjs";
|
|
3
|
-
import "../package-
|
|
3
|
+
import "../package-BoyftHDo.mjs";
|
|
4
4
|
import { Effect, Layer, ManagedRuntime } from "effect";
|
|
5
5
|
|
|
6
6
|
//#region src/testing/mocks/module-federation.service.ts
|
|
@@ -72,4 +72,4 @@ const createTestPluginRuntime = createLocalPluginRuntime;
|
|
|
72
72
|
|
|
73
73
|
//#endregion
|
|
74
74
|
export { createLocalPluginRuntime, createTestLayer, createTestPluginRuntime };
|
|
75
|
-
//# sourceMappingURL=
|
|
75
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/testing/mocks/module-federation.service.ts","../../src/testing/index.ts"],"sourcesContent":["import { Effect, Layer } from \"effect\";\nimport type { LoadedPluginWithBinding } from \"../../plugin\";\nimport { ModuleFederationError } from \"../../runtime/errors\";\nimport { ModuleFederationService } from \"../../runtime/services/module-federation.service\";\n\nexport type PluginMap = Record<string, LoadedPluginWithBinding<any, any, any, any>>;\n\nexport const createMockModuleFederationServiceLayer = (pluginMap: PluginMap) =>\n Layer.succeed(\n ModuleFederationService,\n {\n registerRemote: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MOCK] registerRemote called for ${pluginId}`);\n if (!(pluginId in pluginMap)) {\n return yield* Effect.fail(\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: new Error(`Mock: Plugin ${pluginId} not available in test plugin map`),\n }),\n );\n }\n console.log(`[MOCK] registerRemote succeeded for ${pluginId}`);\n }),\n\n loadRemoteConstructor: (pluginId: string, url: string) =>\n Effect.gen(function* () {\n console.log(`[MOCK] loadRemoteConstructor called for ${pluginId}`);\n const PluginConstructor = pluginMap[pluginId];\n if (!PluginConstructor) {\n return yield* Effect.fail(\n new ModuleFederationError({\n pluginId,\n remoteUrl: url,\n cause: new Error(`Mock: Constructor for ${pluginId} not found in test plugin map`),\n }),\n );\n }\n console.log(`[MOCK] loadRemoteConstructor succeeded for ${pluginId}`);\n return PluginConstructor;\n }),\n } as any\n );\n","import { Layer, ManagedRuntime } from \"effect\";\nimport { PluginRuntime } from \"../runtime\";\nimport {\n\tPluginLifecycleService,\n\tPluginLoaderService,\n\tPluginRegistryTag,\n\tPluginService,\n\tRegistryService,\n\tSecretsConfigTag,\n\tSecretsService\n} from \"../runtime/services\";\nimport type { PluginRuntimeConfig, RegisteredPlugins } from \"../types\";\nimport { createMockModuleFederationServiceLayer, type PluginMap } from \"./mocks/module-federation.service\";\n\n/**\n * Validates that all plugin map keys exist in RegisteredPlugins.\n * This ensures proper type inference for client methods.\n */\ntype ValidatePluginMap<T extends PluginMap> = {\n\t[K in keyof T]: K extends keyof RegisteredPlugins\n\t\t? T[K]\n\t\t: `❌ Plugin key \"${K & string}\" not registered in RegisteredPlugins. Add it to your types.d.ts file.`;\n};\n\n/**\n * Simplified type inference for local plugin maps.\n * Just use the constructor types directly.\n *\n * @example\n * ```ts\n * const pluginMap = { \"my-plugin\": MyPlugin } as const;\n * type MyBindings = InferBindingsFromMap<typeof pluginMap>;\n * ```\n */\nexport type InferBindingsFromMap<T extends PluginMap> = {\n\t[K in keyof T]: T[K]\n} & RegisteredPlugins;\n\n/**\n * Creates a test layer with mock ModuleFederationService for unit testing.\n * This mirrors PluginService.Live() but uses mock ModuleFederationService.\n */\nexport const createTestLayer = <R extends RegisteredPlugins = RegisteredPlugins>(\n\tconfig: PluginRuntimeConfig<R>,\n\tpluginMap: PluginMap\n) => {\n\tconst secrets = config.secrets || {};\n\n\tconst contextLayer = Layer.mergeAll(\n\t\tLayer.succeed(PluginRegistryTag, config.registry),\n\t\tLayer.succeed(SecretsConfigTag, secrets),\n\t);\n\n\tconst mockModuleFederationLayer = createMockModuleFederationServiceLayer(pluginMap);\n\n\tconst servicesLayer = Layer.mergeAll(\n\t\tmockModuleFederationLayer,\n\t\tSecretsService.Default,\n\t\tRegistryService.Default,\n\t\tPluginLifecycleService.Default,\n\t).pipe(\n\t\tLayer.provide(contextLayer)\n\t);\n\n\treturn PluginService.Default.pipe(\n\t\tLayer.provide(PluginLoaderService.Default),\n\t\tLayer.provide(servicesLayer)\n\t);\n};\n\n/**\n * Creates a plugin runtime for locally available plugins (non-remote).\n * Automatically infers type bindings from the plugin map, eliminating\n * the need for manual RegistryBindings definitions.\n *\n * Ideal for:\n * - Unit and integration tests\n * - Local development and debugging\n * - Monorepo setups where all plugins are in the same workspace\n *\n * For production with remote Module Federation plugins, use createPluginRuntime().\n *\n * @example\n * ```ts\n * const pluginMap = { \"my-plugin\": MyPlugin } as const;\n * const runtime = createLocalPluginRuntime({ registry, secrets }, pluginMap);\n *\n * // Types are automatically inferred - no manual bindings needed!\n * const plugin = await runtime.usePlugin(\"my-plugin\", config);\n * ```\n */\nexport function createLocalPluginRuntime<TMap extends PluginMap & ValidatePluginMap<TMap>>(\n\tconfig: PluginRuntimeConfig,\n\tpluginMap: TMap\n): PluginRuntime<InferBindingsFromMap<TMap>> {\n\tconst layer = createTestLayer(config, pluginMap);\n\tconst runtime = ManagedRuntime.make(layer);\n\n\treturn new PluginRuntime<InferBindingsFromMap<TMap>>(runtime, config.registry);\n}\n\n/**\n * @deprecated Use `createLocalPluginRuntime` instead. This alias is kept for backward compatibility.\n */\nexport const createTestPluginRuntime = createLocalPluginRuntime;\n\n// Re-export useful types for tests\nexport type { EveryPlugin, PluginRegistry, RegisteredPlugins } from \"../types\";\nexport type { PluginMap, PluginRuntimeConfig };\n"],"mappings":";;;;;;AAOA,MAAa,0CAA0C,cACrD,MAAM,QACJ,yBACA;CACE,iBAAiB,UAAkB,QACjC,OAAO,IAAI,aAAa;AACtB,UAAQ,IAAI,oCAAoC,WAAW;AAC3D,MAAI,EAAE,YAAY,WAChB,QAAO,OAAO,OAAO,KACnB,IAAI,sBAAsB;GACxB;GACA,WAAW;GACX,uBAAO,IAAI,MAAM,gBAAgB,SAAS,mCAAmC;GAC9E,CAAC,CACH;AAEH,UAAQ,IAAI,uCAAuC,WAAW;GAC9D;CAEJ,wBAAwB,UAAkB,QACxC,OAAO,IAAI,aAAa;AACtB,UAAQ,IAAI,2CAA2C,WAAW;EAClE,MAAM,oBAAoB,UAAU;AACpC,MAAI,CAAC,kBACH,QAAO,OAAO,OAAO,KACnB,IAAI,sBAAsB;GACxB;GACA,WAAW;GACX,uBAAO,IAAI,MAAM,yBAAyB,SAAS,+BAA+B;GACnF,CAAC,CACH;AAEH,UAAQ,IAAI,8CAA8C,WAAW;AACrE,SAAO;GACP;CACL,CACF;;;;;;;;ACDH,MAAa,mBACZ,QACA,cACI;CACJ,MAAM,UAAU,OAAO,WAAW,EAAE;CAEpC,MAAM,eAAe,MAAM,SAC1B,MAAM,QAAQ,mBAAmB,OAAO,SAAS,EACjD,MAAM,QAAQ,kBAAkB,QAAQ,CACxC;CAED,MAAM,4BAA4B,uCAAuC,UAAU;CAEnF,MAAM,gBAAgB,MAAM,SAC3B,2BACA,eAAe,SACf,gBAAgB,SAChB,uBAAuB,QACvB,CAAC,KACD,MAAM,QAAQ,aAAa,CAC3B;AAED,QAAO,cAAc,QAAQ,KAC5B,MAAM,QAAQ,oBAAoB,QAAQ,EAC1C,MAAM,QAAQ,cAAc,CAC5B;;;;;;;;;;;;;;;;;;;;;;;AAwBF,SAAgB,yBACf,QACA,WAC4C;CAC5C,MAAM,QAAQ,gBAAgB,QAAQ,UAAU;AAGhD,QAAO,IAAI,cAFK,eAAe,KAAK,MAAM,EAEoB,OAAO,SAAS;;;;;AAM/E,MAAa,0BAA0B"}
|
package/dist/zod-A7Pti5IV.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as import_zod from "zod";
|
|
2
2
|
//#endregion
|
|
3
3
|
export { import_zod as t };
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=zod-A7Pti5IV.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-A7Pti5IV.d.cts","names":[],"sources":["../src/zod.ts"],"sourcesContent":[],"mappings":""}
|
package/dist/zod-BVo51kgJ.mjs
CHANGED
|
@@ -7,4 +7,4 @@ __reExport(zod_exports, import_zod);
|
|
|
7
7
|
|
|
8
8
|
//#endregion
|
|
9
9
|
export { zod_exports as t };
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=zod-BVo51kgJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-BVo51kgJ.mjs","names":[],"sources":["../src/zod.ts"],"sourcesContent":["export * from \"zod\";\n"],"mappings":""}
|
package/dist/zod-DYghWCz1.cjs
CHANGED
|
@@ -11,4 +11,4 @@ Object.defineProperty(exports, 'zod_exports', {
|
|
|
11
11
|
return zod_exports;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=zod-DYghWCz1.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-DYghWCz1.cjs","names":[],"sources":["../src/zod.ts"],"sourcesContent":["export * from \"zod\";\n"],"mappings":""}
|
package/dist/zod-Zw8dlP3j.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as import_zod from "zod";
|
|
2
2
|
//#endregion
|
|
3
3
|
export { import_zod as t };
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=zod-Zw8dlP3j.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-Zw8dlP3j.d.mts","names":[],"sources":["../src/zod.ts"],"sourcesContent":[],"mappings":""}
|