@the-w1zard/the-registry 1.0.5 → 1.0.7

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 (3) hide show
  1. package/dist/index.d.ts +246 -0
  2. package/dist/index.js +394 -226
  3. package/package.json +3 -3
@@ -0,0 +1,246 @@
1
+ declare const EventEmitter: any;
2
+ type FlushCallback = () => V;
3
+ export declare const rv: <T>(v: UF<T>) => T;
4
+ export declare const sameValue: (a: A, b: A) => B;
5
+ export declare class Registry extends EventEmitter {
6
+ #private;
7
+ _byteid(): string;
8
+ _sid(): string;
9
+ b(): string;
10
+ r: string;
11
+ m: string;
12
+ s: string;
13
+ DEVTOOLS_ACTIVE: boolean;
14
+ constructor();
15
+ _globalNotifyCache: WeakMap<any, Map<any, () => void>>;
16
+ _notifyCache: WeakMap<Map<any, Set<(value: A) => void>>, Map<any, () => void>>;
17
+ scheduleGlobalNotify(key: string | symbol, meta: A, opts: ScopeOptions): void;
18
+ scheduleNotify(key: A, _listeners: M2<A, Set<(value: A) => void>>, _state: Map<A, A>): void;
19
+ getMap<K, V>(slave?: A, master?: A, rk?: A): M2<K, V>;
20
+ getMetadata(s?: string, m?: string, r?: string): any;
21
+ store: {
22
+ get: <T = A>(key: A, opts?: ScopeOptions) => T | undefined;
23
+ set: <T = A>(key: A, value: T | ((prev: T | undefined) => T), opts?: {
24
+ triggerRender?: boolean;
25
+ cap?: number;
26
+ } & ScopeOptions) => any;
27
+ subscribe: <T = A>(key: A, listener: (value: T) => void, opts?: ScopeOptions) => (() => void);
28
+ delete: (key: A, opts?: ScopeOptions) => boolean;
29
+ entries: <T = A>(opts?: ScopeOptions) => [A, T][];
30
+ persist: (key: A, opts?: ScopeOptions) => void;
31
+ unpersist: (key: A, opts?: ScopeOptions) => void;
32
+ has: (key: A, opts?: ScopeOptions) => boolean;
33
+ clear: (opts?: ScopeOptions) => void;
34
+ clearPersistent: (opts?: ScopeOptions) => void;
35
+ _emit: (key: string | symbol, sl_reg?: string, ms_reg?: string, globalKey?: string) => void;
36
+ };
37
+ state: {
38
+ get: <T = A>(key: string | symbol, opts?: ScopeOptions) => T | undefined;
39
+ set: <T = A>(key: string | symbol, value: T | ((prev: T | undefined) => T), opts?: {
40
+ triggerRender?: boolean;
41
+ } & ScopeOptions) => void;
42
+ delete: (key: string | symbol, opts?: ScopeOptions) => boolean;
43
+ getByPrefix: <T = A>(prefix: string, opts?: ScopeOptions) => {
44
+ key: string;
45
+ value: T;
46
+ }[];
47
+ getAll: <T = A>(opts?: ScopeOptions) => Record<string | symbol, T>;
48
+ subscribe: <T = A>(key: string | symbol, listener: (value: T) => void, opts?: ScopeOptions) => (() => void);
49
+ subscribeAll: (listener: (key: string | symbol, value: A) => void, opts?: ScopeOptions) => (() => void);
50
+ clear: (opts?: ScopeOptions) => void;
51
+ waitFor: <T = A>(key: string | symbol, opts?: ScopeOptions) => Promise<T>;
52
+ };
53
+ onFlush(cb: FlushCallback): void;
54
+ scheduleDrain(): void;
55
+ drain(): void;
56
+ set(key: A, value: A): this;
57
+ setLazy(key: A, make: () => A): this;
58
+ delete(key: A): boolean;
59
+ clear(): void;
60
+ subscribe(fn: (value: A, prev: A, key: S) => V): () => V;
61
+ subscribe(key: S, fn: (value: A, prev: A, key: S) => V, opts?: {
62
+ immediate?: B;
63
+ }): () => V;
64
+ subscribe(key: S, opts?: {
65
+ immediate?: B;
66
+ }): AsyncGenerator<A, V, U>;
67
+ unsubscribeAll(fns: Iterable<FN>): void;
68
+ subscribersOf(keys: S[]): A;
69
+ get<T = A>(key: S): T | UD;
70
+ get<T = A>(key: S, fallback: T): T;
71
+ getAll(): A;
72
+ has(key: A): any;
73
+ freeze(): void;
74
+ wait(key: A, { predicate, timeout, immediate, signal }?: A): Promise<any>;
75
+ waitChange(key: A, opts?: {}): Promise<any>;
76
+ waitFor(key: A, predicate: A, opts?: {}): Promise<any>;
77
+ setIfAbsent(key: A, value: U): boolean;
78
+ setIfPresent(key: A, value: U): boolean;
79
+ replace(key: A, value: U): boolean;
80
+ update(key: A, fn: (old: A, has: B) => A, initial: U): any;
81
+ inc(key: A, by?: number): any;
82
+ touch(key: A): boolean;
83
+ toJSON(): any;
84
+ entries(): any;
85
+ keys(): any;
86
+ values(): any;
87
+ find(pred: A): any;
88
+ findKey(pred: A): any;
89
+ group(fn: A): any;
90
+ pick(keys: A): any;
91
+ omit(keys: A): any;
92
+ snapshot(): A;
93
+ equals(other: A): any;
94
+ snapshotSubs(): any;
95
+ nextWaiterId: number;
96
+ private nextDeferId;
97
+ private draining;
98
+ private drainAgain;
99
+ private deferStats;
100
+ private autoCloud;
101
+ private warnedUseBeforeReady;
102
+ private ENV_STATE;
103
+ private shout;
104
+ /** the results view — computed from the ONE registry, stored nowhere */
105
+ get results(): RO<Array<ResultRecord>>;
106
+ get size(): N;
107
+ static readonly MODULE_LEVEL_CANDIDATES: readonly ["typescript", "rollup", "vite", "eslint", "babel", "postcss", "tailwindcss", "@babel/core", "prettier", "stylelint", "sass", "less", "jest", "vitest", "playwright", "@types/vscode"];
108
+ static readonly PLATFORM_CANDIDATES: readonly ["PROJECT_PLATFORM_KILLER", "react", "preact", "@remix-run/react", "@react-router/react", "next", "nuxt", "svelte", "solid", "vite", "arfa", "vue", "angular", "astro", "gatsby", "dojo", "inferno", "lupine", "ember-source", "backbone", "alpinejs", "lit", "marko", "@builder.io/qwik", "solid-start", "@sveltejs/kit", "meteor", "stencil", "aurelia", "nodiff", "qwik", "velo-type", "webpack"];
109
+ static readonly COMPILER_CANDIDATES: readonly ["rspack", "webpack", "vite", "rollup", "esbuild", "swc-loader", "babel", "next", "nuxt", "@remix-run/react", "@react-router/react", "svelte", "solid", "vue", "@swc/core", "turbopack", "parcel", "tsup", "unbuild", "esbuild-loader", "@babel/core", "terser", "@angular/core", "@angular/compile"];
110
+ static readonly BUNDLER_CANDIDATES: readonly ["bun", "pnpm", "yarn", "npm"];
111
+ static readonly ADAPTER_CANDIDATES: readonly ["websocket_dev_server", "cross_app_ws_server", "terminal_ngin_proxy_register", "terminal_ngin_proxy", "workspace_hub_server", "workspace_hub_client", "cross_app_ws_client", "cse_cross_app_server", "cse_cross_app_client", "shared_worker", "service_worker", "unix_worker", "broadcastr_channel", "websocket", "websocket_server", "websocket_client", "webrtc", "webrtc_server", "webrtc_client", "electron_server", "electron_client", "mqtt", "sse", "named_pipe", "worker_thread", "native_msg_host", "native_msg_client"];
112
+ static readonly CAPABILITY_CANDIDATES: readonly ["shared_worker", "service_worker", "unix_worker", "broadcastr_channel", "electron_server", "electron_client", "named_pipe", "native_msg_host", "native_msg_client"];
113
+ maelstrom: {
114
+ (): void;
115
+ log: (where: S, detail?: R, type?: "info" | "success" | "warn" | "error") => void; /** resolve a specifier relative to THIS file, always. Absolute out. */
116
+ key_for: (specifier: S) => S;
117
+ normalizeFallback: <F>(fallback: F | (() => F) | undefined, fallbackDefault: () => F) => () => F; /** the safe proxy — missing module access is suppressed, never crashed */
118
+ createSafeProxy: () => A;
119
+ toNamespace: (m: A) => A;
120
+ blind: {
121
+ (): void;
122
+ /** dynamic import with no static dependency — works in every module system */
123
+ import: (s: string) => Promise<any>;
124
+ /** require with no static dependency — null where require does not exist (browser/ESM) */
125
+ require: (s: string) => A;
126
+ };
127
+ has: {
128
+ (): void;
129
+ bun: boolean;
130
+ node: boolean;
131
+ /** does a local file exist, resolved from cwd — the has_local probe */
132
+ local: (filePath: S | undefined, module?: S) => B;
133
+ require: boolean;
134
+ };
135
+ is: {
136
+ (): void;
137
+ require_available: () => B;
138
+ browser: boolean;
139
+ VSCode: string;
140
+ electron: boolean;
141
+ unix: boolean;
142
+ windows: boolean;
143
+ };
144
+ /**
145
+ * Record an outcome. This is the single funnel: it tags the registry entry, notifies the
146
+ * entry's subscribers, advances every waiter on the label, and releases deferred tasks.
147
+ * It writes to the ONE registry — it creates no maps.
148
+ */
149
+ record: <T>(label: S, solver: Solver, value: T | undefined, store?: StoreKind) => void;
150
+ rift: {
151
+ <T = any>(name: S): RiftLike<T>;
152
+ clear: (() => V) | (() => V);
153
+ inspect: () => R;
154
+ /** guard — wait for a rift, then run a fn on its unlock value */
155
+ guard: <T, R>(name: string, fn: (unlockValue: T) => R | Promise<R>, timeoutMs?: number) => void;
156
+ /** async load with inflight dedupe — same key always resolves to the same promise */
157
+ load: <T = any>(specifier: S) => Promise<T>;
158
+ result: <T = any>(label: S) => ResultRecord<T> | undefined;
159
+ resultsFrom: (solver: Solver) => ResultRecord[];
160
+ onResult: (listener: (r: ResultRecord) => V) => (() => V);
161
+ place: <T = any>(label: S, value: T, store?: StoreKind) => V;
162
+ get_value: <T = any>(label: S) => T | undefined;
163
+ read: <T = any>(label: S, store?: StoreKind) => T | undefined;
164
+ reset: (name: S) => V;
165
+ delete: (name: S) => B;
166
+ bandit: <T = any>(label: S, module?: A, wait?: N, store?: StoreKind) => A;
167
+ create: <T = any>(label: S, module: T, store?: StoreKind) => A;
168
+ use: <T = any>(label: S, wait?: N, apparation?: T, store?: StoreKind) => A;
169
+ resolve: {
170
+ <T = any>(name: S, v: T): A;
171
+ global: <T = any>(name: S, wait?: N, fallback?: T) => A;
172
+ };
173
+ has: (module: S) => B;
174
+ make: <T = any>() => RiftLike<T>;
175
+ conjure: {
176
+ <T = any, F = any>(options: OPTIONAL_IMPORT_OPTIONS<T, F>): A;
177
+ get: <T = any>(label: S, cache?: B, module?: B) => A;
178
+ uncached: <T = any, F = any>(options: OPTIONAL_IMPORT_OPTIONS<T, F>) => A;
179
+ };
180
+ use_if_available: <T = any>(label: S, filePath: S, comp_name: S, fallback: T, opts?: {
181
+ store?: StoreKind;
182
+ }) => T;
183
+ probe: <T = any>(label: S, filePath: S, comp_name: S, fallback: T) => T;
184
+ guard_promise_gate: (get: A, name: string, fn: A, timeoutMs?: number) => () => Promise<R>;
185
+ };
186
+ module: {
187
+ <T = any>(module: S, filePath?: S): T | Promise<T>;
188
+ extract_named: (ns: A, comp_name: S) => A;
189
+ init: {
190
+ (label: S, module?: B): A;
191
+ named_export: (label: S, comp_name: S, cache?: B, module?: B) => A;
192
+ };
193
+ named_export: <T = any>(label: S, comp_name: S, module?: B) => A;
194
+ check: (moduleName: S) => Promise<B>;
195
+ isLoaded: (specifier: S) => B;
196
+ getLoaded: <T = any>(specifier: S) => OPT<T>;
197
+ /**
198
+ * Find a named export across every loaded module.
199
+ * Ambiguous finds throw — the index never silently guesses.
200
+ */
201
+ export_of: <T = any>(name: S, specifier?: S) => OPT<T>;
202
+ indexExports: (rift: A, key: S, mod: A) => void;
203
+ require: <T = any>(specifier: S) => T;
204
+ };
205
+ waiter: {
206
+ (deps: S | S[], fn: (v?: A) => V): N;
207
+ /** advance every multi-label waiter on this label */
208
+ releaseMulti: (k: S, v: A) => void;
209
+ cancel: (id: N) => B;
210
+ wait_and_promise: <T = any>(timeoutMs: N, key: S, isOpen: B, current: A) => Promise<T>;
211
+ };
212
+ defer: {
213
+ (deps: S | S[], fn: (...v: A[]) => A): N;
214
+ provide: (k: S | Record<S, A>, v?: A) => void;
215
+ resolve: (k: S) => void;
216
+ invalidate: (k: S) => B;
217
+ has: (k: S) => B;
218
+ get: <T = any>(k: S) => OPT<T>;
219
+ cancel: (id: N) => B;
220
+ ready: (task: DeferredTask) => B;
221
+ drain: () => V;
222
+ reportError: (task: DeferredTask, e: A) => void;
223
+ inspect: () => R;
224
+ clear: () => void;
225
+ onError: (e: A, id: N, deps: S[]) => void;
226
+ onSuccess: (id: N, deps: S[]) => void;
227
+ };
228
+ detect: {
229
+ (): void;
230
+ capability: (name: S) => B;
231
+ bundler: () => S | null;
232
+ firstMatch: (candidates: readonly S[]) => Promise<S | null>;
233
+ all: (candidates: readonly S[]) => Promise<S[]>;
234
+ environment: (env_lib?: S) => void;
235
+ type: (v: unknown) => "Array" | "ArrayBuffer" | "Buffer" | "Promise" | "URL" | "URLSearchParams" | "WeakMap" | "WeakSet" | "array" | "async-iterable" | "bigint" | "boolean" | "date" | "error" | "function" | "iterable" | "iterator" | "map" | "null" | "number" | "object" | "plainObject" | "regexp" | "set" | "string" | "symbol" | "thenable" | "undefined";
236
+ cloudSupport: () => B;
237
+ };
238
+ useEnvState: () => EnvDetectionState & {
239
+ rt: S;
240
+ subChannel: S;
241
+ };
242
+ apparation: any;
243
+ reset: () => void;
244
+ };
245
+ }
246
+ export {};
package/dist/index.js CHANGED
@@ -841,7 +841,7 @@ var src_Rift = /*#__PURE__*/ function() {
841
841
  return Rift;
842
842
  }();
