@lunora/client 1.0.0-alpha.10 → 1.0.0-alpha.100

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 (91) hide show
  1. package/LICENSE.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/auth/index.d.mts +12 -10
  4. package/dist/auth/index.d.ts +12 -10
  5. package/dist/auth/index.mjs +1 -60
  6. package/dist/index.d.mts +876 -246
  7. package/dist/index.d.ts +876 -246
  8. package/dist/index.mjs +1 -15
  9. package/dist/packem_shared/CONFLICT_ERROR_CODE-BOeeP_Wl.mjs +1 -0
  10. package/dist/packem_shared/ClientServiceWorker-DXnBXeWK.mjs +1 -0
  11. package/dist/packem_shared/DEFAULT_MAX_BUFFER-D3QH2iaq.mjs +1 -0
  12. package/dist/packem_shared/LunoraClient-DArMFG67.mjs +1 -0
  13. package/dist/packem_shared/OfflineQueue-ZapYrAVi.mjs +1 -0
  14. package/dist/packem_shared/RETIRE_AFTER_DURABLE_SEQ_ADVANCE-DoEHtuR8.mjs +1 -0
  15. package/dist/packem_shared/SKIP-d7LeP-sY.mjs +1 -0
  16. package/dist/packem_shared/SubscriptionRegistry-CS-AFUI9.mjs +1 -0
  17. package/dist/packem_shared/TabCoordinator-CXD7vulJ.mjs +1 -0
  18. package/dist/packem_shared/anyApi-CBOws2ZA.mjs +1 -0
  19. package/dist/packem_shared/applyDelta-DwcQmRsV.mjs +1 -0
  20. package/dist/packem_shared/createAsyncStoragePersistence-CeUW9NTj.mjs +1 -0
  21. package/dist/packem_shared/createAsyncStorageQueryCache-BfZkthAE.mjs +1 -0
  22. package/dist/packem_shared/createCallRunner-Bwcrfh76.mjs +1 -0
  23. package/dist/packem_shared/createClientQuery-B8Nfj-7o.mjs +1 -0
  24. package/dist/packem_shared/createInMemoryBookmarkStorage-BooZhW0n.mjs +1 -0
  25. package/dist/packem_shared/createInMemoryPersistence-Cz2W6XVj.mjs +1 -0
  26. package/dist/packem_shared/createInMemoryQueryCache-D2uNHLfM.mjs +1 -0
  27. package/dist/packem_shared/createLocalStore-nwwRbT0L.mjs +1 -0
  28. package/dist/packem_shared/createMutatorRunner-CuMRJpUx.mjs +1 -0
  29. package/dist/packem_shared/createReconnect-CjTmjJDH.mjs +1 -0
  30. package/dist/packem_shared/createReply-CwFABEJs.mjs +1 -0
  31. package/dist/packem_shared/createServerClient-BrNyme3I.mjs +1 -0
  32. package/dist/packem_shared/createSnapshotPrecondition-GRVKxPsh.mjs +1 -0
  33. package/dist/packem_shared/delta-merge-vxvH3PvF.mjs +1 -0
  34. package/dist/packem_shared/deserializePreloaded-C6NTQdFa.mjs +1 -0
  35. package/dist/packem_shared/function-reference.d-Br_hsKje.d.mts +45 -0
  36. package/dist/packem_shared/function-reference.d-Br_hsKje.d.ts +45 -0
  37. package/dist/packem_shared/getServerSession-BaOoo1p6.mjs +1 -0
  38. package/dist/packem_shared/httpStream-CPdblK2G.mjs +11 -0
  39. package/dist/packem_shared/idb-utility-C8WS390w.mjs +1 -0
  40. package/dist/packem_shared/local-store-CVfQDdXy.mjs +1 -0
  41. package/dist/packem_shared/lunora-client.d-C5tvkz8x.d.mts +3891 -0
  42. package/dist/packem_shared/lunora-client.d-CK3FxGNH.d.ts +3891 -0
  43. package/dist/packem_shared/offline-queue-xntsWiKt.mjs +1 -0
  44. package/dist/packem_shared/preload.d-CAXl1Y8Y.d.mts +21 -0
  45. package/dist/packem_shared/preload.d-Csjxr5HM.d.ts +21 -0
  46. package/dist/packem_shared/preloadQuery-uFy24PCR.mjs +1 -0
  47. package/dist/packem_shared/single-blob-store-DrhzObic.mjs +1 -0
  48. package/dist/packem_shared/wire-codec-Sw1rAu-Z.mjs +1 -0
  49. package/dist/packem_shared/wire-key-HsUDTlQ7.mjs +1 -0
  50. package/dist/pagination/index.d.mts +42 -42
  51. package/dist/pagination/index.d.ts +42 -42
  52. package/dist/pagination/index.mjs +1 -61
  53. package/dist/query/index.d.mts +111 -43
  54. package/dist/query/index.d.ts +111 -43
  55. package/dist/query/index.mjs +1 -1
  56. package/dist/service.d.mts +49 -0
  57. package/dist/service.d.ts +49 -0
  58. package/dist/service.mjs +1 -0
  59. package/dist/ssr/index.d.mts +109 -79
  60. package/dist/ssr/index.d.ts +109 -79
  61. package/dist/ssr/index.mjs +1 -4
  62. package/dist/upload.d.mts +35 -0
  63. package/dist/upload.d.ts +35 -0
  64. package/dist/upload.mjs +1 -0
  65. package/package.json +16 -1
  66. package/dist/packem_shared/CONFLICT_ERROR_CODE-aUdVbEDw.mjs +0 -4
  67. package/dist/packem_shared/DEFAULT_MAX_BUFFER-BDkqO5PW.mjs +0 -107
  68. package/dist/packem_shared/LunoraClient-CgZ6FhKP.mjs +0 -2721
  69. package/dist/packem_shared/OfflineQueue-BI0FNNvc.mjs +0 -1
  70. package/dist/packem_shared/SKIP-vItZChkw.mjs +0 -50
  71. package/dist/packem_shared/SubscriptionRegistry-Dn-7k7eo.mjs +0 -1
  72. package/dist/packem_shared/applyDelta-4jFGTPA3.mjs +0 -61
  73. package/dist/packem_shared/createAsyncStoragePersistence-1Z5BZ8RC.mjs +0 -45
  74. package/dist/packem_shared/createInMemoryBookmarkStorage-BoN7a7TH.mjs +0 -11
  75. package/dist/packem_shared/createInMemoryPersistence-CW82inU5.mjs +0 -105
  76. package/dist/packem_shared/createInMemoryQueryCache-B1PQ9Twl.mjs +0 -138
  77. package/dist/packem_shared/createLocalStore-IOur0jHF.mjs +0 -1
  78. package/dist/packem_shared/createMutationRunner-BqsavzvG.mjs +0 -21
  79. package/dist/packem_shared/createMutatorRunner-BETvCd0p.mjs +0 -31
  80. package/dist/packem_shared/createReconnect-Di_-oHH7.mjs +0 -22
  81. package/dist/packem_shared/createServerClient-BxkNcRlR.mjs +0 -11
  82. package/dist/packem_shared/deserializePreloaded-C0eJTY_W.mjs +0 -4
  83. package/dist/packem_shared/getServerSession-8jXewqxd.mjs +0 -13
  84. package/dist/packem_shared/local-store-BNgN3Dw3.mjs +0 -111
  85. package/dist/packem_shared/lunora-client.d-B5vWSgvD.d.mts +0 -2196
  86. package/dist/packem_shared/lunora-client.d-B5vWSgvD.d.ts +0 -2196
  87. package/dist/packem_shared/offline-queue-7Wc4onA0.mjs +0 -164
  88. package/dist/packem_shared/preload.d-3XJD-2hM.d.mts +0 -20
  89. package/dist/packem_shared/preload.d-CKZR675M.d.ts +0 -20
  90. package/dist/packem_shared/preloadQuery-lobFkD2Z.mjs +0 -13
  91. package/dist/packem_shared/subscription-C1Jy7HiF.mjs +0 -55
