@oxy.so/services 8.1.1 → 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.
Files changed (112) hide show
  1. package/lib/commonjs/index.js +2 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/OxyProvider.js +5 -1
  4. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  5. package/lib/commonjs/ui/components/RequireOxyAuth.js +9 -1
  6. package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -1
  7. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +3 -7
  8. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  9. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +34 -27
  10. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  11. package/lib/commonjs/ui/components/signIn/ReauthStep.js +27 -19
  12. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -1
  13. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +54 -22
  14. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  15. package/lib/commonjs/ui/context/OxyContext.js +25 -4
  16. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  17. package/lib/commonjs/ui/hooks/accountQueryPersistence.js +157 -0
  18. package/lib/commonjs/ui/hooks/accountQueryPersistence.js.map +1 -0
  19. package/lib/commonjs/ui/hooks/queryClient.js +17 -9
  20. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  21. package/lib/commonjs/ui/index.js.map +1 -1
  22. package/lib/commonjs/ui/utils/buildId.js +25 -0
  23. package/lib/commonjs/ui/utils/buildId.js.map +1 -0
  24. package/lib/module/index.js +3 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/ui/components/OxyProvider.js +5 -1
  27. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  28. package/lib/module/ui/components/RequireOxyAuth.js +9 -1
  29. package/lib/module/ui/components/RequireOxyAuth.js.map +1 -1
  30. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +4 -8
  31. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  32. package/lib/module/ui/components/signIn/OxySignInPanel.js +36 -29
  33. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  34. package/lib/module/ui/components/signIn/ReauthStep.js +29 -21
  35. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -1
  36. package/lib/module/ui/components/signIn/accountFlowParts.js +51 -19
  37. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  38. package/lib/module/ui/context/OxyContext.js +27 -6
  39. package/lib/module/ui/context/OxyContext.js.map +1 -1
  40. package/lib/module/ui/hooks/accountQueryPersistence.js +153 -0
  41. package/lib/module/ui/hooks/accountQueryPersistence.js.map +1 -0
  42. package/lib/module/ui/hooks/queryClient.js +18 -10
  43. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  44. package/lib/module/ui/index.js +3 -0
  45. package/lib/module/ui/index.js.map +1 -1
  46. package/lib/module/ui/utils/buildId.js +21 -0
  47. package/lib/module/ui/utils/buildId.js.map +1 -0
  48. package/lib/typescript/commonjs/index.d.ts +1 -0
  49. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  51. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
  53. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +6 -3
  54. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +29 -9
  57. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +9 -0
  60. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts +54 -0
  62. package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts.map +1 -0
  63. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts +8 -2
  64. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  66. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  67. package/lib/typescript/commonjs/ui/index.d.ts +1 -0
  68. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/ui/types/navigation.d.ts +9 -0
  70. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/ui/utils/buildId.d.ts +16 -0
  72. package/lib/typescript/commonjs/ui/utils/buildId.d.ts.map +1 -0
  73. package/lib/typescript/module/index.d.ts +1 -0
  74. package/lib/typescript/module/index.d.ts.map +1 -1
  75. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  76. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts.map +1 -1
  77. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
  78. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +6 -3
  79. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  80. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  81. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +29 -9
  82. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  83. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  84. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +9 -0
  85. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  86. package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts +54 -0
  87. package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts.map +1 -0
  88. package/lib/typescript/module/ui/hooks/queryClient.d.ts +8 -2
  89. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  90. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  91. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  92. package/lib/typescript/module/ui/index.d.ts +1 -0
  93. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  94. package/lib/typescript/module/ui/types/navigation.d.ts +9 -0
  95. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  96. package/lib/typescript/module/ui/utils/buildId.d.ts +16 -0
  97. package/lib/typescript/module/ui/utils/buildId.d.ts.map +1 -0
  98. package/package.json +7 -7
  99. package/src/index.ts +2 -0
  100. package/src/ui/components/OxyProvider.tsx +5 -1
  101. package/src/ui/components/RequireOxyAuth.tsx +7 -2
  102. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +4 -8
  103. package/src/ui/components/signIn/OxySignInPanel.tsx +41 -27
  104. package/src/ui/components/signIn/ReauthStep.tsx +33 -21
  105. package/src/ui/components/signIn/accountFlowParts.tsx +64 -22
  106. package/src/ui/context/OxyContext.tsx +35 -5
  107. package/src/ui/context/oxyContextTypes.ts +9 -0
  108. package/src/ui/hooks/accountQueryPersistence.ts +201 -0
  109. package/src/ui/hooks/queryClient.ts +17 -8
  110. package/src/ui/index.ts +2 -0
  111. package/src/ui/types/navigation.ts +9 -0
  112. package/src/ui/utils/buildId.ts +18 -0
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Offline persistence for an app's PRIVATE, per-account queries.
5
+ *
6
+ * The SDK's own persister (`attachQueryPersistence`) keeps account-agnostic
7
+ * data. An app's mail, library or drafts belong to one account, and every app
8
+ * that wanted them to survive a restart had to scope a persister to the session
9
+ * itself. The SDK owns the session, so it owns this too:
10
+ *
11
+ * - Storage is keyed by the account (`oxy_account_queries:<accountId>`), so a
12
+ * restore can only ever hydrate the account that is signed in.
13
+ * - The buster is the build (`getOxyBuildId`), so no cache written by an older
14
+ * bundle, in an older shape, is ever served.
15
+ * - On a subject change the declared roots, memory-only ones included, and the
16
+ * account's paused mutations are dropped
17
+ * from memory synchronously, before anyone is woken, and the new account's
18
+ * blob is restored. `isReady()` is false until that restore settles, and
19
+ * `RequireOxyAuth` waits on it, so another account's rows never render.
20
+ * - On sign-out the signed-out account's blob is deleted.
21
+ */
22
+
23
+ import { hashKey } from '@tanstack/react-query';
24
+ import { persistQueryClient } from '@tanstack/react-query-persist-client';
25
+ import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister';
26
+ import { getOxyBuildId } from "../utils/buildId.js";
27
+
28
+ /** An app's declaration of which data is private to the signed-in account. */
29
+
30
+ export const ACCOUNT_QUERY_CACHE_KEY = 'oxy_account_queries';
31
+ const ACCOUNT_QUERY_CACHE_MAX_AGE = 7 * 24 * 60 * 60 * 1000; // 7 days
32
+ const ACCOUNT_QUERY_PERSIST_THROTTLE_MS = 1_000;
33
+ function storageKeyFor(accountId) {
34
+ return `${ACCOUNT_QUERY_CACHE_KEY}:${encodeURIComponent(accountId)}`;
35
+ }
36
+ export function createAccountQueryPersistence(queryClient, config) {
37
+ const persistedRoots = new Set(config.roots);
38
+ const accountRoots = new Set([...config.roots, ...(config.memoryOnlyRoots ?? [])]);
39
+ const mutationHashes = new Set((config.mutationKeys ?? []).map(key => hashKey(key)));
40
+ const listeners = new Set();
41
+ let storage = null;
42
+ let accountId = null;
43
+ let restoredFor = null;
44
+ let generation = 0;
45
+ let unsubscribePersist = null;
46
+ // The in-flight restore. A new account waits for it, so a late restore can
47
+ // never hydrate the previous account's rows after the switch.
48
+ let restoring = Promise.resolve();
49
+ const notify = () => {
50
+ for (const listener of listeners) listener();
51
+ };
52
+ const rootOf = query => {
53
+ const head = query.queryKey[0];
54
+ return typeof head === 'string' ? head : null;
55
+ };
56
+ const ownsQuery = query => accountRoots.has(rootOf(query) ?? '');
57
+ const persistsQuery = query => persistedRoots.has(rootOf(query) ?? '');
58
+ const ownsMutation = mutation => {
59
+ const key = mutation.options.mutationKey;
60
+ return key !== undefined && mutationHashes.has(hashKey(key));
61
+ };
62
+ const dropScopedData = () => {
63
+ queryClient.removeQueries({
64
+ predicate: ownsQuery
65
+ });
66
+ const mutations = queryClient.getMutationCache();
67
+ for (const mutation of mutations.getAll()) {
68
+ if (ownsMutation(mutation)) mutations.remove(mutation);
69
+ }
70
+ };
71
+ const persisterFor = (id, target) => createAsyncStoragePersister({
72
+ storage: {
73
+ getItem: key => target.getItem(key),
74
+ setItem: (key, value) => target.setItem(key, value),
75
+ removeItem: key => target.removeItem(key)
76
+ },
77
+ key: storageKeyFor(id),
78
+ throttleTime: ACCOUNT_QUERY_PERSIST_THROTTLE_MS
79
+ });
80
+ const start = () => {
81
+ const id = accountId;
82
+ const target = storage;
83
+ if (!id || !target || unsubscribePersist) return;
84
+ const current = generation;
85
+ const [unsubscribe, restored] = persistQueryClient({
86
+ queryClient,
87
+ persister: persisterFor(id, target),
88
+ maxAge: ACCOUNT_QUERY_CACHE_MAX_AGE,
89
+ buster: getOxyBuildId(),
90
+ dehydrateOptions: {
91
+ shouldDehydrateQuery: query => query.state.status === 'success' && persistsQuery(query),
92
+ shouldDehydrateMutation: mutation => mutation.state.isPaused && ownsMutation(mutation)
93
+ }
94
+ });
95
+ unsubscribePersist = unsubscribe;
96
+ restoring = restored.catch(() => undefined).then(() => {
97
+ if (current !== generation) return;
98
+ restoredFor = id;
99
+ notify();
100
+ });
101
+ };
102
+ const stop = () => {
103
+ unsubscribePersist?.();
104
+ unsubscribePersist = null;
105
+ };
106
+ return {
107
+ setStorage(next) {
108
+ if (storage) return;
109
+ storage = next;
110
+ const current = generation;
111
+ void restoring.then(() => {
112
+ if (current === generation) start();
113
+ });
114
+ },
115
+ activate(next) {
116
+ if (next === accountId) return;
117
+ const previous = accountId;
118
+ generation += 1;
119
+ const current = generation;
120
+ stop();
121
+ dropScopedData();
122
+ accountId = next;
123
+ restoredFor = null;
124
+ notify();
125
+ if (next === null && previous !== null && storage) {
126
+ void persisterFor(previous, storage).removeClient();
127
+ }
128
+ void restoring.then(() => {
129
+ if (current !== generation) return;
130
+ // A restore that was already in flight may have hydrated the previous
131
+ // account's rows; drop them again before this account's restore.
132
+ dropScopedData();
133
+ start();
134
+ });
135
+ },
136
+ isReady() {
137
+ return accountId === null || restoredFor === accountId;
138
+ },
139
+ subscribe(listener) {
140
+ listeners.add(listener);
141
+ return () => {
142
+ listeners.delete(listener);
143
+ };
144
+ },
145
+ ownsMutation,
146
+ dispose() {
147
+ generation += 1;
148
+ stop();
149
+ listeners.clear();
150
+ }
151
+ };
152
+ }
153
+ //# sourceMappingURL=accountQueryPersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["hashKey","persistQueryClient","createAsyncStoragePersister","getOxyBuildId","ACCOUNT_QUERY_CACHE_KEY","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","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","getItem","setItem","value","removeItem","throttleTime","start","current","unsubscribe","restored","persister","maxAge","buster","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":[]}
@@ -26,10 +26,11 @@
26
26
  * when introducing reads that should survive restart.