843
843
  var // #region ══════════════════════════════════════════════════════════════════════════════════════════════════════
844
- _waiters = /*#__PURE__*/ new WeakMap(), _data = /*#__PURE__*/ new WeakMap(), _subs = /*#__PURE__*/ new WeakMap(), _any_subs = /*#__PURE__*/ new WeakMap(), _frozen = /*#__PURE__*/ new WeakMap(), _context = /*#__PURE__*/ new WeakMap(), _meta_context = /*#__PURE__*/ new WeakMap(), _global_notify_context = /*#__PURE__*/ new WeakMap(), _notify_context = /*#__PURE__*/ new WeakMap(), _counter = /*#__PURE__*/ new WeakMap(), _epoch = /*#__PURE__*/ new WeakMap(), _asIterator = /*#__PURE__*/ new WeakSet(), _notify = /*#__PURE__*/ new WeakSet(), // [SLAB]
844
+ _waiters = /*#__PURE__*/ new WeakMap(), _data = /*#__PURE__*/ new WeakMap(), _subs = /*#__PURE__*/ new WeakMap(), _any_subs = /*#__PURE__*/ new WeakMap(), _frozen = /*#__PURE__*/ new WeakMap(), _context = /*#__PURE__*/ new WeakMap(), _meta_context = /*#__PURE__*/ new WeakMap(), _global_notify_context = /*#__PURE__*/ new WeakMap(), _notify_context = /*#__PURE__*/ new WeakMap(), _counter = /*#__PURE__*/ new WeakMap(), _epoch = /*#__PURE__*/ new WeakMap(), _hotPath = /*#__PURE__*/ new WeakMap(), _persistent = /*#__PURE__*/ new WeakMap(), _persistent_keys = /*#__PURE__*/ new WeakMap(), src_listeners = /*#__PURE__*/ new WeakMap(), _asIterator = /*#__PURE__*/ new WeakSet(), _notify = /*#__PURE__*/ new WeakSet(), // [SLAB]
845
845
  // #region ══════════════════════════════════════════════════════════════════════════════════════════════════════
