@orpc/shared 0.0.0-next.80c9415 → 0.0.0-next.80df4d2

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/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
- <image align="center" src="https://orpc.unnoq.com/logo.webp" width=280 alt="oRPC logo" />
2
+ <image align="center" src="https://orpc.dev/logo.webp" width=280 alt="oRPC logo" />
3
3
  </div>
4
4
 
5
5
  <h1></h1>
@@ -17,6 +17,9 @@
17
17
  <a href="https://discord.gg/TXEbwRBvQn">
18
18
  <img alt="Discord" src="https://img.shields.io/discord/1308966753044398161?color=7389D8&label&logo=discord&logoColor=ffffff" />
19
19
  </a>
20
+ <a href="https://deepwiki.com/unnoq/orpc">
21
+ <img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki">
22
+ </a>
20
23
  </div>
21
24
 
22
25
  <h3 align="center">Typesafe APIs Made Simple 🪄</h3>
@@ -42,7 +45,7 @@
42
45
 
43
46
  ## Documentation
44
47
 
45
- You can find the full documentation [here](https://orpc.unnoq.com).
48
+ You can find the full documentation [here](https://orpc.dev).
46
49
 
47
50
  ## Packages
48
51
 
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Promisable } from 'type-fest';
2
2
  export { IsEqual, IsNever, JsonValue, PartialDeep, Promisable } from 'type-fest';
3
3
  import { Tracer, TraceAPI, ContextAPI, PropagationAPI, SpanOptions, Context, Span, AttributeValue, Exception } from '@opentelemetry/api';
4
- export { group, guard, mapEntries, mapValues, omit } from 'radash';
4
+ export { group, guard, mapEntries, mapValues, omit, retry, sleep } from 'radash';
5
5
 
6
6
  type MaybeOptionalOptions<TOptions> = Record<never, never> extends TOptions ? [options?: TOptions] : [options: TOptions];
7
7
  declare function resolveMaybeOptionalOptions<T>(rest: MaybeOptionalOptions<T>): T;
@@ -30,7 +30,7 @@ type OmitChainMethodDeep<T extends object, K extends keyof any> = {
30
30
 
31
31
  declare const ORPC_NAME = "orpc";
32
32
  declare const ORPC_SHARED_PACKAGE_NAME = "@orpc/shared";
33
- declare const ORPC_SHARED_PACKAGE_VERSION = "0.0.0-next.80c9415";
33
+ declare const ORPC_SHARED_PACKAGE_VERSION = "0.0.0-next.80df4d2";
34
34
 
35
35
  /**
36
36
  * Error thrown when an operation is aborted.
@@ -103,6 +103,14 @@ declare class SequentialIdGenerator {
103
103
  private index;
104
104
  generate(): string;
105
105
  }
106
+ /**
107
+ * Compares two sequential IDs.
108
+ * Returns:
109
+ * - negative if `a` < `b`
110
+ * - positive if `a` > `b`
111
+ * - 0 if equal
112
+ */
113
+ declare function compareSequentialIds(a: string, b: string): number;
106
114
 
107
115
  type SetOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
108
116
  type IntersectPick<T, U> = Pick<T, keyof T & keyof U>;
@@ -277,18 +285,35 @@ declare function isObject(value: unknown): value is Record<PropertyKey, unknown>
277
285
  */
278
286
  declare function isTypescriptObject(value: unknown): value is object & Record<PropertyKey, unknown>;
279
287
  declare function clone<T>(value: T): T;
280
- declare function get(object: unknown, path: readonly string[]): unknown;
288
+ declare function get(object: unknown, path: readonly PropertyKey[]): unknown;
281
289
  declare function isPropertyKey(value: unknown): value is PropertyKey;
282
290
  declare const NullProtoObj: ({
283
291
  new <T extends Record<PropertyKey, unknown>>(): T;
284
292
  });
285
293
 
294
+ type Value<T, TArgs extends any[] = []> = T | ((...args: TArgs) => T);
295
+ declare function value<T, TArgs extends any[]>(value: Value<T, TArgs>, ...args: NoInfer<TArgs>): T extends Value<infer U, any> ? U : never;
296
+ /**
297
+ * Returns the value if it is defined, otherwise returns the fallback
298
+ */
299
+ declare function fallback<T>(value: T | undefined, fallback: T): T;
300
+
286
301
  /**
287
302
  * Prevents objects from being awaitable by intercepting the `then` method
288
303
  * when called by the native await mechanism. This is useful for preventing
289
304
  * accidental awaiting of objects that aren't meant to be promises.
290
305
  */
291
306
  declare function preventNativeAwait<T extends object>(target: T): T;
307
+ /**
308
+ * Create a proxy that overlays one object (`overlay`) on top of another (`target`).
309
+ *
310
+ * - Properties from `overlay` take precedence.
311
+ * - Properties not in `overlay` fall back to `target`.
312
+ * - Methods from either object are bound to `overlay` so `this` is consistent.
313
+ *
314
+ * Useful when you want to override or extend behavior without fully copying/merging objects.
315
+ */
316
+ declare function overlayProxy<T extends object, U extends object>(target: Value<T>, partial: U): U & Omit<T, keyof U>;
292
317
 
293
318
  interface AsyncIdQueueCloseOptions {
294
319
  id?: string;
@@ -309,13 +334,21 @@ declare class AsyncIdQueue<T> {
309
334
  assertOpen(id: string): void;
310
335
  }
311
336
 
337
+ /**
338
+ * Converts a `ReadableStream` into an `AsyncIteratorClass`.
339
+ */
312
340
  declare function streamToAsyncIteratorClass<T>(stream: ReadableStream<T>): AsyncIteratorClass<T>;
341
+ /**
342
+ * Converts an `AsyncIterator` into a `ReadableStream`.
343
+ */
313
344
  declare function asyncIteratorToStream<T>(iterator: AsyncIterator<T>): ReadableStream<T>;
345
+ /**
346
+ * Converts an `AsyncIterator` into a `ReadableStream`, ensuring that
347
+ * all emitted object values are *unproxied* before enqueuing.
348
+ */
349
+ declare function asyncIteratorToUnproxiedDataStream<T>(iterator: AsyncIterator<T>): ReadableStream<T>;
314
350
 
315
351
  declare function tryDecodeURIComponent(value: string): string;
316
352
 
317
- type Value<T, TArgs extends any[] = []> = T | ((...args: TArgs) => T);
318
- declare function value<T, TArgs extends any[]>(value: Value<T, TArgs>, ...args: NoInfer<TArgs>): T extends Value<infer U, any> ? U : never;
319
-
320
- export { AbortError, AsyncIdQueue, AsyncIteratorClass, EventPublisher, NullProtoObj, ORPC_NAME, ORPC_SHARED_PACKAGE_NAME, ORPC_SHARED_PACKAGE_VERSION, SequentialIdGenerator, asyncIteratorToStream, asyncIteratorWithSpan, clone, defer, findDeepMatches, get, getConstructor, getGlobalOtelConfig, intercept, isAsyncIteratorObject, isObject, isPropertyKey, isTypescriptObject, onError, onFinish, onStart, onSuccess, once, parseEmptyableJSON, preventNativeAwait, readAsBuffer, replicateAsyncIterator, resolveMaybeOptionalOptions, runInSpanContext, runWithSpan, sequential, setGlobalOtelConfig, setSpanAttribute, setSpanError, splitInHalf, startSpan, streamToAsyncIteratorClass, stringifyJSON, toArray, toOtelException, toSpanAttributeValue, tryDecodeURIComponent, value };
353
+ export { 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 };
321
354
  export type { AnyFunction, AsyncIdQueueCloseOptions, AsyncIteratorClassCleanupFn, AsyncIteratorClassNextFn, AsyncIteratorWithSpanOptions, EventPublisherOptions, EventPublisherSubscribeIteratorOptions, InferAsyncIterableYield, InterceptableOptions, Interceptor, InterceptorOptions, IntersectPick, MaybeOptionalOptions, OmitChainMethodDeep, OnFinishState, OtelConfig, PromiseWithError, Registry, RunWithSpanOptions, Segment, SetOptional, SetSpanErrorOptions, ThrowableError, Value };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Promisable } from 'type-fest';
2
2
  export { IsEqual, IsNever, JsonValue, PartialDeep, Promisable } from 'type-fest';
3
3
  import { Tracer, TraceAPI, ContextAPI, PropagationAPI, SpanOptions, Context, Span, AttributeValue, Exception } from '@opentelemetry/api';
4
- export { group, guard, mapEntries, mapValues, omit } from 'radash';
4
+ export { group, guard, mapEntries, mapValues, omit, retry, sleep } from 'radash';
5
5
 
6
6
  type MaybeOptionalOptions<TOptions> = Record<never, never> extends TOptions ? [options?: TOptions] : [options: TOptions];
7
7
  declare function resolveMaybeOptionalOptions<T>(rest: MaybeOptionalOptions<T>): T;
@@ -30,7 +30,7 @@ type OmitChainMethodDeep<T extends object, K extends keyof any> = {
30
30
 
31
31
  declare const ORPC_NAME = "orpc";
32
32
  declare const ORPC_SHARED_PACKAGE_NAME = "@orpc/shared";
33
- declare const ORPC_SHARED_PACKAGE_VERSION = "0.0.0-next.80c9415";
33
+ declare const ORPC_SHARED_PACKAGE_VERSION = "0.0.0-next.80df4d2";
34
34
 
35
35
  /**
36
36
  * Error thrown when an operation is aborted.
@@ -103,6 +103,14 @@ declare class SequentialIdGenerator {
103
103
  private index;
104
104
  generate(): string;
105
105
  }
106
+ /**
107
+ * Compares two sequential IDs.
108
+ * Returns:
109
+ * - negative if `a` < `b`
110
+ * - positive if `a` > `b`
111
+ * - 0 if equal
112
+ */
113
+ declare function compareSequentialIds(a: string, b: string): number;
106
114
 
107
115
  type SetOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
108
116
  type IntersectPick<T, U> = Pick<T, keyof T & keyof U>;
@@ -277,18 +285,35 @@ declare function isObject(value: unknown): value is Record<PropertyKey, unknown>
277
285
  */
278
286
  declare function isTypescriptObject(value: unknown): value is object & Record<PropertyKey, unknown>;
279
287
  declare function clone<T>(value: T): T;
280
- declare function get(object: unknown, path: readonly string[]): unknown;
288
+ declare function get(object: unknown, path: readonly PropertyKey[]): unknown;
281
289
  declare function isPropertyKey(value: unknown): value is PropertyKey;
282
290
  declare const NullProtoObj: ({
283
291
  new <T extends Record<PropertyKey, unknown>>(): T;
284
292
  });
285
293
 
294
+ type Value<T, TArgs extends any[] = []> = T | ((...args: TArgs) => T);
295
+ declare function value<T, TArgs extends any[]>(value: Value<T, TArgs>, ...args: NoInfer<TArgs>): T extends Value<infer U, any> ? U : never;
296
+ /**
297
+ * Returns the value if it is defined, otherwise returns the fallback
298
+ */
299
+ declare function fallback<T>(value: T | undefined, fallback: T): T;
300
+
286
301
  /**
287
302
  * Prevents objects from being awaitable by intercepting the `then` method
288
303
  * when called by the native await mechanism. This is useful for preventing
289
304
  * accidental awaiting of objects that aren't meant to be promises.
290
305
  */
291
306
  declare function preventNativeAwait<T extends object>(target: T): T;
307
+ /**
308
+ * Create a proxy that overlays one object (`overlay`) on top of another (`target`).
309
+ *
310
+ * - Properties from `overlay` take precedence.
311
+ * - Properties not in `overlay` fall back to `target`.
312
+ * - Methods from either object are bound to `overlay` so `this` is consistent.
313
+ *
314
+ * Useful when you want to override or extend behavior without fully copying/merging objects.
315
+ */
316
+ declare function overlayProxy<T extends object, U extends object>(target: Value<T>, partial: U): U & Omit<T, keyof U>;
292
317
 
293
318
  interface AsyncIdQueueCloseOptions {
294
319
  id?: string;
@@ -309,13 +334,21 @@ declare class AsyncIdQueue<T> {
309
334
  assertOpen(id: string): void;
310
335
  }
311
336
 
337
+ /**
338
+ * Converts a `ReadableStream` into an `AsyncIteratorClass`.
339
+ */
312
340
  declare function streamToAsyncIteratorClass<T>(stream: ReadableStream<T>): AsyncIteratorClass<T>;
341
+ /**
342
+ * Converts an `AsyncIterator` into a `ReadableStream`.
343
+ */
313
344
  declare function asyncIteratorToStream<T>(iterator: AsyncIterator<T>): ReadableStream<T>;
345
+ /**
346
+ * Converts an `AsyncIterator` into a `ReadableStream`, ensuring that
347
+ * all emitted object values are *unproxied* before enqueuing.
348
+ */
349
+ declare function asyncIteratorToUnproxiedDataStream<T>(iterator: AsyncIterator<T>): ReadableStream<T>;
314
350
 
315
351
  declare function tryDecodeURIComponent(value: string): string;
316
352
 
317
- type Value<T, TArgs extends any[] = []> = T | ((...args: TArgs) => T);
318
- declare function value<T, TArgs extends any[]>(value: Value<T, TArgs>, ...args: NoInfer<TArgs>): T extends Value<infer U, any> ? U : never;
319
-
320
- export { AbortError, AsyncIdQueue, AsyncIteratorClass, EventPublisher, NullProtoObj, ORPC_NAME, ORPC_SHARED_PACKAGE_NAME, ORPC_SHARED_PACKAGE_VERSION, SequentialIdGenerator, asyncIteratorToStream, asyncIteratorWithSpan, clone, defer, findDeepMatches, get, getConstructor, getGlobalOtelConfig, intercept, isAsyncIteratorObject, isObject, isPropertyKey, isTypescriptObject, onError, onFinish, onStart, onSuccess, once, parseEmptyableJSON, preventNativeAwait, readAsBuffer, replicateAsyncIterator, resolveMaybeOptionalOptions, runInSpanContext, runWithSpan, sequential, setGlobalOtelConfig, setSpanAttribute, setSpanError, splitInHalf, startSpan, streamToAsyncIteratorClass, stringifyJSON, toArray, toOtelException, toSpanAttributeValue, tryDecodeURIComponent, value };
353
+ export { 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 };
321
354
  export type { AnyFunction, AsyncIdQueueCloseOptions, AsyncIteratorClassCleanupFn, AsyncIteratorClassNextFn, AsyncIteratorWithSpanOptions, EventPublisherOptions, EventPublisherSubscribeIteratorOptions, InferAsyncIterableYield, InterceptableOptions, Interceptor, InterceptorOptions, IntersectPick, MaybeOptionalOptions, OmitChainMethodDeep, OnFinishState, OtelConfig, PromiseWithError, Registry, RunWithSpanOptions, Segment, SetOptional, SetSpanErrorOptions, ThrowableError, Value };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { group, guard, mapEntries, mapValues, omit } from 'radash';
1
+ export { group, guard, mapEntries, mapValues, omit, retry, sleep } from 'radash';
2
2
 
3
3
  function resolveMaybeOptionalOptions(rest) {
4
4
  return rest[0] ?? {};
@@ -21,7 +21,7 @@ function readAsBuffer(source) {
21
21
 
22
22
  const ORPC_NAME = "orpc";
23
23
  const ORPC_SHARED_PACKAGE_NAME = "@orpc/shared";
24
- const ORPC_SHARED_PACKAGE_VERSION = "0.0.0-next.80c9415";
24
+ const ORPC_SHARED_PACKAGE_VERSION = "0.0.0-next.80df4d2";
25
25
 
26
26
  class AbortError extends Error {
27
27
  constructor(...rest) {
@@ -210,18 +210,16 @@ class AsyncIdQueue {
210
210
  close({ id, reason } = {}) {
211
211
  if (id === void 0) {
212
212
  this.waiters.forEach((pendingPulls, id2) => {
213
- pendingPulls.forEach(([, reject]) => {
214
- reject(reason ?? new Error(`[AsyncIdQueue] Queue[${id2}] was closed or aborted while waiting for pulling.`));
215
- });
213
+ const error2 = reason ?? new AbortError(`[AsyncIdQueue] Queue[${id2}] was closed or aborted while waiting for pulling.`);
214
+ pendingPulls.forEach(([, reject]) => reject(error2));
216
215
  });
217
216
  this.waiters.clear();
218
217
  this.openIds.clear();
219
218
  this.queues.clear();
220
219
  return;
221
220
  }
222
- this.waiters.get(id)?.forEach(([, reject]) => {
223
- reject(reason ?? new Error(`[AsyncIdQueue] Queue[${id}] was closed or aborted while waiting for pulling.`));
224
- });
221
+ const error = reason ?? new AbortError(`[AsyncIdQueue] Queue[${id}] was closed or aborted while waiting for pulling.`);
222
+ this.waiters.get(id)?.forEach(([, reject]) => reject(error));
225
223
  this.waiters.delete(id);
226
224
  this.openIds.delete(id);
227
225
  this.queues.delete(id);
@@ -405,15 +403,15 @@ class EventPublisher {
405
403
  if (typeof listenerOrOptions === "function") {
406
404
  let listeners = this.#listenersMap.get(event);
407
405
  if (!listeners) {
408
- this.#listenersMap.set(event, listeners = /* @__PURE__ */ new Set());
406
+ this.#listenersMap.set(event, listeners = []);
409
407
  }
410
- listeners.add(listenerOrOptions);
411
- return () => {
412
- listeners.delete(listenerOrOptions);
413
- if (listeners.size === 0) {
408
+ listeners.push(listenerOrOptions);
409
+ return once(() => {
410
+ listeners.splice(listeners.indexOf(listenerOrOptions), 1);
411
+ if (listeners.length === 0) {
414
412
  this.#listenersMap.delete(event);
415
413
  }
416
- };
414
+ });
417
415
  }
418
416
  const signal = listenerOrOptions?.signal;
419
417
  const maxBufferedEvents = listenerOrOptions?.maxBufferedEvents ?? this.#maxBufferedEvents;
@@ -459,13 +457,19 @@ class EventPublisher {
459
457
  }
460
458
 
461
459
  class SequentialIdGenerator {
462
- index = BigInt(0);
460
+ index = BigInt(1);
463
461
  generate() {
464
- const id = this.index.toString(32);
462
+ const id = this.index.toString(36);
465
463
  this.index++;
466
464
  return id;
467
465
  }
468
466
  }
467
+ function compareSequentialIds(a, b) {
468
+ if (a.length !== b.length) {
469
+ return a.length - b.length;
470
+ }
471
+ return a < b ? -1 : a > b ? 1 : 0;
472
+ }
469
473
 
470
474
  function onStart(callback) {
471
475
  return async (options, ...rest) => {
@@ -569,6 +573,9 @@ function clone(value) {
569
573
  for (const key in value) {
570
574
  result[key] = clone(value[key]);
571
575
  }
576
+ for (const sym of Object.getOwnPropertySymbols(value)) {
577
+ result[sym] = clone(value[sym]);
578
+ }
572
579
  return result;
573
580
  }
574
581
  return value;
@@ -595,14 +602,24 @@ const NullProtoObj = /* @__PURE__ */ (() => {
595
602
  return e;
596
603
  })();
597
604
 
605
+ function value(value2, ...args) {
606
+ if (typeof value2 === "function") {
607
+ return value2(...args);
608
+ }
609
+ return value2;
610
+ }
611
+ function fallback(value2, fallback2) {
612
+ return value2 === void 0 ? fallback2 : value2;
613
+ }
614
+
598
615
  function preventNativeAwait(target) {
599
616
  return new Proxy(target, {
600
617
  get(target2, prop, receiver) {
601
- const value = Reflect.get(target2, prop, receiver);
602
- if (prop !== "then" || typeof value !== "function") {
603
- return value;
618
+ const value2 = Reflect.get(target2, prop, receiver);
619
+ if (prop !== "then" || typeof value2 !== "function") {
620
+ return value2;
604
621
  }
605
- return new Proxy(value, {
622
+ return new Proxy(value2, {
606
623
  apply(targetFn, thisArg, args) {
607
624
  if (args.length !== 2 || args.some((arg) => !isNativeFunction(arg))) {
608
625
  return Reflect.apply(targetFn, thisArg, args);
@@ -626,6 +643,19 @@ const NATIVE_FUNCTION_REGEX = /^\s*function\s*\(\)\s*\{\s*\[native code\]\s*\}\s
626
643
  function isNativeFunction(fn) {
627
644
  return typeof fn === "function" && NATIVE_FUNCTION_REGEX.test(fn.toString());
628
645
  }
646
+ function overlayProxy(target, partial) {
647
+ const proxy = new Proxy(typeof target === "function" ? partial : target, {
648
+ get(_, prop) {
649
+ const targetValue = prop in partial ? partial : value(target);
650
+ const v = Reflect.get(targetValue, prop);
651
+ return typeof v === "function" ? v.bind(targetValue) : v;
652
+ },
653
+ has(_, prop) {
654
+ return Reflect.has(partial, prop) || Reflect.has(value(target), prop);
655
+ }
656
+ });
657
+ return proxy;
658
+ }
629
659
 
630
660
  function streamToAsyncIteratorClass(stream) {
631
661
  const reader = stream.getReader();
@@ -653,6 +683,22 @@ function asyncIteratorToStream(iterator) {
653
683
  }
654
684
  });
655
685
  }
686
+ function asyncIteratorToUnproxiedDataStream(iterator) {
687
+ return new ReadableStream({
688
+ async pull(controller) {
689
+ const { done, value } = await iterator.next();
690
+ if (done) {
691
+ controller.close();
692
+ } else {
693
+ const unproxied = isObject(value) ? { ...value } : Array.isArray(value) ? value.map((i) => i) : value;
694
+ controller.enqueue(unproxied);
695
+ }
696
+ },
697
+ async cancel() {
698
+ await iterator.return?.();
699
+ }
700
+ });
701
+ }
656
702
 
657
703
  function tryDecodeURIComponent(value) {
658
704
  try {
@@ -662,11 +708,4 @@ function tryDecodeURIComponent(value) {
662
708
  }
663
709
  }
664
710
 
665
- function value(value2, ...args) {
666
- if (typeof value2 === "function") {
667
- return value2(...args);
668
- }
669
- return value2;
670
- }
671
-
672
- export { AbortError, AsyncIdQueue, AsyncIteratorClass, EventPublisher, NullProtoObj, ORPC_NAME, ORPC_SHARED_PACKAGE_NAME, ORPC_SHARED_PACKAGE_VERSION, SequentialIdGenerator, asyncIteratorToStream, asyncIteratorWithSpan, clone, defer, findDeepMatches, get, getConstructor, getGlobalOtelConfig, intercept, isAsyncIteratorObject, isObject, isPropertyKey, isTypescriptObject, onError, onFinish, onStart, onSuccess, once, parseEmptyableJSON, preventNativeAwait, readAsBuffer, replicateAsyncIterator, resolveMaybeOptionalOptions, runInSpanContext, runWithSpan, sequential, setGlobalOtelConfig, setSpanAttribute, setSpanError, splitInHalf, startSpan, streamToAsyncIteratorClass, stringifyJSON, toArray, toOtelException, toSpanAttributeValue, tryDecodeURIComponent, value };
711
+ export { 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 };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@orpc/shared",
3
3
  "type": "module",
4
- "version": "0.0.0-next.80c9415",
4
+ "version": "0.0.0-next.80df4d2",
5
5
  "license": "MIT",
6
- "homepage": "https://orpc.unnoq.com",
6
+ "homepage": "https://orpc.dev",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/unnoq/orpc.git",
@@ -33,13 +33,13 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "radash": "^12.1.1",
36
- "type-fest": "^4.39.1"
36
+ "type-fest": "^5.2.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@opentelemetry/api": "^1.9.0",
40
- "arktype": "2.1.21",
41
- "valibot": "^1.1.0",
42
- "zod": "^4.1.5"
40
+ "arktype": "2.1.27",
41
+ "valibot": "^1.2.0",
42
+ "zod": "^4.1.12"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "unbuild",