@proappstore/sdk 1.16.95 → 1.16.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/offline/downloads.d.ts +44 -0
- package/dist/offline/downloads.d.ts.map +1 -0
- package/dist/offline/downloads.js +221 -0
- package/dist/offline/downloads.js.map +1 -0
- package/dist/offline/jobs.d.ts +78 -0
- package/dist/offline/jobs.d.ts.map +1 -0
- package/dist/offline/jobs.js +204 -0
- package/dist/offline/jobs.js.map +1 -0
- package/dist/offline/locks.d.ts +6 -0
- package/dist/offline/locks.d.ts.map +1 -0
- package/dist/offline/locks.js +47 -0
- package/dist/offline/locks.js.map +1 -0
- package/dist/offline/store.d.ts +94 -0
- package/dist/offline/store.d.ts.map +1 -0
- package/dist/offline/store.js +260 -0
- package/dist/offline/store.js.map +1 -0
- package/dist/offline.d.ts +8 -0
- package/dist/offline.d.ts.map +1 -0
- package/dist/offline.js +5 -0
- package/dist/offline.js.map +1 -0
- package/dist/sdk-version.js +1 -1
- package/dist/shell-resilience.d.ts +3 -1
- package/dist/shell-resilience.d.ts.map +1 -1
- package/dist/shell-resilience.js +2 -2
- package/dist/shell-resilience.js.map +1 -1
- package/dist/shell.d.ts +11 -2
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +30 -11
- package/dist/shell.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/offline/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../src/offline/locks.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,UAAQ,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAuB/M"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { OfflineError } from './store.js';
|
|
2
|
+
// Web Locks coordinate tabs/workers. Non-browser tests use realm-local queues.
|
|
3
|
+
const queues = new Map();
|
|
4
|
+
const readers = new Map();
|
|
5
|
+
export async function offlineLock(name, work, requireBrowserLock = false, options = {}) {
|
|
6
|
+
if (typeof navigator !== 'undefined' && navigator.locks) {
|
|
7
|
+
return navigator.locks.request(`pas:${name}`, options, (lock) => {
|
|
8
|
+
if (!lock)
|
|
9
|
+
throw new OfflineError('busy', 'Local work is active. Cancel or finish it before clearing storage.');
|
|
10
|
+
return work();
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
if (requireBrowserLock && (typeof window !== 'undefined' || typeof self !== 'undefined'))
|
|
14
|
+
throw new OfflineError('unavailable', 'This browser cannot coordinate offline work between tabs.');
|
|
15
|
+
const run = () => { if (options.signal?.aborted)
|
|
16
|
+
throw new DOMException('Work cancelled.', 'AbortError'); return work(); };
|
|
17
|
+
if (options.ifAvailable && ((readers.get(name) ?? 0) > 0 || queues.has(name)))
|
|
18
|
+
throw new OfflineError('busy', 'Local work is active. Cancel or finish it before clearing storage.');
|
|
19
|
+
if (options.mode === 'shared') {
|
|
20
|
+
// Purge uses ifAvailable and never queues a writer ahead of nested readers.
|
|
21
|
+
const exclusive = queues.get(name);
|
|
22
|
+
if (exclusive)
|
|
23
|
+
await exclusive.catch(() => { });
|
|
24
|
+
readers.set(name, (readers.get(name) ?? 0) + 1);
|
|
25
|
+
try {
|
|
26
|
+
return await run();
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
const count = (readers.get(name) ?? 1) - 1;
|
|
30
|
+
if (count)
|
|
31
|
+
readers.set(name, count);
|
|
32
|
+
else
|
|
33
|
+
readers.delete(name);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const prior = queues.get(name) ?? Promise.resolve();
|
|
37
|
+
const next = prior.catch(() => { }).then(run);
|
|
38
|
+
queues.set(name, next);
|
|
39
|
+
try {
|
|
40
|
+
return await next;
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
if (queues.get(name) === next)
|
|
44
|
+
queues.delete(name);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=locks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locks.js","sourceRoot":"","sources":["../../src/offline/locks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;AACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC1C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,IAAY,EAAE,IAAsB,EAAE,kBAAkB,GAAG,KAAK,EAAE,UAA0F,EAAE;IACjM,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9D,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,oEAAoE,CAAC,CAAC;YAChH,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,kBAAkB,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,2DAA2D,CAAC,CAAC;IAC7L,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3H,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,oEAAoE,CAAC,CAAC;IACpL,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,4EAA4E;QAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,SAAS;YAAE,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC;YAAC,OAAO,MAAM,GAAG,EAAE,CAAC;QAAC,CAAC;gBACnB,CAAC;YAAC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;gBAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;IACzH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC;QAAC,OAAO,MAAM,IAAI,CAAC;IAAC,CAAC;YAClB,CAAC;QAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/** Intentional local content, not a cache of authenticated API responses. */
|
|
2
|
+
export type OfflineScope = Readonly<{
|
|
3
|
+
kind: 'device';
|
|
4
|
+
} | {
|
|
5
|
+
kind: 'account';
|
|
6
|
+
ownerId: string;
|
|
7
|
+
}>;
|
|
8
|
+
export type OfflineErrorCode = 'unavailable' | 'closed' | 'access-denied' | 'quota' | 'blocked' | 'invalid' | 'storage' | 'integrity' | 'network' | 'busy';
|
|
9
|
+
export declare class OfflineError extends Error {
|
|
10
|
+
readonly code: OfflineErrorCode;
|
|
11
|
+
constructor(code: OfflineErrorCode, message: string, options?: ErrorOptions);
|
|
12
|
+
}
|
|
13
|
+
export type OfflineStoreOptions = {
|
|
14
|
+
appId: string;
|
|
15
|
+
indexedDB?: IDBFactory;
|
|
16
|
+
} & ({
|
|
17
|
+
scope: {
|
|
18
|
+
kind: 'device';
|
|
19
|
+
};
|
|
20
|
+
canAccess?: () => boolean;
|
|
21
|
+
} | {
|
|
22
|
+
scope: {
|
|
23
|
+
kind: 'account';
|
|
24
|
+
ownerId: string;
|
|
25
|
+
};
|
|
26
|
+
canAccess: () => boolean;
|
|
27
|
+
});
|
|
28
|
+
export interface LocalRecord<T = unknown> {
|
|
29
|
+
id: string;
|
|
30
|
+
value: T;
|
|
31
|
+
updatedAt: number;
|
|
32
|
+
blobBytes: number;
|
|
33
|
+
blobType: string | null;
|
|
34
|
+
}
|
|
35
|
+
export interface LocalWrite<T = unknown> {
|
|
36
|
+
id: string;
|
|
37
|
+
value: T;
|
|
38
|
+
blob?: Blob;
|
|
39
|
+
}
|
|
40
|
+
export interface LocalPage {
|
|
41
|
+
after?: string;
|
|
42
|
+
limit?: number;
|
|
43
|
+
}
|
|
44
|
+
export type OfflineTable = 'records' | 'blobs' | 'downloads' | 'jobs' | 'outbox';
|
|
45
|
+
export declare const OFFLINE_SCHEMA_VERSION = 2;
|
|
46
|
+
export declare function offlineFailure(error: unknown): OfflineError;
|
|
47
|
+
/** Every handle stays bound to one app/owner. close() locks it; clear() deletes it. */
|
|
48
|
+
export declare class OfflineStore {
|
|
49
|
+
readonly scope: OfflineScope;
|
|
50
|
+
readonly appId: string;
|
|
51
|
+
readonly databaseName: string;
|
|
52
|
+
private readonly factory;
|
|
53
|
+
private readonly canAccess;
|
|
54
|
+
private closed;
|
|
55
|
+
private readonly active;
|
|
56
|
+
constructor(options: OfflineStoreOptions);
|
|
57
|
+
assertAccess(): void;
|
|
58
|
+
close(): void;
|
|
59
|
+
private open;
|
|
60
|
+
/** @internal Shared transaction primitive for the opt-in offline modules. */
|
|
61
|
+
transaction<T>(tables: OfflineTable[], mode: IDBTransactionMode, work: (tx: IDBTransaction, done: (value: T) => void) => void): Promise<T>;
|
|
62
|
+
/** @internal */
|
|
63
|
+
read<T>(table: OfflineTable, id: string): Promise<T | null>;
|
|
64
|
+
/** @internal */
|
|
65
|
+
write<T>(table: OfflineTable, id: string, value: T): Promise<void>;
|
|
66
|
+
/** @internal Bounded cursor listing; metadata stores contain no audio bytes. */
|
|
67
|
+
page<T>(table: OfflineTable, options?: LocalPage): Promise<T[]>;
|
|
68
|
+
put<T>(entry: LocalWrite<T>): Promise<LocalRecord<T>>;
|
|
69
|
+
get<T = unknown>(id: string): Promise<LocalRecord<T> | null>;
|
|
70
|
+
getBlob(id: string): Promise<Blob | null>;
|
|
71
|
+
list<T = unknown>(options?: LocalPage): Promise<LocalRecord<T>[]>;
|
|
72
|
+
delete(id: string): Promise<void>;
|
|
73
|
+
/** @internal Shared lease excludes purge until durable work finishes. */
|
|
74
|
+
runWork<T>(work: () => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
75
|
+
/** Rejects busy while SDK jobs/downloads/sync are active. Cancel and await runners before retrying. */
|
|
76
|
+
clear(): Promise<void>;
|
|
77
|
+
/** Portable JSON export of one user-selected record, including an optional base64 blob. */
|
|
78
|
+
exportRecord(id: string): Promise<Blob>;
|
|
79
|
+
}
|
|
80
|
+
export declare function createOfflineStore(options: OfflineStoreOptions): OfflineStore;
|
|
81
|
+
/** Call on explicit logout/account changes; closing never deletes unsynced work. */
|
|
82
|
+
export declare function bindOfflineAccount(store: OfflineStore, auth: {
|
|
83
|
+
onChange: (listener: (user: {
|
|
84
|
+
id: string;
|
|
85
|
+
} | null) => void) => () => void;
|
|
86
|
+
}): () => void;
|
|
87
|
+
/** Persistence is a request, never a promise that the browser cannot remove data. */
|
|
88
|
+
export declare function localStorageStatus(requestPersistence?: boolean): Promise<{
|
|
89
|
+
supported: boolean;
|
|
90
|
+
persisted: boolean;
|
|
91
|
+
usage: number | null;
|
|
92
|
+
quota: number | null;
|
|
93
|
+
}>;
|
|
94
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/offline/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { offlineLock } from './locks.js';
|
|
2
|
+
export class OfflineError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
constructor(code, message, options) {
|
|
5
|
+
super(message, options);
|
|
6
|
+
this.code = code;
|
|
7
|
+
this.name = 'OfflineError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const TABLES = ['records', 'blobs', 'downloads', 'jobs', 'outbox'];
|
|
11
|
+
export const OFFLINE_SCHEMA_VERSION = 2;
|
|
12
|
+
export function offlineFailure(error) {
|
|
13
|
+
if (error instanceof OfflineError)
|
|
14
|
+
return error;
|
|
15
|
+
return new OfflineError(error instanceof DOMException && error.name === 'QuotaExceededError' ? 'quota' : 'storage', 'Local storage operation failed.', { cause: error });
|
|
16
|
+
}
|
|
17
|
+
function key(value) {
|
|
18
|
+
if (!value || value.length > 512)
|
|
19
|
+
throw new OfflineError('invalid', 'A non-empty key of at most 512 characters is required.');
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
/** Every handle stays bound to one app/owner. close() locks it; clear() deletes it. */
|
|
23
|
+
export class OfflineStore {
|
|
24
|
+
scope;
|
|
25
|
+
appId;
|
|
26
|
+
databaseName;
|
|
27
|
+
factory;
|
|
28
|
+
canAccess;
|
|
29
|
+
closed = false;
|
|
30
|
+
active = new Set();
|
|
31
|
+
constructor(options) {
|
|
32
|
+
this.appId = key(options.appId);
|
|
33
|
+
this.scope = Object.freeze({ ...options.scope });
|
|
34
|
+
if (this.scope.kind !== 'device' && this.scope.kind !== 'account')
|
|
35
|
+
throw new OfflineError('invalid', 'Unknown local-content scope.');
|
|
36
|
+
if (this.scope.kind === 'account') {
|
|
37
|
+
key(this.scope.ownerId);
|
|
38
|
+
if (typeof options.canAccess !== 'function')
|
|
39
|
+
throw new OfflineError('invalid', 'Account-local content requires an explicit canAccess decision.');
|
|
40
|
+
}
|
|
41
|
+
this.canAccess = options.canAccess;
|
|
42
|
+
this.databaseName = `pas-offline:${JSON.stringify([this.appId, this.scope.kind, this.scope.kind === 'account' ? this.scope.ownerId : null])}`;
|
|
43
|
+
const factory = options.indexedDB ?? globalThis.indexedDB;
|
|
44
|
+
if (!factory)
|
|
45
|
+
throw new OfflineError('unavailable', 'IndexedDB is unavailable on this device.');
|
|
46
|
+
this.factory = factory;
|
|
47
|
+
this.assertAccess();
|
|
48
|
+
}
|
|
49
|
+
assertAccess() {
|
|
50
|
+
if (this.closed)
|
|
51
|
+
throw new OfflineError('closed', 'This local-content handle has been closed.');
|
|
52
|
+
if (this.canAccess && !this.canAccess()) {
|
|
53
|
+
this.close();
|
|
54
|
+
throw new OfflineError('access-denied', 'Local content is locked for this account.');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
close() {
|
|
58
|
+
this.closed = true;
|
|
59
|
+
for (const tx of this.active) {
|
|
60
|
+
try {
|
|
61
|
+
tx.abort();
|
|
62
|
+
}
|
|
63
|
+
catch { /* Already committed. */ }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
open() {
|
|
67
|
+
this.assertAccess();
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
let refused = false;
|
|
70
|
+
let request;
|
|
71
|
+
try {
|
|
72
|
+
request = this.factory.open(this.databaseName, OFFLINE_SCHEMA_VERSION);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
reject(offlineFailure(error));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
request.onupgradeneeded = () => {
|
|
79
|
+
// Version 1 held records/blobs; version 2 adds resumable work. Existing data survives.
|
|
80
|
+
for (const table of TABLES)
|
|
81
|
+
if (!request.result.objectStoreNames.contains(table))
|
|
82
|
+
request.result.createObjectStore(table);
|
|
83
|
+
};
|
|
84
|
+
request.onblocked = () => {
|
|
85
|
+
refused = true;
|
|
86
|
+
reject(new OfflineError('blocked', 'Another tab is blocking the local database upgrade. Close it and retry.'));
|
|
87
|
+
};
|
|
88
|
+
request.onerror = () => reject(offlineFailure(request.error));
|
|
89
|
+
request.onsuccess = () => {
|
|
90
|
+
const db = request.result;
|
|
91
|
+
db.onversionchange = () => db.close();
|
|
92
|
+
if (refused) {
|
|
93
|
+
db.close();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
this.assertAccess();
|
|
98
|
+
resolve(db);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
db.close();
|
|
102
|
+
reject(error);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/** @internal Shared transaction primitive for the opt-in offline modules. */
|
|
108
|
+
async transaction(tables, mode, work) {
|
|
109
|
+
const db = await this.open();
|
|
110
|
+
try {
|
|
111
|
+
this.assertAccess();
|
|
112
|
+
return await new Promise((resolve, reject) => {
|
|
113
|
+
const tx = db.transaction(tables, mode);
|
|
114
|
+
this.active.add(tx);
|
|
115
|
+
let value;
|
|
116
|
+
let thrown;
|
|
117
|
+
tx.oncomplete = () => {
|
|
118
|
+
this.active.delete(tx);
|
|
119
|
+
try {
|
|
120
|
+
this.assertAccess();
|
|
121
|
+
resolve(value);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
reject(error);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
tx.onabort = () => { this.active.delete(tx); reject(offlineFailure(thrown ?? tx.error)); };
|
|
128
|
+
tx.onerror = () => { };
|
|
129
|
+
try {
|
|
130
|
+
work(tx, (next) => { value = next; });
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
thrown = error;
|
|
134
|
+
tx.abort();
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
throw offlineFailure(error);
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
db.close();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** @internal */
|
|
146
|
+
read(table, id) {
|
|
147
|
+
return this.transaction([table], 'readonly', (tx, done) => {
|
|
148
|
+
const request = tx.objectStore(table).get(id);
|
|
149
|
+
request.onsuccess = () => done(request.result ?? null);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/** @internal */
|
|
153
|
+
write(table, id, value) {
|
|
154
|
+
return this.transaction([table], 'readwrite', (tx, done) => { tx.objectStore(table).put(value, id); done(undefined); });
|
|
155
|
+
}
|
|
156
|
+
/** @internal Bounded cursor listing; metadata stores contain no audio bytes. */
|
|
157
|
+
page(table, options = {}) {
|
|
158
|
+
const limit = options.limit ?? 50;
|
|
159
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > 200)
|
|
160
|
+
throw new OfflineError('invalid', 'Page limit must be between 1 and 200.');
|
|
161
|
+
return this.transaction([table], 'readonly', (tx, done) => {
|
|
162
|
+
const rows = [];
|
|
163
|
+
const request = tx.objectStore(table).openCursor();
|
|
164
|
+
request.onsuccess = () => {
|
|
165
|
+
const cursor = request.result;
|
|
166
|
+
if (!cursor || rows.length >= limit) {
|
|
167
|
+
done(rows);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (options.after === undefined || String(cursor.key) > options.after)
|
|
171
|
+
rows.push(cursor.value);
|
|
172
|
+
if (rows.length === limit)
|
|
173
|
+
done(rows);
|
|
174
|
+
else
|
|
175
|
+
cursor.continue();
|
|
176
|
+
};
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
async put(entry) {
|
|
180
|
+
key(entry.id);
|
|
181
|
+
const record = { id: entry.id, value: entry.value, updatedAt: Date.now(), blobBytes: entry.blob?.size ?? 0, blobType: entry.blob?.type ?? null };
|
|
182
|
+
return this.transaction(['records', 'blobs'], 'readwrite', (tx, done) => {
|
|
183
|
+
tx.objectStore('records').put(record, entry.id);
|
|
184
|
+
if (entry.blob)
|
|
185
|
+
tx.objectStore('blobs').put(entry.blob, `record:${entry.id}`);
|
|
186
|
+
else
|
|
187
|
+
tx.objectStore('blobs').delete(`record:${entry.id}`);
|
|
188
|
+
done(record);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
get(id) { return this.read('records', key(id)); }
|
|
192
|
+
getBlob(id) { return this.read('blobs', `record:${key(id)}`); }
|
|
193
|
+
list(options = {}) { return this.page('records', options); }
|
|
194
|
+
delete(id) {
|
|
195
|
+
key(id);
|
|
196
|
+
return this.transaction(['records', 'blobs'], 'readwrite', (tx, done) => {
|
|
197
|
+
tx.objectStore('records').delete(id);
|
|
198
|
+
tx.objectStore('blobs').delete(`record:${id}`);
|
|
199
|
+
done(undefined);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
/** @internal Shared lease excludes purge until durable work finishes. */
|
|
203
|
+
runWork(work, signal) {
|
|
204
|
+
return offlineLock(`${this.databaseName}:work`, work, true, { mode: 'shared', ...(signal ? { signal } : {}) });
|
|
205
|
+
}
|
|
206
|
+
/** Rejects busy while SDK jobs/downloads/sync are active. Cancel and await runners before retrying. */
|
|
207
|
+
clear() {
|
|
208
|
+
return offlineLock(`${this.databaseName}:work`, () => this.transaction(TABLES, 'readwrite', (tx, done) => { for (const table of TABLES)
|
|
209
|
+
tx.objectStore(table).clear(); done(undefined); }), true, { ifAvailable: true });
|
|
210
|
+
}
|
|
211
|
+
/** Portable JSON export of one user-selected record, including an optional base64 blob. */
|
|
212
|
+
async exportRecord(id) {
|
|
213
|
+
const snapshot = await this.transaction(['records', 'blobs'], 'readonly', (tx, done) => {
|
|
214
|
+
const record = tx.objectStore('records').get(key(id));
|
|
215
|
+
const blob = tx.objectStore('blobs').get(`record:${id}`);
|
|
216
|
+
blob.onsuccess = () => done({ record: record.result ?? null, blob: blob.result ?? null });
|
|
217
|
+
});
|
|
218
|
+
if (!snapshot.record)
|
|
219
|
+
throw new OfflineError('invalid', 'The local record does not exist.');
|
|
220
|
+
let base64 = null;
|
|
221
|
+
if (snapshot.blob) {
|
|
222
|
+
const bytes = new Uint8Array(await snapshot.blob.arrayBuffer());
|
|
223
|
+
const parts = [];
|
|
224
|
+
for (let start = 0; start < bytes.length; start += 0x8000)
|
|
225
|
+
parts.push(String.fromCharCode(...bytes.subarray(start, start + 0x8000)));
|
|
226
|
+
base64 = btoa(parts.join(''));
|
|
227
|
+
}
|
|
228
|
+
this.assertAccess();
|
|
229
|
+
return new Blob([JSON.stringify({ format: 'pas-local-record', version: 1, appId: this.appId, scope: this.scope, record: snapshot.record, base64 })], { type: 'application/json' });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
export function createOfflineStore(options) { return new OfflineStore(options); }
|
|
233
|
+
/** Call on explicit logout/account changes; closing never deletes unsynced work. */
|
|
234
|
+
export function bindOfflineAccount(store, auth) {
|
|
235
|
+
const scope = store.scope;
|
|
236
|
+
if (scope.kind !== 'account')
|
|
237
|
+
throw new OfflineError('invalid', 'Only account-local stores bind to account changes.');
|
|
238
|
+
// Broadcast only a revocation bit within this app/owner namespace; never credentials.
|
|
239
|
+
const channel = typeof BroadcastChannel === 'undefined' ? null : new BroadcastChannel(`${store.databaseName}:access`);
|
|
240
|
+
if (channel)
|
|
241
|
+
channel.onmessage = (event) => { if (event.data === 'lock')
|
|
242
|
+
store.close(); };
|
|
243
|
+
const unsubscribe = auth.onChange((user) => {
|
|
244
|
+
if (!user || user.id !== scope.ownerId) {
|
|
245
|
+
store.close();
|
|
246
|
+
channel?.postMessage('lock');
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
return () => { unsubscribe(); channel?.close(); };
|
|
250
|
+
}
|
|
251
|
+
/** Persistence is a request, never a promise that the browser cannot remove data. */
|
|
252
|
+
export async function localStorageStatus(requestPersistence = false) {
|
|
253
|
+
const storage = typeof navigator === 'undefined' ? undefined : navigator.storage;
|
|
254
|
+
if (!storage)
|
|
255
|
+
return { supported: false, persisted: false, usage: null, quota: null };
|
|
256
|
+
const estimate = await storage.estimate();
|
|
257
|
+
const persisted = (await storage.persisted()) || (requestPersistence ? await storage.persist() : false);
|
|
258
|
+
return { supported: true, persisted, usage: estimate.usage ?? null, quota: estimate.quota ?? null };
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/offline/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Optional local-content APIs. Import from @proappstore/sdk/offline. */
|
|
2
|
+
export { createOfflineStore, OfflineStore, OfflineError, bindOfflineAccount, localStorageStatus, OFFLINE_SCHEMA_VERSION } from './offline/store.js';
|
|
3
|
+
export type { OfflineStoreOptions, OfflineScope, OfflineErrorCode, LocalRecord, LocalWrite, LocalPage } from './offline/store.js';
|
|
4
|
+
export { createDownloadManager, DownloadManager } from './offline/downloads.js';
|
|
5
|
+
export type { DownloadManifest, DownloadOptions, DownloadManagerOptions, DownloadStatus, DownloadProgress } from './offline/downloads.js';
|
|
6
|
+
export { createLocalJobs, LocalJobs, createSyncQueue, SyncQueue } from './offline/jobs.js';
|
|
7
|
+
export type { LocalJob, LocalJobStatus, LocalJobContext, LocalJobHandler, SyncOperation, SyncHandler } from './offline/jobs.js';
|
|
8
|
+
//# sourceMappingURL=offline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline.d.ts","sourceRoot":"","sources":["../src/offline.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACpJ,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClI,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1I,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3F,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/offline.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Optional local-content APIs. Import from @proappstore/sdk/offline. */
|
|
2
|
+
export { createOfflineStore, OfflineStore, OfflineError, bindOfflineAccount, localStorageStatus, OFFLINE_SCHEMA_VERSION } from './offline/store.js';
|
|
3
|
+
export { createDownloadManager, DownloadManager } from './offline/downloads.js';
|
|
4
|
+
export { createLocalJobs, LocalJobs, createSyncQueue, SyncQueue } from './offline/jobs.js';
|
|
5
|
+
//# sourceMappingURL=offline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline.js","sourceRoot":"","sources":["../src/offline.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEpJ,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/sdk-version.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* placeholder: `scripts/stamp-version.mjs` writes the package.json version into
|
|
4
4
|
* dist on build and again on prepack, after publish.yml has bumped it.
|
|
5
5
|
*/
|
|
6
|
-
export const SDK_VERSION = '1.16.
|
|
6
|
+
export const SDK_VERSION = '1.16.96';
|
|
7
7
|
//# sourceMappingURL=sdk-version.js.map
|
|
@@ -67,7 +67,9 @@ export declare function useOnline(): boolean;
|
|
|
67
67
|
* live region is always present, so the change is announced. Dismissible;
|
|
68
68
|
* clears itself on reconnect, and a later drop shows it again.
|
|
69
69
|
*/
|
|
70
|
-
export declare function OfflineBanner(
|
|
70
|
+
export declare function OfflineBanner({ local }?: {
|
|
71
|
+
local?: boolean;
|
|
72
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
71
73
|
/** The first focusable element: hidden until focused, moves focus to the shell's `<main id="main">`. */
|
|
72
74
|
export declare function SkipLink({ mainRef }: {
|
|
73
75
|
mainRef: RefObject<HTMLElement | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-resilience.d.ts","sourceRoot":"","sources":["../src/shell-resilience.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAQT,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,mDAAmD;IACnD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IACjE,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACpE,KAAK,EAAE,aAAa,CAAkD;IAE/E,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAIvE,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAIjG,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAKjE,KAAK,QAAO,IAAI,CAAmC;IAE1C,MAAM,IAAI,SAAS;CAc7B;AAID,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,MAAM,CAAC;IAC1D,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAcD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAInC;AAkBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAqBlE;AAID,+EAA+E;AAC/E,wBAAgB,SAAS,IAAI,OAAO,CAcnC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"shell-resilience.d.ts","sourceRoot":"","sources":["../src/shell-resilience.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAQT,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,mDAAmD;IACnD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IACjE,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACpE,KAAK,EAAE,aAAa,CAAkD;IAE/E,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAIvE,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAIjG,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAKjE,KAAK,QAAO,IAAI,CAAmC;IAE1C,MAAM,IAAI,SAAS;CAc7B;AAID,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,MAAM,CAAC;IAC1D,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAcD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI,QAAQ,CAInC;AAkBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAqBlE;AAID,+EAA+E;AAC/E,wBAAgB,SAAS,IAAI,OAAO,CAcnC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,2CAkBxE;AAID,wGAAwG;AACxG,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;CAAE,2CAe/E;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI,CA0CxH"}
|
package/dist/shell-resilience.js
CHANGED
|
@@ -97,14 +97,14 @@ export function useOnline() {
|
|
|
97
97
|
* live region is always present, so the change is announced. Dismissible;
|
|
98
98
|
* clears itself on reconnect, and a later drop shows it again.
|
|
99
99
|
*/
|
|
100
|
-
export function OfflineBanner() {
|
|
100
|
+
export function OfflineBanner({ local = false } = {}) {
|
|
101
101
|
const online = useOnline();
|
|
102
102
|
const [dismissed, setDismissed] = useState(false);
|
|
103
103
|
useEffect(() => {
|
|
104
104
|
if (online)
|
|
105
105
|
setDismissed(false);
|
|
106
106
|
}, [online]);
|
|
107
|
-
return (_jsx("div", { role: "status", "aria-live": "polite", children: !online && !dismissed && (_jsxs("div", { className: "pas-offline flex items-center justify-between gap-3 text-sm", children: [_jsx("span", { children: "You're offline. Changes can't be saved until the connection is back." }), _jsx("button", { type: "button", className: "pas-dismiss min-h-11 min-w-11", "aria-label": "Dismiss offline notice", onClick: () => setDismissed(true), children: "\u00D7" })] })) }));
|
|
107
|
+
return (_jsx("div", { role: "status", "aria-live": "polite", children: !online && !dismissed && (_jsxs("div", { className: "pas-offline flex items-center justify-between gap-3 text-sm", children: [_jsx("span", { children: local ? "You're offline. Local content is available; cloud services need a connection." : "You're offline. Changes can't be saved until the connection is back." }), _jsx("button", { type: "button", className: "pas-dismiss min-h-11 min-w-11", "aria-label": "Dismiss offline notice", onClick: () => setDismissed(true), children: "\u00D7" })] })) }));
|
|
108
108
|
}
|
|
109
109
|
// ── Skip link ───────────────────────────────────────────────────
|
|
110
110
|
/** The first focusable element: hidden until focused, moves focus to the shell's `<main id="main">`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-resilience.js","sourceRoot":"","sources":["../src/shell-resilience.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAIT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAuBrE;;;;;GAKG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAuC;IACpE,KAAK,GAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE/E,MAAM,CAAC,wBAAwB,CAAC,KAAc;QAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAoB,EAAE,KAAoB;QACxE,OAAO,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,CAAC;IAEQ,iBAAiB,CAAC,KAAc,EAAE,IAAe;QACxD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM;QACb,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxF,OAAO,CACL,eAAK,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,+FAA+F,aACzH,gDAA6B,EAC7B,mJAA+H,EAC/H,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,mEAAmE,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,0BAE9G,IACL,CACP,CAAC;IACJ,CAAC;CACF;AAyBD,iEAAiE;AACjE,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,YAAY,GAAG,aAAa,CAAkB,IAAI,CAAC,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAA2D;IAC9F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpE,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1C,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,kBAAe,KAAK,CAAC,OAAO,aAC/F,yBAAO,KAAK,CAAC,OAAO,GAAQ,EAC5B,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,gBAAY,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,uBAE9G,IACL,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAA2B;IACjE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,OAAe,EAAE,UAAwB,EAAE,EAAE,EAAE;QACvE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAgB,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACnH,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhE,OAAO,CACL,MAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG,aAC9B,QAAQ,EACT,cAAK,IAAI,EAAC,QAAQ,eAAW,QAAQ,EAAC,SAAS,EAAC,4FAA4F,YACzI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAC,SAAS,IAAgB,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,IAA1C,KAAK,CAAC,EAAE,CAAsC,CAAC,GAClF,IACgB,CACzB,CAAC;AACJ,CAAC;AAED,mEAAmE;AAEnE,+EAA+E;AAC/E,MAAM,UAAU,SAAS;IACvB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACzG,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;
|
|
1
|
+
{"version":3,"file":"shell-resilience.js","sourceRoot":"","sources":["../src/shell-resilience.tsx"],"names":[],"mappings":"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"}
|
package/dist/shell.d.ts
CHANGED
|
@@ -30,6 +30,10 @@ export interface AppShellRenderContext {
|
|
|
30
30
|
* A custom `renderTopbar` should place it. */
|
|
31
31
|
nav: ReactNode;
|
|
32
32
|
}
|
|
33
|
+
/** Local chrome may render while auth is pending or signed out. No synthetic user. */
|
|
34
|
+
export type LocalAppShellRenderContext = Omit<AppShellRenderContext, 'user'> & {
|
|
35
|
+
user: User | null;
|
|
36
|
+
};
|
|
33
37
|
/** @deprecated Use AppShellRenderContext. Retained for the next major version. */
|
|
34
38
|
export type ProShellRenderContext = AppShellRenderContext;
|
|
35
39
|
export interface AppShellNavContext {
|
|
@@ -44,8 +48,10 @@ export type ProShellNavContext = AppShellNavContext;
|
|
|
44
48
|
export interface AppShellProps {
|
|
45
49
|
/** The ProAppStore SDK instance from initPro(). */
|
|
46
50
|
app: ProAppStore;
|
|
47
|
-
/**
|
|
51
|
+
/** App content. Authenticated by default; local mode renders independently of cloud auth. */
|
|
48
52
|
children: ReactNode;
|
|
53
|
+
/** Opt-in device/local content. Does not authorize cloud calls or change private-app hosting. */
|
|
54
|
+
access?: 'authenticated' | 'local';
|
|
49
55
|
/** App name shown in the topbar. */
|
|
50
56
|
appName?: string;
|
|
51
57
|
/**
|
|
@@ -101,6 +107,9 @@ export interface AppShellProps {
|
|
|
101
107
|
renderTopbar?: (ctx: AppShellRenderContext) => ReactNode;
|
|
102
108
|
/** Replace the default footer. Return null to omit it. */
|
|
103
109
|
renderFooter?: (ctx: AppShellRenderContext) => ReactNode;
|
|
110
|
+
/** Local-mode custom chrome. Existing authenticated callbacks are never given a null user. */
|
|
111
|
+
renderLocalTopbar?: (ctx: LocalAppShellRenderContext) => ReactNode;
|
|
112
|
+
renderLocalFooter?: (ctx: LocalAppShellRenderContext) => ReactNode;
|
|
104
113
|
/**
|
|
105
114
|
* Replace the fallback shown when a screen throws while rendering (#236).
|
|
106
115
|
* The error is already recorded via `app.logs`; call `reset` to retry.
|
|
@@ -141,7 +150,7 @@ export type ProShellProps = AppShellProps;
|
|
|
141
150
|
* }
|
|
142
151
|
* ```
|
|
143
152
|
*/
|
|
144
|
-
export declare function AppShell({ app, children, appName, branding, providers, nav, renderNav, onNavigate, allowFree, showThemeToggle, menuItems, hideTopbar, hideFooter, renderTopbar, renderFooter, renderError, renderLoading, }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
153
|
+
export declare function AppShell({ app, children, access, appName, branding, providers, nav, renderNav, onNavigate, allowFree, showThemeToggle, menuItems, hideTopbar, hideFooter, renderTopbar, renderFooter, renderLocalTopbar, renderLocalFooter, renderError, renderLoading, }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
145
154
|
/** @deprecated Use AppShell. This is the same component, so switching names preserves React state. */
|
|
146
155
|
export declare const ProShell: typeof AppShell;
|
|
147
156
|
//# sourceMappingURL=shell.d.ts.map
|