ngx-trpc-client 0.0.1 → 0.0.2
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/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.2] - 2026-06-21
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Declared `rxjs` as an explicit peer dependency (previously relied on Angular pulling it in transitively)
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Internal lint and code cleanups (safe `Object.prototype.hasOwnProperty` access); no behavioral changes
|
|
19
|
+
|
|
20
|
+
## [0.0.1] - 2026-06-21
|
|
21
|
+
|
|
10
22
|
### Added
|
|
11
23
|
|
|
12
24
|
- Type-safe tRPC client proxy returning RxJS Observables
|
|
@@ -79,7 +79,9 @@ const transferStateLink = () => () => {
|
|
|
79
79
|
};
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
-
const noop = () => {
|
|
82
|
+
const noop = () => {
|
|
83
|
+
/* proxy target; never invoked directly */
|
|
84
|
+
};
|
|
83
85
|
function createInnerProxy(callback, path) {
|
|
84
86
|
return new Proxy(noop, {
|
|
85
87
|
get(_target, key) {
|
|
@@ -154,7 +156,7 @@ const clientCallTypeMap = {
|
|
|
154
156
|
};
|
|
155
157
|
function createTRPCRxJSClientProxy(client) {
|
|
156
158
|
return createFlatProxy((key) => {
|
|
157
|
-
if (
|
|
159
|
+
if (Object.prototype.hasOwnProperty.call(client, key)) {
|
|
158
160
|
return client[key];
|
|
159
161
|
}
|
|
160
162
|
return createRecursiveProxy(({ path, args }) => {
|
|
@@ -255,7 +257,6 @@ class TRPCClient {
|
|
|
255
257
|
}
|
|
256
258
|
}
|
|
257
259
|
|
|
258
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
259
260
|
function httpLink(opts) {
|
|
260
261
|
return (runtime) => {
|
|
261
262
|
const { url, headers: headersOpt, fetch: fetchFn = globalThis.fetch } = opts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-trpc-client.mjs","sources":["../../../projects/ngx-trpc-client/src/client/cache-state.ts","../../../projects/ngx-trpc-client/src/client/links/transfer-state-link.ts","../../../projects/ngx-trpc-client/src/client/proxy.ts","../../../projects/ngx-trpc-client/src/client/trpc-error.ts","../../../projects/ngx-trpc-client/src/client/trpc-client.ts","../../../projects/ngx-trpc-client/src/client/http-link.ts","../../../projects/ngx-trpc-client/src/client/client.ts","../../../projects/ngx-trpc-client/src/client/wait-for.ts","../../../projects/ngx-trpc-client/src/public-api.ts","../../../projects/ngx-trpc-client/src/ngx-trpc-client.ts"],"sourcesContent":["import { BehaviorSubject, first } from 'rxjs';\nimport { APP_BOOTSTRAP_LISTENER, ApplicationRef, inject, InjectionToken } from '@angular/core';\nimport { switchMap, timer } from 'rxjs';\nexport const tRPC_CACHE_STATE = new InjectionToken<{\n isCacheActive: BehaviorSubject<boolean>;\n}>('TRPC_HTTP_TRANSFER_STATE_CACHE_STATE');\n\nexport const provideTrpcCacheState = () => ({\n provide: tRPC_CACHE_STATE,\n useValue: { isCacheActive: new BehaviorSubject(true) },\n});\n\nexport const provideTrpcCacheStateStatusManager = () => ({\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: () => {\n const appRef = inject(ApplicationRef);\n const cacheState = inject(tRPC_CACHE_STATE);\n\n return () => {\n // Wait for app to be stable, then add a small delay to ensure\n // all initial tRPC queries have completed before deactivating cache\n appRef.isStable\n .pipe(\n first((isStable) => isStable),\n switchMap(() => timer(100)),\n )\n .subscribe(() => cacheState.isCacheActive.next(false));\n };\n },\n deps: [ApplicationRef, tRPC_CACHE_STATE],\n});\n","import { inject, makeStateKey, type StateKey, TransferState } from '@angular/core';\nimport type { AnyRouter } from '@trpc/server';\nimport { Observable } from 'rxjs';\nimport { tRPC_CACHE_STATE } from '../cache-state';\nimport type { TRPCLink, OperationResult, Operation } from '../types';\nimport superjson from 'superjson';\n\nfunction makeCacheKey(request: Operation<unknown>): StateKey<string> {\n const { type, path, input } = request;\n const encodedParams = Object.entries(input ?? {}).reduce(\n (prev, [key, value]) => prev + `${key}=${JSON.stringify(value)}`,\n '',\n );\n const key = type + '.' + path + '?' + encodedParams;\n const hash = generateHash(key);\n return makeStateKey(hash);\n}\n\nfunction generateHash(value: string): string {\n let hash = 0;\n for (const char of value) {\n hash = (Math.imul(31, hash) + char.charCodeAt(0)) << 0;\n }\n hash += 2147483647 + 1;\n return hash.toString();\n}\n\nexport const transferStateLink =\n <AppRouter extends AnyRouter>(): TRPCLink<AppRouter> =>\n () => {\n const { isCacheActive } = inject(tRPC_CACHE_STATE);\n const transferState = inject(TransferState);\n const isBrowser = typeof window === 'object';\n\n return ({ next, op }) => {\n if (op.type !== 'query') {\n return next(op);\n }\n\n const storeKey = makeCacheKey(op);\n const storeValue = transferState.get(storeKey, null);\n\n if (isBrowser && storeValue) {\n transferState.remove(storeKey);\n return new Observable<OperationResult<unknown>>((observer) => {\n observer.next(superjson.parse(storeValue));\n observer.complete();\n });\n }\n\n const shouldCache = !isBrowser || isCacheActive.getValue();\n\n if (!shouldCache) {\n return next(op);\n }\n\n return new Observable<OperationResult<unknown>>((observer) => {\n const sub = next(op).subscribe({\n next(value) {\n transferState.set(storeKey, superjson.stringify(value));\n observer.next(value);\n },\n error(err) {\n transferState.remove(storeKey);\n observer.error(err);\n },\n complete() {\n observer.complete();\n },\n });\n return () => sub.unsubscribe();\n });\n };\n };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\ninterface ProxyCallbackOptions {\n path: string[];\n args: unknown[];\n}\n\ntype ProxyCallback = (opts: ProxyCallbackOptions) => unknown;\n\nconst noop = () => {};\n\nfunction createInnerProxy(callback: ProxyCallback, path: string[]): unknown {\n return new Proxy(noop, {\n get(_target, key) {\n if (typeof key !== 'string' || key === 'then') {\n return undefined;\n }\n return createInnerProxy(callback, [...path, key]);\n },\n apply(_target, _thisArg, args) {\n const isApply = path[path.length - 1] === 'apply';\n return callback({\n args: isApply ? (args.length >= 2 ? args[1] : []) : args,\n path: isApply ? path.slice(0, -1) : path,\n });\n },\n });\n}\n\nexport function createRecursiveProxy(callback: ProxyCallback): unknown {\n return createInnerProxy(callback, []);\n}\n\nexport function createFlatProxy<TFaux>(callback: (path: string & keyof TFaux) => unknown): TFaux {\n return new Proxy(noop, {\n get(_target, name) {\n if (typeof name !== 'string' || name === 'then') {\n return undefined;\n }\n return callback(name as string & keyof TFaux);\n },\n }) as TFaux;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface TRPCErrorShape {\n message: string;\n code: number;\n data: Record<string, unknown>;\n}\n\nexport class TRPCClientError extends Error {\n public override readonly cause: Error | undefined;\n public readonly shape: TRPCErrorShape | undefined;\n public readonly data: Record<string, unknown> | undefined;\n public meta: Record<string, unknown> | undefined;\n\n constructor(\n message: string,\n opts?: {\n cause?: Error;\n shape?: TRPCErrorShape;\n meta?: Record<string, unknown>;\n },\n ) {\n super(message);\n this.name = 'TRPCClientError';\n this.cause = opts?.cause;\n this.shape = opts?.shape;\n this.data = opts?.shape?.data;\n this.meta = opts?.meta;\n }\n\n static from(cause: unknown, opts?: { meta?: Record<string, unknown> }): TRPCClientError {\n if (cause instanceof TRPCClientError) {\n return cause;\n }\n\n if (\n typeof cause === 'object' &&\n cause !== null &&\n 'error' in cause &&\n typeof (cause as any).error === 'object'\n ) {\n const errorShape = (cause as any).error as TRPCErrorShape;\n return new TRPCClientError(errorShape.message, {\n shape: errorShape,\n meta: opts?.meta,\n });\n }\n\n if (cause instanceof Error) {\n return new TRPCClientError(cause.message, {\n cause,\n meta: opts?.meta,\n });\n }\n\n return new TRPCClientError('Unknown error', { meta: opts?.meta });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n AnyMutationProcedure,\n AnyProcedure,\n AnyQueryProcedure,\n AnyRouter,\n CombinedDataTransformer,\n inferProcedureInput,\n inferProcedureOutput,\n ProcedureType,\n} from '@trpc/server';\nimport { Observable } from 'rxjs';\nimport { createFlatProxy, createRecursiveProxy } from './proxy';\nimport { TRPCClientError } from './trpc-error';\nimport type {\n CreateTRPCClientOptions,\n DataTransformerOptions,\n OperationLink,\n OperationResult,\n OperationResultObservable,\n TRPCClientRuntime,\n TRPCRequestOptions,\n TRPCType,\n} from './types';\n\ninterface RouterRecord {\n [key: string]: AnyProcedure | RouterRecord;\n}\n\ntype ProcedureInput<TProcedure extends AnyProcedure> =\n inferProcedureInput<TProcedure> extends void | undefined\n ? [input?: void | undefined]\n : [input: inferProcedureInput<TProcedure>];\n\ntype Resolver<TProcedure extends AnyProcedure> = (\n ...args: ProcedureInput<TProcedure>\n) => Observable<inferProcedureOutput<TProcedure>>;\n\ntype DecorateProcedure<TProcedure extends AnyProcedure> = TProcedure extends AnyQueryProcedure\n ? {\n query: Resolver<TProcedure>;\n }\n : TProcedure extends AnyMutationProcedure\n ? {\n mutate: Resolver<TProcedure>;\n }\n : never;\n\ntype DecoratedProcedureRecord<TProcedures extends RouterRecord> = {\n [TKey in keyof TProcedures]: TProcedures[TKey] extends AnyProcedure\n ? DecorateProcedure<TProcedures[TKey]>\n : TProcedures[TKey] extends AnyRouter\n ? DecoratedProcedureRecord<TProcedures[TKey]['_def']['record']>\n : TProcedures[TKey] extends RouterRecord\n ? DecoratedProcedureRecord<TProcedures[TKey]>\n : never;\n};\n\nconst clientCallTypeMap: Record<keyof DecorateProcedure<any>, ProcedureType> = {\n query: 'query',\n mutate: 'mutation',\n};\n\ntype UntypedClientProperties = 'links' | 'runtime' | 'requestId' | '$request' | 'query' | 'mutation';\n\ntype IntersectionError<TKey extends string> =\n `The property '${TKey}' in your router collides with a built-in method, rename this router or procedure on your backend.`;\n\nexport type CreateTrpcProxyClient<TRouter extends AnyRouter> =\n DecoratedProcedureRecord<TRouter['_def']['record']> extends infer TProcedureRecord\n ? UntypedClientProperties & keyof TProcedureRecord extends never\n ? TProcedureRecord\n : IntersectionError<UntypedClientProperties & keyof TProcedureRecord>\n : never;\n\nfunction createTRPCRxJSClientProxy<TRouter extends AnyRouter>(client: TRPCClient<TRouter>) {\n return createFlatProxy<CreateTrpcProxyClient<TRouter>>((key) => {\n if (client.hasOwnProperty(key)) {\n return (client as any)[key as any];\n }\n return createRecursiveProxy(({ path, args }) => {\n const pathCopy = [key, ...path];\n const clientCallType = pathCopy.pop()! as keyof DecorateProcedure<any>;\n const procedureType = clientCallTypeMap[clientCallType];\n const fullPath = pathCopy.join('.');\n return (client as any)[procedureType](fullPath, ...args);\n });\n });\n}\n\nexport function createTRPCRxJSProxyClient<TRouter extends AnyRouter>(\n opts: CreateTRPCClientOptions<TRouter>,\n) {\n const client = new TRPCClient<TRouter>(opts);\n return createTRPCRxJSClientProxy(client);\n}\n\nfunction createChain<TInput = unknown, TOutput = unknown>(opts: {\n links: OperationLink<AnyRouter, TInput, TOutput>[];\n op: { id: number; type: TRPCType; path: string; input: TInput; context: Record<string, unknown> };\n}): Observable<OperationResult<TOutput>> {\n return new Observable((observer) => {\n function execute(\n index = 0,\n op = opts.op,\n ): OperationResultObservable<TOutput> {\n const link = opts.links[index];\n if (!link) {\n throw new Error('No more links to execute - did you forget to add an ending link?');\n }\n return link({\n op,\n next(nextOp): OperationResultObservable<TOutput> {\n return execute(index + 1, nextOp);\n },\n });\n }\n\n const result$ = execute();\n const sub = result$.subscribe(observer);\n return () => sub.unsubscribe();\n });\n}\n\nclass TRPCClient<TRouter extends AnyRouter> {\n private readonly links: OperationLink<TRouter>[];\n public readonly runtime: TRPCClientRuntime;\n private requestId: number;\n\n constructor(opts: CreateTRPCClientOptions<TRouter>) {\n this.requestId = 0;\n\n const combinedTransformer: CombinedDataTransformer = (() => {\n const transformer = opts.transformer as DataTransformerOptions | undefined;\n if (!transformer) {\n return {\n input: {\n serialize: (data: any) => data,\n deserialize: (data: any) => data,\n },\n output: {\n serialize: (data: any) => data,\n deserialize: (data: any) => data,\n },\n };\n }\n if ('input' in transformer) {\n return transformer as CombinedDataTransformer;\n }\n return { input: transformer, output: transformer };\n })();\n\n this.runtime = {\n transformer: {\n serialize: (data) => combinedTransformer.input.serialize(data),\n deserialize: (data) => combinedTransformer.output.deserialize(data),\n },\n combinedTransformer,\n };\n\n this.links = opts.links.map((link) => link(this.runtime));\n }\n\n private $request<TOutput = unknown>({\n type,\n input,\n path,\n context = {},\n }: {\n type: TRPCType;\n input: unknown;\n path: string;\n context?: Record<string, unknown>;\n }): Observable<TOutput> {\n const chain$ = createChain({\n links: this.links as OperationLink<any, any, any>[],\n op: { id: ++this.requestId, type, path, input, context },\n });\n\n return new Observable<TOutput>((subscriber) => {\n const sub = chain$.subscribe({\n next: (value) => subscriber.next(value.result.data as TOutput),\n error: (err) => subscriber.error(TRPCClientError.from(err)),\n complete: () => subscriber.complete(),\n });\n return () => sub.unsubscribe();\n });\n }\n\n public query(path: string, input?: unknown, opts?: TRPCRequestOptions) {\n return this.$request({\n type: 'query',\n path,\n input,\n context: opts?.context,\n });\n }\n\n public mutation(path: string, input?: unknown, opts?: TRPCRequestOptions) {\n return this.$request({\n type: 'mutation',\n path,\n input,\n context: opts?.context,\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Observable } from 'rxjs';\nimport type { AnyRouter } from '@trpc/server';\nimport type { TRPCLink, TRPCClientRuntime, OperationLink, OperationResult, HTTPHeaders } from './types';\nimport { TRPCClientError } from './trpc-error';\n\nexport interface HttpLinkOptions {\n url: string;\n headers?: HTTPHeaders | (() => HTTPHeaders | Promise<HTTPHeaders>);\n fetch?: typeof globalThis.fetch;\n}\n\nexport function httpLink<TRouter extends AnyRouter>(\n opts: HttpLinkOptions,\n): TRPCLink<TRouter> {\n return (runtime: TRPCClientRuntime): OperationLink<TRouter> => {\n const { url, headers: headersOpt, fetch: fetchFn = globalThis.fetch } = opts;\n\n return ({ op }) => {\n return new Observable<OperationResult<unknown>>((subscriber) => {\n const abortController = new AbortController();\n\n (async () => {\n try {\n const resolvedHeaders: HTTPHeaders =\n typeof headersOpt === 'function' ? await headersOpt() : (headersOpt ?? {});\n\n const fetchHeaders: Record<string, string> = {};\n for (const [key, value] of Object.entries(resolvedHeaders)) {\n if (value !== undefined) {\n fetchHeaders[key] = Array.isArray(value) ? value.join(', ') : value;\n }\n }\n\n const serializedInput =\n op.input !== undefined ? runtime.transformer.serialize(op.input) : undefined;\n\n let response: Response;\n\n if (op.type === 'query') {\n let queryUrl = `${url}/${op.path}`;\n if (serializedInput !== undefined) {\n queryUrl += `?input=${encodeURIComponent(JSON.stringify(serializedInput))}`;\n }\n response = await fetchFn(queryUrl, {\n method: 'GET',\n headers: fetchHeaders,\n signal: abortController.signal,\n });\n } else {\n response = await fetchFn(`${url}/${op.path}`, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n ...fetchHeaders,\n },\n body: serializedInput !== undefined ? JSON.stringify(serializedInput) : undefined,\n signal: abortController.signal,\n });\n }\n\n const json = await response.json();\n\n if (!response.ok || 'error' in json) {\n throw TRPCClientError.from(json, {\n meta: { response, responseJSON: json },\n });\n }\n\n const deserializedData = runtime.transformer.deserialize(json.result.data);\n\n subscriber.next({\n result: { data: deserializedData },\n context: op.context,\n });\n subscriber.complete();\n } catch (err) {\n if (abortController.signal.aborted) return;\n subscriber.error(TRPCClientError.from(err));\n }\n })();\n\n return () => abortController.abort();\n });\n };\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\ndeclare const process: { env: Record<string, string | undefined> };\n\nimport { InjectionToken, Provider, signal, TransferState } from '@angular/core';\nimport type { AnyRouter } from '@trpc/server';\nimport { transferStateLink } from './links/transfer-state-link';\nimport {\n provideTrpcCacheState,\n provideTrpcCacheStateStatusManager,\n tRPC_CACHE_STATE,\n} from './cache-state';\nimport { createTRPCRxJSProxyClient } from './trpc-client';\nimport type { CreateTRPCClientOptions, HTTPHeaders } from './types';\nimport { httpLink, type HttpLinkOptions } from './http-link';\n\nexport interface TrpcOptions<T extends AnyRouter> {\n url: string;\n serverUrl?: string;\n options?: Partial<CreateTRPCClientOptions<T>>;\n httpLinkOptions?: Omit<HttpLinkOptions, 'url' | 'headers'>;\n}\n\nexport type TrpcClient<AppRouter extends AnyRouter> = ReturnType<\n typeof createTRPCRxJSProxyClient<AppRouter>\n>;\n\nconst tRPC_INJECTION_TOKEN = new InjectionToken<unknown>('@analogjs/trpc proxy client');\n\nfunction createCustomFetch(serverUrl?: string) {\n return (input: RequestInfo | URL, init?: RequestInit) => {\n if ((globalThis as any).$fetch) {\n return (globalThis as any).$fetch\n .raw(input.toString(), init)\n .catch((e: any) => {\n throw e;\n })\n .then((response: any) => ({\n ...response,\n headers: response.headers,\n json: () => Promise.resolve(response._data),\n }));\n }\n\n if (typeof window === 'undefined') {\n const base =\n serverUrl ??\n (() => {\n const host = process.env['NITRO_HOST'] ?? process.env['ANALOG_HOST'] ?? 'localhost';\n const port = process.env['NITRO_PORT'] ?? process.env['ANALOG_PORT'] ?? 4205;\n return `http://${host}:${port}`;\n })();\n if (input instanceof Request) {\n input = new Request(base, input);\n } else {\n input = new URL(input.toString(), base);\n }\n }\n\n return fetch(input, init);\n };\n}\n\nexport const createTrpcClient = <AppRouter extends AnyRouter>({\n url,\n serverUrl,\n options,\n httpLinkOptions,\n}: TrpcOptions<AppRouter>) => {\n const TrpcHeaders = signal<HTTPHeaders>({});\n const provideTrpcClient = (): Provider[] => [\n provideTrpcCacheState(),\n provideTrpcCacheStateStatusManager(),\n {\n provide: tRPC_INJECTION_TOKEN,\n useFactory: () => {\n return createTRPCRxJSProxyClient<AppRouter>({\n transformer: options?.transformer,\n links: [\n ...(options?.links ?? []),\n transferStateLink(),\n httpLink({\n url: url ?? '',\n headers: () => TrpcHeaders(),\n fetch: createCustomFetch(serverUrl),\n ...(httpLinkOptions ?? {}),\n }),\n ],\n });\n },\n deps: [tRPC_CACHE_STATE, TransferState],\n },\n ];\n const TrpcClient = tRPC_INJECTION_TOKEN as InjectionToken<TrpcClient<AppRouter>>;\n return {\n TrpcClient,\n provideTrpcClient,\n TrpcHeaders,\n /** @deprecated use TrpcClient instead */\n tRPCClient: TrpcClient,\n /** @deprecated use provideTrpcClient instead */\n provideTRPCClient: provideTrpcClient,\n /** @deprecated use TrpcHeaders instead */\n tRPCHeaders: TrpcHeaders,\n };\n};\n","import { firstValueFrom, isObservable, Observable } from 'rxjs';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare const Zone: any;\n\nexport async function waitFor<T>(prom: Promise<T> | Observable<T>): Promise<T> {\n if (isObservable(prom)) {\n prom = firstValueFrom(prom);\n }\n\n if (typeof Zone === 'undefined') {\n return prom;\n }\n\n const macroTask = Zone.current.scheduleMacroTask(\n `AnalogContentResolve-${Math.random()}`,\n () => {\n /* noop */\n },\n {},\n () => {\n /* noop */\n },\n );\n return prom.then((p: T) => {\n macroTask.invoke();\n return p;\n });\n}\n","/*\n * Public API Surface of ngx-trpc-client\n */\n\nexport * from './client';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-trpc-client.mjs","sources":["../../../projects/ngx-trpc-client/src/client/cache-state.ts","../../../projects/ngx-trpc-client/src/client/links/transfer-state-link.ts","../../../projects/ngx-trpc-client/src/client/proxy.ts","../../../projects/ngx-trpc-client/src/client/trpc-error.ts","../../../projects/ngx-trpc-client/src/client/trpc-client.ts","../../../projects/ngx-trpc-client/src/client/http-link.ts","../../../projects/ngx-trpc-client/src/client/client.ts","../../../projects/ngx-trpc-client/src/client/wait-for.ts","../../../projects/ngx-trpc-client/src/public-api.ts","../../../projects/ngx-trpc-client/src/ngx-trpc-client.ts"],"sourcesContent":["import { BehaviorSubject, first } from 'rxjs';\nimport { APP_BOOTSTRAP_LISTENER, ApplicationRef, inject, InjectionToken } from '@angular/core';\nimport { switchMap, timer } from 'rxjs';\nexport const tRPC_CACHE_STATE = new InjectionToken<{\n isCacheActive: BehaviorSubject<boolean>;\n}>('TRPC_HTTP_TRANSFER_STATE_CACHE_STATE');\n\nexport const provideTrpcCacheState = () => ({\n provide: tRPC_CACHE_STATE,\n useValue: { isCacheActive: new BehaviorSubject(true) },\n});\n\nexport const provideTrpcCacheStateStatusManager = () => ({\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: () => {\n const appRef = inject(ApplicationRef);\n const cacheState = inject(tRPC_CACHE_STATE);\n\n return () => {\n // Wait for app to be stable, then add a small delay to ensure\n // all initial tRPC queries have completed before deactivating cache\n appRef.isStable\n .pipe(\n first((isStable) => isStable),\n switchMap(() => timer(100)),\n )\n .subscribe(() => cacheState.isCacheActive.next(false));\n };\n },\n deps: [ApplicationRef, tRPC_CACHE_STATE],\n});\n","import { inject, makeStateKey, type StateKey, TransferState } from '@angular/core';\nimport type { AnyRouter } from '@trpc/server';\nimport { Observable } from 'rxjs';\nimport { tRPC_CACHE_STATE } from '../cache-state';\nimport type { TRPCLink, OperationResult, Operation } from '../types';\nimport superjson from 'superjson';\n\nfunction makeCacheKey(request: Operation<unknown>): StateKey<string> {\n const { type, path, input } = request;\n const encodedParams = Object.entries(input ?? {}).reduce(\n (prev, [key, value]) => prev + `${key}=${JSON.stringify(value)}`,\n '',\n );\n const key = type + '.' + path + '?' + encodedParams;\n const hash = generateHash(key);\n return makeStateKey(hash);\n}\n\nfunction generateHash(value: string): string {\n let hash = 0;\n for (const char of value) {\n hash = (Math.imul(31, hash) + char.charCodeAt(0)) << 0;\n }\n hash += 2147483647 + 1;\n return hash.toString();\n}\n\nexport const transferStateLink =\n <AppRouter extends AnyRouter>(): TRPCLink<AppRouter> =>\n () => {\n const { isCacheActive } = inject(tRPC_CACHE_STATE);\n const transferState = inject(TransferState);\n const isBrowser = typeof window === 'object';\n\n return ({ next, op }) => {\n if (op.type !== 'query') {\n return next(op);\n }\n\n const storeKey = makeCacheKey(op);\n const storeValue = transferState.get(storeKey, null);\n\n if (isBrowser && storeValue) {\n transferState.remove(storeKey);\n return new Observable<OperationResult<unknown>>((observer) => {\n observer.next(superjson.parse(storeValue));\n observer.complete();\n });\n }\n\n const shouldCache = !isBrowser || isCacheActive.getValue();\n\n if (!shouldCache) {\n return next(op);\n }\n\n return new Observable<OperationResult<unknown>>((observer) => {\n const sub = next(op).subscribe({\n next(value) {\n transferState.set(storeKey, superjson.stringify(value));\n observer.next(value);\n },\n error(err) {\n transferState.remove(storeKey);\n observer.error(err);\n },\n complete() {\n observer.complete();\n },\n });\n return () => sub.unsubscribe();\n });\n };\n };\n","interface ProxyCallbackOptions {\n path: string[];\n args: unknown[];\n}\n\ntype ProxyCallback = (opts: ProxyCallbackOptions) => unknown;\n\nconst noop = () => {\n /* proxy target; never invoked directly */\n};\n\nfunction createInnerProxy(callback: ProxyCallback, path: string[]): unknown {\n return new Proxy(noop, {\n get(_target, key) {\n if (typeof key !== 'string' || key === 'then') {\n return undefined;\n }\n return createInnerProxy(callback, [...path, key]);\n },\n apply(_target, _thisArg, args) {\n const isApply = path[path.length - 1] === 'apply';\n return callback({\n args: isApply ? (args.length >= 2 ? args[1] : []) : args,\n path: isApply ? path.slice(0, -1) : path,\n });\n },\n });\n}\n\nexport function createRecursiveProxy(callback: ProxyCallback): unknown {\n return createInnerProxy(callback, []);\n}\n\nexport function createFlatProxy<TFaux>(callback: (path: string & keyof TFaux) => unknown): TFaux {\n return new Proxy(noop, {\n get(_target, name) {\n if (typeof name !== 'string' || name === 'then') {\n return undefined;\n }\n return callback(name as string & keyof TFaux);\n },\n }) as TFaux;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface TRPCErrorShape {\n message: string;\n code: number;\n data: Record<string, unknown>;\n}\n\nexport class TRPCClientError extends Error {\n public override readonly cause: Error | undefined;\n public readonly shape: TRPCErrorShape | undefined;\n public readonly data: Record<string, unknown> | undefined;\n public meta: Record<string, unknown> | undefined;\n\n constructor(\n message: string,\n opts?: {\n cause?: Error;\n shape?: TRPCErrorShape;\n meta?: Record<string, unknown>;\n },\n ) {\n super(message);\n this.name = 'TRPCClientError';\n this.cause = opts?.cause;\n this.shape = opts?.shape;\n this.data = opts?.shape?.data;\n this.meta = opts?.meta;\n }\n\n static from(cause: unknown, opts?: { meta?: Record<string, unknown> }): TRPCClientError {\n if (cause instanceof TRPCClientError) {\n return cause;\n }\n\n if (\n typeof cause === 'object' &&\n cause !== null &&\n 'error' in cause &&\n typeof (cause as any).error === 'object'\n ) {\n const errorShape = (cause as any).error as TRPCErrorShape;\n return new TRPCClientError(errorShape.message, {\n shape: errorShape,\n meta: opts?.meta,\n });\n }\n\n if (cause instanceof Error) {\n return new TRPCClientError(cause.message, {\n cause,\n meta: opts?.meta,\n });\n }\n\n return new TRPCClientError('Unknown error', { meta: opts?.meta });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n AnyMutationProcedure,\n AnyProcedure,\n AnyQueryProcedure,\n AnyRouter,\n CombinedDataTransformer,\n inferProcedureInput,\n inferProcedureOutput,\n ProcedureType,\n} from '@trpc/server';\nimport { Observable } from 'rxjs';\nimport { createFlatProxy, createRecursiveProxy } from './proxy';\nimport { TRPCClientError } from './trpc-error';\nimport type {\n CreateTRPCClientOptions,\n DataTransformerOptions,\n OperationLink,\n OperationResult,\n OperationResultObservable,\n TRPCClientRuntime,\n TRPCRequestOptions,\n TRPCType,\n} from './types';\n\ninterface RouterRecord {\n [key: string]: AnyProcedure | RouterRecord;\n}\n\ntype ProcedureInput<TProcedure extends AnyProcedure> =\n inferProcedureInput<TProcedure> extends void | undefined\n ? [input?: void | undefined]\n : [input: inferProcedureInput<TProcedure>];\n\ntype Resolver<TProcedure extends AnyProcedure> = (\n ...args: ProcedureInput<TProcedure>\n) => Observable<inferProcedureOutput<TProcedure>>;\n\ntype DecorateProcedure<TProcedure extends AnyProcedure> = TProcedure extends AnyQueryProcedure\n ? {\n query: Resolver<TProcedure>;\n }\n : TProcedure extends AnyMutationProcedure\n ? {\n mutate: Resolver<TProcedure>;\n }\n : never;\n\ntype DecoratedProcedureRecord<TProcedures extends RouterRecord> = {\n [TKey in keyof TProcedures]: TProcedures[TKey] extends AnyProcedure\n ? DecorateProcedure<TProcedures[TKey]>\n : TProcedures[TKey] extends AnyRouter\n ? DecoratedProcedureRecord<TProcedures[TKey]['_def']['record']>\n : TProcedures[TKey] extends RouterRecord\n ? DecoratedProcedureRecord<TProcedures[TKey]>\n : never;\n};\n\nconst clientCallTypeMap: Record<keyof DecorateProcedure<any>, ProcedureType> = {\n query: 'query',\n mutate: 'mutation',\n};\n\ntype UntypedClientProperties = 'links' | 'runtime' | 'requestId' | '$request' | 'query' | 'mutation';\n\ntype IntersectionError<TKey extends string> =\n `The property '${TKey}' in your router collides with a built-in method, rename this router or procedure on your backend.`;\n\nexport type CreateTrpcProxyClient<TRouter extends AnyRouter> =\n DecoratedProcedureRecord<TRouter['_def']['record']> extends infer TProcedureRecord\n ? UntypedClientProperties & keyof TProcedureRecord extends never\n ? TProcedureRecord\n : IntersectionError<UntypedClientProperties & keyof TProcedureRecord>\n : never;\n\nfunction createTRPCRxJSClientProxy<TRouter extends AnyRouter>(client: TRPCClient<TRouter>) {\n return createFlatProxy<CreateTrpcProxyClient<TRouter>>((key) => {\n if (Object.prototype.hasOwnProperty.call(client, key)) {\n return (client as any)[key as any];\n }\n return createRecursiveProxy(({ path, args }) => {\n const pathCopy = [key, ...path];\n const clientCallType = pathCopy.pop()! as keyof DecorateProcedure<any>;\n const procedureType = clientCallTypeMap[clientCallType];\n const fullPath = pathCopy.join('.');\n return (client as any)[procedureType](fullPath, ...args);\n });\n });\n}\n\nexport function createTRPCRxJSProxyClient<TRouter extends AnyRouter>(\n opts: CreateTRPCClientOptions<TRouter>,\n) {\n const client = new TRPCClient<TRouter>(opts);\n return createTRPCRxJSClientProxy(client);\n}\n\nfunction createChain<TInput = unknown, TOutput = unknown>(opts: {\n links: OperationLink<AnyRouter, TInput, TOutput>[];\n op: { id: number; type: TRPCType; path: string; input: TInput; context: Record<string, unknown> };\n}): Observable<OperationResult<TOutput>> {\n return new Observable((observer) => {\n function execute(\n index = 0,\n op = opts.op,\n ): OperationResultObservable<TOutput> {\n const link = opts.links[index];\n if (!link) {\n throw new Error('No more links to execute - did you forget to add an ending link?');\n }\n return link({\n op,\n next(nextOp): OperationResultObservable<TOutput> {\n return execute(index + 1, nextOp);\n },\n });\n }\n\n const result$ = execute();\n const sub = result$.subscribe(observer);\n return () => sub.unsubscribe();\n });\n}\n\nclass TRPCClient<TRouter extends AnyRouter> {\n private readonly links: OperationLink<TRouter>[];\n public readonly runtime: TRPCClientRuntime;\n private requestId: number;\n\n constructor(opts: CreateTRPCClientOptions<TRouter>) {\n this.requestId = 0;\n\n const combinedTransformer: CombinedDataTransformer = (() => {\n const transformer = opts.transformer as DataTransformerOptions | undefined;\n if (!transformer) {\n return {\n input: {\n serialize: (data: any) => data,\n deserialize: (data: any) => data,\n },\n output: {\n serialize: (data: any) => data,\n deserialize: (data: any) => data,\n },\n };\n }\n if ('input' in transformer) {\n return transformer as CombinedDataTransformer;\n }\n return { input: transformer, output: transformer };\n })();\n\n this.runtime = {\n transformer: {\n serialize: (data) => combinedTransformer.input.serialize(data),\n deserialize: (data) => combinedTransformer.output.deserialize(data),\n },\n combinedTransformer,\n };\n\n this.links = opts.links.map((link) => link(this.runtime));\n }\n\n private $request<TOutput = unknown>({\n type,\n input,\n path,\n context = {},\n }: {\n type: TRPCType;\n input: unknown;\n path: string;\n context?: Record<string, unknown>;\n }): Observable<TOutput> {\n const chain$ = createChain({\n links: this.links as OperationLink<any, any, any>[],\n op: { id: ++this.requestId, type, path, input, context },\n });\n\n return new Observable<TOutput>((subscriber) => {\n const sub = chain$.subscribe({\n next: (value) => subscriber.next(value.result.data as TOutput),\n error: (err) => subscriber.error(TRPCClientError.from(err)),\n complete: () => subscriber.complete(),\n });\n return () => sub.unsubscribe();\n });\n }\n\n public query(path: string, input?: unknown, opts?: TRPCRequestOptions) {\n return this.$request({\n type: 'query',\n path,\n input,\n context: opts?.context,\n });\n }\n\n public mutation(path: string, input?: unknown, opts?: TRPCRequestOptions) {\n return this.$request({\n type: 'mutation',\n path,\n input,\n context: opts?.context,\n });\n }\n}\n","import { Observable } from 'rxjs';\nimport type { AnyRouter } from '@trpc/server';\nimport type { TRPCLink, TRPCClientRuntime, OperationLink, OperationResult, HTTPHeaders } from './types';\nimport { TRPCClientError } from './trpc-error';\n\nexport interface HttpLinkOptions {\n url: string;\n headers?: HTTPHeaders | (() => HTTPHeaders | Promise<HTTPHeaders>);\n fetch?: typeof globalThis.fetch;\n}\n\nexport function httpLink<TRouter extends AnyRouter>(\n opts: HttpLinkOptions,\n): TRPCLink<TRouter> {\n return (runtime: TRPCClientRuntime): OperationLink<TRouter> => {\n const { url, headers: headersOpt, fetch: fetchFn = globalThis.fetch } = opts;\n\n return ({ op }) => {\n return new Observable<OperationResult<unknown>>((subscriber) => {\n const abortController = new AbortController();\n\n (async () => {\n try {\n const resolvedHeaders: HTTPHeaders =\n typeof headersOpt === 'function' ? await headersOpt() : (headersOpt ?? {});\n\n const fetchHeaders: Record<string, string> = {};\n for (const [key, value] of Object.entries(resolvedHeaders)) {\n if (value !== undefined) {\n fetchHeaders[key] = Array.isArray(value) ? value.join(', ') : value;\n }\n }\n\n const serializedInput =\n op.input !== undefined ? runtime.transformer.serialize(op.input) : undefined;\n\n let response: Response;\n\n if (op.type === 'query') {\n let queryUrl = `${url}/${op.path}`;\n if (serializedInput !== undefined) {\n queryUrl += `?input=${encodeURIComponent(JSON.stringify(serializedInput))}`;\n }\n response = await fetchFn(queryUrl, {\n method: 'GET',\n headers: fetchHeaders,\n signal: abortController.signal,\n });\n } else {\n response = await fetchFn(`${url}/${op.path}`, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n ...fetchHeaders,\n },\n body: serializedInput !== undefined ? JSON.stringify(serializedInput) : undefined,\n signal: abortController.signal,\n });\n }\n\n const json = await response.json();\n\n if (!response.ok || 'error' in json) {\n throw TRPCClientError.from(json, {\n meta: { response, responseJSON: json },\n });\n }\n\n const deserializedData = runtime.transformer.deserialize(json.result.data);\n\n subscriber.next({\n result: { data: deserializedData },\n context: op.context,\n });\n subscriber.complete();\n } catch (err) {\n if (abortController.signal.aborted) return;\n subscriber.error(TRPCClientError.from(err));\n }\n })();\n\n return () => abortController.abort();\n });\n };\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\ndeclare const process: { env: Record<string, string | undefined> };\n\nimport { InjectionToken, Provider, signal, TransferState } from '@angular/core';\nimport type { AnyRouter } from '@trpc/server';\nimport { transferStateLink } from './links/transfer-state-link';\nimport {\n provideTrpcCacheState,\n provideTrpcCacheStateStatusManager,\n tRPC_CACHE_STATE,\n} from './cache-state';\nimport { createTRPCRxJSProxyClient } from './trpc-client';\nimport type { CreateTRPCClientOptions, HTTPHeaders } from './types';\nimport { httpLink, type HttpLinkOptions } from './http-link';\n\nexport interface TrpcOptions<T extends AnyRouter> {\n url: string;\n serverUrl?: string;\n options?: Partial<CreateTRPCClientOptions<T>>;\n httpLinkOptions?: Omit<HttpLinkOptions, 'url' | 'headers'>;\n}\n\nexport type TrpcClient<AppRouter extends AnyRouter> = ReturnType<\n typeof createTRPCRxJSProxyClient<AppRouter>\n>;\n\nconst tRPC_INJECTION_TOKEN = new InjectionToken<unknown>('@analogjs/trpc proxy client');\n\nfunction createCustomFetch(serverUrl?: string) {\n return (input: RequestInfo | URL, init?: RequestInit) => {\n if ((globalThis as any).$fetch) {\n return (globalThis as any).$fetch\n .raw(input.toString(), init)\n .catch((e: any) => {\n throw e;\n })\n .then((response: any) => ({\n ...response,\n headers: response.headers,\n json: () => Promise.resolve(response._data),\n }));\n }\n\n if (typeof window === 'undefined') {\n const base =\n serverUrl ??\n (() => {\n const host = process.env['NITRO_HOST'] ?? process.env['ANALOG_HOST'] ?? 'localhost';\n const port = process.env['NITRO_PORT'] ?? process.env['ANALOG_PORT'] ?? 4205;\n return `http://${host}:${port}`;\n })();\n if (input instanceof Request) {\n input = new Request(base, input);\n } else {\n input = new URL(input.toString(), base);\n }\n }\n\n return fetch(input, init);\n };\n}\n\nexport const createTrpcClient = <AppRouter extends AnyRouter>({\n url,\n serverUrl,\n options,\n httpLinkOptions,\n}: TrpcOptions<AppRouter>) => {\n const TrpcHeaders = signal<HTTPHeaders>({});\n const provideTrpcClient = (): Provider[] => [\n provideTrpcCacheState(),\n provideTrpcCacheStateStatusManager(),\n {\n provide: tRPC_INJECTION_TOKEN,\n useFactory: () => {\n return createTRPCRxJSProxyClient<AppRouter>({\n transformer: options?.transformer,\n links: [\n ...(options?.links ?? []),\n transferStateLink(),\n httpLink({\n url: url ?? '',\n headers: () => TrpcHeaders(),\n fetch: createCustomFetch(serverUrl),\n ...(httpLinkOptions ?? {}),\n }),\n ],\n });\n },\n deps: [tRPC_CACHE_STATE, TransferState],\n },\n ];\n const TrpcClient = tRPC_INJECTION_TOKEN as InjectionToken<TrpcClient<AppRouter>>;\n return {\n TrpcClient,\n provideTrpcClient,\n TrpcHeaders,\n /** @deprecated use TrpcClient instead */\n tRPCClient: TrpcClient,\n /** @deprecated use provideTrpcClient instead */\n provideTRPCClient: provideTrpcClient,\n /** @deprecated use TrpcHeaders instead */\n tRPCHeaders: TrpcHeaders,\n };\n};\n","import { firstValueFrom, isObservable, Observable } from 'rxjs';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare const Zone: any;\n\nexport async function waitFor<T>(prom: Promise<T> | Observable<T>): Promise<T> {\n if (isObservable(prom)) {\n prom = firstValueFrom(prom);\n }\n\n if (typeof Zone === 'undefined') {\n return prom;\n }\n\n const macroTask = Zone.current.scheduleMacroTask(\n `AnalogContentResolve-${Math.random()}`,\n () => {\n /* noop */\n },\n {},\n () => {\n /* noop */\n },\n );\n return prom.then((p: T) => {\n macroTask.invoke();\n return p;\n });\n}\n","/*\n * Public API Surface of ngx-trpc-client\n */\n\nexport * from './client';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAGO,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAE/C,sCAAsC,CAAC;AAEnC,MAAM,qBAAqB,GAAG,OAAO;AAC1C,IAAA,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;AACvD,CAAA,CAAC;AAEK,MAAM,kCAAkC,GAAG,OAAO;AACvD,IAAA,OAAO,EAAE,sBAAsB;AAC/B,IAAA,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,MAAK;AACf,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE3C,QAAA,OAAO,MAAK;;;AAGV,YAAA,MAAM,CAAC;iBACJ,IAAI,CACH,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAC7B,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;AAE5B,iBAAA,SAAS,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,QAAA,CAAC;IACH,CAAC;AACD,IAAA,IAAI,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;AACzC,CAAA,CAAC;;ACxBF,SAAS,YAAY,CAAC,OAA2B,EAAA;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;AACrC,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CACtD,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAChE,EAAE,CACH;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,aAAa;AACnD,IAAA,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC;AAC9B,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B;AAEA,SAAS,YAAY,CAAC,KAAa,EAAA;IACjC,IAAI,IAAI,GAAG,CAAC;AACZ,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD;AACA,IAAA,IAAI,IAAI,UAAU,GAAG,CAAC;AACtB,IAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;AACxB;AAEO,MAAM,iBAAiB,GAC5B,MACA,MAAK;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClD,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC3C,IAAA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ;AAE5C,IAAA,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAI;AACtB,QAAA,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB;AAEA,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;AAEpD,QAAA,IAAI,SAAS,IAAI,UAAU,EAAE;AAC3B,YAAA,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9B,YAAA,OAAO,IAAI,UAAU,CAA2B,CAAC,QAAQ,KAAI;gBAC3D,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC1C,QAAQ,CAAC,QAAQ,EAAE;AACrB,YAAA,CAAC,CAAC;QACJ;QAEA,MAAM,WAAW,GAAG,CAAC,SAAS,IAAI,aAAa,CAAC,QAAQ,EAAE;QAE1D,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB;AAEA,QAAA,OAAO,IAAI,UAAU,CAA2B,CAAC,QAAQ,KAAI;YAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;AAC7B,gBAAA,IAAI,CAAC,KAAK,EAAA;AACR,oBAAA,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvD,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBACtB,CAAC;AACD,gBAAA,KAAK,CAAC,GAAG,EAAA;AACP,oBAAA,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9B,oBAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;gBACrB,CAAC;gBACD,QAAQ,GAAA;oBACN,QAAQ,CAAC,QAAQ,EAAE;gBACrB,CAAC;AACF,aAAA,CAAC;AACF,YAAA,OAAO,MAAM,GAAG,CAAC,WAAW,EAAE;AAChC,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AACH,CAAC;;AClEH,MAAM,IAAI,GAAG,MAAK;;AAElB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAuB,EAAE,IAAc,EAAA;AAC/D,IAAA,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;QACrB,GAAG,CAAC,OAAO,EAAE,GAAG,EAAA;YACd,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,EAAE;AAC7C,gBAAA,OAAO,SAAS;YAClB;YACA,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;AACD,QAAA,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAA;AAC3B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;AACjD,YAAA,OAAO,QAAQ,CAAC;gBACd,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI;AACxD,gBAAA,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;AACzC,aAAA,CAAC;QACJ,CAAC;AACF,KAAA,CAAC;AACJ;AAEM,SAAU,oBAAoB,CAAC,QAAuB,EAAA;AAC1D,IAAA,OAAO,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC;AACvC;AAEM,SAAU,eAAe,CAAQ,QAAiD,EAAA;AACtF,IAAA,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;QACrB,GAAG,CAAC,OAAO,EAAE,IAAI,EAAA;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE;AAC/C,gBAAA,OAAO,SAAS;YAClB;AACA,YAAA,OAAO,QAAQ,CAAC,IAA4B,CAAC;QAC/C,CAAC;AACF,KAAA,CAAU;AACb;;ACnCM,MAAO,eAAgB,SAAQ,KAAK,CAAA;AACf,IAAA,KAAK;AACd,IAAA,KAAK;AACL,IAAA,IAAI;AACb,IAAA,IAAI;IAEX,WAAA,CACE,OAAe,EACf,IAIC,EAAA;QAED,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI;IACxB;AAEA,IAAA,OAAO,IAAI,CAAC,KAAc,EAAE,IAAyC,EAAA;AACnE,QAAA,IAAI,KAAK,YAAY,eAAe,EAAE;AACpC,YAAA,OAAO,KAAK;QACd;QAEA,IACE,OAAO,KAAK,KAAK,QAAQ;AACzB,YAAA,KAAK,KAAK,IAAI;AACd,YAAA,OAAO,IAAI,KAAK;AAChB,YAAA,OAAQ,KAAa,CAAC,KAAK,KAAK,QAAQ,EACxC;AACA,YAAA,MAAM,UAAU,GAAI,KAAa,CAAC,KAAuB;AACzD,YAAA,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE;AAC7C,gBAAA,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,IAAI,EAAE,IAAI;AACjB,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAA,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE;gBACxC,KAAK;gBACL,IAAI,EAAE,IAAI,EAAE,IAAI;AACjB,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,IAAI,eAAe,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACnE;AACD;;ACED,MAAM,iBAAiB,GAAwD;AAC7E,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE,UAAU;CACnB;AAcD,SAAS,yBAAyB,CAA4B,MAA2B,EAAA;AACvF,IAAA,OAAO,eAAe,CAAiC,CAAC,GAAG,KAAI;AAC7D,QAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AACrD,YAAA,OAAQ,MAAc,CAAC,GAAU,CAAC;QACpC;QACA,OAAO,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAI;YAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/B,YAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAmC;AACtE,YAAA,MAAM,aAAa,GAAG,iBAAiB,CAAC,cAAc,CAAC;YACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,OAAQ,MAAc,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;AAC1D,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AACJ;AAEM,SAAU,yBAAyB,CACvC,IAAsC,EAAA;AAEtC,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAU,IAAI,CAAC;AAC5C,IAAA,OAAO,yBAAyB,CAAC,MAAM,CAAC;AAC1C;AAEA,SAAS,WAAW,CAAsC,IAGzD,EAAA;AACC,IAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;QACjC,SAAS,OAAO,CACd,KAAK,GAAG,CAAC,EACT,EAAE,GAAG,IAAI,CAAC,EAAE,EAAA;YAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC;YACrF;AACA,YAAA,OAAO,IAAI,CAAC;gBACV,EAAE;AACF,gBAAA,IAAI,CAAC,MAAM,EAAA;oBACT,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;gBACnC,CAAC;AACF,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,OAAO,GAAG,OAAO,EAAE;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;AACvC,QAAA,OAAO,MAAM,GAAG,CAAC,WAAW,EAAE;AAChC,IAAA,CAAC,CAAC;AACJ;AAEA,MAAM,UAAU,CAAA;AACG,IAAA,KAAK;AACN,IAAA,OAAO;AACf,IAAA,SAAS;AAEjB,IAAA,WAAA,CAAY,IAAsC,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAElB,QAAA,MAAM,mBAAmB,GAA4B,CAAC,MAAK;AACzD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAiD;YAC1E,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO;AACL,oBAAA,KAAK,EAAE;AACL,wBAAA,SAAS,EAAE,CAAC,IAAS,KAAK,IAAI;AAC9B,wBAAA,WAAW,EAAE,CAAC,IAAS,KAAK,IAAI;AACjC,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,SAAS,EAAE,CAAC,IAAS,KAAK,IAAI;AAC9B,wBAAA,WAAW,EAAE,CAAC,IAAS,KAAK,IAAI;AACjC,qBAAA;iBACF;YACH;AACA,YAAA,IAAI,OAAO,IAAI,WAAW,EAAE;AAC1B,gBAAA,OAAO,WAAsC;YAC/C;YACA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;QACpD,CAAC,GAAG;QAEJ,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,WAAW,EAAE;AACX,gBAAA,SAAS,EAAE,CAAC,IAAI,KAAK,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;AAC9D,gBAAA,WAAW,EAAE,CAAC,IAAI,KAAK,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;AACpE,aAAA;YACD,mBAAmB;SACpB;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D;IAEQ,QAAQ,CAAoB,EAClC,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,GAAG,EAAE,GAMb,EAAA;QACC,MAAM,MAAM,GAAG,WAAW,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,KAAuC;AACnD,YAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AACzD,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,UAAU,CAAU,CAAC,UAAU,KAAI;AAC5C,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAC3B,gBAAA,IAAI,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAe,CAAC;AAC9D,gBAAA,KAAK,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3D,gBAAA,QAAQ,EAAE,MAAM,UAAU,CAAC,QAAQ,EAAE;AACtC,aAAA,CAAC;AACF,YAAA,OAAO,MAAM,GAAG,CAAC,WAAW,EAAE;AAChC,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,KAAK,CAAC,IAAY,EAAE,KAAe,EAAE,IAAyB,EAAA;QACnE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACnB,YAAA,IAAI,EAAE,OAAO;YACb,IAAI;YACJ,KAAK;YACL,OAAO,EAAE,IAAI,EAAE,OAAO;AACvB,SAAA,CAAC;IACJ;AAEO,IAAA,QAAQ,CAAC,IAAY,EAAE,KAAe,EAAE,IAAyB,EAAA;QACtE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACnB,YAAA,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,KAAK;YACL,OAAO,EAAE,IAAI,EAAE,OAAO;AACvB,SAAA,CAAC;IACJ;AACD;;ACnMK,SAAU,QAAQ,CACtB,IAAqB,EAAA;IAErB,OAAO,CAAC,OAA0B,KAA4B;AAC5D,QAAA,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,IAAI;AAE5E,QAAA,OAAO,CAAC,EAAE,EAAE,EAAE,KAAI;AAChB,YAAA,OAAO,IAAI,UAAU,CAA2B,CAAC,UAAU,KAAI;AAC7D,gBAAA,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE;gBAE7C,CAAC,YAAW;AACV,oBAAA,IAAI;wBACF,MAAM,eAAe,GACnB,OAAO,UAAU,KAAK,UAAU,GAAG,MAAM,UAAU,EAAE,IAAI,UAAU,IAAI,EAAE,CAAC;wBAE5E,MAAM,YAAY,GAA2B,EAAE;AAC/C,wBAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAC1D,4BAAA,IAAI,KAAK,KAAK,SAAS,EAAE;gCACvB,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK;4BACrE;wBACF;wBAEA,MAAM,eAAe,GACnB,EAAE,CAAC,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS;AAE9E,wBAAA,IAAI,QAAkB;AAEtB,wBAAA,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE;4BACvB,IAAI,QAAQ,GAAG,CAAA,EAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAA,CAAE;AAClC,4BAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AACjC,gCAAA,QAAQ,IAAI,CAAA,OAAA,EAAU,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAA,CAAE;4BAC7E;AACA,4BAAA,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACjC,gCAAA,MAAM,EAAE,KAAK;AACb,gCAAA,OAAO,EAAE,YAAY;gCACrB,MAAM,EAAE,eAAe,CAAC,MAAM;AAC/B,6BAAA,CAAC;wBACJ;6BAAO;4BACL,QAAQ,GAAG,MAAM,OAAO,CAAC,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,EAAE,CAAC,IAAI,CAAA,CAAE,EAAE;AAC5C,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,OAAO,EAAE;AACP,oCAAA,cAAc,EAAE,kBAAkB;AAClC,oCAAA,GAAG,YAAY;AAChB,iCAAA;AACD,gCAAA,IAAI,EAAE,eAAe,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,SAAS;gCACjF,MAAM,EAAE,eAAe,CAAC,MAAM;AAC/B,6BAAA,CAAC;wBACJ;AAEA,wBAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;wBAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE;AACnC,4BAAA,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE;AAC/B,gCAAA,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE;AACvC,6BAAA,CAAC;wBACJ;AAEA,wBAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBAE1E,UAAU,CAAC,IAAI,CAAC;AACd,4BAAA,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;4BAClC,OAAO,EAAE,EAAE,CAAC,OAAO;AACpB,yBAAA,CAAC;wBACF,UAAU,CAAC,QAAQ,EAAE;oBACvB;oBAAE,OAAO,GAAG,EAAE;AACZ,wBAAA,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO;4BAAE;wBACpC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7C;gBACF,CAAC,GAAG;AAEJ,gBAAA,OAAO,MAAM,eAAe,CAAC,KAAK,EAAE;AACtC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;AACH,IAAA,CAAC;AACH;;AC3DA,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAU,6BAA6B,CAAC;AAEvF,SAAS,iBAAiB,CAAC,SAAkB,EAAA;AAC3C,IAAA,OAAO,CAAC,KAAwB,EAAE,IAAkB,KAAI;AACtD,QAAA,IAAK,UAAkB,CAAC,MAAM,EAAE;YAC9B,OAAQ,UAAkB,CAAC;AACxB,iBAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI;AAC1B,iBAAA,KAAK,CAAC,CAAC,CAAM,KAAI;AAChB,gBAAA,MAAM,CAAC;AACT,YAAA,CAAC;AACA,iBAAA,IAAI,CAAC,CAAC,QAAa,MAAM;AACxB,gBAAA,GAAG,QAAQ;gBACX,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5C,aAAA,CAAC,CAAC;QACP;AAEA,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,IAAI,GACR,SAAS;AACT,gBAAA,CAAC,MAAK;AACJ,oBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,WAAW;AACnF,oBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI;AAC5E,oBAAA,OAAO,CAAA,OAAA,EAAU,IAAI,CAAA,CAAA,EAAI,IAAI,EAAE;gBACjC,CAAC,GAAG;AACN,YAAA,IAAI,KAAK,YAAY,OAAO,EAAE;gBAC5B,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;YAClC;iBAAO;gBACL,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;YACzC;QACF;AAEA,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3B,IAAA,CAAC;AACH;AAEO,MAAM,gBAAgB,GAAG,CAA8B,EAC5D,GAAG,EACH,SAAS,EACT,OAAO,EACP,eAAe,GACQ,KAAI;AAC3B,IAAA,MAAM,WAAW,GAAG,MAAM,CAAc,EAAE;oFAAC;AAC3C,IAAA,MAAM,iBAAiB,GAAG,MAAkB;AAC1C,QAAA,qBAAqB,EAAE;AACvB,QAAA,kCAAkC,EAAE;AACpC,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,MAAK;AACf,gBAAA,OAAO,yBAAyB,CAAY;oBAC1C,WAAW,EAAE,OAAO,EAAE,WAAW;AACjC,oBAAA,KAAK,EAAE;AACL,wBAAA,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;AACzB,wBAAA,iBAAiB,EAAE;AACnB,wBAAA,QAAQ,CAAC;4BACP,GAAG,EAAE,GAAG,IAAI,EAAE;AACd,4BAAA,OAAO,EAAE,MAAM,WAAW,EAAE;AAC5B,4BAAA,KAAK,EAAE,iBAAiB,CAAC,SAAS,CAAC;AACnC,4BAAA,IAAI,eAAe,IAAI,EAAE,CAAC;yBAC3B,CAAC;AACH,qBAAA;AACF,iBAAA,CAAC;YACJ,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACxC,SAAA;KACF;IACD,MAAM,UAAU,GAAG,oBAA6D;IAChF,OAAO;QACL,UAAU;QACV,iBAAiB;QACjB,WAAW;;AAEX,QAAA,UAAU,EAAE,UAAU;;AAEtB,QAAA,iBAAiB,EAAE,iBAAiB;;AAEpC,QAAA,WAAW,EAAE,WAAW;KACzB;AACH;;ACnGO,eAAe,OAAO,CAAI,IAAgC,EAAA;AAC/D,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AACtB,QAAA,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAC7B;AAEA,IAAA,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AAC/B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC9C,CAAA,qBAAA,EAAwB,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,EACvC,MAAK;;AAEL,IAAA,CAAC,EACD,EAAE,EACF,MAAK;;AAEL,IAAA,CAAC,CACF;AACD,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAI,KAAI;QACxB,SAAS,CAAC,MAAM,EAAE;AAClB,QAAA,OAAO,CAAC;AACV,IAAA,CAAC,CAAC;AACJ;;AC5BA;;AAEG;;ACFH;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-trpc-client",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Type-safe tRPC client for Angular with RxJS observables and SSR transfer state support",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "BeGj",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"@angular/common": "^20.3.0",
|
|
23
23
|
"@angular/core": "^20.3.0",
|
|
24
24
|
"@trpc/server": "^10.25.0 || ^11.0.0",
|
|
25
|
+
"rxjs": "^7.0.0",
|
|
25
26
|
"superjson": "^2.2.1"
|
|
26
27
|
},
|
|
27
28
|
"dependencies": {
|