@kontsedal/olas-core 0.0.1-rc.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.
Files changed (45) hide show
  1. package/dist/index.cjs +40 -10
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +32 -11
  4. package/dist/index.d.cts.map +1 -1
  5. package/dist/index.d.mts +32 -11
  6. package/dist/index.d.mts.map +1 -1
  7. package/dist/index.mjs +40 -11
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/{root-BImHnGj1.mjs → root-De-6KWIZ.mjs} +750 -149
  10. package/dist/root-De-6KWIZ.mjs.map +1 -0
  11. package/dist/{root-Bazp5_Ik.cjs → root-XKEsSmcd.cjs} +755 -148
  12. package/dist/root-XKEsSmcd.cjs.map +1 -0
  13. package/dist/testing.cjs +1 -1
  14. package/dist/testing.d.cts +1 -1
  15. package/dist/testing.d.mts +1 -1
  16. package/dist/testing.mjs +1 -1
  17. package/dist/{types-CAMgqCMz.d.mts → types-C-zV1JZA.d.mts} +215 -13
  18. package/dist/types-C-zV1JZA.d.mts.map +1 -0
  19. package/dist/{types-emq_lZd7.d.cts → types-DKfpkm17.d.cts} +215 -13
  20. package/dist/types-DKfpkm17.d.cts.map +1 -0
  21. package/package.json +1 -1
  22. package/src/controller/index.ts +6 -0
  23. package/src/controller/instance.ts +432 -18
  24. package/src/controller/root.ts +9 -1
  25. package/src/controller/types.ts +148 -7
  26. package/src/emitter.ts +34 -3
  27. package/src/forms/field.ts +73 -8
  28. package/src/forms/form-types.ts +16 -0
  29. package/src/forms/form.ts +218 -26
  30. package/src/index.ts +12 -1
  31. package/src/query/client.ts +161 -6
  32. package/src/query/define.ts +14 -0
  33. package/src/query/entry.ts +64 -42
  34. package/src/query/infinite.ts +77 -55
  35. package/src/query/mutation.ts +11 -21
  36. package/src/query/plugin.ts +50 -0
  37. package/src/query/use.ts +80 -3
  38. package/src/signals/readonly.ts +3 -3
  39. package/src/timing/debounced.ts +24 -4
  40. package/src/timing/throttled.ts +22 -3
  41. package/src/utils.ts +32 -4
  42. package/dist/root-BImHnGj1.mjs.map +0 -1
  43. package/dist/root-Bazp5_Ik.cjs.map +0 -1
  44. package/dist/types-CAMgqCMz.d.mts.map +0 -1
  45. package/dist/types-emq_lZd7.d.cts.map +0 -1
package/dist/testing.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_root = require("./root-Bazp5_Ik.cjs");
2
+ const require_root = require("./root-XKEsSmcd.cjs");
3
3
  //#region src/testing.ts
4
4
  /**
5
5
  * Construct an isolated root wrapping a single controller. The returned object
@@ -1,4 +1,4 @@
1
- import { O as AsyncState, c as RootOptions, k as AsyncStatus, n as ControllerDef, o as Field, s as Root } from "./types-emq_lZd7.cjs";
1
+ import { F as AsyncStatus, P as AsyncState, d as Field, m as RootOptions, p as Root, s as ControllerDef } from "./types-DKfpkm17.cjs";
2
2
 
3
3
  //#region src/testing.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { O as AsyncState, c as RootOptions, k as AsyncStatus, n as ControllerDef, o as Field, s as Root } from "./types-CAMgqCMz.mjs";
1
+ import { F as AsyncStatus, P as AsyncState, d as Field, m as RootOptions, p as Root, s as ControllerDef } from "./types-C-zV1JZA.mjs";
2
2
 
3
3
  //#region src/testing.d.ts
4
4
  /**
package/dist/testing.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { d as signal, l as computed, n as createRootWithProps } from "./root-BImHnGj1.mjs";
1
+ import { f as signal, n as createRootWithProps, u as computed } from "./root-De-6KWIZ.mjs";
2
2
  //#region src/testing.ts
3
3
  /**
4
4
  * Construct an isolated root wrapping a single controller. The returned object
@@ -15,13 +15,27 @@ type Emitter<T> = {
15
15
  once(handler: (value: T) => void): () => void; /** Tear down the emitter. Subsequent `emit` / `on` / `once` are no-ops. */
