@multiplatform.one/frappe 7.86.0 → 7.87.0
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/dist/cjs/core/http.cjs +21 -6
- package/dist/cjs/core/http.native.js +21 -6
- package/dist/cjs/core/http.native.js.map +1 -1
- package/dist/cjs/sync/persistence.cjs +23 -2
- package/dist/cjs/sync/persistence.native.js +30 -2
- package/dist/cjs/sync/persistence.native.js.map +1 -1
- package/dist/cjs/sync/types.native.js.map +1 -1
- package/dist/esm/core/http.mjs +21 -8
- package/dist/esm/core/http.mjs.map +1 -1
- package/dist/esm/core/http.native.js +21 -8
- package/dist/esm/core/http.native.js.map +1 -1
- package/dist/esm/sync/persistence.mjs +23 -3
- package/dist/esm/sync/persistence.mjs.map +1 -1
- package/dist/esm/sync/persistence.native.js +30 -3
- package/dist/esm/sync/persistence.native.js.map +1 -1
- package/dist/esm/sync/types.mjs.map +1 -1
- package/dist/esm/sync/types.native.js.map +1 -1
- package/dist/jsx/core/http.mjs +21 -8
- package/dist/jsx/core/http.mjs.map +1 -1
- package/dist/jsx/core/http.native.js +21 -6
- package/dist/jsx/core/http.native.js.map +1 -1
- package/dist/jsx/sync/persistence.mjs +23 -3
- package/dist/jsx/sync/persistence.mjs.map +1 -1
- package/dist/jsx/sync/persistence.native.js +30 -2
- package/dist/jsx/sync/persistence.native.js.map +1 -1
- package/dist/jsx/sync/types.mjs.map +1 -1
- package/dist/jsx/sync/types.native.js.map +1 -1
- package/package.json +6 -6
- package/src/core/http.spec.ts +30 -0
- package/src/core/http.ts +27 -7
- package/src/core/httpHermes.spec.ts +31 -0
- package/src/sync/defaultStorageReady.spec.ts +93 -0
- package/src/sync/persistence.ts +37 -3
- package/src/sync/types.ts +13 -0
- package/types/core/http.d.ts +17 -1
- package/types/core/http.d.ts.map +1 -1
- package/types/sync/persistence.d.ts +10 -0
- package/types/sync/persistence.d.ts.map +1 -1
- package/types/sync/types.d.ts +13 -0
- package/types/sync/types.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/frappe",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.87.0",
|
|
4
4
|
"description": "frappe client for multiplatform.one ecosystem",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"auth",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"access": "public"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@multiplatform.one/store": "^7.
|
|
63
|
+
"@multiplatform.one/store": "^7.87.0",
|
|
64
64
|
"@tanstack/db": "0.11.3",
|
|
65
65
|
"@tanstack/pacer": "0.21.1",
|
|
66
66
|
"@tanstack/react-db": "0.5.3",
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"socket.io-client": "^4.8.4"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@multiplatform.one/config": "7.
|
|
73
|
-
"@multiplatform.one/platform": "7.
|
|
74
|
-
"@multiplatform.one/test-utils": "7.
|
|
72
|
+
"@multiplatform.one/config": "7.87.0",
|
|
73
|
+
"@multiplatform.one/platform": "7.87.0",
|
|
74
|
+
"@multiplatform.one/test-utils": "7.87.0",
|
|
75
75
|
"@tamagui/build": "2.7.6",
|
|
76
76
|
"@testing-library/jest-dom": "^7.0.1",
|
|
77
77
|
"@testing-library/react": "^16.3.3",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"vitest": "^4.1.12"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
|
-
"@multiplatform.one/platform": "^7.
|
|
87
|
+
"@multiplatform.one/platform": "^7.87.0",
|
|
88
88
|
"react": "^19.1.0"
|
|
89
89
|
},
|
|
90
90
|
"engines": {
|
package/src/core/http.spec.ts
CHANGED
|
@@ -260,6 +260,36 @@ describe("HttpClient", () => {
|
|
|
260
260
|
expect(calledHeaders?.get("Authorization")).toBe(`token ${token}`);
|
|
261
261
|
});
|
|
262
262
|
|
|
263
|
+
it("sends a key:secret pair under the token scheme when no type is named (FZ-8975)", async () => {
|
|
264
|
+
const authClient = new HttpClient(baseURL, { useToken: true, token: "key:secret" });
|
|
265
|
+
global.fetch = vi.fn().mockResolvedValue({
|
|
266
|
+
ok: true,
|
|
267
|
+
headers: new Headers({ "Content-Type": "application/json" }),
|
|
268
|
+
status: 200,
|
|
269
|
+
json: async () => ({ success: true }),
|
|
270
|
+
});
|
|
271
|
+
await authClient.request(HttpMethod.Get, "/test", {});
|
|
272
|
+
const calledHeaders = getMockFetch().mock.calls[0]?.[1]?.headers as Headers | undefined;
|
|
273
|
+
expect(calledHeaders?.get("Authorization")).toBe("token key:secret");
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
it("keeps a named Bearer type even for a token with a colon", async () => {
|
|
277
|
+
const authClient = new HttpClient(baseURL, {
|
|
278
|
+
useToken: true,
|
|
279
|
+
token: "a:b",
|
|
280
|
+
type: AuthType.Bearer,
|
|
281
|
+
});
|
|
282
|
+
global.fetch = vi.fn().mockResolvedValue({
|
|
283
|
+
ok: true,
|
|
284
|
+
headers: new Headers({ "Content-Type": "application/json" }),
|
|
285
|
+
status: 200,
|
|
286
|
+
json: async () => ({ success: true }),
|
|
287
|
+
});
|
|
288
|
+
await authClient.request(HttpMethod.Get, "/test", {});
|
|
289
|
+
const calledHeaders = getMockFetch().mock.calls[0]?.[1]?.headers as Headers | undefined;
|
|
290
|
+
expect(calledHeaders?.get("Authorization")).toBe("Bearer a:b");
|
|
291
|
+
});
|
|
292
|
+
|
|
263
293
|
it("should support token as function", async () => {
|
|
264
294
|
const token = "dynamic-token";
|
|
265
295
|
const authClient = new HttpClient(baseURL, {
|
package/src/core/http.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getCookie, setCookie, deleteCookie, isNative } from "@multiplatform.one/platform";
|
|
2
2
|
import { isBrowser } from "../util";
|
|
3
3
|
import { readServerMessages } from "./serverMessages";
|
|
4
|
-
import { FrappeError, HttpMethod } from "./types";
|
|
4
|
+
import { AuthType, FrappeError, HttpMethod } from "./types";
|
|
5
5
|
import type { AuthConfig, RequestCredentialsMode, RetryConfig } from "./types";
|
|
6
6
|
|
|
7
7
|
export { getCookie, setCookie, deleteCookie };
|
|
@@ -88,6 +88,28 @@ export interface HttpResponse<T> {
|
|
|
88
88
|
status: number;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
/**
|
|
92
|
+
* A base URL's origin and path, read without `URL`: Hermes's URL polyfill
|
|
93
|
+
* (whatwg-url-minimum) throws in parseIPv4Number on an IPv4 host, so a client
|
|
94
|
+
* pointed at http://127.0.0.1:8011 failed every request on native (FZ-8975).
|
|
95
|
+
*/
|
|
96
|
+
export function splitBaseURL(baseURL: string): { origin: string; pathname: string } {
|
|
97
|
+
const match = /^([a-z][a-z\d+.-]*:\/\/[^/?#]*)([^?#]*)/i.exec(baseURL.trim());
|
|
98
|
+
if (!match) throw new TypeError(`Invalid base URL: ${baseURL}`);
|
|
99
|
+
return { origin: match[1] as string, pathname: match[2] || "/" };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Frappe's API key pair is `key:secret` and goes under the `token` scheme;
|
|
104
|
+
* an OAuth bearer token has no colon. A caller that names no `type` gets the
|
|
105
|
+
* scheme its token's shape says, so `{ useToken, token: "key:secret" }` no
|
|
106
|
+
* longer sends `Bearer key:secret`, which Frappe 403s (FZ-8975).
|
|
107
|
+
*/
|
|
108
|
+
export function authScheme(type: AuthType | undefined, token: string): AuthType {
|
|
109
|
+
if (type) return type;
|
|
110
|
+
return /^[^:\s]+:[^:\s]+$/.test(token) ? AuthType.Token : AuthType.Bearer;
|
|
111
|
+
}
|
|
112
|
+
|
|
91
113
|
export function trimTrailingSlashes(value: string): string {
|
|
92
114
|
let end = value.length;
|
|
93
115
|
while (end > 0 && value[end - 1] === "/") end -= 1;
|
|
@@ -211,10 +233,9 @@ export class HttpClient {
|
|
|
211
233
|
*/
|
|
212
234
|
private resolveURL(path: string): string {
|
|
213
235
|
if (/^[a-z][a-z\d+.-]*:/i.test(path)) return path;
|
|
214
|
-
const
|
|
215
|
-
const prefix = trimTrailingSlashes(
|
|
216
|
-
|
|
217
|
-
return new URL(path, `${base.origin}${prefix}/`).toString();
|
|
236
|
+
const { origin, pathname } = splitBaseURL(this.baseURL);
|
|
237
|
+
const prefix = trimTrailingSlashes(pathname);
|
|
238
|
+
return `${origin}${prefix}${path.startsWith("/") ? path : `/${path}`}`;
|
|
218
239
|
}
|
|
219
240
|
|
|
220
241
|
private requestCredentials(): RequestCredentialsMode {
|
|
@@ -225,8 +246,7 @@ export class HttpClient {
|
|
|
225
246
|
if (!this.auth?.useToken) return {};
|
|
226
247
|
const raw = typeof this.auth.token === "function" ? await this.auth.token() : this.auth?.token;
|
|
227
248
|
if (!raw) return {};
|
|
228
|
-
|
|
229
|
-
return { Authorization: `${scheme} ${raw}` };
|
|
249
|
+
return { Authorization: `${authScheme(this.auth?.type, raw)} ${raw}` };
|
|
230
250
|
}
|
|
231
251
|
|
|
232
252
|
private shouldRetryError(err: unknown, attempt: number): boolean {
|
|
@@ -109,6 +109,37 @@ describe("HttpClient on a runtime without ReadableStream, Blob or FormData", ()
|
|
|
109
109
|
expect(new Headers(init?.headers).get("Content-Type")).toBe("application/json");
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
+
it("resolves against an IPv4 base when the URL polyfill throws on it (FZ-8975)", async () => {
|
|
113
|
+
const realURL = globalThis.URL;
|
|
114
|
+
class HermesURL extends realURL {
|
|
115
|
+
constructor(url: string | URL, base?: string | URL) {
|
|
116
|
+
if (/\/\/\d+\.\d+\.\d+\.\d+/.test(`${String(base ?? "")} ${String(url)}`)) {
|
|
117
|
+
throw new TypeError("Cannot read property 'length' of undefined");
|
|
118
|
+
}
|
|
119
|
+
super(url, base);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
globalThis.URL = HermesURL as typeof URL;
|
|
123
|
+
try {
|
|
124
|
+
const client = new HttpClient("http://127.0.0.1:8011/sub/", {
|
|
125
|
+
useToken: true,
|
|
126
|
+
token: "key:secret",
|
|
127
|
+
});
|
|
128
|
+
await expect(client.get("/api/method/frappe.desk.search.search_link")).resolves.toMatchObject(
|
|
129
|
+
{
|
|
130
|
+
status: 200,
|
|
131
|
+
},
|
|
132
|
+
);
|
|
133
|
+
await client.get("api/method/ping");
|
|
134
|
+
expect(fetchMock.mock.calls.map(([url]) => String(url))).toEqual([
|
|
135
|
+
"http://127.0.0.1:8011/sub/api/method/frappe.desk.search.search_link",
|
|
136
|
+
"http://127.0.0.1:8011/sub/api/method/ping",
|
|
137
|
+
]);
|
|
138
|
+
} finally {
|
|
139
|
+
globalThis.URL = realURL;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
112
143
|
it("PUTs a JSON body over native cookie auth after the CSRF bootstrap", async () => {
|
|
113
144
|
const client = new HttpClient(baseURL);
|
|
114
145
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* persistKey with no `storage` falls back to the platform default
|
|
3
|
+
* (IndexedDBKV, else PlatformStorageKV). When that default never answers its
|
|
4
|
+
* first read, subscribe must still fetch: loading ends in rows or an error,
|
|
5
|
+
* never a silent hang (FZ-8997, LC-84). Both defaults are stubbed here with a
|
|
6
|
+
* read that never settles.
|
|
7
|
+
*/
|
|
8
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
9
|
+
import { SyncModule } from "./index";
|
|
10
|
+
import type { SubscriptionQuery } from "./types";
|
|
11
|
+
|
|
12
|
+
const hungStores = vi.hoisted(() => [] as Array<{ setItem: ReturnType<typeof vi.fn> }>);
|
|
13
|
+
|
|
14
|
+
vi.mock("./storage", () => {
|
|
15
|
+
function HungKV(this: any) {
|
|
16
|
+
this.getItem = vi.fn(() => new Promise<string | null>(() => {}));
|
|
17
|
+
this.setItem = vi.fn().mockResolvedValue(undefined);
|
|
18
|
+
this.removeItem = vi.fn().mockResolvedValue(undefined);
|
|
19
|
+
hungStores.push(this);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
return { IndexedDBKV: vi.fn(HungKV), PlatformStorageKV: vi.fn(HungKV) };
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const rows = [
|
|
26
|
+
{ name: "a1", doctype: "Account", modified: "2026-11-01T10:00:00", account_name: "Cash" },
|
|
27
|
+
{ name: "a2", doctype: "Account", modified: "2026-11-01T11:00:00", account_name: "Bank" },
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const accountQuery: SubscriptionQuery = { doctype: "Account", fields: ["account_name"] };
|
|
31
|
+
|
|
32
|
+
function createMockDb() {
|
|
33
|
+
return {
|
|
34
|
+
getDoc: vi.fn().mockResolvedValue(rows[0]),
|
|
35
|
+
getDocList: vi.fn().mockResolvedValue(rows),
|
|
36
|
+
createDoc: vi.fn(),
|
|
37
|
+
updateDoc: vi.fn(),
|
|
38
|
+
deleteDoc: vi.fn(),
|
|
39
|
+
backfill: vi.fn().mockResolvedValue({ rows: [], checkpoint: "2026-11-02T00:00:00" }),
|
|
40
|
+
} as any;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
describe("persistKey without storage when the default storage never settles", () => {
|
|
44
|
+
let modules: SyncModule[];
|
|
45
|
+
let warn: ReturnType<typeof vi.spyOn>;
|
|
46
|
+
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
vi.useFakeTimers();
|
|
49
|
+
modules = [];
|
|
50
|
+
hungStores.length = 0;
|
|
51
|
+
localStorage.clear();
|
|
52
|
+
warn = vi.spyOn(console, "warn").mockImplementation(() => {});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
afterEach(async () => {
|
|
56
|
+
for (const sync of modules) await sync.dispose();
|
|
57
|
+
vi.useRealTimers();
|
|
58
|
+
vi.restoreAllMocks();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
function createSync(db: any) {
|
|
62
|
+
const sync = new SyncModule(db, undefined, { persistKey: "k", catchUpStrategy: "snapshot" });
|
|
63
|
+
modules.push(sync);
|
|
64
|
+
return sync;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
it("fetches and returns rows instead of waiting forever", async () => {
|
|
68
|
+
const db = createMockDb();
|
|
69
|
+
const sync = createSync(db);
|
|
70
|
+
let settled = false;
|
|
71
|
+
const pending = sync.subscribe(accountQuery).finally(() => {
|
|
72
|
+
settled = true;
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
await vi.advanceTimersByTimeAsync(10_000);
|
|
76
|
+
|
|
77
|
+
expect(settled).toBe(true);
|
|
78
|
+
const result = await pending;
|
|
79
|
+
expect(db.getDocList).toHaveBeenCalledTimes(1);
|
|
80
|
+
expect(result.rows.map((row) => row.name)).toEqual(["a1", "a2"]);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("names the storage that never answered and keeps the session in memory", async () => {
|
|
84
|
+
const sync = createSync(createMockDb());
|
|
85
|
+
const pending = sync.subscribe(accountQuery);
|
|
86
|
+
await vi.advanceTimersByTimeAsync(10_000);
|
|
87
|
+
await pending;
|
|
88
|
+
|
|
89
|
+
expect(warn).toHaveBeenCalledWith(expect.stringMatching(/persistKey "k".*in memory/));
|
|
90
|
+
await vi.advanceTimersByTimeAsync(100);
|
|
91
|
+
for (const store of hungStores) expect(store.setItem).not.toHaveBeenCalled();
|
|
92
|
+
});
|
|
93
|
+
});
|
package/src/sync/persistence.ts
CHANGED
|
@@ -16,6 +16,13 @@ import { IndexedDBKV, PlatformStorageKV } from "./storage";
|
|
|
16
16
|
import type { SubscriptionManager } from "./subscriptionManager";
|
|
17
17
|
import type { SyncOptions, KVStorage, Mutation, TabCoordinationConfig, TabMessage } from "./types";
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* How long the first snapshot read may take before the session gives up on
|
|
21
|
+
* the storage and syncs in memory (FZ-8997). `SyncOptions.storageReadyTimeout`
|
|
22
|
+
* overrides it.
|
|
23
|
+
*/
|
|
24
|
+
export const DEFAULT_STORAGE_READY_TIMEOUT_MS = 3000;
|
|
25
|
+
|
|
19
26
|
/** Safe access to localStorage (undefined in Node/test envs). */
|
|
20
27
|
function getLocalStorage(): Storage | undefined {
|
|
21
28
|
try {
|
|
@@ -57,6 +64,9 @@ export class PersistenceManager {
|
|
|
57
64
|
* memory. Resolved immediately when persistence is disabled. Never rejects.
|
|
58
65
|
*/
|
|
59
66
|
private loadPromise: Promise<void> = Promise.resolve();
|
|
67
|
+
/** Set when the first read outlived its bound; a late answer is ignored. */
|
|
68
|
+
private loadAbandoned = false;
|
|
69
|
+
private loadTimer: ReturnType<typeof setTimeout> | undefined;
|
|
60
70
|
private readonly normalizedCache: NormalizedCache;
|
|
61
71
|
private readonly mutationJournal: MutationJournal;
|
|
62
72
|
private readonly subscriptionManager: SubscriptionManager;
|
|
@@ -150,8 +160,30 @@ export class PersistenceManager {
|
|
|
150
160
|
this.persistenceStorage = new PlatformStorageKV();
|
|
151
161
|
}
|
|
152
162
|
|
|
153
|
-
// Load persisted state if available; expose completion via whenReady()
|
|
154
|
-
|
|
163
|
+
// Load persisted state if available; expose completion via whenReady().
|
|
164
|
+
// The read is bounded: a storage that never answers (a stalled IndexedDB
|
|
165
|
+
// open, a store that never initialises) would otherwise park every
|
|
166
|
+
// subscribe behind whenReady() with no fetch and no error.
|
|
167
|
+
this.loadPromise = this.loadWithin(
|
|
168
|
+
this.options.storageReadyTimeout ?? DEFAULT_STORAGE_READY_TIMEOUT_MS,
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
private loadWithin(timeoutMs: number): Promise<void> {
|
|
173
|
+
const storage = this.persistenceStorage;
|
|
174
|
+
const timedOut = new Promise<"timeout">((resolve) => {
|
|
175
|
+
this.loadTimer = setTimeout(() => resolve("timeout"), timeoutMs);
|
|
176
|
+
});
|
|
177
|
+
return Promise.race([this.load().then(() => "loaded" as const), timedOut]).then((outcome) => {
|
|
178
|
+
clearTimeout(this.loadTimer);
|
|
179
|
+
this.loadTimer = undefined;
|
|
180
|
+
if (outcome !== "timeout" || this.persistenceStorage !== storage) return;
|
|
181
|
+
this.loadAbandoned = true;
|
|
182
|
+
this.persistenceStorage = undefined;
|
|
183
|
+
console.warn(
|
|
184
|
+
`[frappe-sync] the storage for persistKey "${this.options.persistKey}" did not answer its first read within ${timeoutMs} ms; this session syncs in memory and persists nothing.`,
|
|
185
|
+
);
|
|
186
|
+
});
|
|
155
187
|
}
|
|
156
188
|
|
|
157
189
|
/**
|
|
@@ -355,7 +387,7 @@ export class PersistenceManager {
|
|
|
355
387
|
if (!this.options.persistKey || !this.persistenceStorage) return;
|
|
356
388
|
try {
|
|
357
389
|
const raw = await this.persistenceStorage.getItem(this.options.persistKey);
|
|
358
|
-
if (!raw) return;
|
|
390
|
+
if (!raw || this.loadAbandoned) return;
|
|
359
391
|
const snap = JSON.parse(raw);
|
|
360
392
|
|
|
361
393
|
// Restore cache first so reads have data once subs are reinstated.
|
|
@@ -846,6 +878,8 @@ export class PersistenceManager {
|
|
|
846
878
|
|
|
847
879
|
// Cancel pending save
|
|
848
880
|
this.saveDebouncer.cancel();
|
|
881
|
+
clearTimeout(this.loadTimer);
|
|
882
|
+
this.loadTimer = undefined;
|
|
849
883
|
|
|
850
884
|
// Clear leader check interval
|
|
851
885
|
if (this.leaderCheckInterval) {
|
package/src/sync/types.ts
CHANGED
|
@@ -214,7 +214,20 @@ export interface SyncOptions {
|
|
|
214
214
|
onConflict?: (info: { doctype: string; name?: string }) => void;
|
|
215
215
|
onRetry?: (info: { id: string; operation: Operation }) => void;
|
|
216
216
|
onBackfill?: (info: { doctype: string; fetched: number; checkpoint?: string }) => void;
|
|
217
|
+
/**
|
|
218
|
+
* Where `persistKey` snapshots live. Omitted, the platform default is used:
|
|
219
|
+
* IndexedDB where it exists, else the store package's KV (MMKV on native,
|
|
220
|
+
* localStorage on web, memory on GJS). Whichever is used, a first read that
|
|
221
|
+
* takes longer than `storageReadyTimeout` is abandoned: the session warns,
|
|
222
|
+
* syncs in memory and persists nothing, so subscriptions still fetch.
|
|
223
|
+
*/
|
|
217
224
|
storage?: KVStorage;
|
|
225
|
+
/**
|
|
226
|
+
* How long, in milliseconds, the first snapshot read may take before the
|
|
227
|
+
* session gives up on `storage` and syncs in memory (default 3000). Only
|
|
228
|
+
* relevant when `persistKey` is set.
|
|
229
|
+
*/
|
|
230
|
+
storageReadyTimeout?: number;
|
|
218
231
|
versionField?: string;
|
|
219
232
|
versionFields?: Record<string, string>;
|
|
220
233
|
/**
|
package/types/core/http.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getCookie, setCookie, deleteCookie } from "@multiplatform.one/platform";
|
|
2
|
-
import { HttpMethod } from "./types";
|
|
2
|
+
import { AuthType, HttpMethod } from "./types";
|
|
3
3
|
import type { AuthConfig, RetryConfig } from "./types";
|
|
4
4
|
export { getCookie, setCookie, deleteCookie };
|
|
5
5
|
/**
|
|
@@ -20,6 +20,22 @@ export interface HttpResponse<T> {
|
|
|
20
20
|
payload: T;
|
|
21
21
|
status: number;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* A base URL's origin and path, read without `URL`: Hermes's URL polyfill
|
|
25
|
+
* (whatwg-url-minimum) throws in parseIPv4Number on an IPv4 host, so a client
|
|
26
|
+
* pointed at http://127.0.0.1:8011 failed every request on native (FZ-8975).
|
|
27
|
+
*/
|
|
28
|
+
export declare function splitBaseURL(baseURL: string): {
|
|
29
|
+
origin: string;
|
|
30
|
+
pathname: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Frappe's API key pair is `key:secret` and goes under the `token` scheme;
|
|
34
|
+
* an OAuth bearer token has no colon. A caller that names no `type` gets the
|
|
35
|
+
* scheme its token's shape says, so `{ useToken, token: "key:secret" }` no
|
|
36
|
+
* longer sends `Bearer key:secret`, which Frappe 403s (FZ-8975).
|
|
37
|
+
*/
|
|
38
|
+
export declare function authScheme(type: AuthType | undefined, token: string): AuthType;
|
|
23
39
|
export declare function trimTrailingSlashes(value: string): string;
|
|
24
40
|
export declare class HttpClient {
|
|
25
41
|
private readonly retryConfig;
|
package/types/core/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAY,MAAM,6BAA6B,CAAC;AAG3F,OAAO,EAAe,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,12 @@ import type { MutationJournal } from "./mutationJournal";
|
|
|
10
10
|
import type { NormalizedCache } from "./normalizedCache";
|
|
11
11
|
import type { SubscriptionManager } from "./subscriptionManager";
|
|
12
12
|
import type { SyncOptions, Mutation } from "./types";
|
|
13
|
+
/**
|
|
14
|
+
* How long the first snapshot read may take before the session gives up on
|
|
15
|
+
* the storage and syncs in memory (FZ-8997). `SyncOptions.storageReadyTimeout`
|
|
16
|
+
* overrides it.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_STORAGE_READY_TIMEOUT_MS = 3000;
|
|
13
19
|
/**
|
|
14
20
|
* Manages persistence of sync state across sessions with active tab priority leadership.
|
|
15
21
|
*/
|
|
@@ -38,6 +44,9 @@ export declare class PersistenceManager {
|
|
|
38
44
|
* memory. Resolved immediately when persistence is disabled. Never rejects.
|
|
39
45
|
*/
|
|
40
46
|
private loadPromise;
|
|
47
|
+
/** Set when the first read outlived its bound; a late answer is ignored. */
|
|
48
|
+
private loadAbandoned;
|
|
49
|
+
private loadTimer;
|
|
41
50
|
private readonly normalizedCache;
|
|
42
51
|
private readonly mutationJournal;
|
|
43
52
|
private readonly subscriptionManager;
|
|
@@ -54,6 +63,7 @@ export declare class PersistenceManager {
|
|
|
54
63
|
* Sets up persistence storage based on environment and options.
|
|
55
64
|
*/
|
|
56
65
|
private setupPersistence;
|
|
66
|
+
private loadWithin;
|
|
57
67
|
/**
|
|
58
68
|
* Sets up BroadcastChannel for cross-tab coordination.
|
|
59
69
|
* Handles both simple string messages and structured TabMessage types.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/sync/persistence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAa,QAAQ,EAAqC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/sync/persistence.ts"],"names":[],"mappings":"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"}
|
package/types/sync/types.d.ts
CHANGED
|
@@ -210,7 +210,20 @@ export interface SyncOptions {
|
|
|
210
210
|
fetched: number;
|
|
211
211
|
checkpoint?: string;
|
|
212
212
|
}) => void;
|
|
213
|
+
/**
|
|
214
|
+
* Where `persistKey` snapshots live. Omitted, the platform default is used:
|
|
215
|
+
* IndexedDB where it exists, else the store package's KV (MMKV on native,
|
|
216
|
+
* localStorage on web, memory on GJS). Whichever is used, a first read that
|
|
217
|
+
* takes longer than `storageReadyTimeout` is abandoned: the session warns,
|
|
218
|
+
* syncs in memory and persists nothing, so subscriptions still fetch.
|
|
219
|
+
*/
|
|
213
220
|
storage?: KVStorage;
|
|
221
|
+
/**
|
|
222
|
+
* How long, in milliseconds, the first snapshot read may take before the
|
|
223
|
+
* session gives up on `storage` and syncs in memory (default 3000). Only
|
|
224
|
+
* relevant when `persistKey` is set.
|
|
225
|
+
*/
|
|
226
|
+
storageReadyTimeout?: number;
|
|
214
227
|
versionField?: string;
|
|
215
228
|
versionFields?: Record<string, string>;
|
|
216
229
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
|