27
27
  */
28
28
 
29
- import { QueryClient, onlineManager } from '@tanstack/react-query';
29
+ import { QueryClient, hashKey, onlineManager } from '@tanstack/react-query';
30
30
  import { persistQueryClient } from '@tanstack/react-query-persist-client';
31
31
  import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister';
32
32
  import { isDev } from '@oxy.so/core';
33
+ import { getOxyBuildId } from "../utils/buildId.js";
33
34
  const QUERY_CACHE_KEY = 'oxy_query_cache_v3';
34
35
  const QUERY_CACHE_MAX_AGE = 30 * 24 * 60 * 60 * 1000; // 30 days
35
36
  const QUERY_PERSIST_THROTTLE_MS = 1_000;
@@ -91,14 +92,6 @@ function shouldDehydrateQuery(query) {
91
92
  return PERSISTED_QUERY_PREFIXES.includes(head);
92
93
  }
93
94
 
94
- /**
95
- * Persist every mutation regardless of status — paused mutations are
96
- * exactly the ones that must survive restart to replay when online.
97
- */
98
- function shouldDehydrateMutation(_mutation) {
99
- return true;
100
- }
101
-
102
95
  /**
103
96
  * Create a QueryClient with offline-first defaults.
104
97
  *
@@ -163,7 +156,13 @@ export const createQueryClient = () => {
163
156
  * Safe to no-op if `storage` is null/undefined (e.g. server-side render
164
157
  * with no host storage).
165
158
  */