16
16
  dispose(): void;
17
17
  };
18
+ /**
19
+ * Optional escape hatch for emit-time handler throws. If supplied, a thrown
20
+ * handler is reported here and emission continues with the remaining handlers
21
+ * (spec §20.6 — one throwing handler must not block the rest). If absent,
22
+ * the throw is logged via `console.error`.
23
+ */
24
+ type EmitterErrorReporter = (err: unknown) => void;
18
25
  /**
19
26
  * Create a standalone emitter. Handlers persist until explicitly unsubscribed
20
27
  * (or the emitter is disposed). Use this for emitters that live outside any
21
28
  * single controller — typically in deps. Use `ctx.emitter()` for emitters that
22
29
  * should auto-clean with a controller.
23
- */
24
- declare function createEmitter<T = void>(): Emitter<T>;
30
+ *
31
+ * Pass `onError` to receive emit-time handler throws (spec §20.6 — one
32
+ * throwing handler must not block the rest of the fan-out). `ctx.emitter()`
33
+ * wires this to the root's `onError` so deps-level emitters get isolation
34
+ * by default when constructed via `ctx`.
35
+ */
36
+ declare function createEmitter<T = void>(options?: {
37
+ onError?: EmitterErrorReporter;
38
+ }): Emitter<T>;
25
39
  //#endregion
26
40
  //#region src/errors.d.ts
27
41
  /**
@@ -85,8 +99,24 @@ type DeepPartial<T> = T extends object ? T extends ReadonlyArray<infer U> ? Read
85
99
  type FormValidator<S extends FormSchema> = Validator<FormValue<S>>;
86
100
  type FieldArrayValidator<I> = Validator<FieldArrayValue<I>>;
87
101
  type FormOptions<S extends FormSchema> = {
102
+ /**
103
+ * Initial values for the form. A function form is **tracked** — if the
104
+ * function reads reactive signals (e.g. a query's `data`), the form re-seats
105
+ * itself when those signals change, but only while the form is not dirty
106
+ * (so a user mid-edit isn't clobbered by a background refetch). See
107
+ * `resetOnInitialChange` for opt-out. Spec §8.4.
108
+ */
88
109
  initial?: (() => DeepPartial<FormValue<S>> | undefined) | DeepPartial<FormValue<S>>;
89
110
  validators?: FormValidator<S>[];
111
+ /**
112
+ * When `initial` is a function and one of its tracked deps changes:
113
+ * - `'when-clean'` (default) — re-seat only if the form is not dirty.
114
+ * - `'never'` — never re-seat; `initial()` runs once at construction.
115
+ * - `'always'` — re-seat unconditionally (dirty state is discarded).
116
+ *
117
+ * Spec §20.7.
118
+ */
119
+ resetOnInitialChange?: 'when-clean' | 'never' | 'always';
90
120
  };
