@oxy.so/services 8.2.0 → 8.3.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/lib/commonjs/index.js +2 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +5 -1
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/RequireOxyAuth.js +9 -1
- package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +25 -4
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/accountQueryPersistence.js +157 -0
- package/lib/commonjs/ui/hooks/accountQueryPersistence.js.map +1 -0
- package/lib/commonjs/ui/hooks/queryClient.js +17 -9
- package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/utils/buildId.js +25 -0
- package/lib/commonjs/ui/utils/buildId.js.map +1 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +5 -1
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/RequireOxyAuth.js +9 -1
- package/lib/module/ui/components/RequireOxyAuth.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +27 -6
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/accountQueryPersistence.js +153 -0
- package/lib/module/ui/hooks/accountQueryPersistence.js.map +1 -0
- package/lib/module/ui/hooks/queryClient.js +18 -10
- package/lib/module/ui/hooks/queryClient.js.map +1 -1
- package/lib/module/ui/index.js +3 -0
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/utils/buildId.js +21 -0
- package/lib/module/ui/utils/buildId.js.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +9 -0
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts +54 -0
- package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts +8 -2
- package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
- package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/commonjs/ui/index.d.ts +1 -0
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +9 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/buildId.d.ts +16 -0
- package/lib/typescript/commonjs/ui/utils/buildId.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +9 -0
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts +54 -0
- package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/queryClient.d.ts +8 -2
- package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
- package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
- package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/module/ui/index.d.ts +1 -0
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +9 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/buildId.d.ts +16 -0
- package/lib/typescript/module/ui/utils/buildId.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +2 -0
- package/src/ui/components/OxyProvider.tsx +5 -1
- package/src/ui/components/RequireOxyAuth.tsx +7 -2
- package/src/ui/context/OxyContext.tsx +35 -5
- package/src/ui/context/oxyContextTypes.ts +9 -0
- package/src/ui/hooks/accountQueryPersistence.ts +201 -0
- package/src/ui/hooks/queryClient.ts +17 -8
- package/src/ui/index.ts +2 -0
- package/src/ui/types/navigation.ts +9 -0
- package/src/ui/utils/buildId.ts +18 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ACCOUNT_QUERY_CACHE_KEY = void 0;
|
|
7
|
+
exports.createAccountQueryPersistence = createAccountQueryPersistence;
|
|
8
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
9
|
+
var _reactQueryPersistClient = require("@tanstack/react-query-persist-client");
|
|
10
|
+
var _queryAsyncStoragePersister = require("@tanstack/query-async-storage-persister");
|
|
11
|
+
var _buildId = require("../utils/buildId.js");
|
|
12
|
+
/**
|
|
13
|
+
* Offline persistence for an app's PRIVATE, per-account queries.
|
|
14
|
+
*
|
|
15
|
+
* The SDK's own persister (`attachQueryPersistence`) keeps account-agnostic
|
|
16
|
+
* data. An app's mail, library or drafts belong to one account, and every app
|
|
17
|
+
* that wanted them to survive a restart had to scope a persister to the session
|
|
18
|
+
* itself. The SDK owns the session, so it owns this too:
|
|
19
|
+
*
|
|
20
|
+
* - Storage is keyed by the account (`oxy_account_queries:<accountId>`), so a
|
|
21
|
+
* restore can only ever hydrate the account that is signed in.
|
|
22
|
+
* - The buster is the build (`getOxyBuildId`), so no cache written by an older
|
|
23
|
+
* bundle, in an older shape, is ever served.
|
|
24
|
+
* - On a subject change the declared roots, memory-only ones included, and the
|
|
25
|
+
* account's paused mutations are dropped
|
|
26
|
+
* from memory synchronously, before anyone is woken, and the new account's
|
|
27
|
+
* blob is restored. `isReady()` is false until that restore settles, and
|
|
28
|
+
* `RequireOxyAuth` waits on it, so another account's rows never render.
|
|
29
|
+
* - On sign-out the signed-out account's blob is deleted.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/** An app's declaration of which data is private to the signed-in account. */
|
|
33
|
+
|
|
34
|
+
const ACCOUNT_QUERY_CACHE_KEY = exports.ACCOUNT_QUERY_CACHE_KEY = 'oxy_account_queries';
|
|
35
|
+
const ACCOUNT_QUERY_CACHE_MAX_AGE = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
36
|
+
const ACCOUNT_QUERY_PERSIST_THROTTLE_MS = 1_000;
|
|
37
|
+
function storageKeyFor(accountId) {
|
|
38
|
+
return `${ACCOUNT_QUERY_CACHE_KEY}:${encodeURIComponent(accountId)}`;
|
|
39
|
+
}
|
|
40
|
+
function createAccountQueryPersistence(queryClient, config) {
|
|
41
|
+
const persistedRoots = new Set(config.roots);
|
|
42
|
+
const accountRoots = new Set([...config.roots, ...(config.memoryOnlyRoots ?? [])]);
|
|
43
|
+
const mutationHashes = new Set((config.mutationKeys ?? []).map(key => (0, _reactQuery.hashKey)(key)));
|
|
44
|
+
const listeners = new Set();
|
|
45
|
+
let storage = null;
|
|
46
|
+
let accountId = null;
|
|
47
|
+
let restoredFor = null;
|
|
48
|
+
let generation = 0;
|
|
49
|
+
let unsubscribePersist = null;
|
|
50
|
+
// The in-flight restore. A new account waits for it, so a late restore can
|
|
51
|
+
// never hydrate the previous account's rows after the switch.
|
|
52
|
+
let restoring = Promise.resolve();
|
|
53
|
+
const notify = () => {
|
|
54
|
+
for (const listener of listeners) listener();
|
|
55
|
+
};
|
|
56
|
+
const rootOf = query => {
|
|
57
|
+
const head = query.queryKey[0];
|
|
58
|
+
return typeof head === 'string' ? head : null;
|
|
59
|
+
};
|
|
60
|
+
const ownsQuery = query => accountRoots.has(rootOf(query) ?? '');
|
|
61
|
+
const persistsQuery = query => persistedRoots.has(rootOf(query) ?? '');
|
|
62
|
+
const ownsMutation = mutation => {
|
|
63
|
+
const key = mutation.options.mutationKey;
|
|
64
|
+
return key !== undefined && mutationHashes.has((0, _reactQuery.hashKey)(key));
|
|
65
|
+
};
|
|
66
|
+
const dropScopedData = () => {
|
|
67
|
+
queryClient.removeQueries({
|
|
68
|
+
predicate: ownsQuery
|
|
69
|
+
});
|
|
70
|
+
const mutations = queryClient.getMutationCache();
|
|
71
|
+
for (const mutation of mutations.getAll()) {
|
|
72
|
+
if (ownsMutation(mutation)) mutations.remove(mutation);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const persisterFor = (id, target) => (0, _queryAsyncStoragePersister.createAsyncStoragePersister)({
|
|
76
|
+
storage: {
|
|
77
|
+
getItem: key => target.getItem(key),
|
|
78
|
+
setItem: (key, value) => target.setItem(key, value),
|
|
79
|
+
removeItem: key => target.removeItem(key)
|
|
80
|
+
},
|
|
81
|
+
key: storageKeyFor(id),
|
|
82
|
+
throttleTime: ACCOUNT_QUERY_PERSIST_THROTTLE_MS
|
|
83
|
+
});
|
|
84
|
+
const start = () => {
|
|
85
|
+
const id = accountId;
|
|
86
|
+
const target = storage;
|
|
87
|
+
if (!id || !target || unsubscribePersist) return;
|
|
88
|
+
const current = generation;
|
|
89
|
+
const [unsubscribe, restored] = (0, _reactQueryPersistClient.persistQueryClient)({
|
|
90
|
+
queryClient,
|
|
91
|
+
persister: persisterFor(id, target),
|
|
92
|
+
maxAge: ACCOUNT_QUERY_CACHE_MAX_AGE,
|
|
93
|
+
buster: (0, _buildId.getOxyBuildId)(),
|
|
94
|
+
dehydrateOptions: {
|
|
95
|
+
shouldDehydrateQuery: query => query.state.status === 'success' && persistsQuery(query),
|
|
96
|
+
shouldDehydrateMutation: mutation => mutation.state.isPaused && ownsMutation(mutation)
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
unsubscribePersist = unsubscribe;
|
|
100
|
+
restoring = restored.catch(() => undefined).then(() => {
|
|
101
|
+
if (current !== generation) return;
|
|
102
|
+
restoredFor = id;
|
|
103
|
+
notify();
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const stop = () => {
|
|
107
|
+
unsubscribePersist?.();
|
|
108
|
+
unsubscribePersist = null;
|
|
109
|
+
};
|
|
110
|
+
return {
|
|
111
|
+
setStorage(next) {
|
|
112
|
+
if (storage) return;
|
|
113
|
+
storage = next;
|
|
114
|
+
const current = generation;
|
|
115
|
+
void restoring.then(() => {
|
|
116
|
+
if (current === generation) start();
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
activate(next) {
|
|
120
|
+
if (next === accountId) return;
|
|
121
|
+
const previous = accountId;
|
|
122
|
+
generation += 1;
|
|
123
|
+
const current = generation;
|
|
124
|
+
stop();
|
|
125
|
+
dropScopedData();
|
|
126
|
+
accountId = next;
|
|
127
|
+
restoredFor = null;
|
|
128
|
+
notify();
|
|
129
|
+
if (next === null && previous !== null && storage) {
|
|
130
|
+
void persisterFor(previous, storage).removeClient();
|
|
131
|
+
}
|
|
132
|
+
void restoring.then(() => {
|
|
133
|
+
if (current !== generation) return;
|
|
134
|
+
// A restore that was already in flight may have hydrated the previous
|
|
135
|
+
// account's rows; drop them again before this account's restore.
|
|
136
|
+
dropScopedData();
|
|
137
|
+
start();
|
|
138
|
+
});
|
|
139
|
+
},
|
|
140
|
+
isReady() {
|
|
141
|
+
return accountId === null || restoredFor === accountId;
|
|
142
|
+
},
|
|
143
|
+
subscribe(listener) {
|
|
144
|
+
listeners.add(listener);
|
|
145
|
+
return () => {
|
|
146
|
+
listeners.delete(listener);
|
|
147
|
+
};
|
|
148
|
+
},
|
|
149
|
+
ownsMutation,
|
|
150
|
+
dispose() {
|
|
151
|
+
generation += 1;
|
|
152
|
+
stop();
|
|
153
|
+
listeners.clear();
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=accountQueryPersistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_reactQueryPersistClient","_queryAsyncStoragePersister","_buildId","ACCOUNT_QUERY_CACHE_KEY","exports","ACCOUNT_QUERY_CACHE_MAX_AGE","ACCOUNT_QUERY_PERSIST_THROTTLE_MS","storageKeyFor","accountId","encodeURIComponent","createAccountQueryPersistence","queryClient","config","persistedRoots","Set","roots","accountRoots","memoryOnlyRoots","mutationHashes","mutationKeys","map","key","hashKey","listeners","storage","restoredFor","generation","unsubscribePersist","restoring","Promise","resolve","notify","listener","rootOf","query","head","queryKey","ownsQuery","has","persistsQuery","ownsMutation","mutation","options","mutationKey","undefined","dropScopedData","removeQueries","predicate","mutations","getMutationCache","getAll","remove","persisterFor","id","target","createAsyncStoragePersister","getItem","setItem","value","removeItem","throttleTime","start","current","unsubscribe","restored","persistQueryClient","persister","maxAge","buster","getOxyBuildId","dehydrateOptions","shouldDehydrateQuery","state","status","shouldDehydrateMutation","isPaused","catch","then","stop","setStorage","next","activate","previous","removeClient","isReady","subscribe","add","delete","dispose","clear"],"sourceRoot":"../../../../src","sources":["ui/hooks/accountQueryPersistence.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ var _reactQuery = require("@tanstack/react-query");
|
|
|
9
9
|
var _reactQueryPersistClient = require("@tanstack/react-query-persist-client");
|
|
10
10
|
var _queryAsyncStoragePersister = require("@tanstack/query-async-storage-persister");
|
|
11
11
|
var _core = require("@oxy.so/core");
|
|
12
|
+
var _buildId = require("../utils/buildId.js");
|
|
12
13
|
/**
|
|
13
14
|
* Offline-first QueryClient with cross-restart persistence.
|
|
14
15
|
*
|
|
@@ -96,14 +97,6 @@ function shouldDehydrateQuery(query) {
|
|
|
96
97
|
return PERSISTED_QUERY_PREFIXES.includes(head);
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
/**
|
|
100
|
-
* Persist every mutation regardless of status — paused mutations are
|
|
101
|
-
* exactly the ones that must survive restart to replay when online.
|
|
102
|
-
*/
|
|
103
|
-
function shouldDehydrateMutation(_mutation) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
100
|
/**
|
|
108
101
|
* Create a QueryClient with offline-first defaults.
|
|
109
102
|
*
|
|
@@ -169,7 +162,13 @@ exports.createQueryClient = createQueryClient;
|
|
|
169
162
|
* Safe to no-op if `storage` is null/undefined (e.g. server-side render
|
|
170
163
|
* with no host storage).
|
|
171
164
|
*/
|
|
172
|
-
const attachQueryPersistence = (queryClient, storage
|
|
165
|
+
const attachQueryPersistence = (queryClient, storage,
|
|
166
|
+
/**
|
|
167
|
+
* Mutation keys the app declared account-scoped (`accountQueries`). Those are
|
|
168
|
+
* persisted per account by `createAccountQueryPersistence`, never here, so a
|
|
169
|
+
* paused mutation cannot replay twice or under another account.
|
|
170
|
+
*/
|
|
171
|
+
accountMutationKeys = []) => {
|
|
173
172
|
if (!storage) {
|
|
174
173
|
return {
|
|
175
174
|
restored: Promise.resolve(),
|
|
@@ -181,10 +180,19 @@ const attachQueryPersistence = (queryClient, storage) => {
|
|
|
181
180
|
key: QUERY_CACHE_KEY,
|
|
182
181
|
throttleTime: QUERY_PERSIST_THROTTLE_MS
|
|
183
182
|
});
|
|
183
|
+
|
|
184
|
+
// Persist every other mutation regardless of status: paused mutations are
|
|
185
|
+
// exactly the ones that must survive restart to replay when online.
|
|
186
|
+
const accountScoped = new Set(accountMutationKeys.map(key => (0, _reactQuery.hashKey)(key)));
|
|
187
|
+
const shouldDehydrateMutation = mutation => {
|
|
188
|
+
const key = mutation.options.mutationKey;
|
|
189
|
+
return key === undefined || !accountScoped.has((0, _reactQuery.hashKey)(key));
|
|
190
|
+
};
|
|
184
191
|
const [unsubscribe, restored] = (0, _reactQueryPersistClient.persistQueryClient)({
|
|
185
192
|
queryClient,
|
|
186
193
|
persister,
|
|
187
194
|
maxAge: QUERY_CACHE_MAX_AGE,
|
|
195
|
+
buster: (0, _buildId.getOxyBuildId)(),
|
|
188
196
|
dehydrateOptions: {
|
|
189
197
|
shouldDehydrateQuery,
|
|
190
198
|
shouldDehydrateMutation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactQuery","require","_reactQueryPersistClient","_queryAsyncStoragePersister","_core","QUERY_CACHE_KEY","QUERY_CACHE_MAX_AGE","QUERY_PERSIST_THROTTLE_MS","MAX_QUERY_RETRIES","statusOf","error","value","status","response","shouldRetryQuery","failureCount","PERSISTED_QUERY_PREFIXES","adaptStorage","storage","getItem","key","setItem","removeItem","shouldDehydrateQuery","query","state","head","queryKey","includes","
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_reactQueryPersistClient","_queryAsyncStoragePersister","_core","_buildId","QUERY_CACHE_KEY","QUERY_CACHE_MAX_AGE","QUERY_PERSIST_THROTTLE_MS","MAX_QUERY_RETRIES","statusOf","error","value","status","response","shouldRetryQuery","failureCount","PERSISTED_QUERY_PREFIXES","adaptStorage","storage","getItem","key","setItem","removeItem","shouldDehydrateQuery","query","state","head","queryKey","includes","createQueryClient","client","QueryClient","defaultOptions","queries","staleTime","gcTime","retry","retryDelay","attemptIndex","Math","min","refetchOnReconnect","refetchOnWindowFocus","networkMode","mutations","unsubscribe","onlineManager","subscribe","isOnline","getMutationCache","resumePausedMutations","Object","defineProperty","enumerable","configurable","writable","exports","attachQueryPersistence","queryClient","accountMutationKeys","restored","Promise","resolve","persister","createAsyncStoragePersister","throttleTime","accountScoped","Set","map","hashKey","shouldDehydrateMutation","mutation","options","mutationKey","undefined","has","persistQueryClient","maxAge","buster","getOxyBuildId","dehydrateOptions","catch","isDev","console","warn","clearQueryCache"],"sourceRoot":"../../../../src","sources":["ui/hooks/queryClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OxyProvider","_interopRequireDefault","require","_OxySignInButton","_OxyAuthPrompt","_LogoIcon","_LogoText","_RequireOxyAuth","_FollowButton","_PeableButton","_OxyPayButton","_ProfileButton","_OxyContext","_useAuth","_useFollow","_useStorage","_authStore","_errorHandlers","e","__esModule","default"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;
|
|
1
|
+
{"version":3,"names":["_OxyProvider","_interopRequireDefault","require","_OxySignInButton","_OxyAuthPrompt","_LogoIcon","_LogoText","_RequireOxyAuth","_FollowButton","_PeableButton","_OxyPayButton","_ProfileButton","_OxyContext","_useAuth","_useFollow","_useStorage","_authStore","_errorHandlers","e","__esModule","default"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAIA,IAAAM,aAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,aAAA,GAAAR,sBAAA,CAAAC,OAAA;AAGA,IAAAQ,aAAA,GAAAT,sBAAA,CAAAC,OAAA;AAGA,IAAAS,cAAA,GAAAV,sBAAA,CAAAC,OAAA;AAGA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAEA,IAAAY,UAAA,GAAAZ,OAAA;AACA,IAAAa,WAAA,GAAAb,OAAA;AAOA,IAAAc,UAAA,GAAAd,OAAA;AAGA,IAAAe,cAAA,GAAAf,OAAA;AAK+B,SAAAD,uBAAAiB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getOxyBuildId = getOxyBuildId;
|
|
7
|
+
/**
|
|
8
|
+
* The identity of the JS bundle that is running, used as the buster for every
|
|
9
|
+
* persisted query cache the SDK owns.
|
|
10
|
+
*
|
|
11
|
+
* A persisted cache is restored and served before any refetch (offline-first),
|
|
12
|
+
* so data written by an older build reaches components in whatever shape that
|
|
13
|
+
* build used. Busting on the build means no app ever has to remember to bump a
|
|
14
|
+
* version when a query's shape changes: a new build simply starts from the
|
|
15
|
+
* network. Inbox shipped exactly that crash when a hand-kept buster was missed.
|
|
16
|
+
*
|
|
17
|
+
* `@oxy.so/app-preset`'s Babel config replaces `process.env.OXY_BUILD_ID` with
|
|
18
|
+
* the commit at bundle time, node_modules included. An app that does not use
|
|
19
|
+
* the preset gets a constant, which behaves like a buster that is never bumped.
|
|
20
|
+
*/
|
|
21
|
+
function getOxyBuildId() {
|
|
22
|
+
const buildId = typeof process === 'undefined' ? undefined : process.env.OXY_BUILD_ID;
|
|
23
|
+
return buildId || 'unversioned';
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=buildId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getOxyBuildId","buildId","process","undefined","env","OXY_BUILD_ID"],"sourceRoot":"../../../../src","sources":["ui/utils/buildId.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAaA,CAAA,EAAW;EACtC,MAAMC,OAAO,GAAG,OAAOC,OAAO,KAAK,WAAW,GAAGC,SAAS,GAAGD,OAAO,CAACE,GAAG,CAACC,YAAY;EACrF,OAAOJ,OAAO,IAAI,aAAa;AACjC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -153,6 +153,9 @@ export { OxyConsentScreen } from "./ui/components/OxyConsentScreen.js";
|
|
|
153
153
|
// Gates on `useOxy().canUsePrivateApi` / `isPrivateApiPending` — never flashes the
|
|
154
154
|
// wall before the device-first cold boot resolves. Opens the ONE account dialog.
|
|
155
155
|
export { RequireOxyAuth } from "./ui/components/RequireOxyAuth.js";
|
|
156
|
+
|
|
157
|
+
// `OxyProvider`'s `accountQueries`: the app's per-account offline cache.
|
|
158
|
+
|
|
156
159
|
export { default as FollowButton } from "./ui/components/FollowButton.js";
|
|
157
160
|
// The follow graph (#809): follows anything registered, not just users.
|
|
158
161
|
export { FollowTargetButton,
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useOptionalOxy","OxyProviderMissingError","useOxyRuntime","useOxySnapshot","useActiveAccount","useDeviceDirectory","OxyRuntimeMissingError","useAuth","createDeferredProductAnalytics","IdentityBoundSessionError","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useSignInMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","PeableButton","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxySignInPanel","OxySignUpPanel","OxyAccountPicker","OxyDeleteAccountPanel","OxyLinkCommonsPanel","OxyPasswordPanel","OxyAuthenticatorPanel","OxyAuthScreen","OxyAuthScreenHeader","OxyAuthLoading","OxyAuthTerms","OxySignInRequestSurface","useDeviceSwitcher","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useOptionalOxy","OxyProviderMissingError","useOxyRuntime","useOxySnapshot","useActiveAccount","useDeviceDirectory","OxyRuntimeMissingError","useAuth","createDeferredProductAnalytics","IdentityBoundSessionError","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useSignInMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","PeableButton","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxySignInPanel","OxySignUpPanel","OxyAccountPicker","OxyDeleteAccountPanel","OxyLinkCommonsPanel","OxyPasswordPanel","OxyAuthenticatorPanel","OxyAuthScreen","OxyAuthScreenHeader","OxyAuthLoading","OxyAuthTerms","OxySignInRequestSurface","useDeviceSwitcher","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAASA,aAAa,QAAyB,cAAc;AAC7D,SAASC,QAAQ,QAAQ,cAAc;AACvCD,aAAa,CAACC,QAAQ,CAACC,EAAgB,CAAC;;AAExC;AACA;AACA;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,gCAA6B;AACpE,SAASC,MAAM,QAAQ,4BAAyB;AAChD;AACA;AACA;AACA,SAASC,cAAc,EAAEC,uBAAuB,QAAQ,4BAAyB;;AAEjF;AACA;AACA;AACA,SACEC,aAAa,EACbC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,EAClBC,sBAAsB,QACjB,uBAAc;AAUrB,SAASC,OAAO,QAAQ,uBAAoB;AAE5C,SAASC,8BAA8B,QAAQ,oCAAiC;AAEhF;AACA;AACA;AACA,SAASC,yBAAyB,QAAQ,iCAA8B;;AAExE;AACA;AACA;AACA,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SACIC,aAAa,EACbC,SAAS,IAAIC,cAAc,EAC3BC,QAAQ,EACRC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,QACb,2BAAwB;;AAE/B;AACA;AACA;AACA,SAAST,SAAS,EAAEU,mBAAmB,QAAQ,yBAAsB;AACrE,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,SAAS,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,yBAAsB;AAC1F,SAASC,UAAU,QAAQ,0BAAuB;AAGlD;AACA;AACA;AACA,SACIC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,QACb,yCAAsC;AAC7C,SACIC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,cAAc,EACdC,eAAe,EACfC,sBAAsB,QACnB,0CAAuC;AAC9C,SACIC,mBAAmB,EACnBC,yBAAyB,EACzBC,2BAA2B,QACxB,0CAAuC;AAC9C,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,sCAAmC;AACpF,SACIC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,EACbC,yBAAyB,QACtB,yCAAsC;;AAE7C;;AAeA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB,EACxBC,wBAAwB,EACxBC,gCAAgC,EAChCC,wBAAwB,EACxBC,qBAAqB,EACrBC,aAAa,QACV,6CAA0C;AACjD,SACIC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,QACZ,8CAA2C;AAClD,SACIC,qBAAqB,EACrBC,qBAAqB,QAClB,yCAAsC;AAM7C;AACA,SAASC,YAAY,QAAQ,sCAAmC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,4BAA4B,QACzB,iCAA8B;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,8BAA8B,QAC3B,iCAA8B;AAOrC;AACA,SAASC,iBAAiB,QAAQ,iCAA8B;AAEhE,SAASC,eAAe,QAAQ,+BAA4B;AAC5D,SAASC,WAAW,QAAQ,2BAAwB;;AAEpD;AACA;AACA;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,6BAA0B;AAGjC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,gCAA6B;AAG9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SACEC,2BAA2B,EAC3BC,mCAAmC,QAC9B,cAAc;AACrB,SAAS/F,OAAO,IAAIgG,eAAe,QAAQ,oCAAiC;AAG5E;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,0BAAuB;AAgBtD,SAASC,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,gBAAgB,QAAQ,qCAAkC;AAEnE,SAASC,gBAAgB,QAAQ,qCAAkC;AAQnE;AACA;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,mCAAgC;;AAE/D;;AAGA,SAASrG,OAAO,IAAIsG,YAAY,QAAQ,iCAA8B;AAEtE;AACA,SACEC,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACAC,oBAAoB,EACpBC,0BAA0B,EAC1BC,2BAA2B,QACtB,uCAAoC;AAO3C,SAASC,eAAe,QAAQ,+BAA4B;AAE5D,SACEC,oBAAoB,EACpBC,qBAAqB;AACrB;AACA;AACA;AACAC,kBAAkB,EAClBC,mBAAmB;AACnB;AACA;AACAC,sBAAsB,EACtBC,oBAAoB,EACpBC,wBAAwB,QACnB,kCAA+B;AACtC,SAASlH,OAAO,IAAImH,YAAY,QAAQ,iCAA8B;AAEtE;AACA,SAASnH,OAAO,IAAIoH,YAAY,QAAQ,iCAA8B;AACtE;;AAEA,SAASC,QAAQ,QAAQ,kCAA+B;AACxD,SAASC,QAAQ,QAAQ,kCAA+B;;AAExD;AACA;AACA;AACA,SAAStH,OAAO,IAAIuH,aAAa,QAAQ,kCAA+B;AAIxE;AACA;AACA;AACA,SAASC,cAAc,QAAQ,0CAAuC;AAEtE,SAASC,cAAc,QAAQ,0CAAuC;AAEtE,SAASC,gBAAgB,QAAQ,4CAAyC;AAE1E;AACA;AACA;AACA,SAASC,qBAAqB,QAAQ,iDAA8C;AAEpF,SAASC,mBAAmB,QAAQ,+CAA4C;AAEhF,SAASC,gBAAgB,QAAQ,4CAAyC;AAE1E,SAASC,qBAAqB,QAAQ,iDAA8C;AAEpF,SACEC,aAAa,EACbC,mBAAmB,EACnBC,cAAc,EACdC,YAAY,QACP,yCAAsC;AAG7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,4CAAyC;AAIjF;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiB,QAAQ,iCAA8B;AAGhE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,uCAAoC;AAGtF;AACA;AACA;AACA,SAASC,gBAAgB,QAAmC,gCAA6B;AACzF,SAASC,mBAAmB,QAAuC,wCAAqC;;AAExG;AACA;AACA;AACA;AACA,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,wBAAwB,QACnB,yCAAsC","ignoreList":[]}
|
|
@@ -89,6 +89,7 @@ const OxyProvider = ({
|
|
|
89
89
|
sessionMode = 'account',
|
|
90
90
|
webAuthMode = 'popup',
|
|
91
91
|
queryClient: providedQueryClient,
|
|
92
|
+
accountQueries,
|
|
92
93
|
requireAuth = 'off',
|
|
93
94
|
backgroundSession = false,
|
|
94
95
|
language
|
|
@@ -102,6 +103,8 @@ const OxyProvider = ({
|
|
|
102
103
|
const queryClientRef = useRef(null);
|
|
103
104
|
const persistenceUnsubRef = useRef(null);
|
|
104
105
|
const ownsQueryClientRef = useRef(providedQueryClient === undefined);
|
|
106
|
+
// `accountQueries` is read once, at mount, like the client itself.
|
|
107
|
+
const accountMutationKeysRef = useRef(accountQueries?.mutationKeys);
|
|
105
108
|
const [platformStorage, setPlatformStorage] = useState(null);
|
|
106
109
|
|
|
107
110
|
// If the consumer supplied their own QueryClient we use it as-is and skip
|
|
@@ -133,7 +136,7 @@ const OxyProvider = ({
|
|
|
133
136
|
setPlatformStorage(storage);
|
|
134
137
|
const client = queryClientRef.current;
|
|
135
138
|
if (!client || !ownsQueryClientRef.current) return;
|
|
136
|
-
const persistence = attachQueryPersistence(client, storage);
|
|
139
|
+
const persistence = attachQueryPersistence(client, storage, accountMutationKeysRef.current);
|
|
137
140
|
persistenceUnsubRef.current = persistence.unsubscribe;
|
|
138
141
|
await persistence.restored;
|
|
139
142
|
};
|
|
@@ -229,6 +232,7 @@ const OxyProvider = ({
|
|
|
229
232
|
webAuthMode: webAuthMode,
|
|
230
233
|
backgroundSession: backgroundSession,
|
|
231
234
|
platformStorage: platformStorage,
|
|
235
|
+
accountQueries: accountQueries,
|
|
232
236
|
onAuthStateChange: onAuthStateChange,
|
|
233
237
|
children: [productAnalytics ? /*#__PURE__*/_jsx(ProductAnalyticsObserver, {
|
|
234
238
|
analytics: productAnalytics
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","AppState","Platform","StyleSheet","GestureHandlerRootView","SafeAreaProvider","OxyRuntimeProvider","QueryClientProvider","focusManager","onlineManager","SurfaceProvider","ToastOutlet","logger","loggerUtil","RequireOxyAuth","attachQueryPersistence","createQueryClient","createMemoryStorage","createPlatformStorage","isNetConnectivityOnline","KeyboardBoundary","ProductAnalyticsObserver","LanguageBridge","jsx","_jsx","jsxs","_jsxs","bootStyles","create","providerRoot","flex","isWeb","OS","OxyProvider","oxyServices","children","onAuthStateChange","productAnalytics","storageKeyPrefix","clientId","baseURL","authWebUrl","authRedirectUri","authorizeBaseUrl","sessionMode","webAuthMode","queryClient","providedQueryClient","requireAuth","backgroundSession","language","queryClientRef","persistenceUnsubRef","ownsQueryClientRef","undefined","platformStorage","setPlatformStorage","current","client","mounted","bootstrap","storage","error","__DEV__","warn","component","persistence","unsubscribe","restored","handleVisibilityChange","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","state","remove","cleanup","setupNetworkMonitoring","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","default","fetch","coreContent","analytics","prompt","style"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAiB,OAAO;AAC5D,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AAC7D,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,gBAAgB,QAAQ,gCAAgC;AAEjE,SAASC,kBAAkB,QAAsC,0BAAuB;AACxF,SAASC,mBAAmB,EAAEC,YAAY,EAAEC,aAAa,QAAQ,uBAAuB;AACxF,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SAASC,WAAW,QAAQ,qBAAqB;AACjD,SAASC,MAAM,IAAIC,UAAU,QAAQ,cAAc;AACnD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,sBAAsB,EAAEC,iBAAiB,QAAQ,yBAAsB;AAChF,SAASC,mBAAmB,EAAEC,qBAAqB,QAA+B,4BAAyB;AAC3G,SAASC,uBAAuB,QAAQ,6BAA0B;AAClE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,wBAAwB,QAAQ,kCAA+B;AACxE,SAASC,cAAc,QAAQ,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,MAAMC,UAAU,GAAGxB,UAAU,CAACyB,MAAM,CAAC;EACjCC,YAAY,EAAE;IACVC,IAAI,EAAE;EACV;AACJ,CAAC,CAAC;;AAEF;AACA,MAAMC,KAAK,GAAG7B,QAAQ,CAAC8B,EAAE,KAAK,KAAK;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAiC,GAAGA,CAAC;EACvCC,WAAW;EACXC,QAAQ;EACRC,iBAAiB;EACjBC,gBAAgB;EAChBC,gBAAgB;EAChBC,QAAQ;EACRC,OAAO;EACPC,UAAU;EACVC,eAAe;EACfC,gBAAgB;EAChBC,WAAW,GAAG,SAAS;EACvBC,WAAW,GAAG,OAAO;EACrBC,WAAW,EAAEC,mBAAmB;EAChCC,WAAW,GAAG,KAAK;EACnBC,iBAAiB,GAAG,KAAK;EACzBC;AACJ,CAAC,KAAK;EAEF;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,cAAc,
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","AppState","Platform","StyleSheet","GestureHandlerRootView","SafeAreaProvider","OxyRuntimeProvider","QueryClientProvider","focusManager","onlineManager","SurfaceProvider","ToastOutlet","logger","loggerUtil","RequireOxyAuth","attachQueryPersistence","createQueryClient","createMemoryStorage","createPlatformStorage","isNetConnectivityOnline","KeyboardBoundary","ProductAnalyticsObserver","LanguageBridge","jsx","_jsx","jsxs","_jsxs","bootStyles","create","providerRoot","flex","isWeb","OS","OxyProvider","oxyServices","children","onAuthStateChange","productAnalytics","storageKeyPrefix","clientId","baseURL","authWebUrl","authRedirectUri","authorizeBaseUrl","sessionMode","webAuthMode","queryClient","providedQueryClient","accountQueries","requireAuth","backgroundSession","language","queryClientRef","persistenceUnsubRef","ownsQueryClientRef","undefined","accountMutationKeysRef","mutationKeys","platformStorage","setPlatformStorage","current","client","mounted","bootstrap","storage","error","__DEV__","warn","component","persistence","unsubscribe","restored","handleVisibilityChange","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","state","remove","cleanup","setupNetworkMonitoring","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","default","fetch","coreContent","analytics","prompt","style"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -60,6 +60,7 @@ export const RequireOxyAuth = ({
|
|
|
60
60
|
const {
|
|
61
61
|
canUsePrivateApi,
|
|
62
62
|
isPrivateApiPending,
|
|
63
|
+
isAccountCacheReady,
|
|
63
64
|
openAccountDialog
|
|
64
65
|
} = useOxy();
|
|
65
66
|
|
|
@@ -71,8 +72,15 @@ export const RequireOxyAuth = ({
|
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
// Signed in (and token ready): render the protected subtree in every mode
|
|
75
|
+
// Signed in (and token ready): render the protected subtree in every mode,
|
|
76
|
+
// once the account's offline cache (`accountQueries`) has restored. Before
|
|
77
|
+
// that it would render with no rows, or with the previous account's.
|
|
75
78
|
if (canUsePrivateApi) {
|
|
79
|
+
if (!isAccountCacheReady) {
|
|
80
|
+
return loadingFallback ? /*#__PURE__*/_jsx(_Fragment, {
|
|
81
|
+
children: loadingFallback
|
|
82
|
+
}) : /*#__PURE__*/_jsx(NeutralLoading, {});
|
|
83
|
+
}
|
|
76
84
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
77
85
|
children: children
|
|
78
86
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","ActivityIndicator","Pressable","StyleSheet","View","useTheme","Text","useOxy","OxySignInButton","LogoIcon","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","DEFAULT_TITLE","DEFAULT_SUBTITLE","DEFAULT_BANNER_MESSAGE","DEFAULT_BANNER_ACTION","RequireOxyAuth","children","prompt","loadingFallback","signedOutFallback","title","subtitle","bannerMessage","bannerActionLabel","canUsePrivateApi","isPrivateApiPending","openAccountDialog","SoftGate","pending","message","actionLabel","onSignIn","
|
|
1
|
+
{"version":3,"names":["useState","ActivityIndicator","Pressable","StyleSheet","View","useTheme","Text","useOxy","OxySignInButton","LogoIcon","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","DEFAULT_TITLE","DEFAULT_SUBTITLE","DEFAULT_BANNER_MESSAGE","DEFAULT_BANNER_ACTION","RequireOxyAuth","children","prompt","loadingFallback","signedOutFallback","title","subtitle","bannerMessage","bannerActionLabel","canUsePrivateApi","isPrivateApiPending","isAccountCacheReady","openAccountDialog","NeutralLoading","SoftGate","pending","message","actionLabel","onSignIn","HardWall","theme","dismissed","setDismissed","showBanner","style","styles","softRoot","banner","backgroundColor","colors","card","borderColor","border","height","color","primary","bannerText","text","numberOfLines","onPress","bannerCta","accessibilityRole","accessibilityLabel","bannerCtaText","bannerDismiss","hitSlop","bannerDismissText","textSecondary","softBody","wallRoot","background","logoBadge","primarySubtle","wallTitle","wallSubtitle","variant","wallCta","create","flex","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","borderBottomWidth","hairlineWidth","fontSize","borderRadius","fontWeight","width","justifyContent","padding","marginBottom","letterSpacing","textAlign","lineHeight","maxWidth","marginTop"],"sourceRoot":"../../../../src","sources":["ui/components/RequireOxyAuth.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react';
|
|
4
4
|
import { Linking, Platform } from 'react-native';
|
|
5
5
|
import { OxyServices } from '@oxy.so/core';
|
|
6
6
|
import { KeyManager } from '@oxy.so/core/crypto';
|
|
@@ -22,11 +22,12 @@ import { useLanguageManagement } from "../hooks/useLanguageManagement.js";
|
|
|
22
22
|
import { useSessionManagement } from "../hooks/useSessionManagement.js";
|
|
23
23
|
import { useAuthOperations, clearPersistedAuthSafe } from "./hooks/useAuthOperations.js";
|
|
24
24
|
import { useDeviceManagement } from "../hooks/useDeviceManagement.js";
|
|
25
|
-
import { getStorageKeys, createPlatformStorage } from "../utils/storageHelpers.js";
|
|
25
|
+
import { getStorageKeys, createMemoryStorage, createPlatformStorage } from "../utils/storageHelpers.js";
|
|
26
26
|
import { showBottomSheet as globalShowBottomSheet } from "../navigation/bottomSheetManager.js";
|
|
27
27
|
import { presentDetached, topRouteSurface } from "../navigation/surfaces.js";
|
|
28
28
|
import { useQueryClient, onlineManager } from '@tanstack/react-query';
|
|
29
29
|
import { clearQueryCache } from "../hooks/queryClient.js";
|
|
30
|
+
import { createAccountQueryPersistence } from "../hooks/accountQueryPersistence.js";
|
|
30
31
|
import { useAvatarPicker } from "../hooks/useAvatarPicker.js";
|
|
31
32
|
import { resetSessionScopedStores } from "../stores/resetSessionScopedStores.js";
|
|
32
33
|
import { ASSET_DOWNLOAD_URLS_QUERY_KEY } from "../hooks/useResolvedFileUrls.js";
|
|
@@ -42,6 +43,7 @@ import { clearSignInFlows } from "../components/signIn/signInFlowStore.js";
|
|
|
42
43
|
import { useOxyAccountGraph } from "./useOxyAccountGraph.js";
|
|
43
44
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
44
45
|
const OxyRuntimeContext = /*#__PURE__*/createContext(null);
|
|
46
|
+
const subscribeNever = () => () => undefined;
|
|
45
47
|
const OxyAuthActionsContext = /*#__PURE__*/createContext(null);
|
|
46
48
|
|
|
47
49
|
/**
|
|
@@ -68,6 +70,7 @@ export const OxyRuntimeProvider = ({
|
|
|
68
70
|
webAuthMode = 'popup',
|
|
69
71
|
backgroundSession = false,
|
|
70
72
|
platformStorage,
|
|
73
|
+
accountQueries,
|
|
71
74
|
onAuthStateChange,
|
|
72
75
|
onError
|
|
73
76
|
}) => {
|
|
@@ -216,6 +219,17 @@ export const OxyRuntimeProvider = ({
|
|
|
216
219
|
// Local display/bookkeeping storage (session id list, language). Distinct
|
|
217
220
|
// from `authStore` (the durable credential blob). Exposed as an awaitable so
|
|
218
221
|
// a persistence write is never dropped because it raced storage init.
|
|
222
|
+
const queryClient = useQueryClient();
|
|
223
|
+
|
|
224
|
+
// The app's per-account offline cache (`accountQueries`). Built once, like the
|
|
225
|
+
// runtime. `handleSubjectChange` activates it BEFORE anyone is woken, so a
|
|
226
|
+
// consumer of the new account never reads the previous account's rows.
|
|
227
|
+
const accountQueryPersistenceRef = useRef(undefined);
|
|
228
|
+
if (accountQueryPersistenceRef.current === undefined) {
|
|
229
|
+
accountQueryPersistenceRef.current = accountQueries ? createAccountQueryPersistence(queryClient, accountQueries) : null;
|
|
230
|
+
}
|
|
231
|
+
const accountQueryPersistence = accountQueryPersistenceRef.current;
|
|
232
|
+
const isAccountCacheReady = useSyncExternalStore(accountQueryPersistence ? accountQueryPersistence.subscribe : subscribeNever, () => accountQueryPersistence?.isReady() ?? true, () => accountQueryPersistence?.isReady() ?? true);
|
|
219
233
|
const storageRef = useRef(null);
|
|
220
234
|
const [storage, setStorage] = useState(null);
|
|
221
235
|
const buildStorageDeferred = () => {
|
|
@@ -245,11 +259,15 @@ export const OxyRuntimeProvider = ({
|
|
|
245
259
|
storagePromise.then(storageInstance => {
|
|
246
260
|
storageRef.current = storageInstance;
|
|
247
261
|
storageReady.resolve(storageInstance);
|
|
262
|
+
accountQueryPersistence?.setStorage(storageInstance);
|
|
248
263
|
if (mounted) {
|
|
249
264
|
setStorage(storageInstance);
|
|
250
265
|
runtime.setStorageReady(true);
|
|
251
266
|
}
|
|
252
267
|
}).catch(err => {
|
|
268
|
+
// Nothing persisted can be restored; the account cache still has to
|
|
269
|
+
// become ready, or RequireOxyAuth would wait forever.
|
|
270
|
+
accountQueryPersistence?.setStorage(createMemoryStorage());
|
|
253
271
|
if (mounted) {
|
|
254
272
|
logger('Failed to initialize storage', err);
|
|
255
273
|
onError?.({
|
|
@@ -262,7 +280,7 @@ export const OxyRuntimeProvider = ({
|
|
|
262
280
|
return () => {
|
|
263
281
|
mounted = false;
|
|
264
282
|
};
|
|
265
|
-
}, [logger, onError, platformStorage, runtime, storageReady]);
|
|
283
|
+
}, [accountQueryPersistence, logger, onError, platformStorage, runtime, storageReady]);
|
|
266
284
|
const {
|
|
267
285
|
currentLanguage,
|
|
268
286
|
languages: currentLanguages,
|
|
@@ -277,7 +295,6 @@ export const OxyRuntimeProvider = ({
|
|
|
277
295
|
onError,
|
|
278
296
|
logger
|
|
279
297
|
});
|
|
280
|
-
const queryClient = useQueryClient();
|
|
281
298
|
const {
|
|
282
299
|
saveSessionIds,
|
|
283
300
|
switchSession,
|
|
@@ -1097,6 +1114,9 @@ export const OxyRuntimeProvider = ({
|
|
|
1097
1114
|
previous,
|
|
1098
1115
|
next
|
|
1099
1116
|
}) => {
|
|
1117
|
+
// Every transition, the first sign-in included: the account cache is
|
|
1118
|
+
// keyed by the subject, and a sign-out deletes the signed-out one's.
|
|
1119
|
+
accountQueryPersistence?.activate(next);
|
|
1100
1120
|
if (previous === null) {
|
|
1101
1121
|
return;
|
|
1102
1122
|
}
|
|
@@ -1115,7 +1135,7 @@ export const OxyRuntimeProvider = ({
|
|
|
1115
1135
|
});
|
|
1116
1136
|
queryClient.invalidateQueries();
|
|
1117
1137
|
void refreshAccounts();
|
|
1118
|
-
}, [queryClient, refreshAccounts]);
|
|
1138
|
+
}, [accountQueryPersistence, queryClient, refreshAccounts]);
|
|
1119
1139
|
subjectChangeRef.current = handleSubjectChange;
|
|
1120
1140
|
const canUsePrivateApi = authResolved && isAuthenticated && tokenReady && hasAccessToken;
|
|
1121
1141
|
const isPrivateApiPending = !authResolved || isAuthenticated && (!tokenReady || !hasAccessToken);
|
|
@@ -1143,6 +1163,7 @@ export const OxyRuntimeProvider = ({
|
|
|
1143
1163
|
isPrivateApiPending,
|
|
1144
1164
|
isAuthResolved: authResolved,
|
|
1145
1165
|
isStorageReady: snapshot.storageReady,
|
|
1166
|
+
isAccountCacheReady,
|
|
1146
1167
|
sessionMode: isIdentityBound ? 'identity' : 'account',
|
|
1147
1168
|
webAuthMode,
|
|
1148
1169
|
error,
|
|
@@ -1184,7 +1205,7 @@ export const OxyRuntimeProvider = ({
|
|
|
1184
1205
|
switchToAccount,
|
|
1185
1206
|
refreshAccounts,
|
|
1186
1207
|
createAccount: createAccountFn
|
|
1187
|
-
}), [user, sessions, activeSessionId, isAuthenticated, isLoading, tokenReady, hasAccessToken, canUsePrivateApi, isPrivateApiPending, authResolved, snapshot.storageReady, isIdentityBound, webAuthMode, error, currentLanguage, currentLanguages, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, hasIdentity, getPublicKey, signIn, revokeSuspiciousSignIn, handleWebSession, startWebOAuthSignInForContext, requestOAuthConsentForContext, logout, logoutAll, switchSessionForContext, refreshSessionsForContext, setLanguage, getDeviceSessions, logoutAllDeviceSessions, updateDeviceName, clearSessionState, clearAllAccountData, storageKeyPrefix, clientId, oxyServices, sessionClient, showBottomSheetForContext, openAvatarPicker, accountDialogController, accountDialogOpen, openAccountDialog, closeAccountDialog, accounts, switchToAccount, refreshAccounts, createAccountFn]);
|
|
1208
|
+
}), [user, sessions, activeSessionId, isAuthenticated, isLoading, tokenReady, hasAccessToken, canUsePrivateApi, isPrivateApiPending, authResolved, snapshot.storageReady, isAccountCacheReady, isIdentityBound, webAuthMode, error, currentLanguage, currentLanguages, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, hasIdentity, getPublicKey, signIn, revokeSuspiciousSignIn, handleWebSession, startWebOAuthSignInForContext, requestOAuthConsentForContext, logout, logoutAll, switchSessionForContext, refreshSessionsForContext, setLanguage, getDeviceSessions, logoutAllDeviceSessions, updateDeviceName, clearSessionState, clearAllAccountData, storageKeyPrefix, clientId, oxyServices, sessionClient, showBottomSheetForContext, openAvatarPicker, accountDialogController, accountDialogOpen, openAccountDialog, closeAccountDialog, accounts, switchToAccount, refreshAccounts, createAccountFn]);
|
|
1188
1209
|
const authActionsValue = useMemo(() => ({
|
|
1189
1210
|
signIn,
|
|
1190
1211
|
logout,
|