166
- export const attachQueryPersistence = (queryClient, storage) => {
159
+ export const attachQueryPersistence = (queryClient, storage,
160
+ /**
161
+ * Mutation keys the app declared account-scoped (`accountQueries`). Those are
162
+ * persisted per account by `createAccountQueryPersistence`, never here, so a
163
+ * paused mutation cannot replay twice or under another account.
164
+ */
165
+ accountMutationKeys = []) => {
167
166
  if (!storage) {
168
167
  return {
169
168
  restored: Promise.resolve(),
@@ -175,10 +174,19 @@ export const attachQueryPersistence = (queryClient, storage) => {
175
174
  key: QUERY_CACHE_KEY,
176
175
  throttleTime: QUERY_PERSIST_THROTTLE_MS
177
176
  });
177
+
178
+ // Persist every other mutation regardless of status: paused mutations are
179
+ // exactly the ones that must survive restart to replay when online.
180
+ const accountScoped = new Set(accountMutationKeys.map(key => hashKey(key)));
181
+ const shouldDehydrateMutation = mutation => {
182
+ const key = mutation.options.mutationKey;
183
+ return key === undefined || !accountScoped.has(hashKey(key));
184
+ };
178
185
  const [unsubscribe, restored] = persistQueryClient({
179
186
  queryClient,
180
187
  persister,
181
188
  maxAge: QUERY_CACHE_MAX_AGE,
189
+ buster: getOxyBuildId(),
182
190
  dehydrateOptions: {
183
191
  shouldDehydrateQuery,
184
192
  shouldDehydrateMutation
@@ -1 +1 @@
1
- {"version":3,"names":["QueryClient","onlineManager","persistQueryClient","createAsyncStoragePersister","isDev","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","shouldDehydrateMutation","_mutation","createQueryClient","client","defaultOptions","queries","staleTime","gcTime","retry","retryDelay","attemptIndex","Math","min","refetchOnReconnect","refetchOnWindowFocus","networkMode","mutations","unsubscribe","subscribe","isOnline","getMutationCache","resumePausedMutations","Object","defineProperty","enumerable","configurable","writable","attachQueryPersistence","queryClient","restored","Promise","resolve","persister","throttleTime","maxAge","dehydrateOptions","catch","console","warn","clearQueryCache"],"sourceRoot":"../../../../src","sources":["ui/hooks/queryClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["QueryClient","hashKey","onlineManager","persistQueryClient","createAsyncStoragePersister","isDev","getOxyBuildId","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","defaultOptions","queries","staleTime","gcTime","retry","retryDelay","attemptIndex","Math","min","refetchOnReconnect","refetchOnWindowFocus","networkMode","mutations","unsubscribe","subscribe","isOnline","getMutationCache","resumePausedMutations","Object","defineProperty","enumerable","configurable","writable","attachQueryPersistence","queryClient","accountMutationKeys","restored","Promise","resolve","persister","throttleTime","accountScoped","Set","map","shouldDehydrateMutation","mutation","options","mutationKey","undefined","has","maxAge","buster","dehydrateOptions","catch","console","warn","clearQueryCache"],"sourceRoot":"../../../../src","sources":["ui/hooks/queryClient.ts"],"mappings":"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","ignoreList":[]}
@@ -24,6 +24,9 @@ export { default as OxyAuthPrompt } from "./components/OxyAuthPrompt.js";
24
24
  export { LogoIcon } from "./components/logo/LogoIcon.js";
25
25
  export { LogoText } from "./components/logo/LogoText.js";
26
26
  export { RequireOxyAuth } from "./components/RequireOxyAuth.js";
27
+
28
+ // `OxyProvider`'s `accountQueries`: the app's per-account offline cache.
29
+
27
30
  export { default as FollowButton } from "./components/FollowButton.js";
28
31
  export { default as PeableButton } from "./components/PeableButton.js";
29
32
  /** @deprecated Use `PeableButton` instead. */
@@ -1 +1 @@
1
- {"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","RequireOxyAuth","FollowButton","PeableButton","OxyPayButton","ProfileButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAuth","useFollow","useSeedFollowStatuses","useStorage","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,cAAc,QAAQ,gCAA6B;AAE5D,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;AACnE,SAASP,OAAO,IAAIQ,YAAY,QAAQ,8BAA2B;AAEnE;AACA,SAASR,OAAO,IAAIS,YAAY,QAAQ,8BAA2B;AACnE;;AAEA,SAAST,OAAO,IAAIU,aAAa,QAAQ,+BAA4B;;AAErE;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;AACtF,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,SAAS,EAAEC,qBAAqB,QAAQ,sBAAmB;AACpE,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA;;AAEA;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
1
+ {"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","RequireOxyAuth","FollowButton","PeableButton","OxyPayButton","ProfileButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAuth","useFollow","useSeedFollowStatuses","useStorage","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,cAAc,QAAQ,gCAA6B;;AAE5D;;AAEA,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;AACnE,SAASP,OAAO,IAAIQ,YAAY,QAAQ,8BAA2B;AAEnE;AACA,SAASR,OAAO,IAAIS,YAAY,QAAQ,8BAA2B;AACnE;;AAEA,SAAST,OAAO,IAAIU,aAAa,QAAQ,+BAA4B;;AAErE;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;AACtF,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,SAAS,EAAEC,qBAAqB,QAAQ,sBAAmB;AACpE,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA;;AAEA;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The identity of the JS bundle that is running, used as the buster for every
5
+ * persisted query cache the SDK owns.
6
+ *
7
+ * A persisted cache is restored and served before any refetch (offline-first),
8
+ * so data written by an older build reaches components in whatever shape that
9
+ * build used. Busting on the build means no app ever has to remember to bump a
10
+ * version when a query's shape changes: a new build simply starts from the
11
+ * network. Inbox shipped exactly that crash when a hand-kept buster was missed.
12
+ *
13
+ * `@oxy.so/app-preset`'s Babel config replaces `process.env.OXY_BUILD_ID` with
14
+ * the commit at bundle time, node_modules included. An app that does not use
15
+ * the preset gets a constant, which behaves like a buster that is never bumped.
16
+ */
17
+ export function getOxyBuildId() {
18
+ const buildId = typeof process === 'undefined' ? undefined : process.env.OXY_BUILD_ID;
19
+ return buildId || 'unversioned';
20
+ }
21
+ //# 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;AACA,OAAO,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":[]}
@@ -75,6 +75,7 @@ export { OxyConsentScreen } from './ui/components/OxyConsentScreen';
75
75
  export type { OxyConsentScreenProps, OxyConsentApplication, OxyConsentUser, OxyConsentResource, } from './ui/components/OxyConsentScreen';
76
76
  export { RequireOxyAuth } from './ui/components/RequireOxyAuth';
77
77
  export type { RequireOxyAuthProps, RequireOxyAuthPrompt } from './ui/components/RequireOxyAuth';
78
+ export type { AccountQueriesConfig } from './ui/hooks/accountQueryPersistence';
78
79
  export { default as FollowButton } from './ui/components/FollowButton';
79
80
  export type { FollowButtonProps, SingleFollowButtonProps, MultiFollowButtonProps } from './ui/components/FollowButton';
80
81
  export { FollowTargetButton, buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE, } from './ui/components/FollowTargetButton';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyProvider.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/OxyProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAuB5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA+LrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"OxyProvider.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/OxyProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAuB5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAmMrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RequireOxyAuth.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/RequireOxyAuth.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQjD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,qCAAqC;IACrC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAOD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4CxD,CAAC;AA0JF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"RequireOxyAuth.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/RequireOxyAuth.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQjD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,qCAAqC;IACrC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAOD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiDxD,CAAC;AA0JF,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyAuthenticatorPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAuthenticatorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqC/B,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAkMtE,CAAC"}
1
+ {"version":3,"file":"OxyAuthenticatorPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxyAuthenticatorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqC/B,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA8LtE,CAAC"}
@@ -10,9 +10,12 @@
10
10
  * photo carousel, in the right column (the account dialog grows to
11
11
  * that card); below `md` it is "Continue with Oxy" at the top. On
12
12
  * native it is "Continue with Oxy" ("Get Commons" without Commons).
13
- * check-email one email carries a code and a link. The code is typed here (6
14
- * digits, or the 10-character long code); meanwhile the screen asks
15
- * whether the link was opened in this browser, and signs in when it was.
13
+ * check-email one email carries a code and a link. The code is typed here: 6
14
+ * digits, or — "Does your code have letters?" — the 10-character
15
+ * long code an account past its daily guessing ceiling is sent
16
+ * (the start response does not say which, by design); meanwhile
17
+ * the screen asks whether the link was opened in this browser,
18
+ * and signs in when it was.
16
19
  * password the alternative for an account that has one.
17
20
  * second-factor the authenticator's code, or a backup code, when the account has one.
18
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"OxySignInPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxySignInPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgD/B,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAmBhD,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwlBxD,CAAC"}
1
+ {"version":3,"file":"OxySignInPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/OxySignInPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkD/B,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAqBhD,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+lBxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReauthStep.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/ReauthStep.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAa3F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,MAAM,EAAE,YAAY,CAAC;IACrB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,iCAAiC;IACjC,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA2JhD,CAAC"}
1
+ {"version":3,"file":"ReauthStep.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/ReauthStep.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAkC,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAexG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,MAAM,EAAE,YAAY,CAAC;IACrB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,iCAAiC;IACjC,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqKhD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * The pieces every Oxy sign-in and account screen shares: the error vocabulary,
3
- * one labelled field, the one primary action, a note, and the email-code step.
3
+ * one labelled field, one one-time-code field, the one primary action, a note,
4
+ * and the email-code step.
4
5
  * Each screen is built from the same shell as `OxySignInPanel`
5
6
  * (`OxyAuthScreen`), so they read as one product in the account dialog, in an
6
7
  * app's settings and on auth.oxy.so.
@@ -25,13 +26,11 @@ export declare function describeSignInError(error: unknown, t: Translate): strin
25
26
  export declare function isTicketExpired(error: unknown): boolean;
26
27
  /**
27
28
  * Whether a typed sign-in code is complete: 6 digits, or the 10-character long
28
- * code (`XXXXX-XXXXX`, any case, with or without its dash). Six digits count
29
- * only when typed without a separator: the long code is shown with its dash
30
- * after the fifth character, so a long code being typed never reads as 6 digits.
29
+ * code (`XXXXX-XXXXX`, any case, with or without its dash) in its own alphabet.
31
30
  */
32
31
  export declare function isCompleteSignInCode(typed: string): boolean;
33
- /** A typed sign-in code as it shows in its field: upper-case, the long code's dash kept. */
34
- export declare function formatSignInCodeInput(typed: string): string;
32
+ /** Characters in a backup code (`xxxxx-xxxxx`, its dash not counted). */
33
+ export declare const BACKUP_CODE_LENGTH = 10;
35
34
  /** One labelled input, the way the sign-in screen draws its fields. */
36
35
  export declare const AccountFlowField: React.FC<{
37
36
  label: string;
@@ -41,11 +40,32 @@ export declare const AccountFlowField: React.FC<{
41
40
  error: string | null;
42
41
  disabled?: boolean;
43
42
  placeholder?: string;
44
- autoComplete?: 'username' | 'email' | 'one-time-code' | 'off' | 'current-password' | 'new-password';
45
- keyboardType?: 'default' | 'email-address' | 'number-pad';
43
+ autoComplete?: 'username' | 'email' | 'off' | 'current-password' | 'new-password';
44
+ keyboardType?: 'default' | 'email-address';
46
45
  secureTextEntry?: boolean;
47
46
  autoFocus?: boolean;
48
- maxLength?: number;
47
+ hint?: string;
48
+ testID: string;
49
+ }>;
50
+ /**
51
+ * A one-time code: Bloom's `InputOtp`, one box per character, named by the
52
+ * field's label (the boxes are the field's `multiple` case). `numeric` codes
53
+ * are the email's 6 digits and the authenticator's; `alphanumeric` ones are
54
+ * the long sign-in code and a backup code, both `XXXXX-XXXXX` — upper-cased,
55
+ * the dash dropped, so a pasted code fills every box.
56
+ */
57
+ export declare const AccountFlowCodeField: React.FC<{
58
+ label: string;
59
+ value: string;
60
+ onChange: (value: string) => void;
61
+ /** Every box is filled. */
62
+ onComplete?: (value: string) => void;
63
+ error: string | null;
64
+ disabled?: boolean;
65
+ length: number;
66
+ type?: 'numeric' | 'alphanumeric';
67
+ groupEvery?: number;
68
+ autoFocus?: boolean;
49
69
  hint?: string;
50
70
  testID: string;
51
71
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"accountFlowParts.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/accountFlowParts.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accountFlowParts.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/signIn/accountFlowParts.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8E/B,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AAU3B,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAIhG,KAAK,0BAA0B,GAAG,IAAI,CACpC,eAAe,EACb,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,CACtB,CAAC;AAIF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAuvChE,CAAC;AAMF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,0BAA0B;;CAMxC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAO,eAAe,GAAG,IAAqC,CAAC;AAE1F,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,QAAO,0BAMpC,CAAC"}
1
+ {"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgF/B,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AAU3B,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAMhG,KAAK,0BAA0B,GAAG,IAAI,CACpC,eAAe,EACb,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,CACtB,CAAC;AAIF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAixChE,CAAC;AAMF,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,0BAA0B;;CAMxC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAO,eAAe,GAAG,IAAqC,CAAC;AAE1F,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,QAAO,0BAMpC,CAAC"}
@@ -9,6 +9,7 @@ import type { StartWebOAuthSignInOptions } from '../oauth/browserAuthTransport';
9
9
  import type { OAuthConsentResult, RequestOAuthConsentOptions } from '../oauth/explicitOAuthConsent';
10
10
  import type { WebAuthMode, WebOAuthSignInResult } from '../oauth/types';
11
11
  import type { StorageInterface } from '../utils/storageHelpers';
12
+ import type { AccountQueriesConfig } from '../hooks/accountQueryPersistence';
12
13
  /**
13
14
  * The outcome of `logout()`. It never rejects: a caller reads this instead.
14
15
  *
@@ -48,6 +49,12 @@ export interface OxyContextState {
48
49
  */
49
50
  isAuthResolved: boolean;
50
51
  isStorageReady: boolean;
52
+ /**
53
+ * Whether the signed-in account's persisted `accountQueries` cache has been
54
+ * restored. Always `true` signed out or when the app declared none.
55
+ * `RequireOxyAuth` waits on it.
56
+ */
57
+ isAccountCacheReady: boolean;
51
58
  /**
52
59
  * Who owns this provider's session (see `OxyProviderProps.sessionMode`).
53
60
  *
@@ -192,6 +199,8 @@ export interface OxyRuntimeProviderProps {
192
199
  onError?: (error: ApiError) => void;
193
200
  /** Storage instance owned by the public provider; internal composition seam. */
194
201
  platformStorage?: StorageInterface | null;
202
+ /** See `OxyProviderProps.accountQueries`. Read once, at mount. */
203
+ accountQueries?: AccountQueriesConfig;
195
204
  }
196
205
  /** Internal commit input — session plus zero-cookie device credential. */
197
206
  export interface CommitInput {
@@ -1 +1 @@
1
- {"version":3,"file":"oxyContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oxyContextTypes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Offline persistence for an app's PRIVATE, per-account queries.
3
+ *
4
+ * The SDK's own persister (`attachQueryPersistence`) keeps account-agnostic
5
+ * data. An app's mail, library or drafts belong to one account, and every app
6
+ * that wanted them to survive a restart had to scope a persister to the session
7
+ * itself. The SDK owns the session, so it owns this too:
8
+ *
9
+ * - Storage is keyed by the account (`oxy_account_queries:<accountId>`), so a
10
+ * restore can only ever hydrate the account that is signed in.
11
+ * - The buster is the build (`getOxyBuildId`), so no cache written by an older
12
+ * bundle, in an older shape, is ever served.
13
+ * - On a subject change the declared roots, memory-only ones included, and the
14
+ * account's paused mutations are dropped
15
+ * from memory synchronously, before anyone is woken, and the new account's
16
+ * blob is restored. `isReady()` is false until that restore settles, and
17
+ * `RequireOxyAuth` waits on it, so another account's rows never render.
18
+ * - On sign-out the signed-out account's blob is deleted.
19
+ */
20
+ import { type Mutation, type QueryClient, type QueryKey } from '@tanstack/react-query';
21
+ import type { StorageInterface } from '../utils/storageHelpers';
22
+ /** An app's declaration of which data is private to the signed-in account. */
23
+ export interface AccountQueriesConfig {
24
+ /**
25
+ * Query-key roots (`queryKey[0]`) whose data belongs to the signed-in account
26
+ * and survives a restart.
27
+ */
28
+ roots: readonly string[];
29
+ /**
30
+ * Roots that belong to the account too, but must not be written to disk
31
+ * (signed URLs, AI output, search results): dropped on a switch, never persisted.
32
+ */
33
+ memoryOnlyRoots?: readonly string[];
34
+ /**
35
+ * Mutation keys whose PAUSED (offline) instances replay after a restart for
36
+ * the same account. Register their `mutationFn` with `setMutationDefaults`.
37
+ */
38
+ mutationKeys?: readonly QueryKey[];
39
+ }
40
+ export declare const ACCOUNT_QUERY_CACHE_KEY = "oxy_account_queries";
41
+ export interface AccountQueryPersistence {
42
+ /** Storage became available (it initializes asynchronously). */
43
+ setStorage(storage: StorageInterface): void;
44
+ /** The signed-in account changed. `null` is a sign-out. Synchronous in-memory reset. */
45
+ activate(accountId: string | null): void;
46
+ /** True once the active account's cache is restored (always true signed out). */
47
+ isReady(): boolean;
48
+ subscribe(listener: () => void): () => void;
49
+ /** Whether a mutation is account-scoped (so the SDK's own persister skips it). */
50
+ ownsMutation(mutation: Mutation): boolean;
51
+ dispose(): void;
52
+ }
53
+ export declare function createAccountQueryPersistence(queryClient: QueryClient, config: AccountQueriesConfig): AccountQueryPersistence;
54
+ //# sourceMappingURL=accountQueryPersistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accountQueryPersistence.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/accountQueryPersistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAW,KAAK,QAAQ,EAAc,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CACpC;AAED,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAI7D,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,wFAAwF;IACxF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,iFAAiF;IACjF,OAAO,IAAI,OAAO,CAAC;IACnB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,kFAAkF;IAClF,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1C,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,oBAAoB,GAC3B,uBAAuB,CAmIzB"}