91
121
  type FieldArrayOptions<I> = {
92
122
  initial?: Array<ItemInitial<I>>;
@@ -356,9 +386,7 @@ type InfiniteQuery<Args extends unknown[], TPage, _TItem> = {
356
386
  readonly __olas: 'infiniteQuery';
357
387
  invalidate(...args: Args): void;
358
388
  invalidateAll(): void;
359
- setData(...args: [...Args, updater: (prev: TPage[] | undefined) => TPage[]]): {
360
- rollback: () => void;
361
- };
389
+ setData(...args: [...Args, updater: (prev: TPage[] | undefined) => TPage[]]): Snapshot;
362
390
  prefetch(...args: Args): Promise<TPage>;
363
391
  };
364
392
  /**
@@ -574,10 +602,44 @@ type QueryClientPluginApi = {
574
602
  */
575
603
  applyRemoteSetData(queryId: string, keyArgs: readonly unknown[], data: unknown): void;
576
604
  applyRemoteInvalidate(queryId: string, keyArgs: readonly unknown[]): void;
605
+ /**
606
+ * Apply a local-originated `setData` to the entry identified by
607
+ * `(queryId, keyArgs)`. The resulting plugin events fire with
608
+ * `isRemote: false` and `source: 'set'` — cross-tab plugins WILL
609
+ * rebroadcast (the write is treated as if a controller called
610
+ * `client.setData(...)` directly).
611
+ *
612
+ * Drops silently when the queryId is unknown, the registered query is
613
+ * infinite, or no local entry exists for that key. The `updater`
614
+ * receives the previous data (typed as `unknown` because plugins are
615
+ * type-erased) and returns the next.
616
+ *
617
+ * Use case: entity-normalization plugins that want to backpropagate an
618
+ * `entity.update(...)` patch into every query holding that entity.
619
+ * Mutations / optimistic updates already go through the public
620
+ * `client.setData` and don't need this API.
621
+ */
622
+ setEntryData(queryId: string, keyArgs: readonly unknown[], updater: (prev: unknown) => unknown): void;
577
623
  /**
578
624
  * Snapshot of currently bound entry keys for a query (by `queryId`). Empty
579
625
  * array when the query isn't registered, has no client entries, or the
580
626
  * `queryId` doesn't match any registered query.
627
+ *
628
+ * @example
629
+ * ```ts
630
+ * // Plugin sees an incoming invalidate; only echo it outward if any local
631
+ * // controller is actually subscribed to that key — otherwise the message
632
+ * // is unilateral noise.
633
+ * const plugin: QueryClientPlugin = {
634
+ * init(api) { this.api = api },
635
+ * onInvalidate(ev) {
636
+ * if (ev.isRemote) return
637
+ * const subscribed = this.api.subscribedKeys(ev.queryId)
638
+ * if (subscribed.length === 0) return // no local subscribers → don't send
639
+ * transport.send({ type: 'invalidate', queryId: ev.queryId, keyArgs: ev.keyArgs })
640
+ * },
641
+ * }
642
+ * ```
581
643
  */
582
644
  subscribedKeys(queryId: string): readonly (readonly unknown[])[];
583
645
  };
@@ -596,6 +658,18 @@ type SetDataEvent = {
596
658
  * skip rebroadcast in that case — otherwise the message would echo back.
597
659
  */
598
660
  isRemote: boolean;
661
+ /**
662
+ * Origin of the write. `'set'` covers explicit `client.setData` (mutations,
663
+ * optimistic updates, plugin-initiated patches). `'fetch'` fires when the
664
+ * query fetcher resolved successfully and wrote the result into the entry
665
+ * — emitted after the data signal is settled. `'remote'` is the
666
+ * `applyRemoteSetData` path (cross-tab / server-push); equivalent to
667
+ * `isRemote === true`.
668
+ *
669
+ * Layered plugins use this to decide whether to react: cross-tab broadcasts
670
+ * only on `'set'`, an entity-normalization plugin observes all sources.
671
+ */
672
+ source: 'set' | 'fetch' | 'remote';
599
673
  };