846
846
  _rifts = /*#__PURE__*/ new WeakMap(), _deferTasks = /*#__PURE__*/ new WeakMap(), _multiWaiters = /*#__PURE__*/ new WeakMap();
847
847
  var src_Registry = /*#__PURE__*/ function(EventEmitter) {
@@ -887,85 +887,36 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
887
887
  }), _class_private_field_init(_this, _epoch, {
888
888
  writable: true,
889
889
  value: 0
890
- }), _define_property(_this, "r", "_root_"), _define_property(_this, "m", "_master_"), _define_property(_this, "s", "_slave_"), _define_property(_this, "DEVTOOLS_ACTIVE", false), // [STATE]
890
+ }), _define_property(_this, "r", "THE_WIZARD_ROOT_REG"), _define_property(_this, "m", "SAURON_MASTER_REG"), _define_property(_this, "s", "SAURON_SLAVE_REG"), _define_property(_this, "DEVTOOLS_ACTIVE", false), // [STATE]
891
891
  // #region ══════════════════════════════════════════════════════════════════════════════════════════════════════
892
- _define_property(_this, "state", {
893
- getMap: function getMap() {
894
- var slave = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _this.s, master = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _this.m, rk = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : _this.r;
895
- var root = _class_private_field_get(_this, _context).get(rk); // (globalThis as any)[rk] // ; (globalThis as any)[rk] = root;
896
- if (!root) {
897
- root = new M2();
898
- _class_private_field_get(_this, _context).set(rk, root);
899
- }
900
- var masterMap = root.get(master);
901
- if (!masterMap) {
902
- masterMap = new M2();
903
- root.set(master, masterMap);
904
- }
905
- var slaveMap = masterMap.get(slave);
906
- if (!slaveMap) {
907
- slaveMap = new M2();
908
- masterMap.set(slave, slaveMap);
909
- }
910
- return slaveMap;
911
- },
912
- getMetadata: function getMetadata() {
913
- var s = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _this.s, m = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _this.m, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : _this.r;
914
- var root = _class_private_field_get(_this, _meta_context).get(r); // (globalThis as A)[r]; // STATE_CONTEXT === "sauron" ? : null;
915
- if (!root) {
916
- root = new M2();
917
- _class_private_field_get(_this, _meta_context).set(r, root);
918
- }
919
- var masterMap = root.get(m);
920
- if (!masterMap) {
921
- masterMap = new M2();
922
- root.set(m, masterMap);
923
- }
924
- var metaMap = masterMap.get(s);
925
- if (!metaMap) {
926
- metaMap = {
927
- _batches: new Set(),
928
- _batchQueue: new Map(),
929
- _batchOpts: new Map(),
930
- _history: new Map(),
931
- _timeTravel: new Map(),
932
- _globalListeners: new Set(),
933
- _global_subscribers: new Map(),
934
- _waiters: new Map(),
935
- _sys: new Map(),
936
- _sealed: new Set(),
937
- _frozen: new Set(),
938
- _keyContracts: new Map(),
939
- _conflicts: new Map(),
940
- _conflictStrategies: new Map(),
941
- _causal: new Map(),
942
- _scopes: new Map(),
943
- _msgHandlers: new Map(),
944
- _lastWriteSource: new Map(),
945
- _mainMap: new Map(),
946
- _tupleCache: new Map(),
947
- _weakMap: new WeakMap(),
948
- _boundaries: new WeakMap()
949
- };
950
- masterMap.set(s, metaMap);
951
- }
952
- return metaMap;
953
- },
892
+ _define_property(_this, "_globalNotifyCache", new WeakMap()), _define_property(_this, "_notifyCache", new WeakMap()), _class_private_field_init(_this, _hotPath, {
893
+ writable: true,
894
+ value: _this.getMap(_this.s, _this.m, _this.r)
895
+ }), _class_private_field_init(_this, _persistent, {
896
+ writable: true,
897
+ value: _this.getMap("".concat(_this.s, "_PERSISTENT"), _this.m, _this.r)
898
+ }), _class_private_field_init(_this, _persistent_keys, {
899
+ writable: true,
900
+ value: _this.getMap("".concat(_this.s, "_PERSIST_KEYS"), _this.m, _this.r)
901
+ }), _class_private_field_init(_this, src_listeners, {
902
+ writable: true,
903
+ value: _this.getMap("".concat(_this.s, "_LISTENERS"), _this.m, _this.r)
904
+ }), _define_property(_this, "store", {
954
905
  get: function get(key) {
955
906
  var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
956
907
  sl_reg: _this.s,
957
908
  ms_reg: _this.m,
958
909
  globalKey: _this.r
959
910
  };
960
- var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
961
- var _state = _this.state.getMap(sl_reg, ms_reg, globalKey);
962
- var _persistent = _this.state.getMap("".concat(sl_reg, "_PERSISTENT"), ms_reg, globalKey);
963
- var _persistKeys = _this.state.getMap("".concat(sl_reg, "_PERSIST_KEYS"), ms_reg, globalKey);
911
+ // const { sl_reg, ms_reg, globalKey } = opts;
912
+ // const _state = this.#hotPath;
913
+ // const _persistent = this.#persistent
914
+ // const _persistKeys = this.#persistent_keys
964
915
  // recordDependency(key)
965
- if (_state.has(key)) return MaybePromise(_state.get(key));
966
- if (_persistKeys.has(key) && _persistent.has(key)) {
967
- var v = _persistent.get(key);
968
- _state.set(key, v);
916
+ if (_class_private_field_get(_this, _hotPath).has(key)) return MaybePromise(_class_private_field_get(_this, _hotPath).get(key));
917
+ if (_class_private_field_get(_this, _persistent_keys).has(key) && _class_private_field_get(_this, _persistent).has(key)) {
918
+ var v = _class_private_field_get(_this, _persistent).get(key);
919
+ _class_private_field_get(_this, _hotPath).set(key, v);
969
920
  return MaybePromise(v);
970
921
  }
971
922
  return undefined;
@@ -979,41 +930,30 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
979
930
  cap: 200
980
931
  };
981
932
  var _opts_triggerRender = opts.triggerRender, triggerRender = _opts_triggerRender === void 0 ? true : _opts_triggerRender, sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey, cap = opts.cap;
982
- var _state = _this.state.getMap(sl_reg, ms_reg, globalKey);
983
- var _persistent = _this.state.getMap("".concat(sl_reg, "_PERSISTENT"), ms_reg, globalKey);
984
- var _persistKeys = _this.state.getMap("".concat(sl_reg, "_PERSIST_KEYS"), ms_reg, globalKey);
985
- var _listeners = _this.state.getMap("".concat(sl_reg, "_LISTENERS"), ms_reg, globalKey);
986
- var prev = _state.get(key);
933
+ // const _state = this.getMap<A, A>(sl_reg, ms_reg, globalKey);
934
+ // const _persistent = this.getMap<A, A>(`${sl_reg}_PERSISTENT`, ms_reg, globalKey);
935
+ // const _persistKeys = this.getMap<A, boolean>(`${sl_reg}_PERSIST_KEYS`, ms_reg, globalKey);
936
+ // const _listeners = this.getMap<A, Set<(value: A) => void>>(`${sl_reg}_LISTENERS`, ms_reg, globalKey);
937
+ var prev = _class_private_field_get(_this, _hotPath).get(key);
987
938
  var next = typeof value === "function" ? value(prev) : value;
988
939
  if (Object.is(prev, next)) return;
989
940
  // TIME TRAVEL
990
- if (!_this.root.TIME_TRAVEL._time_travel_reverting) {
991
- var _hist_findLastIndex, _ref;
992
- var _hist_;
993
- var meta = _this.state.getMetadata(sl_reg, ms_reg, globalKey);
994
- var hist = meta._history.get(key);
995
- if (!hist) {
996
- hist = [];
997
- meta._history.set(key, hist);
998
- }
999
- var lastActive = (_hist_findLastIndex = hist.findLastIndex(function(e) {
1000
- return !e.undone;
1001
- })) !== null && _hist_findLastIndex !== void 0 ? _hist_findLastIndex : -1;
1002
- if (lastActive < hist.length - 1) hist.length = lastActive + 1; // truncate redo tail
1003
- hist.push({
1004
- k: ((_ref = (_hist_ = hist[hist.length - 1]) === null || _hist_ === void 0 ? void 0 : _hist_.k) !== null && _ref !== void 0 ? _ref : 0) + 1,
1005
- prev: prev,
1006
- next: next,
1007
- ts: Date.now(),
1008
- undone: false
1009
- });
1010
- var cap_val = cap !== null && cap !== void 0 ? cap : 200;
1011
- while(hist.length > cap_val)hist.shift();
1012
- }
1013
- _state.set(key, next);
1014
- if (_persistKeys.has(key)) _persistent.set(key, next);
1015
- if (triggerRender) _this.state.scheduleGlobalNotify(key, _this.state.getMetadata(sl_reg, ms_reg, globalKey), opts);
1016
- if (triggerRender) _this.state.scheduleNotify(key, _listeners, _state);
941
+ /**if (!this.root.DRSTime._time_travel_reverting) {
942
+ const meta = this.getMetadata(sl_reg, ms_reg, globalKey);
943
+ let hist = meta._history.get(key);
944
+ if (!hist) {
945
+ hist = [];
946
+ meta._history.set(key, hist);
947
+ }
948
+ const lastActive = hist.findLastIndex((e: HistoryEntry) => !e.undone) ?? -1;
949
+ if (lastActive < hist.length - 1) hist.length = lastActive + 1; // truncate redo tail
950
+ hist.push({ k: (hist[hist.length - 1]?.k ?? 0) + 1, prev, next, ts: Date.now(), undone: false });
951
+ const cap_val = cap ?? 200;
952
+ while (hist.length > cap_val) hist.shift();
953
+ } */ _class_private_field_get(_this, _hotPath).set(key, next);
954
+ if (_class_private_field_get(_this, _persistent_keys).has(key)) _class_private_field_get(_this, _persistent).set(key, next);
955
+ if (triggerRender) _this.scheduleGlobalNotify(key, _this.getMetadata(sl_reg, ms_reg, globalKey), opts);
956
+ if (triggerRender) _this.scheduleNotify(key, _class_private_field_get(_this, src_listeners), _class_private_field_get(_this, _hotPath));
1017
957
  return MaybePromise(next);
1018
958
  },
1019
959
  subscribe: function subscribe(key, listener) {
@@ -1023,13 +963,13 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1023
963
  globalKey: _this.r
1024
964
  };
1025
965
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1026
- var _listeners = _this.state.getMap("".concat(sl_reg, "_LISTENERS"), ms_reg, globalKey);
1027
- if (!_listeners.has(key)) _listeners.set(key, new Set());
1028
- _listeners.get(key).add(listener);
966
+ // const _listeners = this.getMap<A, Set<(value: A) => void>>(`${sl_reg}_LISTENERS`, ms_reg, globalKey);
967
+ if (!_class_private_field_get(_this, src_listeners).has(key)) _class_private_field_get(_this, src_listeners).set(key, new Set());
968
+ _class_private_field_get(_this, src_listeners).get(key).add(listener);
1029
969
  return function() {
1030
- var _listeners_get, _listeners_get1;
1031
- (_listeners_get = _listeners.get(key)) === null || _listeners_get === void 0 ? void 0 : _listeners_get.delete(listener);
1032
- if (((_listeners_get1 = _listeners.get(key)) === null || _listeners_get1 === void 0 ? void 0 : _listeners_get1.size) === 0) _listeners.delete(key);
970
+ var _class_private_field_get_get, _class_private_field_get_get1;
971
+ (_class_private_field_get_get = _class_private_field_get(_this, src_listeners).get(key)) === null || _class_private_field_get_get === void 0 ? void 0 : _class_private_field_get_get.delete(listener);
972
+ if (((_class_private_field_get_get1 = _class_private_field_get(_this, src_listeners).get(key)) === null || _class_private_field_get_get1 === void 0 ? void 0 : _class_private_field_get_get1.size) === 0) _class_private_field_get(_this, src_listeners).delete(key);
1033
973
  };
1034
974
  },
1035
975
  delete: function _delete(key) {
@@ -1038,21 +978,21 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1038
978
  ms_reg: _this.m,
1039
979
  globalKey: _this.r
1040
980
  };
1041
- var _listeners_get;
981
+ var _class_private_field_get_get;
1042
982
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1043
- var _state = _this.state.getMap(sl_reg, ms_reg, globalKey);
1044
- var _persistent = _this.state.getMap("".concat(sl_reg, "_PERSISTENT"), ms_reg, globalKey);
1045
- var _persistKeys = _this.state.getMap("".concat(sl_reg, "_PERSIST_KEYS"), ms_reg, globalKey);
1046
- var _listeners = _this.state.getMap("".concat(sl_reg, "_LISTENERS"), ms_reg, globalKey);
1047
- var existed = _state.delete(key);
1048
- if (_persistKeys.has(key)) {
1049
- _persistKeys.delete(key);
1050
- _persistent.delete(key);
983
+ // const _state= this.getMap<A, A>(sl_reg, ms_reg, globalKey);
984
+ //const _persistent = this.getMap<A, A>(`${sl_reg}_PERSISTENT`, ms_reg, globalKey);
985
+ // const _persistKeys = this.getMap<A, boolean>(`${sl_reg}_PERSIST_KEYS`, ms_reg, globalKey);
986
+ //const _listeners = this.getMap<A, Set<(value: A) => void>>(`${sl_reg}_LISTENERS`, ms_reg, globalKey);
987
+ var existed = _class_private_field_get(_this, _hotPath).delete(key);
988
+ if (_class_private_field_get(_this, _persistent_keys).has(key)) {
989
+ _class_private_field_get(_this, _persistent_keys).delete(key);
990
+ _class_private_field_get(_this, _persistent).delete(key);
1051
991
  }
1052
- (_listeners_get = _listeners.get(key)) === null || _listeners_get === void 0 ? void 0 : _listeners_get.forEach(function(l) {
992
+ (_class_private_field_get_get = _class_private_field_get(_this, src_listeners).get(key)) === null || _class_private_field_get_get === void 0 ? void 0 : _class_private_field_get_get.forEach(function(l) {
1053
993
  return l(undefined);
1054
994
  });
1055
- _listeners.delete(key);
995
+ _class_private_field_get(_this, src_listeners).delete(key);
1056
996
  return MaybePromise(existed);
1057
997
  },
1058
998
  entries: function entries() {
@@ -1062,8 +1002,8 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1062
1002
  globalKey: _this.r
1063
1003
  };
1064
1004
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1065
- var _state = _this.state.getMap(sl_reg, ms_reg, globalKey);
1066
- return MaybePromise(Array.from(_state.entries()));
1005
+ // const _state = this.getMap<A, A>(sl_reg, ms_reg, globalKey);
1006
+ return MaybePromise(Array.from(_class_private_field_get(_this, _hotPath).entries()));
1067
1007
  },
1068
1008
  persist: function persist(key) {
1069
1009
  var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
@@ -1072,8 +1012,8 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1072
1012
  globalKey: _this.r
1073
1013
  };
1074
1014
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1075
- var _persistKeys = _this.state.getMap("".concat(sl_reg, "_PERSIST_KEYS"), ms_reg, globalKey);
1076
- _persistKeys.set(key, true);
1015
+ //const _persistKeys = this.getMap<A, boolean>(`${sl_reg}_PERSIST_KEYS`, ms_reg, globalKey);
1016
+ _class_private_field_get(_this, _persistent_keys).set(key, true);
1077
1017
  },
1078
1018
  unpersist: function unpersist(key) {
1079
1019
  var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
@@ -1082,10 +1022,10 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1082
1022
  globalKey: _this.r
1083
1023
  };
1084
1024
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1085
- var _persistent = _this.state.getMap("".concat(sl_reg, "_PERSISTENT"), ms_reg, globalKey);
1086
- var _persistKeys = _this.state.getMap("".concat(sl_reg, "_PERSIST_KEYS"), ms_reg, globalKey);
1087
- _persistKeys.delete(key);
1088
- _persistent.delete(key);
1025
+ //const _persistent = this.getMap<A, A>(`${sl_reg}_PERSISTENT`, ms_reg, globalKey);
1026
+ //const _persistKeys = this.getMap<A, boolean>(`${sl_reg}_PERSIST_KEYS`, ms_reg, globalKey);
1027
+ _class_private_field_get(_this, _persistent_keys).delete(key);
1028
+ _class_private_field_get(_this, _persistent).delete(key);
1089
1029
  },
1090
1030
  has: function has(key) {
1091
1031
  var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
@@ -1094,10 +1034,10 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1094
1034
  globalKey: _this.r
1095
1035
  };
1096
1036
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1097
- var _state = _this.state.getMap(sl_reg, ms_reg, globalKey);
1098
- var _persistent = _this.state.getMap("".concat(sl_reg, "_PERSISTENT"), ms_reg, globalKey);
1099
- var _persistKeys = _this.state.getMap("".concat(sl_reg, "_PERSIST_KEYS"), ms_reg, globalKey);
1100
- return _state.has(key) || _persistKeys.has(key) && _persistent.has(key);
1037
+ //const _state = this.getMap<A, A>(sl_reg, ms_reg, globalKey);
1038
+ //const _persistent = this.getMap<A, A>(`${sl_reg}_PERSISTENT`, ms_reg, globalKey);
1039
+ //const _persistKeys = this.getMap<A, boolean>(`${sl_reg}_PERSIST_KEYS`, ms_reg, globalKey);
1040
+ return _class_private_field_get(_this, _hotPath).has(key) || _class_private_field_get(_this, _persistent_keys).has(key) && _class_private_field_get(_this, _persistent).has(key);
1101
1041
  },