package/LICENSE.md CHANGED
@@ -103,3 +103,9 @@ Unless required by applicable law or agreed to in writing, software distributed
103
103
  under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
104
104
  CONDITIONS OF ANY KIND, either express or implied. See the License for the
105
105
  specific language governing permissions and limitations under the License.
106
+
107
+ <!-- DEPENDENCIES -->
108
+ <!-- /DEPENDENCIES -->
109
+
110
+ <!-- TYPE_DEPENDENCIES -->
111
+ <!-- /TYPE_DEPENDENCIES -->
package/README.md CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
  ---
36
36
 
37
- The framework-agnostic browser/edge SDK for Lunora. It runs RPC over HTTP and real-time deltas over a single multiplexed WebSocket, with optimistic updates, an offline mutation queue, and decorrelated-jitter reconnect built in. It is the lowest-level user-facing entry point that every framework adapter (React, Vue, Svelte, Solid) layers on top of.
37
+ The framework-agnostic browser/edge SDK for Lunora. It runs RPC over HTTP and real-time deltas over a single multiplexed WebSocket, with optimistic updates, an offline mutation queue, and exponential-backoff-with-jitter reconnect built in. It is the lowest-level user-facing entry point that every framework adapter (React, Vue, Svelte, Solid) layers on top of.
38
38
 
