@oxy.so/services 13.11.0 → 13.12.1
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/ui/context/commitSessionFlow.js +4 -0
- package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +17 -2
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/oxyContextHelpers.js +2 -0
- package/lib/commonjs/ui/context/oxyContextHelpers.js.map +1 -1
- package/lib/commonjs/ui/hooks/accountQueryPersistence.js +19 -8
- package/lib/commonjs/ui/hooks/accountQueryPersistence.js.map +1 -1
- package/lib/commonjs/ui/hooks/persistedQueryCache.js +3 -3
- package/lib/commonjs/ui/hooks/persistedQueryCache.js.map +1 -1
- package/lib/commonjs/ui/hooks/queryClient.js +5 -1
- package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
- package/lib/commonjs/ui/hooks/useFollowTarget.js +9 -1
- package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/runtime/createOxyRuntime.js +1 -0
- package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -1
- package/lib/commonjs/ui/stores/followStore.js +14 -0
- package/lib/commonjs/ui/stores/followStore.js.map +1 -1
- package/lib/commonjs/ui/stores/followTargetStore.js +15 -5
- package/lib/commonjs/ui/stores/followTargetStore.js.map +1 -1
- package/lib/commonjs/ui/utils/errorHandlers.js +2 -0
- package/lib/commonjs/ui/utils/errorHandlers.js.map +1 -1
- package/lib/commonjs/ui/utils/followErrors.js +2 -0
- package/lib/commonjs/ui/utils/followErrors.js.map +1 -1
- package/lib/commonjs/ui/utils/sessionChangedError.js +20 -0
- package/lib/commonjs/ui/utils/sessionChangedError.js.map +1 -0
- package/lib/commonjs/ui/utils/sessionHelpers.js +2 -0
- package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/module/ui/context/commitSessionFlow.js +4 -0
- package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +17 -2
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/oxyContextHelpers.js +3 -0
- package/lib/module/ui/context/oxyContextHelpers.js.map +1 -1
- package/lib/module/ui/hooks/accountQueryPersistence.js +19 -8
- package/lib/module/ui/hooks/accountQueryPersistence.js.map +1 -1
- package/lib/module/ui/hooks/persistedQueryCache.js +3 -3
- package/lib/module/ui/hooks/persistedQueryCache.js.map +1 -1
- package/lib/module/ui/hooks/queryClient.js +5 -1
- package/lib/module/ui/hooks/queryClient.js.map +1 -1
- package/lib/module/ui/hooks/useFollowTarget.js +10 -2
- package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +3 -0
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/runtime/createOxyRuntime.js +1 -0
- package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -1
- package/lib/module/ui/stores/followStore.js +14 -0
- package/lib/module/ui/stores/followStore.js.map +1 -1
- package/lib/module/ui/stores/followTargetStore.js +14 -5
- package/lib/module/ui/stores/followTargetStore.js.map +1 -1
- package/lib/module/ui/utils/errorHandlers.js +2 -0
- package/lib/module/ui/utils/errorHandlers.js.map +1 -1
- package/lib/module/ui/utils/followErrors.js +3 -0
- package/lib/module/ui/utils/followErrors.js.map +1 -1
- package/lib/module/ui/utils/sessionChangedError.js +15 -0
- package/lib/module/ui/utils/sessionChangedError.js.map +1 -0
- package/lib/module/ui/utils/sessionHelpers.js +3 -0
- package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts +30 -3
- package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/persistedQueryCache.d.ts +7 -3
- package/lib/typescript/commonjs/ui/hooks/persistedQueryCache.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/stores/followStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts +2 -0
- package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/errorHandlers.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/followErrors.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/sessionChangedError.d.ts +8 -0
- package/lib/typescript/commonjs/ui/utils/sessionChangedError.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts +30 -3
- package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/persistedQueryCache.d.ts +7 -3
- package/lib/typescript/module/ui/hooks/persistedQueryCache.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -1
- package/lib/typescript/module/ui/stores/followStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/stores/followTargetStore.d.ts +2 -0
- package/lib/typescript/module/ui/stores/followTargetStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/errorHandlers.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/followErrors.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/sessionChangedError.d.ts +8 -0
- package/lib/typescript/module/ui/utils/sessionChangedError.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/sessionHelpers.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ui/context/__tests__/commitSessionFlow.test.ts +36 -0
- package/src/ui/context/commitSessionFlow.ts +4 -0
- package/src/ui/context/hooks/useAuthOperations.ts +14 -2
- package/src/ui/context/oxyContextHelpers.ts +3 -0
- package/src/ui/hooks/accountQueryPersistence.ts +60 -13
- package/src/ui/hooks/persistedQueryCache.ts +17 -3
- package/src/ui/hooks/queryClient.ts +8 -1
- package/src/ui/hooks/useFollowTarget.ts +10 -1
- package/src/ui/hooks/useSessionManagement.ts +3 -0
- package/src/ui/runtime/createOxyRuntime.ts +1 -0
- package/src/ui/stores/__tests__/followStore.test.ts +62 -0
- package/src/ui/stores/followStore.ts +14 -0
- package/src/ui/stores/followTargetStore.ts +11 -1
- package/src/ui/utils/errorHandlers.ts +2 -0
- package/src/ui/utils/followErrors.ts +3 -0
- package/src/ui/utils/sessionChangedError.ts +14 -0
- package/src/ui/utils/sessionHelpers.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followErrors.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/followErrors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"followErrors.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/followErrors.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe;AACzB,oCAAoC;AAClC,aAAa;AACf,wCAAwC;GACtC,eAAe;AACjB,yEAAyE;GACvE,aAAa;AACf,4EAA4E;GAC1E,SAAS;AACX,6DAA6D;GAC3D,YAAY;AACd,6DAA6D;GAC3D,WAAW;AACb,uDAAuD;GACrD,WAAW;AACb,yCAAyC;GACvC,cAAc,CAAC;AAEnB,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,CAAC;AAIpF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAYhG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** A locally superseded request is not a server rejection of the new session. */
|
|
2
|
+
export declare function isSessionChangedError(error: unknown): boolean;
|
|
3
|
+
/** A locally superseded operation must not be mistaken for a server 401. */
|
|
4
|
+
export declare function createSessionChangedError(): Error & {
|
|
5
|
+
code: string;
|
|
6
|
+
status: number;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=sessionChangedError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionChangedError.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/sessionChangedError.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,IAAI,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/sessionHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/sessionHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE;YAAE,QAAQ,IAAI,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AAEH,KAAK,cAAc,GAAG,GAAG,CAAC;AAE1B,MAAM,WAAW,gCAAgC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,aAAa,EAAE,EACzB,mBAAmB,MAAM,EACzB,iBAAiB,MAAM,KACtB,aAAa,EAgBf,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,GACpC,aAAa,cAAc,EAC3B,WAAW,MAAM,EACjB,+CAA8C,gCAAqC,KAClF,OAAO,CAAC,aAAa,EAAE,CAazB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitSessionFlow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/commitSessionFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"commitSessionFlow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/commitSessionFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,WAAW,6BAA6B;IAC5C;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,6EAA6E;IAC7E,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,8EAA8E;IAC9E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,sCAAsC;IACtC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,yEAAyE;IACzE,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,6EAA6E;IAC7E,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,IAAI,CAAC,CAyGf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAuthOperations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/context/hooks/useAuthOperations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAe,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAoB,CAAC;AAKvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,uBAAuB,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC;;;;;;OAMG;IACH,KAAK,EAAE,cAAc,CAAC;IACtB;;;;OAIG;IACH,OAAO,EAAE,UAAU,CAAC;IACpB,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,0JAA0J;IAC1J,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;;;;OAKG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B,+MAA+M;IAC/M,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,6EAA6E;IAC7E,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5D,+BAA+B;IAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAMD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,cAAc,EACrB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,GAClD,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,8NAe/B,wBAAwB,KAAG,uBAka7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oxyContextHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextHelpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oxyContextHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/oxyContextHelpers.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,QAA0B,CAAC;AAEnE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoBhE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG5D"}
|
|
@@ -36,6 +36,10 @@ import type { StorageInterface } from '../utils/storageHelpers.js';
|
|
|
36
36
|
export interface AccountQueryMeta {
|
|
37
37
|
persist: 'account';
|
|
38
38
|
}
|
|
39
|
+
type QueryIdentity = {
|
|
40
|
+
queryKey: QueryKey;
|
|
41
|
+
meta?: Query['meta'];
|
|
42
|
+
};
|
|
39
43
|
/** An app's declaration of which data is private to the signed-in account. */
|
|
40
44
|
export interface AccountQueriesConfig {
|
|
41
45
|
/**
|
|
@@ -53,21 +57,43 @@ export interface AccountQueriesConfig {
|
|
|
53
57
|
/**
|
|
54
58
|
* Roots that belong to the account too, but must not be written to disk
|
|
55
59
|
* (signed URLs, AI output, search results): dropped on a switch, never persisted.
|
|
60
|
+
* `'all'` keeps every account-owned query in memory only, including marked
|
|
61
|
+
* queries unless `persistMarkedQueries` is enabled. Device-level SDK roots
|
|
62
|
+
* remain excluded unless an individual query declares account persistence.
|
|
56
63
|
*/
|
|
57
|
-
memoryOnlyRoots?: readonly string[];
|
|
64
|
+
memoryOnlyRoots?: readonly string[] | 'all';
|
|
65
|
+
/**
|
|
66
|
+
* When `memoryOnlyRoots` is `'all'`, persist queries explicitly marked with
|
|
67
|
+
* `meta.persist = 'account'`. SDK memory-only roots remain excluded.
|
|
68
|
+
* Defaults to false.
|
|
69
|
+
*/
|
|
70
|
+
persistMarkedQueries?: boolean;
|
|
58
71
|
/**
|
|
59
72
|
* Mutation keys whose PAUSED (offline) instances replay after a restart for
|
|
60
73
|
* the same account. Register their `mutationFn` with `setMutationDefaults`.
|
|
61
74
|
*/
|
|
62
75
|
mutationKeys?: readonly QueryKey[];
|
|
76
|
+
/**
|
|
77
|
+
* Remove unregistered mutation records as well on every account transition.
|
|
78
|
+
* Only registered paused mutations are saved and restored; unregistered
|
|
79
|
+
* mutations are excluded from the shared persisted cache too. Removing a record
|
|
80
|
+
* does not cancel an in-flight request or its callbacks; apps must scope
|
|
81
|
+
* their mutation effects to the account that started them.
|
|
82
|
+
* Defaults to false.
|
|
83
|
+
*/
|
|
84
|
+
clearUnregisteredMutations?: boolean;
|
|
63
85
|
}
|
|
64
86
|
/** Which queries and mutations an `AccountQueriesConfig` makes the account's. */
|
|
65
87
|
export interface AccountQueryOwnership {
|
|
66
88
|
/** Dropped from memory on a subject change. */
|
|
67
|
-
ownsQuery: (query:
|
|
89
|
+
ownsQuery: (query: QueryIdentity) => boolean;
|
|
68
90
|
/** Written to the account's blob. */
|
|
69
|
-
persistsQuery: (query:
|
|
91
|
+
persistsQuery: (query: QueryIdentity) => boolean;
|
|
70
92
|
ownsMutation: (mutation: Mutation) => boolean;
|
|
93
|
+
/** Eligible for the account's persisted paused mutations. */
|
|
94
|
+
persistsMutation: (mutation: Mutation) => boolean;
|
|
95
|
+
/** Whether a stored mutation key belongs to this account's offline queue. */
|
|
96
|
+
persistsMutationKey: (key: QueryKey | undefined) => boolean;
|
|
71
97
|
}
|
|
72
98
|
export declare function accountQueryOwnership(config?: AccountQueriesConfig): AccountQueryOwnership;
|
|
73
99
|
export declare const ACCOUNT_QUERY_CACHE_KEY = "oxy_account_queries";
|
|
@@ -87,4 +113,5 @@ export interface AccountQueryPersistence {
|
|
|
87
113
|
subscribe(listener: () => void): () => void;
|
|
88
114
|
}
|
|
89
115
|
export declare function createAccountQueryPersistence(queryClient: QueryClient, config?: AccountQueriesConfig): AccountQueryPersistence;
|
|
116
|
+
export {};
|
|
90
117
|
//# sourceMappingURL=accountQueryPersistence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountQueryPersistence.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/accountQueryPersistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAAyB,CAAC;AAWhE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,SAAS,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"accountQueryPersistence.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/accountQueryPersistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAAyB,CAAC;AAWhE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAMlE,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;OAUG;IACH,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IACjC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IAC5C;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACnC;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;IAC7C,qCAAqC;IACrC,aAAa,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;IACjD,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC9C,6DAA6D;IAC7D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;IAClD,6EAA6E;IAC7E,mBAAmB,EAAE,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,KAAK,OAAO,CAAC;CAC7D;AAQD,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,oBAA+B,GACtC,qBAAqB,CA6CvB;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,2EAA2E;IAC3E,MAAM,IAAI,IAAI,CAAC;IACf,2EAA2E;IAC3E,MAAM,IAAI,IAAI,CAAC;IACf,iFAAiF;IACjF,OAAO,IAAI,OAAO,CAAC;IACnB,4EAA4E;IAC5E,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAMD,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,uBAAuB,CAqJzB"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* offline). A deploy must not lose them, so they are restored whatever build
|
|
13
13
|
* wrote them; the current build's `setMutationDefaults` replays them.
|
|
14
14
|
*/
|
|
15
|
-
import { type Mutation, type Query, type QueryClient } from '@tanstack/react-query';
|
|
15
|
+
import { type DehydratedState, type Mutation, type Query, type QueryClient } from '@tanstack/react-query';
|
|
16
16
|
/** The SDK's own account-agnostic query roots, persisted by `attachQueryPersistence`. */
|
|
17
17
|
export declare const PERSISTED_QUERY_PREFIXES: ReadonlyArray<string>;
|
|
18
18
|
/**
|
|
@@ -25,7 +25,7 @@ export interface PersistFilters {
|
|
|
25
25
|
persistsQuery: (query: Query) => boolean;
|
|
26
26
|
shouldDehydrateMutation: (mutation: Mutation) => boolean;
|
|
27
27
|
}
|
|
28
|
-
export declare function rootOf(query: Query): string | null;
|
|
28
|
+
export declare function rootOf(query: Pick<Query, 'queryKey'>): string | null;
|
|
29
29
|
/** Serialize what the filters select, stamped with this build. */
|
|
30
30
|
export declare function snapshot(queryClient: QueryClient, filters: PersistFilters): string;
|
|
31
31
|
/**
|
|
@@ -33,7 +33,11 @@ export declare function snapshot(queryClient: QueryClient, filters: PersistFilte
|
|
|
33
33
|
* it is still wanted immediately before. Returns false when there was nothing
|
|
34
34
|
* usable (absent, unreadable or expired), in which case the caller removes it.
|
|
35
35
|
*/
|
|
36
|
-
export declare function hydrateSnapshot(queryClient: QueryClient, raw: string | null, maxAge: number
|
|
36
|
+
export declare function hydrateSnapshot(queryClient: QueryClient, raw: string | null, maxAge: number, options?: {
|
|
37
|
+
shouldRestoreQuery?: (query: DehydratedState['queries'][number]) => boolean;
|
|
38
|
+
shouldRestoreMutation?: (mutation: DehydratedState['mutations'][number]) => boolean;
|
|
39
|
+
restoreMutations?: boolean;
|
|
40
|
+
}): boolean;
|
|
37
41
|
/**
|
|
38
42
|
* Write the filtered cache whenever one of its queries or any mutation changes,
|
|
39
43
|
* at most once per `throttleMs`. Activity in queries it does not keep (feeds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistedQueryCache.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/persistedQueryCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"persistedQueryCache.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/persistedQueryCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAG/B,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,MAAM,CAM1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAKvD,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,4FAA4F;IAC5F,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACzC,uBAAuB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;CAC1D;AAQD,wBAAgB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,GAAG,IAAI,CAGpE;AAED,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAWlF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;IAC5E,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;IACpF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GACA,OAAO,CA8BT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAClC;IAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAuBhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryClient.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queryClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,WAAW,EAA6B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAAyB,CAAC;AAChE,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,8BAA2B,CAAC;AAqB7F,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9E;AAQD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,QAAO,WA6CpC,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,WAAW,EACxB,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC5C,iBAAiB,oBAAoB,KACpC,
|
|
1
|
+
{"version":3,"file":"queryClient.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/queryClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,WAAW,EAA6B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAAyB,CAAC;AAChE,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,8BAA2B,CAAC;AAqB7F,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9E;AAQD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,QAAO,WA6CpC,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,WAAW,EACxB,SAAS,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC5C,iBAAiB,oBAAoB,KACpC,uBAmDF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAQ7E,CAAC;AAEF;;GAEG;AACH,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFollowTarget.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollowTarget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFollowTarget.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollowTarget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUtD,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,0BAAuB,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,sFAAsF;IACtF,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;IACnC;;;;;;;;OAQG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GACzC,qBAAqB,CA0KvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionManagement.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSessionManagement.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionManagement.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSessionManagement.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAY,CAAC;AAE7C,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,WAAW,CAAC;IACzB,+EAA+E;IAC/E,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,2FAA2F;IAC3F,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/C,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,gFAAgF;IAChF,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,WAAW,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;CAChD;AAKD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAAI,qHAUlC,2BAA2B,KAAG,0BAoKhC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** Glyphs are decorative: hidden from assistive technology (see `decorativeIconSet`). */
|
|
2
|
-
declare const MaterialCommunityIcons: import("@expo/vector-icons/build/createIconSet").Icon<"function" | "android" | "web" | "devices" | "at" | "forward" | "account" | "security" | "message" | "email" | "bio" | "phone" | "key" | "network" | "logout" | "label" | "history" | "wallet" | "link" | "text" | "translate" | "scale" | "solid" | "wrap" | "image" | "alert" | "radio" | "switch" | "grid" | "numeric" | "loading" | "decimal" | "contacts" | "ellipse" | "alert-circle" | "alert-circle-outline" | "apps" | "archive" | "arrow-down" | "arrow-up" | "briefcase-outline" | "bug" | "calendar" | "calendar-outline" | "camera" | "camera-outline" | "card" | "card-outline" | "cart-outline" | "chevron-down" | "chevron-up" | "close" | "close-circle" | "cloud-outline" | "cloud-upload" | "cloud-upload-outline" | "cog" | "cog-outline" | "cube-outline" | "download" | "download-outline" | "earth" | "ellipse-outline" | "eye" | "eye-off-outline" | "filter-outline" | "flash" | "folder" | "folder-open-outline" | "folder-outline" | "gift" | "gift-outline" | "heart" | "heart-outline" | "help-circle" | "help-circle-outline" | "image-outline" | "information" | "information-outline" | "leaf" | "library" | "mail" | "pencil-outline" | "play" | "pulse" | "receipt-outline" | "resize" | "rocket" | "school-outline" | "server" | "share-outline" | "shield" | "star" | "sync" | "trophy" | "trophy-outline" | "volume-off" | "wallet-outline" | "watch" | "wifi" | "delete" | "account-circle" | "account-cog-outline" | "account-eye-outline" | "account-group" | "account-multiple" | "account-outline" | "account-plus" | "account-search" | "account-switch" | "archive-arrow-down" | "arrow-left" | "bell" | "bell-outline" | "bullhorn" | "cake-variant" | "cake-variant-outline" | "
|
|
2
|
+
declare const MaterialCommunityIcons: import("@expo/vector-icons/build/createIconSet").Icon<"function" | "android" | "web" | "devices" | "cancel" | "at" | "forward" | "account" | "security" | "message" | "email" | "bio" | "phone" | "key" | "network" | "logout" | "label" | "history" | "wallet" | "link" | "text" | "translate" | "scale" | "solid" | "wrap" | "image" | "alert" | "radio" | "switch" | "grid" | "numeric" | "loading" | "decimal" | "contacts" | "ellipse" | "alert-circle" | "alert-circle-outline" | "apps" | "archive" | "arrow-down" | "arrow-up" | "briefcase-outline" | "bug" | "calendar" | "calendar-outline" | "camera" | "camera-outline" | "card" | "card-outline" | "cart-outline" | "chevron-down" | "chevron-up" | "close" | "close-circle" | "cloud-outline" | "cloud-upload" | "cloud-upload-outline" | "cog" | "cog-outline" | "cube-outline" | "download" | "download-outline" | "earth" | "ellipse-outline" | "eye" | "eye-off-outline" | "filter-outline" | "flash" | "folder" | "folder-open-outline" | "folder-outline" | "gift" | "gift-outline" | "heart" | "heart-outline" | "help-circle" | "help-circle-outline" | "image-outline" | "information" | "information-outline" | "leaf" | "library" | "mail" | "pencil-outline" | "play" | "pulse" | "receipt-outline" | "resize" | "rocket" | "school-outline" | "server" | "share-outline" | "shield" | "star" | "sync" | "trophy" | "trophy-outline" | "volume-off" | "wallet-outline" | "watch" | "wifi" | "delete" | "account-circle" | "account-cog-outline" | "account-eye-outline" | "account-group" | "account-multiple" | "account-outline" | "account-plus" | "account-search" | "account-switch" | "archive-arrow-down" | "arrow-left" | "bell" | "bell-outline" | "bullhorn" | "cake-variant" | "cake-variant-outline" | "cellphone" | "cellphone-basic" | "cellphone-message" | "cellphone-screenshot" | "chart-line" | "check-all" | "check-circle" | "chip" | "circle-outline" | "clock" | "clock-outline" | "code-tags" | "contain" | "content-copy" | "controller" | "cookie" | "credit-card" | "database-outline" | "delete-outline" | "dots-horizontal" | "email-outline" | "file" | "file-document" | "file-document-edit-outline" | "file-document-outline" | "file-excel-outline" | "file-outline" | "file-pdf-box" | "folder-image" | "folder-zip-outline" | "ghost" | "image-multiple-outline" | "inbox" | "link-variant" | "lock-outline" | "magnify" | "map-marker" | "map-marker-multiple" | "map-marker-outline" | "message-outline" | "minus-circle" | "motion" | "music-note-outline" | "null" | "open-in-app" | "openid" | "palette" | "palette-outline" | "pan" | "phone-outline" | "plus" | "plus-circle" | "post" | "presentation" | "react" | "read" | "shield-account-outline" | "shield-check" | "shield-search" | "signature" | "sort-alphabetical-variant" | "sort-numeric-variant" | "store" | "tag" | "tag-outline" | "text-box-outline" | "theme-light-dark" | "transfer" | "trash-can-outline" | "tray-arrow-down" | "update" | "upload" | "video-outline" | "wifi-off" | "wrench" | "xml", "OxyServicesMaterialCommunityIcons">;
|
|
3
3
|
export default MaterialCommunityIcons;
|
|
4
4
|
//# sourceMappingURL=MaterialCommunityIcons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOxyRuntime.d.ts","sourceRoot":"","sources":["../../../../../src/ui/runtime/createOxyRuntime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createOxyRuntime.d.ts","sourceRoot":"","sources":["../../../../../src/ui/runtime/createOxyRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,0BAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"followStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,0BAAuB,CAAC;AAGhF,UAAU,WAAW;IAKnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC;IAE/C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAKnE,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC1D,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAI7B,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7E,gBAAgB,EAAE,CAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,OAAO,KAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE5F,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhG,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,4BAA4B,EAAE,CAC5B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,QAAQ,GAAG,UAAU,EAC7B,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAChD,aAAa,CAAC,EAAE,MAAM,KACnB,IAAI,CAAC;IACV,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AA8BD,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,QAAO,IAMxC,CAAC;AAEF,eAAO,MAAM,cAAc,0EAmZxB,CAAC"}
|
|
@@ -25,6 +25,8 @@ import type { FollowApplicationMode, FollowRecord, FollowStatus } from '@oxy.so/
|
|
|
25
25
|
import type { FollowErrorCode } from '../utils/followErrors.js';
|
|
26
26
|
/** The status of one target, or `undefined` when it has never been read. */
|
|
27
27
|
type StatusMap = Record<string, FollowStatus | undefined>;
|
|
28
|
+
/** The generation changes whenever account-scoped follow state is reset. */
|
|
29
|
+
export declare function getFollowTargetGeneration(): number;
|
|
28
30
|
interface FollowTargetState {
|
|
29
31
|
statuses: StatusMap;
|
|
30
32
|
/** In-flight writes, per target. Reads do not set this — only mutations do. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAAuB,CAAC;AAE7D,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAAuB,CAAC;AAE7D,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAI1D,4EAA4E;AAC5E,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC,CAAC;IAEpD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,CAAC;IACzE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAuB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAGpE;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAQvE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAM9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHandlers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/errorHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"errorHandlers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/errorHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAiB7C,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AA0BD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,KAAG,OA6BtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OA6CxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,OAAO,EACd,wBAAoC,KACnC,MAuBF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,OAAO,EACd,iEAAiE,sBAAsB,KACtF,MAkBF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followErrors.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/followErrors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"followErrors.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/followErrors.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe;AACzB,oCAAoC;AAClC,aAAa;AACf,wCAAwC;GACtC,eAAe;AACjB,yEAAyE;GACvE,aAAa;AACf,4EAA4E;GAC1E,SAAS;AACX,6DAA6D;GAC3D,YAAY;AACd,6DAA6D;GAC3D,WAAW;AACb,uDAAuD;GACrD,WAAW;AACb,yCAAyC;GACvC,cAAc,CAAC;AAEnB,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,CAAC;AAIpF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAYhG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** A locally superseded request is not a server rejection of the new session. */
|
|
2
|
+
export declare function isSessionChangedError(error: unknown): boolean;
|
|
3
|
+
/** A locally superseded operation must not be mistaken for a server 401. */
|
|
4
|
+
export declare function createSessionChangedError(): Error & {
|
|
5
|
+
code: string;
|
|
6
|
+
status: number;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=sessionChangedError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionChangedError.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/sessionChangedError.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,IAAI,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/sessionHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/sessionHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE;YAAE,QAAQ,IAAI,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AAEH,KAAK,cAAc,GAAG,GAAG,CAAC;AAE1B,MAAM,WAAW,gCAAgC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,aAAa,EAAE,EACzB,mBAAmB,MAAM,EACzB,iBAAiB,MAAM,KACtB,aAAa,EAgBf,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,GACpC,aAAa,cAAc,EAC3B,WAAW,MAAM,EACjB,+CAA8C,gCAAqC,KAClF,OAAO,CAAC,aAAa,EAAE,CAazB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxy.so/services",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.12.1",
|
|
4
4
|
"description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"@commitlint/config-conventional": "^21.2.0",
|
|
162
162
|
"@expo/app-integrity": "~58.0.2",
|
|
163
163
|
"@expo/vector-icons": "^15.0.3",
|
|
164
|
-
"@oxy.so/core": "7.9.
|
|
164
|
+
"@oxy.so/core": "7.9.1",
|
|
165
165
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
166
166
|
"@react-native-community/netinfo": "^12.0.1",
|
|
167
167
|
"@react-native/babel-preset": "^0.88.0",
|
|
@@ -69,6 +69,42 @@ const buildDeps = (
|
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
describe('commitDeviceSetAndResolve — cold boot (activate: false)', () => {
|
|
72
|
+
it.each([
|
|
73
|
+
['cold boot', { activate: false }],
|
|
74
|
+
['sign-in', { activate: true }],
|
|
75
|
+
['isolated OAuth', { activate: true, isolatedOAuth: true }],
|
|
76
|
+
])(
|
|
77
|
+
'does not restore the old user after a superseded %s profile fetch',
|
|
78
|
+
async (_name, options) => {
|
|
79
|
+
const pending = deferred<User | null>();
|
|
80
|
+
const changed = { code: 'AUTH_SESSION_CHANGED', status: 401 };
|
|
81
|
+
const deps = buildDeps([], { ...options, getCurrentUser: jest.fn(() => pending.promise) });
|
|
82
|
+
const work = commitDeviceSetAndResolve(deps);
|
|
83
|
+
const failure = expect(work).rejects.toBe(changed);
|
|
84
|
+
await flush();
|
|
85
|
+
pending.reject(changed);
|
|
86
|
+
await failure;
|
|
87
|
+
expect(deps.loginSuccess).not.toHaveBeenCalled();
|
|
88
|
+
expect(deps.onAuthStateChange).not.toHaveBeenCalled();
|
|
89
|
+
expect(deps.markAuthResolved).not.toHaveBeenCalled();
|
|
90
|
+
},
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
it('does not hydrate or commit an old sign-in after its registration is superseded', async () => {
|
|
94
|
+
const pending = deferred<void>();
|
|
95
|
+
const changed = { code: 'AUTH_SESSION_CHANGED', status: 401 };
|
|
96
|
+
const deps = buildDeps([], {
|
|
97
|
+
activate: true,
|
|
98
|
+
registerAndActivate: jest.fn(() => pending.promise),
|
|
99
|
+
});
|
|
100
|
+
const work = commitDeviceSetAndResolve(deps);
|
|
101
|
+
const failure = expect(work).rejects.toBe(changed);
|
|
102
|
+
pending.reject(changed);
|
|
103
|
+
await failure;
|
|
104
|
+
expect(deps.getCurrentUser).not.toHaveBeenCalled();
|
|
105
|
+
expect(deps.loginSuccess).not.toHaveBeenCalled();
|
|
106
|
+
expect(deps.markAuthResolved).not.toHaveBeenCalled();
|
|
107
|
+
});
|
|
72
108
|
it('does not re-register when the mint already returned authoritative device state', async () => {
|
|
73
109
|
const order: string[] = [];
|
|
74
110
|
const deps = buildDeps(order, { hasDeviceState: true });
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { User } from '@oxy.so/core';
|
|
2
2
|
import { logger as loggerUtil } from '@oxy.so/core';
|
|
3
3
|
import { isUnauthorizedStatus } from './oxyContextHelpers';
|
|
4
|
+
import { isSessionChangedError } from '../utils/sessionChangedError';
|
|
4
5
|
|
|
5
6
|
const LOG_CONTEXT = { component: 'OxyContext', method: 'commitSession' } as const;
|
|
6
7
|
|
|
@@ -79,6 +80,7 @@ export async function commitDeviceSetAndResolve(
|
|
|
79
80
|
};
|
|
80
81
|
|
|
81
82
|
const logReconcileError = (registrationError: unknown): void => {
|
|
83
|
+
if (isSessionChangedError(registrationError)) return;
|
|
82
84
|
// A 401 here is the EXPECTED signed-out edge: the bearer was stale/cleared, so
|
|
83
85
|
// the device-set registration (`POST /session/device/add`) cannot carry auth.
|
|
84
86
|
// This is not a failure — the cold boot re-registers on the next load once a
|
|
@@ -107,6 +109,7 @@ export async function commitDeviceSetAndResolve(
|
|
|
107
109
|
try {
|
|
108
110
|
fullUser = await getCurrentUser();
|
|
109
111
|
} catch (profileError) {
|
|
112
|
+
if (isSessionChangedError(profileError)) throw profileError;
|
|
110
113
|
if (__DEV__) {
|
|
111
114
|
loggerUtil.debug(
|
|
112
115
|
'Failed to fetch full user on commit; using minimal fallback',
|
|
@@ -137,6 +140,7 @@ export async function commitDeviceSetAndResolve(
|
|
|
137
140
|
try {
|
|
138
141
|
await reconcileDeviceSet();
|
|
139
142
|
} catch (registrationError) {
|
|
143
|
+
if (isSessionChangedError(registrationError)) throw registrationError;
|
|
140
144
|
logReconcileError(registrationError);
|
|
141
145
|
}
|
|
142
146
|
await hydrateAndResolve();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
2
|
import { logoutIsolatedOAuthSession, readIsolatedOAuthSession } from '../isolatedOAuthSession';
|
|
3
|
+
import { isSessionChangedError } from '../../utils/sessionChangedError';
|
|
3
4
|
import type { ApiError, User } from '@oxy.so/core';
|
|
4
5
|
import type { AuthStateStore, IdentityBinding, SessionClient } from '@oxy.so/core/session';
|
|
5
6
|
import type { ClientSession, SessionLoginResponse } from '@oxy.so/core';
|
|
@@ -174,6 +175,7 @@ export const useAuthOperations = ({
|
|
|
174
175
|
});
|
|
175
176
|
await refreshPinnedAccountId?.();
|
|
176
177
|
} catch (pinError) {
|
|
178
|
+
if (isSessionChangedError(pinError)) throw pinError;
|
|
177
179
|
logger?.('Failed to persist identity pin after sign-in', pinError);
|
|
178
180
|
}
|
|
179
181
|
}
|
|
@@ -192,6 +194,7 @@ export const useAuthOperations = ({
|
|
|
192
194
|
await syncFromClient();
|
|
193
195
|
deviceRegistrationCommitted = true;
|
|
194
196
|
} catch (registrationError) {
|
|
197
|
+
if (isSessionChangedError(registrationError)) throw registrationError;
|
|
195
198
|
logger?.('Failed to register sign-in into device session set', registrationError);
|
|
196
199
|
}
|
|
197
200
|
|
|
@@ -214,6 +217,7 @@ export const useAuthOperations = ({
|
|
|
214
217
|
},
|
|
215
218
|
);
|
|
216
219
|
} catch (error) {
|
|
220
|
+
if (isSessionChangedError(error)) throw error;
|
|
217
221
|
if (__DEV__ && logger) {
|
|
218
222
|
logger('Failed to fetch device sessions after login', error);
|
|
219
223
|
}
|
|
@@ -231,6 +235,7 @@ export const useAuthOperations = ({
|
|
|
231
235
|
try {
|
|
232
236
|
await oxyServices.session.logout(sessionResponse.sessionId, sessionResponse.sessionId);
|
|
233
237
|
} catch (logoutError) {
|
|
238
|
+
if (isSessionChangedError(logoutError)) throw logoutError;
|
|
234
239
|
// Non-critical - continue to switch session even if logout fails
|
|
235
240
|
if (__DEV__ && logger) {
|
|
236
241
|
logger('Failed to logout duplicate session, continuing with switch', logoutError);
|
|
@@ -289,6 +294,7 @@ export const useAuthOperations = ({
|
|
|
289
294
|
*/
|
|
290
295
|
const signIn = useCallback(
|
|
291
296
|
async (publicKey: string, deviceName?: string): Promise<User> => {
|
|
297
|
+
let superseded = false;
|
|
292
298
|
runtime.batch(() => {
|
|
293
299
|
runtime.setLoading(true);
|
|
294
300
|
runtime.setError(null);
|
|
@@ -297,6 +303,10 @@ export const useAuthOperations = ({
|
|
|
297
303
|
try {
|
|
298
304
|
return await performSignIn(publicKey);
|
|
299
305
|
} catch (error) {
|
|
306
|
+
if (isSessionChangedError(error)) {
|
|
307
|
+
superseded = true;
|
|
308
|
+
throw error;
|
|
309
|
+
}
|
|
300
310
|
const message = handleAuthError(error, {
|
|
301
311
|
defaultMessage: 'Sign in failed',
|
|
302
312
|
code: LOGIN_ERROR_CODE,
|
|
@@ -307,7 +317,7 @@ export const useAuthOperations = ({
|
|
|
307
317
|
runtime.setError(message);
|
|
308
318
|
throw error;
|
|
309
319
|
} finally {
|
|
310
|
-
runtime.setLoading(false);
|
|
320
|
+
if (!superseded) runtime.setLoading(false);
|
|
311
321
|
}
|
|
312
322
|
},
|
|
313
323
|
[runtime, performSignIn, onError, logger],
|
|
@@ -329,7 +339,7 @@ export const useAuthOperations = ({
|
|
|
329
339
|
revokeSelf: (sessionId) => oxyServices.session.logout(sessionId),
|
|
330
340
|
clearSessionState,
|
|
331
341
|
});
|
|
332
|
-
if (result.status === 'failed') {
|
|
342
|
+
if (result.status === 'failed' && !isSessionChangedError(result.error)) {
|
|
333
343
|
handleAuthError(result.error, {
|
|
334
344
|
defaultMessage: 'Logout failed',
|
|
335
345
|
code: LOGOUT_ERROR_CODE,
|
|
@@ -378,6 +388,7 @@ export const useAuthOperations = ({
|
|
|
378
388
|
}
|
|
379
389
|
return { status: 'signed-out' };
|
|
380
390
|
} catch (error) {
|
|
391
|
+
if (isSessionChangedError(error)) return { status: 'failed', error };
|
|
381
392
|
const isInvalid = isInvalidSessionError(error);
|
|
382
393
|
|
|
383
394
|
// Compare the RESOLVED target, not the raw optional parameter: every
|
|
@@ -459,6 +470,7 @@ export const useAuthOperations = ({
|
|
|
459
470
|
await clearPersistedAuthSafe(store, logger);
|
|
460
471
|
await clearSessionState();
|
|
461
472
|
} catch (error) {
|
|
473
|
+
if (isSessionChangedError(error)) throw error;
|
|
462
474
|
if (isInvalidSessionError(error)) {
|
|
463
475
|
// An already-invalid bearer means the sessions this call would have
|
|
464
476
|
// revoked are ALREADY gone — the sign-out happened, it just happened
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { isSessionChangedError } from '../utils/sessionChangedError';
|
|
2
|
+
|
|
1
3
|
/** Local display hint when a session lacks explicit `expiresAt` (7 days). */
|
|
2
4
|
export const DEFAULT_SESSION_VALIDITY_MS = 7 * 24 * 60 * 60 * 1000;
|
|
3
5
|
|
|
@@ -24,5 +26,6 @@ export function getHttpStatus(error: unknown): number | undefined {
|
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
export function isUnauthorizedStatus(error: unknown): boolean {
|
|
29
|
+
if (isSessionChangedError(error)) return false;
|
|
27
30
|
return getHttpStatus(error) === 401;
|
|
28
31
|
}
|