600
674
  type InvalidateEvent = {
601
675
  queryId: string;
@@ -729,6 +803,76 @@ type ControllerDef<Props, Api> = {
729
803
  type CtrlProps<C> = C extends ControllerDef<infer P, unknown> ? P : never;
730
804
  /** Extract a controller's Api type. */
731
805
  type CtrlApi<C> = C extends ControllerDef<unknown, infer A> ? A : never;
806
+ /**
807
+ * The reactive surface returned by `ctx.collection(...)`. `items` is the
808
+ * canonical ordered view (source-order, with any construction-failed items
809
+ * filtered out); `size` mirrors `items.length`; `get` / `has` are
810
+ * imperative key lookups. SPEC §11.1.
811
+ */
812
+ type Collection<K, Api> = {
813
+ readonly items: ReadSignal<ReadonlyArray<{
814
+ readonly key: K;
815
+ readonly api: Api;
816
+ }>>;
817
+ readonly size: ReadSignal<number>;
818
+ get(key: K): Api | undefined;
819
+ has(key: K): boolean;
820
+ };
821
+ /**
822
+ * Homogeneous form of `ctx.collection`: one controller def for every item,
823
+ * with `propsOf` projecting each item to the controller's `Props`. Construct
824
+ * happens once per new key — `propsOf` is **not** re-applied for unchanged
825
+ * keys.
826
+ */
827
+ type CollectionHomogeneousOptions<Item, K, Props, Api, TDeps = AmbientDeps> = {
828
+ readonly source: ReadSignal<readonly Item[]>;
829
+ readonly keyOf: (item: Item) => K;
830
+ readonly controller: ControllerDef<Props, Api>;
831
+ readonly propsOf: (item: Item) => Props;
832
+ readonly factory?: never;
833
+ readonly propsFor?: never;
834
+ readonly deps?: Partial<TDeps>;
835
+ };
836
+ /**
837
+ * Heterogeneous form of `ctx.collection`: a single `factory` decides per-item
838
+ * which controller + props to construct. When a key's factory result picks a
839
+ * *different* controller than last time, the existing child is disposed and
840
+ * the new one constructed (type-discriminant rebuild).
841
+ *
842
+ * `R` is the factory's *return type* (typically inferred as the union of the
843
+ * branches' `{ controller, props }` shapes). `Api` is then projected out as
844
+ * the union of every branch's controller Api via `CollectionFactoryApi<R>` —
845
+ * unlike a single `Api` generic, the union doesn't collapse to the first
846
+ * branch.
847
+ */
848
+ type CollectionFactoryOptions<Item, K, R, TDeps = AmbientDeps> = {
849
+ readonly source: ReadSignal<readonly Item[]>;
850
+ readonly keyOf: (item: Item) => K;
851
+ readonly controller?: never;
852
+ readonly propsOf?: never;
853
+ readonly factory: (item: Item) => R;
854
+ readonly deps?: Partial<TDeps>;
855
+ };
856
+ /** Constraint for the factory form's return shape. */
857
+ type CollectionFactoryResult = {
858
+ controller: ControllerDef<any, any>;
859
+ props: any;
860
+ };
861
+ /** Extract the union of every branch's controller Api. Distributes over R. */
862
+ type CollectionFactoryApi<R> = R extends {
863
+ controller: ControllerDef<any, infer A>;
864
+ } ? A : never;
865
+ /**
866
+ * Handle returned by `ctx.lazyChild(...)`. `status` walks `idle → loading →
867
+ * (ready | error)`; `api` becomes defined once `status === 'ready'`. SPEC §16.5.
868
+ */
869
+ type LazyChild<Api> = {
870
+ readonly status: ReadSignal<'idle' | 'loading' | 'ready' | 'error'>;
871
+ readonly api: ReadSignal<Api | undefined>;
872
+ readonly error: ReadSignal<unknown | undefined>;
873
+ load(): Promise<Api>;
874
+ dispose(): void;
875
+ };
732
876
  /**
733
877
  * `ctx` is the lifecycle-bound surface every controller factory receives.
734
878
  * Every primitive constructed through `ctx` is owned by the controller and
@@ -755,19 +899,77 @@ type Ctx<TDeps = AmbientDeps> = {
755
899
  deps?: Partial<TDeps>;
756
900
  }): Api;
757
901
  /**
758
- * Like `child(...)` but additionally returns a `dispose()` handle so the
759
- * parent can tear down this specific sub-tree earlye.g. when the user
760
- * closes a details panel. The child is still disposed automatically when
761
- * the parent disposes; `dispose()` is idempotent and only earlies the
762
- * teardown. Useful for "openable" sub-controllers whose lifetime is driven
763
- * by a user gesture rather than the parent's lifetime alone.
902
+ * Like `child(...)` but additionally returns a handle that lets the parent
903
+ * control the attached sub-tree's lifecycle independently `dispose()`
904
+ * tears it down early, and `suspend()` / `resume()` freeze and thaw it.
905
+ * The child is still disposed automatically when the parent disposes;
906
+ * `dispose()` / `suspend()` / `resume()` are idempotent.
907
+ *
908
+ * `<KeepAlive controller={…}>` in `@kontsedal/olas-react` consumes the
909
+ * returned `{ suspend, resume }` directly — no hand-rolled `isPaused`
910
+ * signal needed on the child's `Api`. Useful for "openable" sub-
911
+ * controllers driven by a user gesture (modal, side panel, wizard).
912
+ *
913
+ * `suspend()` cascades through the attached controller's lifecycle
914
+ * entries: cache subscriptions pause `refetchInterval` and release the
915
+ * entry, effects are torn down, `onSuspend(...)` handlers fire. `resume()`
916
+ * re-runs effects, re-acquires cache entries (a stale entry refetches),
917
+ * and fires `onResume(...)`. Spec §4.1, §16.5.
764
918
  */
765
919
  attach<Props, Api>(def: ControllerDef<Props, Api>, props: Props, options?: {
766
920
  deps?: Partial<TDeps>;
767
921
  }): {
768
922
  api: Api;
769
923
  dispose: () => void;
924
+ suspend: () => void;
925
+ resume: () => void;
770
926
  };
927
+ /**
928
+ * Ephemeral child controller bound to either (a) the explicit `dispose()`
929
+ * call returned in the tuple, or (b) the parent's disposal — whichever
930
+ * comes first. Same lifecycle semantics as `ctx.attach` minus suspend /
931
+ * resume (sessions are short-lived, not pause-able). Returns a `[api,
932
+ * dispose]` tuple so the api shape is exactly the controller's return
933
+ * type, with no wrapper to unpack.
934
+ *
935
+ * Use cases: modal forms, inline edit sessions, wizards, command palette.
936
+ * SPEC §11.1.
937
+ */
938
+ session<Props, Api>(def: ControllerDef<Props, Api>, props: Props, options?: {
939
+ deps?: Partial<TDeps>;
940
+ }): readonly [api: Api, dispose: () => void];
941
+ /**
942
+ * Diff-by-key set of child controllers driven by a reactive `source`.
943
+ * On every change to `source`, the collection:
944
+ * - **new keys** → construct a child via `controller` + `propsOf(item)`
945
+ * (or `factory(item)` for the heterogeneous form);
946
+ * - **removed keys** → dispose that child;
947
+ * - **unchanged keys** → leave it alone (`propsOf` is NOT re-applied).
948
+ *
949
+ * For per-item type-discriminated children, use the `factory` form —
950
+ * type changes for an existing key dispose and reconstruct.
951
+ *
952
+ * Construction errors (factory or controller throw) are routed to
953
+ * `onError` with `kind: 'construction'` and the item is **skipped** —
954
+ * the collection's surface shows one fewer entry. The diff loop does
955
+ * not re-throw. SPEC §11.1, §12.1.6.
956
+ */
957
+ collection<Item, K, Props, Api>(options: CollectionHomogeneousOptions<Item, K, Props, Api, TDeps>): Collection<K, Api>;
958
+ collection<Item, K, R extends CollectionFactoryResult>(options: CollectionFactoryOptions<Item, K, R, TDeps>): Collection<K, CollectionFactoryApi<R>>;
959
+ /**
960
+ * Code-split child controller. The loader is invoked on `load()`
961
+ * (idempotent), then the controller is constructed with the supplied
962
+ * `props`. `status` / `api` / `error` are reactive signals; subscribe
963
+ * via `use(child.api)` in your view layer.
964
+ *
965
+ * Parent disposal disposes the loaded child (if any) and flags any
966
+ * in-flight load so its eventual settle is dropped on the floor.
967
+ * Construction or import failures route through `onError` with
968
+ * `kind: 'construction'`. SPEC §16.5.
969
+ */
970
+ lazyChild<Props, Api>(loader: () => Promise<ControllerDef<Props, Api>>, props: Props, options?: {
971
+ deps?: Partial<TDeps>;
972
+ }): LazyChild<Api>;
771
973
  effect(fn: () => void | (() => void)): void;
772
974
  on<T>(emitter: Emitter<T>, handler: (value: T) => void): void;
773
975
  provide<T>(scope: Scope<T>, value: T): void;
@@ -812,5 +1014,5 @@ type Root<Api> = Api & {
812
1014
  readonly __debug: DebugBus;
813
1015
  };
814
1016
  //#endregion
815
- export { Validator as $, DehydratedEntry as A, DeepPartial as B, DebugCacheEntry as C, InfiniteQuerySubscription as D, InfiniteQuerySpec as E, QuerySubscription as F, FieldArrayValue as G, FieldArrayItemErrors as H, RetryDelay as I, FormOptions as J, Form as K, RetryPolicy as L, LocalCache as M, Query as N, AsyncState as O, QuerySpec as P, ItemInitial as Q, Snapshot as R, DebugBus as S, InfiniteQuery as T, FieldArrayOptions as U, FieldArray as V, FieldArrayValidator as W, FormValidator as X, FormSchema as Y, FormValue as Z, SetDataEvent as _, Ctx as a, createEmitter as at, MutationConcurrency as b, RootOptions as c, defineScope as d, Computed as et, GcEvent as f, RegisteredQuery as g, QueryClientPluginApi as h, CtrlProps as i, Emitter as it, DehydratedState as j, AsyncStatus as k, Scope as l, QueryClientPlugin as m, ControllerDef as n, Signal as nt, Field as o, InvalidateEvent as p, FormErrors as q, CtrlApi as r, ErrorContext as rt, Root as s, AmbientDeps as t, ReadSignal as tt, ScopeOptions as u, lookupRegisteredQuery as v, DebugEvent as w, MutationSpec as x, Mutation as y, UseOptions as z };
816
- //# sourceMappingURL=types-CAMgqCMz.d.mts.map
1017
+ export { FormErrors as $, DebugEvent as A, QuerySpec as B, SetDataEvent as C, MutationSpec as D, MutationConcurrency as E, AsyncStatus as F, UseOptions as G, RetryDelay as H, DehydratedEntry as I, FieldArrayItemErrors as J, DeepPartial as K, DehydratedState as L, InfiniteQuerySpec as M, InfiniteQuerySubscription as N, DebugBus as O, AsyncState as P, Form as Q, LocalCache as R, RegisteredQuery as S, Mutation as T, RetryPolicy as U, QuerySubscription as V, Snapshot as W, FieldArrayValidator as X, FieldArrayOptions as Y, FieldArrayValue as Z, defineScope as _, CollectionFactoryResult as a, Validator as at, QueryClientPlugin as b, CtrlApi as c, Signal as ct, Field as d, EmitterErrorReporter as dt, FormOptions as et, LazyChild as f, createEmitter as ft, ScopeOptions as g, Scope as h, CollectionFactoryOptions as i, ItemInitial as it, InfiniteQuery as j, DebugCacheEntry as k, CtrlProps as l, ErrorContext as lt, RootOptions as m, Collection as n, FormValidator as nt, CollectionHomogeneousOptions as o, Computed as ot, Root as p, FieldArray as q, CollectionFactoryApi as r, FormValue as rt, ControllerDef as s, ReadSignal as st, AmbientDeps as t, FormSchema as tt, Ctx as u, Emitter as ut, GcEvent as v, lookupRegisteredQuery as w, QueryClientPluginApi as x, InvalidateEvent as y, Query as z };
1018
+ //# sourceMappingURL=types-C-zV1JZA.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-C-zV1JZA.d.mts","names":[],"sources":["../src/emitter.ts","../src/errors.ts","../src/signals/types.ts","../src/forms/types.ts","../src/forms/form-types.ts","../src/query/types.ts","../src/query/infinite.ts","../src/devtools.ts","../src/query/mutation.ts","../src/query/plugin.ts","../src/scope.ts","../src/controller/types.ts"],"mappings":"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"}