1102
1042
  clear: function clear() {
1103
1043
  var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
@@ -1106,10 +1046,10 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1106
1046
  globalKey: _this.r
1107
1047
  };
1108
1048
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1109
- var _state = _this.state.getMap(sl_reg, ms_reg, globalKey);
1110
- var _listeners = _this.state.getMap("".concat(sl_reg, "_LISTENERS"), ms_reg, globalKey);
1111
- _state.clear();
1112
- _listeners.clear();
1049
+ //const _state = this.getMap<A, A>(sl_reg, ms_reg, globalKey);
1050
+ //const _listeners = this.getMap<A, Set<(value: A) => void>>(`${sl_reg}_LISTENERS`, ms_reg, globalKey);
1051
+ _class_private_field_get(_this, _hotPath).clear();
1052
+ _class_private_field_get(_this, src_listeners).clear();
1113
1053
  },
1114
1054
  clearPersistent: function clearPersistent() {
1115
1055
  var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
@@ -1118,10 +1058,10 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1118
1058
  globalKey: _this.r
1119
1059
  };
1120
1060
  var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1121
- var _persistent = _this.state.getMap("".concat(sl_reg, "_PERSISTENT"), ms_reg, globalKey);
1122
- var _persistKeys = _this.state.getMap("".concat(sl_reg, "_PERSIST_KEYS"), ms_reg, globalKey);
1123
- _persistent.clear();
1124
- _persistKeys.clear();
1061
+ //const _persistent = this.getMap<A, A>(`${sl_reg}_PERSISTENT`, ms_reg, globalKey);
1062
+ //const _persistKeys = this.getMap<A, boolean>(`${sl_reg}_PERSIST_KEYS`, ms_reg, globalKey);
1063
+ _class_private_field_get(_this, _persistent).clear();
1064
+ _class_private_field_get(_this, _persistent_keys).clear();
1125
1065
  },