39
39
  Part of the [Lunora](https://github.com/anolilab/lunora) framework — a type-safe, real-time backend on Cloudflare Workers + Durable Objects with a Vite-first DX.
40
40
 
@@ -1,20 +1,22 @@
1
- import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-B5vWSgvD.mjs";
1
+ import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-C5tvkz8x.mjs";
2
+ import '@lunora/errors';
3
+ import "../packem_shared/function-reference.d-Br_hsKje.mjs";
2
4
  import '@lunora/runtime';
3
5
  interface IdentityStore {
4
6
  /** Read the current resolved user, or `null` when signed out / not yet resolved. */
5
7
  getUser: () => User | null;
6
8
  /**
7
- * Subscribe to identity changes. `onChange` is called whenever the user or
8
- * token changes. Returns an unsubscribe handle.
9
- */
9
+ * Subscribe to identity changes. `onChange` is called whenever the user or
10
+ * token changes. Returns an unsubscribe handle.
11
+ */
10
12
  subscribe: (onChange: () => void) => () => void;
11
13
  }
12
14
  /**
13
- * Return the per-client identity store, creating it on first access.
14
- *
15
- * The store is cached via a `WeakMap` so it is GC'd when the client is dropped,
16
- * and creation is idempotent — calling this multiple times with the same client
17
- * returns the same store, keeping the single-fetch / fan-out invariant.
18
- */
15
+ * Return the per-client identity store, creating it on first access.
16
+ *
17
+ * The store is cached via a `WeakMap` so it is GC'd when the client is dropped,
18
+ * and creation is idempotent — calling this multiple times with the same client
19
+ * returns the same store, keeping the single-fetch / fan-out invariant.
20
+ */
19
21
  declare const getIdentityStore: (client: LunoraClient) => IdentityStore;
20
22
  export { type IdentityStore, getIdentityStore };
@@ -1,20 +1,22 @@
1
- import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-B5vWSgvD.js";
1
+ import { U as User, L as LunoraClient } from "../packem_shared/lunora-client.d-CK3FxGNH.js";
2
+ import '@lunora/errors';
3
+ import "../packem_shared/function-reference.d-Br_hsKje.js";
2
4
  import '@lunora/runtime';
3
5
  interface IdentityStore {
4
6
  /** Read the current resolved user, or `null` when signed out / not yet resolved. */
5
7
  getUser: () => User | null;
6
8
  /**
7
- * Subscribe to identity changes. `onChange` is called whenever the user or
8
- * token changes. Returns an unsubscribe handle.
9
- */
9
+ * Subscribe to identity changes. `onChange` is called whenever the user or
10
+ * token changes. Returns an unsubscribe handle.
11
+ */
10
12
  subscribe: (onChange: () => void) => () => void;
11
13
  }
12
14
  /**
13
- * Return the per-client identity store, creating it on first access.
14
- *
15
- * The store is cached via a `WeakMap` so it is GC'd when the client is dropped,
16
- * and creation is idempotent — calling this multiple times with the same client
17
- * returns the same store, keeping the single-fetch / fan-out invariant.
18
- */
15
+ * Return the per-client identity store, creating it on first access.
16
+ *
17
+ * The store is cached via a `WeakMap` so it is GC'd when the client is dropped,
18
+ * and creation is idempotent — calling this multiple times with the same client
19
+ * returns the same store, keeping the single-fetch / fan-out invariant.
20
+ */
19
21
  declare const getIdentityStore: (client: LunoraClient) => IdentityStore;
20
22
  export { type IdentityStore, getIdentityStore };
@@ -1,60 +1 @@
1
- const stores = /* @__PURE__ */ new WeakMap();
2
- const createIdentityStore = (client) => {
3
- const listeners = /* @__PURE__ */ new Set();
4
- let user = null;
5
- let started = false;
6
- const notify = () => {
7
- for (const listener of listeners) {
8
- listener();
9
- }
10
- };
11
- let generation = 0;
12
- const setUser = (next) => {
13
- if (user !== next) {
14
- user = next;
15
- notify();
16
- }
17
- };
18
- const refresh = () => {
19
- generation += 1;
20
- const current = generation;
21
- if (client.getAuthToken() === null) {
22
- setUser(null);
23
- return;
24
- }
25
- client.getCurrentUser().then((next) => {
26
- if (current === generation) {
27
- setUser(next);
28
- }
29
- return void 0;
30
- }).catch(() => {
31
- if (current === generation) {
32
- setUser(null);
33
- }
34
- });
35
- };
36
- client.onAuthTokenChange(refresh);
37
- return {
38
- getUser: () => user,
39
- subscribe: (onChange) => {
40
- listeners.add(onChange);
41
- if (!started) {
42
- started = true;
43
- refresh();
44
- }
45
- return () => {
46
- listeners.delete(onChange);
47
- };
48
- }
49
- };
50
- };
51
- const getIdentityStore = (client) => {
52
- let store = stores.get(client);
53
- if (!store) {
54
- store = createIdentityStore(client);
55
- stores.set(client, store);
56
- }
57
- return store;
58
- };
59
-
60
- export { getIdentityStore };
1
+ const f=new WeakMap,a=r=>{const t=new Set;let s=null,u=!1;const c=()=>{for(const e of t)e()};let n=0;const o=e=>{s!==e&&(s=e,c())},l=()=>{n+=1;const e=n;if(r.getAuthToken()===null){o(null);return}r.getCurrentUser().then(i=>{e===n&&o(i)}).catch(()=>{e===n&&o(null)})};return r.onAuthTokenChange(l),{getUser:()=>s,subscribe:e=>(t.add(e),u||(u=!0,l()),()=>{t.delete(e)})}},d=r=>{let t=f.get(r);return t||(t=a(r),f.set(r,t)),t};export{d as getIdentityStore};