1126
1066
  _emit: function _emit(key) {
1127
1067
  var sl_reg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _this.s, ms_reg = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : _this.m, globalKey = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : _this.r;
@@ -1130,99 +1070,167 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
1130
1070
  ms_reg: ms_reg,
1131
1071
  globalKey: globalKey
1132
1072
  };
1133
- var _state = _this.state.getMap(sl_reg, ms_reg, globalKey);
1134
- var _listeners = _this.state.getMap("".concat(sl_reg, "_LISTENERS"), ms_reg, globalKey);
1135
- var meta = _this.state.getMetadata(sl_reg, ms_reg, globalKey);
1136
- _this.state.scheduleNotify(key, _listeners, _state);
1137
- _this.state.scheduleGlobalNotify(key, meta, opts);
1073
+ //const _state = this.getMap(sl_reg, ms_reg, globalKey);
1074
+ //const _listeners = this.getMap<A, Set<(value: A) => void>>(`${sl_reg}_LISTENERS`, ms_reg, globalKey);
1075
+ var meta = _this.getMetadata(sl_reg, ms_reg, globalKey);
1076
+ _this.scheduleNotify(key, _class_private_field_get(_this, src_listeners), _class_private_field_get(_this, _hotPath));
1077
+ _this.scheduleGlobalNotify(key, meta, opts);
1078
+ }
1079
+ }), _define_property(_this, "state", {
1080
+ get: function get(key) {
1081
+ var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
1082
+ sl_reg: _this.s,
1083
+ ms_reg: _this.m,
1084
+ globalKey: _this.r
1085
+ };
1086
+ return MaybePromise(_this.store.get(key, opts));
1138
1087
  },
1139
- scheduleNotify: function scheduleNotify(key, _listeners, _state) {
1140
- var cache = _class_private_field_get(_this, _notify_context).get(_listeners);
1141
- if (!cache) {
1142
- cache = new Map();
1143
- _class_private_field_get(_this, _notify_context).set(_listeners, cache);
1144
- }
1145
- var fn = cache.get(key);
1146
- if (!fn) {
1147
- fn = function fn() {
1148
- var _listeners_get;
1149
- cache.delete(key);
1150
- var val = _state.get(key);
1151
- (_listeners_get = _listeners.get(key)) === null || _listeners_get === void 0 ? void 0 : _listeners_get.forEach(function(l) {
1152
- return l(val);
1153
- });
1154
- };
1155
- cache.set(key, fn);
1156
- }
1157
- _this.onFlush(fn);
1088
+ set: function set(key, value) {
1089
+ var opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
1090
+ sl_reg: _this.s,
1091
+ ms_reg: _this.m,
1092
+ globalKey: _this.r
1093
+ };
1094
+ var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey, _opts_triggerRender = opts.triggerRender, triggerRender = _opts_triggerRender === void 0 ? true : _opts_triggerRender;
1095
+ _this.store.set(key, value, {
1096
+ triggerRender: triggerRender,
1097
+ sl_reg: sl_reg,
1098
+ ms_reg: ms_reg,
1099
+ globalKey: globalKey
1100
+ });
1101
+ return MaybePromise(value);
1158
1102
  },
1159
- scheduleGlobalNotify: function scheduleGlobalNotify(key, meta, opts) {
1160
- var cache = _class_private_field_get(_this, _global_notify_context).get(meta);
1161
- if (!cache) {
1162
- cache = new Map();
1163
- _class_private_field_get(_this, _global_notify_context).set(meta, cache);
1164
- }
1165
- var fn = cache.get(key);
1166
- if (!fn) {
1167
- fn = function fn() {
1168
- cache.delete(key);
1169
- var finalVal = _this.state.get(key, opts);
1170
- var waiters = meta._waiters.get(key);
1171
- if (waiters) {
1172
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1103
+ delete: function _delete(key) {
1104
+ var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
1105
+ sl_reg: _this.s,
1106
+ ms_reg: _this.m,
1107
+ globalKey: _this.r
1108
+ };
1109
+ var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1110
+ var meta = _this.getMetadata(sl_reg, ms_reg, globalKey);
1111
+ var deleted = _this.store.delete(key, opts);
1112
+ if (deleted) {
1113
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1114
+ try {
1115
+ for(var _iterator = meta._globalListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1116
+ var listener = _step.value;
1173
1117
  try {
1174
- for(var _iterator = waiters[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1175
- var resolveFn = _step.value;
1176
- try {
1177
- resolveFn(finalVal);
1178
- } catch (err) {
1179
- console.error("[Sauron Waiter Error]:", err);
1180
- }
1181
- }
1118
+ listener(key, undefined);
1182
1119
  } catch (err) {
1183
- _didIteratorError = true;
1184
- _iteratorError = err;
1185
- } finally{
1186
- try {
1187
- if (!_iteratorNormalCompletion && _iterator.return != null) {
1188
- _iterator.return();
1189
- }
1190
- } finally{
1191
- if (_didIteratorError) {
1192
- throw _iteratorError;
1193
- }
1194
- }
1120
+ console.error("[Sauron Global Listener Error]:", err);
1195
1121
  }
1196
- meta._waiters.delete(key);
1197
1122
  }
1198
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
1123
+ } catch (err) {
1124
+ _didIteratorError = true;
1125
+ _iteratorError = err;
1126
+ } finally{
1199
1127
  try {
1200
- for(var _iterator1 = meta._globalListeners[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
1201
- var listener = _step1.value;
1202
- try {
1203
- listener(key, finalVal);
1204
- } catch (err) {
1205
- console.error("[Sauron Global Listener Error]:", err);
1206
- }
1128
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1129
+ _iterator.return();
1207
1130
  }
1208
- } catch (err) {
1209
- _didIteratorError1 = true;
1210
- _iteratorError1 = err;
1211
1131
  } finally{
1212
- try {
1213
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
1214
- _iterator1.return();
1215
- }
1216
- } finally{
1217
- if (_didIteratorError1) {
1218
- throw _iteratorError1;
1219
- }
1132
+ if (_didIteratorError) {
1133
+ throw _iteratorError;
1220
1134
  }
1221
1135
  }
1136
+ }
1137
+ }
1138
+ return deleted;
1139
+ },
1140
+ getByPrefix: function getByPrefix(prefix) {
1141
+ var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
1142
+ sl_reg: _this.s,
1143
+ ms_reg: _this.m,
1144
+ globalKey: _this.r
1145
+ };
1146
+ return _this.store.entries(opts).filter(function(param) {
1147
+ var _param = _sliced_to_array(param, 1), key = _param[0];
1148
+ return typeof key === "string" && key.startsWith(prefix);
1149
+ }).map(function(param) {
1150
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
1151
+ return {
1152
+ key: key,
1153
+ value: value
1222
1154
  };
1223
- cache.set(key, fn);
1155
+ });
1156
+ },
1157
+ getAll: function getAll() {
1158
+ var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
1159
+ sl_reg: _this.s,
1160
+ ms_reg: _this.m,
1161
+ globalKey: _this.r
1162
+ };
1163
+ var result = {};
1164
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1165
+ try {
1166
+ for(var _iterator = _this.store.entries(opts)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1167
+ var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
1168
+ result[key] = value;
1169
+ }
1170
+ } catch (err) {
1171
+ _didIteratorError = true;
1172
+ _iteratorError = err;
1173
+ } finally{
1174
+ try {
1175
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1176
+ _iterator.return();
1177
+ }
1178
+ } finally{
1179
+ if (_didIteratorError) {
1180
+ throw _iteratorError;
1181
+ }
1182
+ }
1224
1183
  }
1225
- _this.onFlush(fn);
1184
+ return result;
1185
+ },
1186
+ subscribe: function subscribe(key, listener) {
1187
+ var opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
1188
+ sl_reg: _this.s,
1189
+ ms_reg: _this.m,
1190
+ globalKey: _this.r
1191
+ };
1192
+ return _this.store.subscribe(key, listener, opts);
1193
+ },
1194
+ subscribeAll: function subscribeAll(listener) {
1195
+ var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
1196
+ sl_reg: _this.s,
1197
+ ms_reg: _this.m,
1198
+ globalKey: _this.r
1199
+ };
1200
+ var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1201
+ var meta = _this.getMetadata(sl_reg, ms_reg, globalKey);
1202
+ meta._globalListeners.add(listener);
1203
+ return function() {
1204
+ meta._globalListeners.delete(listener);
1205
+ };
1206
+ },
1207
+ clear: function clear() {
1208
+ var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
1209
+ sl_reg: _this.s,
1210
+ ms_reg: _this.m,
1211
+ globalKey: _this.r
1212
+ };
1213
+ var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1214
+ var meta = _this.getMetadata(sl_reg, ms_reg, globalKey);
1215
+ _this.store.clear(opts);
1216
+ meta._waiters.clear();
1217
+ meta._globalListeners.clear();
1218
+ },
1219
+ waitFor: function waitFor(key) {
1220
+ var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
1221
+ sl_reg: _this.s,
1222
+ ms_reg: _this.m,
1223
+ globalKey: _this.r
1224
+ };
1225
+ var sl_reg = opts.sl_reg, ms_reg = opts.ms_reg, globalKey = opts.globalKey;
1226
+ var meta = _this.getMetadata(sl_reg, ms_reg, globalKey);
1227
+ // If it already exists, resolve immediately
1228
+ var existing = _this.state.get(key, opts);
1229
+ if (existing !== undefined) return Promise.resolve(existing);
1230
+ return new Promise(function(resolve) {
1231
+ if (!meta._waiters.has(key)) meta._waiters.set(key, new Set());
1232
+ meta._waiters.get(key).add(resolve);
1233
+ });
1226
1234
  }
1227
1235
  }), _class_private_field_init(_this, _rifts, {
1228
1236
  writable: true,
@@ -3401,6 +3409,168 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
3401
3409
  return this._byteid();
3402
3410
  }
3403
3411
  },
3412
+ {
3413
+ key: "scheduleGlobalNotify",
3414
+ value: function scheduleGlobalNotify(key, meta, opts) {
3415
+ var _this = this;
3416
+ var cache = this._globalNotifyCache.get(meta);
3417
+ if (!cache) {
3418
+ cache = new Map();
3419
+ this._globalNotifyCache.set(meta, cache);
3420
+ }
3421
+ var fn = cache.get(key);
3422
+ if (!fn) {
3423
+ fn = function fn() {
3424
+ cache.delete(key);
3425
+ var finalVal = _this.store.get(key, opts);
3426
+ var waiters = meta._waiters.get(key);
3427
+ if (waiters) {
3428
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3429
+ try {
3430
+ for(var _iterator = waiters[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
3431
+ var resolveFn = _step.value;
3432
+ try {
3433
+ resolveFn(finalVal);
3434
+ } catch (err) {
3435
+ console.error("[Sauron Waiter Error]:", err);
3436
+ }
3437
+ }
3438
+ } catch (err) {
3439
+ _didIteratorError = true;
3440
+ _iteratorError = err;
3441
+ } finally{
3442
+ try {
3443
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
3444
+ _iterator.return();
3445
+ }
3446
+ } finally{
3447
+ if (_didIteratorError) {
3448
+ throw _iteratorError;
3449
+ }
3450
+ }
3451
+ }
3452
+ meta._waiters.delete(key);
3453
+ }
3454
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
3455
+ try {
3456
+ for(var _iterator1 = meta._globalListeners[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
3457
+ var listener = _step1.value;
3458
+ try {
3459
+ listener(key, finalVal);
3460
+ } catch (err) {
3461
+ console.error("[Sauron Global Listener Error]:", err);
3462
+ }
3463
+ }
3464
+ } catch (err) {
3465
+ _didIteratorError1 = true;
3466
+ _iteratorError1 = err;
3467
+ } finally{
3468
+ try {
3469
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
3470
+ _iterator1.return();
3471
+ }
3472
+ } finally{
3473
+ if (_didIteratorError1) {
3474
+ throw _iteratorError1;
3475
+ }
3476
+ }
3477
+ }
3478
+ };
3479
+ cache.set(key, fn);
3480
+ }
3481
+ this.onFlush(fn);
3482
+ }
3483
+ },
3484
+ {
3485
+ key: "scheduleNotify",
3486
+ value: function scheduleNotify(key, _listeners, _state) {
3487
+ var cache = this._notifyCache.get(_listeners);
3488
+ if (!cache) {
3489
+ cache = new Map();
3490
+ this._notifyCache.set(_listeners, cache);
3491
+ }
3492
+ var fn = cache.get(key);
3493
+ if (!fn) {
3494
+ fn = function fn() {
3495
+ var _listeners_get;
3496
+ cache.delete(key);
3497
+ var val = _state.get(key);
3498
+ (_listeners_get = _listeners.get(key)) === null || _listeners_get === void 0 ? void 0 : _listeners_get.forEach(function(l) {
3499
+ return l(val);
3500
+ });
3501
+ };
3502
+ cache.set(key, fn);
3503
+ }
3504
+ this.onFlush(fn);
3505
+ }
3506
+ },
3507
+ {
3508
+ key: "getMap",
3509
+ value: function getMap() {
3510
+ var slave = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.s, master = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.m, rk = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : this.r;
3511
+ var root = _class_private_field_get(this, _context).get(rk); // (globalThis as any)[rk] // ; (globalThis as any)[rk] = root;
3512
+ if (!root) {
3513
+ root = new M2();
3514
+ _class_private_field_get(this, _context).set(rk, root);
3515
+ }
3516
+ var masterMap = root.get(master);
3517
+ if (!masterMap) {
3518
+ masterMap = new M2();
3519
+ root.set(master, masterMap);
3520
+ }
3521
+ var slaveMap = masterMap.get(slave);
3522
+ if (!slaveMap) {
3523
+ slaveMap = new M2();
3524
+ masterMap.set(slave, slaveMap);
3525
+ }
3526
+ return slaveMap;
3527
+ }
3528
+ },
3529
+ {
3530
+ key: "getMetadata",
3531
+ value: function getMetadata() {
3532
+ var s = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.s, m = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.m, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : this.r;
3533
+ var root = _class_private_field_get(this, _meta_context).get(r); // (globalThis as A)[r]; // STATE_CONTEXT === "sauron" ? : null;
3534
+ if (!root) {
3535
+ root = new M2();
3536
+ _class_private_field_get(this, _meta_context).set(r, root);
3537
+ }
3538
+ var masterMap = root.get(m);
3539
+ if (!masterMap) {
3540
+ masterMap = new M2();
3541
+ root.set(m, masterMap);
3542
+ }
3543
+ var metaMap = masterMap.get(s);
3544
+ if (!metaMap) {
3545
+ metaMap = {
3546
+ _batches: new Set(),
3547
+ _batchQueue: new Map(),
3548
+ _batchOpts: new Map(),
3549
+ _history: new Map(),
3550
+ _timeTravel: new Map(),
3551
+ _globalListeners: new Set(),
3552
+ _global_subscribers: new Map(),
3553
+ _waiters: new Map(),
3554
+ _sys: new Map(),
3555
+ _sealed: new Set(),
3556
+ _frozen: new Set(),
3557
+ _keyContracts: new Map(),
3558
+ _conflicts: new Map(),
3559
+ _conflictStrategies: new Map(),
3560
+ _causal: new Map(),
3561
+ _scopes: new Map(),
3562
+ _msgHandlers: new Map(),
3563
+ _lastWriteSource: new Map(),
3564
+ _mainMap: new Map(),
3565
+ _tupleCache: new Map(),
3566
+ _weakMap: new WeakMap(),
3567
+ _boundaries: new WeakMap()
3568
+ };
3569
+ masterMap.set(s, metaMap);
3570
+ }
3571
+ return metaMap;
3572
+ }
3573
+ },
3404
3574
  {
3405
3575
  key: "onFlush",
3406
3576
  value: function onFlush(cb) {
@@ -3521,12 +3691,11 @@ var src_Registry = /*#__PURE__*/ function(EventEmitter) {
3521
3691
  };
3522
3692
  }
3523
3693
  var key = keyOrFn;
3524
- // iterator form: no maybeFn, or second arg is an options object
3525
- if (maybeFn === undefined || (typeof maybeFn === "undefined" ? "undefined" : _type_of(maybeFn)) === "object" && maybeFn !== null) {
3526
- var iteratorOpts = (typeof maybeFn === "undefined" ? "undefined" : _type_of(maybeFn)) === "object" && maybeFn || opts;
3694
+ var maybeFnIsObject = maybeFn !== undefined && (typeof maybeFn === "undefined" ? "undefined" : _type_of(maybeFn)) === "object" && maybeFn !== null;
3695
+ if (maybeFn === undefined || maybeFnIsObject) {
3696
+ var iteratorOpts = maybeFnIsObject ? maybeFn : opts;
3527
3697
  return _class_private_method_get(this, _asIterator, asIterator).call(this, key, iteratorOpts);
3528
3698
  }
3529
- // callback form
3530
3699
  var fn1 = maybeFn;
3531
3700
  var set = _class_private_field_get(this, _subs).getOrM(function() {
3532
3701
  return new SET2();
@@ -4144,5 +4313,4 @@ function notify(key, value, prev) {
4144
4313
  }
4145
4314
  }
4146
4315
 
4147
-
4148
4316
  export { src_Registry as Registry, src_rv as rv, src_sameValue as sameValue };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@the-w1zard/the-registry",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "exports": {
8
8
  ".": {
9
- "types": "./src/index.d.ts",
9
+ "types": "./dist/index.d.ts",
10
10
  "default": "./dist/index.js"
11
11
  }
12
12
  },
@@ -15,7 +15,7 @@
15
15
  "./src/index.d.ts"
16
16
  ],
17
17
  "scripts": {
18
- "build": "rspack build",
18
+ "build": "tsc --emitDeclarationOnly && rspack build",
19
19
  "build1": "rspack build",
20
20
  "dev": "rspack serve",
21
21
  "check": "tsc --noEmit"