@oxy.so/services 13.12.0 → 13.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/lib/commonjs/ui/client.js +7 -0
- package/lib/commonjs/ui/client.js.map +1 -1
- 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/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/index.js +7 -0
- package/lib/commonjs/ui/index.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/organizationDraft.js +17 -0
- package/lib/commonjs/ui/utils/organizationDraft.js.map +1 -0
- 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/client.js +3 -0
- package/lib/module/ui/client.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/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/index.js +3 -0
- package/lib/module/ui/index.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/organizationDraft.js +13 -0
- package/lib/module/ui/utils/organizationDraft.js.map +1 -0
- 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/client.d.ts +1 -0
- package/lib/typescript/commonjs/ui/client.d.ts.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/useFollowTarget.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/index.d.ts +1 -0
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/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/organizationDraft.d.ts +9 -0
- package/lib/typescript/commonjs/ui/utils/organizationDraft.d.ts.map +1 -0
- 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/client.d.ts +1 -0
- package/lib/typescript/module/ui/client.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/useFollowTarget.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/index.d.ts +1 -0
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/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/organizationDraft.d.ts +9 -0
- package/lib/typescript/module/ui/utils/organizationDraft.d.ts.map +1 -0
- 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 +14 -2
- package/src/ui/client.ts +3 -0
- 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/useFollowTarget.ts +10 -1
- package/src/ui/hooks/useSessionManagement.ts +3 -0
- package/src/ui/index.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/organizationDraft.ts +17 -0
- package/src/ui/utils/sessionChangedError.ts +14 -0
- package/src/ui/utils/sessionHelpers.ts +2 -0
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useFollowStore = exports.resetFollowBatchState = void 0;
|
|
7
7
|
var _zustand = require("zustand");
|
|
8
8
|
var _followErrors = require("../utils/followErrors.js");
|
|
9
|
+
var _sessionChangedError = require("../utils/sessionChangedError.js");
|
|
9
10
|
const hasKey = (map, key) => Object.prototype.hasOwnProperty.call(map, key);
|
|
10
11
|
const scheduleMicrotask = cb => {
|
|
11
12
|
if (typeof queueMicrotask === 'function') {
|
|
@@ -176,11 +177,13 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
176
177
|
};
|
|
177
178
|
});
|
|
178
179
|
}).finally(() => {
|
|
180
|
+
if (generation !== batchGeneration) return;
|
|
179
181
|
for (const id of ids) inFlightIds.delete(id);
|
|
180
182
|
});
|
|
181
183
|
});
|
|
182
184
|
},
|
|
183
185
|
toggleFollowUser: async (userId, oxyServices, isCurrentlyFollowing) => {
|
|
186
|
+
const generation = batchGeneration;
|
|
184
187
|
// Snapshot the prior value for rollback. `undefined` = was UNKNOWN.
|
|
185
188
|
const priorState = get().followingUsers;
|
|
186
189
|
const hadPrevious = hasKey(priorState, userId);
|
|
@@ -205,6 +208,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
205
208
|
}));
|
|
206
209
|
try {
|
|
207
210
|
const response = isCurrentlyFollowing ? await oxyServices.follows.unfollow(userId) : await oxyServices.follows.follow(userId);
|
|
211
|
+
if (generation !== batchGeneration) return false;
|
|
208
212
|
|
|
209
213
|
// Reconcile: confirm the optimistic value is authoritative, clear loading.
|
|
210
214
|
set(state => ({
|
|
@@ -252,6 +256,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
252
256
|
}
|
|
253
257
|
return true;
|
|
254
258
|
} catch (error) {
|
|
259
|
+
if (generation !== batchGeneration) return false;
|
|
255
260
|
// Roll back to the prior value (or back to UNKNOWN if there was none).
|
|
256
261
|
set(state => {
|
|
257
262
|
const followingUsers = {
|
|
@@ -278,6 +283,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
278
283
|
}
|
|
279
284
|
},
|
|
280
285
|
followManyUsers: async (userIds, oxyServices) => {
|
|
286
|
+
const generation = batchGeneration;
|
|
281
287
|
// Snapshot prior values for rollback (tri-state: undefined = unknown).
|
|
282
288
|
const prior = get().followingUsers;
|
|
283
289
|
const previous = new Map();
|
|
@@ -309,6 +315,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
309
315
|
});
|
|
310
316
|
try {
|
|
311
317
|
const result = await oxyServices.follows.followMany(userIds);
|
|
318
|
+
if (generation !== batchGeneration) throw (0, _sessionChangedError.createSessionChangedError)();
|
|
312
319
|
set(state => {
|
|
313
320
|
const followingUsers = {
|
|
314
321
|
...state.followingUsers
|
|
@@ -345,6 +352,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
345
352
|
});
|
|
346
353
|
return result;
|
|
347
354
|
} catch (error) {
|
|
355
|
+
if (generation !== batchGeneration) throw (0, _sessionChangedError.createSessionChangedError)();
|
|
348
356
|
const code = (0, _followErrors.toFollowErrorCode)(error, 'update_failed');
|
|
349
357
|
// Whole batch failed — roll ALL targets back to their prior values.
|
|
350
358
|
set(state => {
|
|
@@ -377,6 +385,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
377
385
|
}
|
|
378
386
|
},
|
|
379
387
|
unfollowManyUsers: async (userIds, oxyServices) => {
|
|
388
|
+
const generation = batchGeneration;
|
|
380
389
|
// Snapshot prior values for rollback (tri-state: undefined = unknown).
|
|
381
390
|
const prior = get().followingUsers;
|
|
382
391
|
const previous = new Map();
|
|
@@ -408,6 +417,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
408
417
|
});
|
|
409
418
|
try {
|
|
410
419
|
const result = await oxyServices.follows.unfollowMany(userIds);
|
|
420
|
+
if (generation !== batchGeneration) throw (0, _sessionChangedError.createSessionChangedError)();
|
|
411
421
|
set(state => {
|
|
412
422
|
const followingUsers = {
|
|
413
423
|
...state.followingUsers
|
|
@@ -444,6 +454,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
444
454
|
});
|
|
445
455
|
return result;
|
|
446
456
|
} catch (error) {
|
|
457
|
+
if (generation !== batchGeneration) throw (0, _sessionChangedError.createSessionChangedError)();
|
|
447
458
|
const code = (0, _followErrors.toFollowErrorCode)(error, 'update_failed');
|
|
448
459
|
// Whole batch failed — roll ALL targets back to their prior values.
|
|
449
460
|
set(state => {
|
|
@@ -508,6 +519,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
508
519
|
});
|
|
509
520
|
},
|
|
510
521
|
fetchUserCounts: async (userId, oxyServices) => {
|
|
522
|
+
const generation = batchGeneration;
|
|
511
523
|
set(state => ({
|
|
512
524
|
loadingCounts: {
|
|
513
525
|
...state.loadingCounts,
|
|
@@ -516,6 +528,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
516
528
|
}));
|
|
517
529
|
try {
|
|
518
530
|
const user = await oxyServices.users.get(userId);
|
|
531
|
+
if (generation !== batchGeneration) return;
|
|
519
532
|
if (user?._count) {
|
|
520
533
|
set(state => ({
|
|
521
534
|
followerCounts: {
|
|
@@ -540,6 +553,7 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
540
553
|
}));
|
|
541
554
|
}
|
|
542
555
|
} catch (error) {
|
|
556
|
+
if (generation !== batchGeneration) return;
|
|
543
557
|
set(state => ({
|
|
544
558
|
loadingCounts: {
|
|
545
559
|
...state.loadingCounts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","_followErrors","hasKey","map","key","Object","prototype","hasOwnProperty","call","scheduleMicrotask","cb","queueMicrotask","setTimeout","pendingIds","Set","pendingServices","flushScheduled","inFlightIds","batchGeneration","resetFollowBatchState","clear","exports","useFollowStore","create","set","get","followingUsers","loadingUsers","fetchingUsers","errors","followerCounts","followingCounts","loadingCounts","setFollowingStatus","userId","isFollowing","state","setFollowStatuses","changed","entries","clearFollowError","resetFollowState","resolveFollowStatuses","userIds","oxyServices","enqueuedAny","rawId","id","trim","has","add","ids","Array","from","services","length","generation","follows","statuses","then","followingUsersNext","catch","error","code","toFollowErrorCode","finally","delete","toggleFollowUser","isCurrentlyFollowing","priorState","hadPrevious","previousValue","optimisticValue","response","unfollow","follow","counts","currentUserId","session","followers","following","followManyUsers","prior","previous","Map","uid","undefined","result","followMany","entry","results","success","alreadyFollowing","prev","unfollowManyUsers","unfollowMany","setFollowerCount","count","setFollowingCount","updateCountsFromFollowAction","targetUserId","action","fetchUserCounts","user","users","_count"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_zustand","require","_followErrors","_sessionChangedError","hasKey","map","key","Object","prototype","hasOwnProperty","call","scheduleMicrotask","cb","queueMicrotask","setTimeout","pendingIds","Set","pendingServices","flushScheduled","inFlightIds","batchGeneration","resetFollowBatchState","clear","exports","useFollowStore","create","set","get","followingUsers","loadingUsers","fetchingUsers","errors","followerCounts","followingCounts","loadingCounts","setFollowingStatus","userId","isFollowing","state","setFollowStatuses","changed","entries","clearFollowError","resetFollowState","resolveFollowStatuses","userIds","oxyServices","enqueuedAny","rawId","id","trim","has","add","ids","Array","from","services","length","generation","follows","statuses","then","followingUsersNext","catch","error","code","toFollowErrorCode","finally","delete","toggleFollowUser","isCurrentlyFollowing","priorState","hadPrevious","previousValue","optimisticValue","response","unfollow","follow","counts","currentUserId","session","followers","following","followManyUsers","prior","previous","Map","uid","undefined","result","followMany","createSessionChangedError","entry","results","success","alreadyFollowing","prev","unfollowManyUsers","unfollowMany","setFollowerCount","count","setFollowingCount","updateCountsFromFollowAction","targetUserId","action","fetchUserCounts","user","users","_count"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.UNKNOWN_FOLLOW_STATUS = void 0;
|
|
7
7
|
exports.followRecordToStatus = followRecordToStatus;
|
|
8
8
|
exports.followRecordsToStatusMap = followRecordsToStatusMap;
|
|
9
|
+
exports.getFollowTargetGeneration = getFollowTargetGeneration;
|
|
9
10
|
exports.isCompleteFollowStatus = isCompleteFollowStatus;
|
|
10
11
|
exports.isFollowedGlobally = isFollowedGlobally;
|
|
11
12
|
exports.useFollowTargetStore = void 0;
|
|
@@ -37,6 +38,12 @@ var _zustand = require("zustand");
|
|
|
37
38
|
|
|
38
39
|
/** The status of one target, or `undefined` when it has never been read. */
|
|
39
40
|
|
|
41
|
+
let followTargetGeneration = 0;
|
|
42
|
+
|
|
43
|
+
/** The generation changes whenever account-scoped follow state is reset. */
|
|
44
|
+
function getFollowTargetGeneration() {
|
|
45
|
+
return followTargetGeneration;
|
|
46
|
+
}
|
|
40
47
|
/**
|
|
41
48
|
* The state one target is in before the server has been asked. Distinct from
|
|
42
49
|
* "not following": a button that renders a follow action while the answer is
|
|
@@ -80,11 +87,14 @@ const useFollowTargetStore = exports.useFollowTargetStore = (0, _zustand.create)
|
|
|
80
87
|
// account switch the whole map is wrong, not stale — the next user's follows
|
|
81
88
|
// are a different set entirely, and showing one user their previous
|
|
82
89
|
// account's follow state is a privacy failure rather than a rendering one.
|
|
83
|
-
reset: () =>
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
reset: () => {
|
|
91
|
+
followTargetGeneration += 1;
|
|
92
|
+
set({
|
|
93
|
+
statuses: {},
|
|
94
|
+
pending: {},
|
|
95
|
+
errors: {}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
88
98
|
}));
|
|
89
99
|
|
|
90
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","UNKNOWN_FOLLOW_STATUS","exports","globalState","applicationMode","effectiveState","useFollowTargetStore","create","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","isCompleteFollowStatus","Boolean","relationshipId","followRecordToStatus","record","expiresAt","followRecordsToStatusMap","records","target","id","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_zustand","require","followTargetGeneration","getFollowTargetGeneration","UNKNOWN_FOLLOW_STATUS","exports","globalState","applicationMode","effectiveState","useFollowTargetStore","create","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","isCompleteFollowStatus","Boolean","relationshipId","followRecordToStatus","record","expiresAt","followRecordsToStatusMap","records","target","id","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":";;;;;;;;;;;;;AAwBA,IAAAA,QAAA,GAAAC,OAAA;AAxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;;AAGA,IAAIC,sBAAsB,GAAG,CAAC;;AAE9B;AACO,SAASC,yBAAyBA,CAAA,EAAW;EAClD,OAAOD,sBAAsB;AAC/B;AAsBA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,qBAAmC,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACjDE,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,SAAS;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAEM,MAAMC,oBAAoB,GAAAJ,OAAA,CAAAI,oBAAA,GAAG,IAAAC,eAAM,EAAqBC,GAAG,KAAM;EACtEC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,CAAC,CAAC;EAEVC,SAAS,EAAEA,CAACC,QAAQ,EAAEC,MAAM,KAC1BN,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,CAACI,QAAQ,GAAGC;IAAO;EAAE,CAAC,CAAC,CAAC;EAEnEE,IAAI,EAAGC,OAAO,IAAKT,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,GAAGQ;IAAQ;EAAE,CAAC,CAAC,CAAC;EAE5EC,UAAU,EAAEA,CAACL,QAAQ,EAAEH,OAAO,KAC5BF,GAAG,CAAEO,CAAC,KAAM;IAAEL,OAAO,EAAE;MAAE,GAAGK,CAAC,CAACL,OAAO;MAAE,CAACG,QAAQ,GAAGH;IAAQ;EAAE,CAAC,CAAC,CAAC;EAElES,QAAQ,EAAEA,CAACN,QAAQ,EAAEO,KAAK,KAAKZ,GAAG,CAAEO,CAAC,KAAM;IAAEJ,MAAM,EAAE;MAAE,GAAGI,CAAC,CAACJ,MAAM;MAAE,CAACE,QAAQ,GAAGO;IAAM;EAAE,CAAC,CAAC,CAAC;EAE3F;EACA;EACA;EACA;EACAC,KAAK,EAAEA,CAAA,KAAM;IACXtB,sBAAsB,IAAI,CAAC;IAC3BS,GAAG,CAAC;MAAEC,QAAQ,EAAE,CAAC,CAAC;MAAEC,OAAO,EAAE,CAAC,CAAC;MAAEC,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EAChD;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,kBAAkBA,CAACR,MAAoB,EAAW;EAChE,OAAOA,MAAM,CAACX,WAAW,KAAK,QAAQ,IAAIW,MAAM,CAACX,WAAW,KAAK,WAAW;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASoB,sBAAsBA,CAACT,MAAoB,EAAW;EACpE,IAAIQ,kBAAkB,CAACR,MAAM,CAAC,EAAE,OAAOU,OAAO,CAACV,MAAM,CAACW,cAAc,CAAC;EACrE,OAAO,IAAI;AACb;;AAEA;AACO,SAASC,oBAAoBA,CAACC,MAAoB,EAAgB;EACvE,OAAO;IACLF,cAAc,EAAEE,MAAM,CAACF,cAAc;IACrCtB,WAAW,EAAEwB,MAAM,CAACxB,WAAW;IAC/BC,eAAe,EAAEuB,MAAM,CAACvB,eAAe;IACvCC,cAAc,EAAEsB,MAAM,CAACtB,cAAc;IACrC,IAAIsB,MAAM,CAACC,SAAS,GAAG;MAAEA,SAAS,EAAED,MAAM,CAACC;IAAU,CAAC,GAAG,CAAC,CAAC;EAC7D,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACO,SAASC,wBAAwBA,CAACC,OAAuB,EAAgC;EAC9F,MAAMb,OAAqC,GAAG,CAAC,CAAC;EAChD,KAAK,MAAMU,MAAM,IAAIG,OAAO,EAAE;IAC5Bb,OAAO,CAACU,MAAM,CAACI,MAAM,CAACC,EAAE,CAAC,GAAGN,oBAAoB,CAACC,MAAM,CAAC;EAC1D;EACA,OAAOV,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASgB,mBAAmBA,CACjCnB,MAAoB,EACpBoB,IAA2B,EACb;EACd,OAAO;IACL,GAAGpB,MAAM;IACTV,eAAe,EAAE8B,IAAI;IACrB7B,cAAc,EACZ6B,IAAI,KAAK,UAAU,GACf,eAAe,GACfpB,MAAM,CAACX,WAAW,KAAK,QAAQ,GAC7B,WAAW,GACXW,MAAM,CAACX,WAAW,KAAK,WAAW,GAChC,WAAW,GACX;EACZ,CAAC;AACH","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.isTimeoutOrNetworkError = exports.isInvalidSessionError = exports.handleAuthError = exports.extractErrorMessage = void 0;
|
|
7
|
+
var _sessionChangedError = require("./sessionChangedError.js");
|
|
7
8
|
const DEFAULT_INVALID_SESSION_MESSAGES = ['Invalid or expired session', 'Session is invalid', 'Session not found', 'Session expired'];
|
|
8
9
|
const isObject = value => typeof value === 'object' && value !== null;
|
|
9
10
|
const getResponseStatus = error => {
|
|
@@ -25,6 +26,7 @@ const getResponseStatus = error => {
|
|
|
25
26
|
* This centralizes 401 detection across different fetch clients.
|
|
26
27
|
*/
|
|
27
28
|
const isInvalidSessionError = error => {
|
|
29
|
+
if ((0, _sessionChangedError.isSessionChangedError)(error)) return false;
|
|
28
30
|
const status = getResponseStatus(error);
|
|
29
31
|
if (status === 401) {
|
|
30
32
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_INVALID_SESSION_MESSAGES","isObject","value","getResponseStatus","error","undefined","response","status","flatStatus","isInvalidSessionError","normalizedMessage","extractErrorMessage","toLowerCase","includes","some","msg","exports","isTimeoutOrNetworkError","Error","message","errorCode","code","name","TypeError","typeErrorMessage","fallbackMessage","trim","length","withMessage","withResponse","responseMessage","data","handleAuthError","defaultMessage","onError","setAuthError","logger","resolvedStatus"],"sourceRoot":"../../../../src","sources":["ui/utils/errorHandlers.ts"],"mappings":";;;;;;AAyBA,
|
|
1
|
+
{"version":3,"names":["_sessionChangedError","require","DEFAULT_INVALID_SESSION_MESSAGES","isObject","value","getResponseStatus","error","undefined","response","status","flatStatus","isInvalidSessionError","isSessionChangedError","normalizedMessage","extractErrorMessage","toLowerCase","includes","some","msg","exports","isTimeoutOrNetworkError","Error","message","errorCode","code","name","TypeError","typeErrorMessage","fallbackMessage","trim","length","withMessage","withResponse","responseMessage","data","handleAuthError","defaultMessage","onError","setAuthError","logger","resolvedStatus"],"sourceRoot":"../../../../src","sources":["ui/utils/errorHandlers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.toFollowErrorCode = toFollowErrorCode;
|
|
7
|
+
var _sessionChangedError = require("./sessionChangedError.js");
|
|
7
8
|
/**
|
|
8
9
|
* What a failed follow read or write leaves behind: a stable CODE, never text.
|
|
9
10
|
*
|
|
@@ -31,6 +32,7 @@ const OFFLINE_CODES = new Set(['NETWORK_ERROR', 'CONNECTION_FAILED', 'TIMEOUT'])
|
|
|
31
32
|
* Anything the cause does not explain falls back to the caller's `action`.
|
|
32
33
|
*/
|
|
33
34
|
function toFollowErrorCode(error, action) {
|
|
35
|
+
if ((0, _sessionChangedError.isSessionChangedError)(error)) return action;
|
|
34
36
|
const {
|
|
35
37
|
status,
|
|
36
38
|
code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OFFLINE_CODES","Set","toFollowErrorCode","error","action","status","code","has"],"sourceRoot":"../../../../src","sources":["ui/utils/followErrors.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA;;AAGA,
|
|
1
|
+
{"version":3,"names":["_sessionChangedError","require","OFFLINE_CODES","Set","toFollowErrorCode","error","action","isSessionChangedError","status","code","has"],"sourceRoot":"../../../../src","sources":["ui/utils/followErrors.ts"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA;;AAGA,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAC,CAAC,eAAe,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,KAAc,EAAEC,MAA6B,EAAmB;EAChG,IAAI,IAAAC,0CAAqB,EAACF,KAAK,CAAC,EAAE,OAAOC,MAAM;EAC/C,MAAM;IAAEE,MAAM;IAAEC;EAAK,CAAC,GAAIJ,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,CAAC,CAGvE;EACD,IAAI,OAAOI,IAAI,KAAK,QAAQ,IAAIP,aAAa,CAACQ,GAAG,CAACD,IAAI,CAAC,EAAE,OAAO,SAAS;EACzE,IAAID,MAAM,KAAK,GAAG,EAAE,OAAO,YAAY;EACvC,IAAIA,MAAM,KAAK,GAAG,EAAE,OAAO,WAAW;EACtC,IAAIA,MAAM,KAAK,GAAG,EAAE,OAAO,WAAW;EACtC,IAAIA,MAAM,KAAK,GAAG,EAAE,OAAO,cAAc;EACzC,OAAOF,MAAM;AACf","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseOrganizationDraft = parseOrganizationDraft;
|
|
7
|
+
var _client = require("@oxy.so/contracts/client");
|
|
8
|
+
/** Normalize and validate form fields; callers must separately authorize creation. */
|
|
9
|
+
function parseOrganizationDraft(input) {
|
|
10
|
+
return (0, _client.checkContract)(_client.createOrganizationCheck, {
|
|
11
|
+
name: input.name.trim(),
|
|
12
|
+
organizationType: input.organizationType,
|
|
13
|
+
websiteUrl: input.websiteUrl.trim() || null,
|
|
14
|
+
countryCode: input.countryCode.trim().toUpperCase() || null
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=organizationDraft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_client","require","parseOrganizationDraft","input","checkContract","createOrganizationCheck","name","trim","organizationType","websiteUrl","countryCode","toUpperCase"],"sourceRoot":"../../../../src","sources":["ui/utils/organizationDraft.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAGA;AACO,SAASC,sBAAsBA,CAACC,KAKtC,EAA6B;EAC5B,OAAO,IAAAC,qBAAa,EAACC,+BAAuB,EAAE;IAC5CC,IAAI,EAAEH,KAAK,CAACG,IAAI,CAACC,IAAI,CAAC,CAAC;IACvBC,gBAAgB,EAAEL,KAAK,CAACK,gBAAgB;IACxCC,UAAU,EAAEN,KAAK,CAACM,UAAU,CAACF,IAAI,CAAC,CAAC,IAAI,IAAI;IAC3CG,WAAW,EAAEP,KAAK,CAACO,WAAW,CAACH,IAAI,CAAC,CAAC,CAACI,WAAW,CAAC,CAAC,IAAI;EACzD,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createSessionChangedError = createSessionChangedError;
|
|
7
|
+
exports.isSessionChangedError = isSessionChangedError;
|
|
8
|
+
/** A locally superseded request is not a server rejection of the new session. */
|
|
9
|
+
function isSessionChangedError(error) {
|
|
10
|
+
return !!error && typeof error === 'object' && 'code' in error && error.code === 'AUTH_SESSION_CHANGED';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** A locally superseded operation must not be mistaken for a server 401. */
|
|
14
|
+
function createSessionChangedError() {
|
|
15
|
+
return Object.assign(new Error('The request session changed'), {
|
|
16
|
+
code: 'AUTH_SESSION_CHANGED',
|
|
17
|
+
status: 401
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=sessionChangedError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isSessionChangedError","error","code","createSessionChangedError","Object","assign","Error","status"],"sourceRoot":"../../../../src","sources":["ui/utils/sessionChangedError.ts"],"mappings":";;;;;;;AAAA;AACO,SAASA,qBAAqBA,CAACC,KAAc,EAAW;EAC7D,OACE,CAAC,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAIA,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAK,sBAAsB;AAEpG;;AAEA;AACO,SAASC,yBAAyBA,CAAA,EAA6C;EACpF,OAAOC,MAAM,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,6BAA6B,CAAC,EAAE;IAC7DJ,IAAI,EAAE,sBAAsB;IAC5BK,MAAM,EAAE;EACV,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.mapSessionsToClient = exports.fetchSessionsWithFallback = void 0;
|
|
7
|
+
var _sessionChangedError = require("./sessionChangedError.js");
|
|
7
8
|
/**
|
|
8
9
|
* Service type for session helpers.
|
|
9
10
|
* Uses 'unknown' to work around TypeScript mixin composition type inference issues.
|
|
@@ -50,6 +51,7 @@ const fetchSessionsWithFallback = async (oxyServices, sessionId, {
|
|
|
50
51
|
const deviceSessions = await oxyServices.devices.sessions(sessionId);
|
|
51
52
|
return mapSessionsToClient(deviceSessions, fallbackDeviceId, fallbackUserId);
|
|
52
53
|
} catch (error) {
|
|
54
|
+
if ((0, _sessionChangedError.isSessionChangedError)(error)) throw error;
|
|
53
55
|
if (__DEV__ && logger) {
|
|
54
56
|
logger('Failed to get device sessions, falling back to user sessions', error);
|
|
55
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapSessionsToClient","sessions","fallbackDeviceId","fallbackUserId","now","Date","map","session","sessionId","deviceId","expiresAt","getTime","toISOString","lastActive","userId","user","id","_id","toString","undefined","isCurrent","Boolean","exports","fetchSessionsWithFallback","oxyServices","logger","deviceSessions","devices","error","__DEV__","userSessions","list"],"sourceRoot":"../../../../src","sources":["ui/utils/sessionHelpers.ts"],"mappings":";;;;;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,
|
|
1
|
+
{"version":3,"names":["_sessionChangedError","require","mapSessionsToClient","sessions","fallbackDeviceId","fallbackUserId","now","Date","map","session","sessionId","deviceId","expiresAt","getTime","toISOString","lastActive","userId","user","id","_id","toString","undefined","isCurrent","Boolean","exports","fetchSessionsWithFallback","oxyServices","logger","deviceSessions","devices","error","isSessionChangedError","__DEV__","userSessions","list"],"sourceRoot":"../../../../src","sources":["ui/utils/sessionHelpers.ts"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAGA,CACjCC,QAAyB,EACzBC,gBAAyB,EACzBC,cAAuB,KACH;EACpB,MAAMC,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;EAEtB,OAAOJ,QAAQ,CAACK,GAAG,CAAEC,OAAO,KAAM;IAChCC,SAAS,EAAED,OAAO,CAACC,SAAS;IAC5BC,QAAQ,EAAEF,OAAO,CAACE,QAAQ,IAAIP,gBAAgB,IAAI,EAAE;IACpDQ,SAAS,EAAEH,OAAO,CAACG,SAAS,IAAI,IAAIL,IAAI,CAACD,GAAG,CAACO,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAACC,WAAW,CAAC,CAAC;IAC/FC,UAAU,EAAEN,OAAO,CAACM,UAAU,IAAIT,GAAG,CAACQ,WAAW,CAAC,CAAC;IACnDE,MAAM,EACJP,OAAO,CAACQ,IAAI,EAAEC,EAAE,IAChBT,OAAO,CAACO,MAAM,KACbP,OAAO,CAACQ,IAAI,EAAEE,GAAG,GAAGV,OAAO,CAACQ,IAAI,CAACE,GAAG,CAACC,QAAQ,CAAC,CAAC,GAAGC,SAAS,CAAC,IAC7DhB,cAAc,IACd,EAAE;IACJiB,SAAS,EAAEC,OAAO,CAACd,OAAO,CAACa,SAAS;EACtC,CAAC,CAAC,CAAC;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAE,OAAA,CAAAtB,mBAAA,GAAAA,mBAAA;AASO,MAAMuB,yBAAyB,GAAG,MAAAA,CACvCC,WAA2B,EAC3BhB,SAAiB,EACjB;EAAEN,gBAAgB;EAAEC,cAAc;EAAEsB;AAAyC,CAAC,GAAG,CAAC,CAAC,KACtD;EAC7B,IAAI;IACF,MAAMC,cAAc,GAAG,MAAMF,WAAW,CAACG,OAAO,CAAC1B,QAAQ,CAACO,SAAS,CAAC;IACpE,OAAOR,mBAAmB,CAAC0B,cAAc,EAAExB,gBAAgB,EAAEC,cAAc,CAAC;EAC9E,CAAC,CAAC,OAAOyB,KAAK,EAAE;IACd,IAAI,IAAAC,0CAAqB,EAACD,KAAK,CAAC,EAAE,MAAMA,KAAK;IAC7C,IAAIE,OAAO,IAAIL,MAAM,EAAE;MACrBA,MAAM,CAAC,8DAA8D,EAAEG,KAAK,CAAC;IAC/E;IAEA,MAAMG,YAAY,GAAG,MAAMP,WAAW,CAACjB,OAAO,CAACyB,IAAI,CAACxB,SAAS,CAAC;IAC9D,OAAOR,mBAAmB,CAAC+B,YAAY,EAAE7B,gBAAgB,EAAEC,cAAc,CAAC;EAC5E;AACF,CAAC;AAACmB,OAAA,CAAAC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
package/lib/module/ui/client.js
CHANGED
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
// Must stay the first runtime import: core reads the platform from it.
|
|
18
18
|
import "../registerPlatform.js";
|
|
19
19
|
|
|
20
|
+
// Shared organization form validation does not grant creation authority.
|
|
21
|
+
export { parseOrganizationDraft } from "./utils/organizationDraft.js";
|
|
22
|
+
|
|
20
23
|
// Components
|
|
21
24
|
export { default as OxyProvider } from "./components/OxyProvider.js";
|
|
22
25
|
export { default as OxySignInButton } from "./components/OxySignInButton.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","FollowButton","FollowTargetButton","useFollowErrorMessage","ProfileButton","PeableButton","OxyPayButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAuth","useAccountColor","useAccountColorSave","resolveAccountColor","entitledAccountColors","useAccountTheme","useAccountThemeControls","useAppAssertion","AppAssertionProviderMissingError","createDeferredProductAnalytics","useFollow","useFollowerCounts","useSeedFollowStatuses","useFollowTarget","useSupervision","supervisionQueryKeys","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useStorage","useOxyEvent","useUpdateProfile","useUploadAvatar","useUploadFile","useFileDownloadUrl","useMutationStatus","useOnlineStatus","useDisplayCurrency","useDisplayPrice","DisplayCurrencySelector","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/client.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,wBAAqB;;AAE5B;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,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AAMnE,SAASC,kBAAkB,QAAQ,oCAAiC;AAGpE,SAASC,qBAAqB,QAAQ,8BAA2B;AAEjE,SAASR,OAAO,IAAIS,aAAa,QAAQ,+BAA4B;AAErE,SAAST,OAAO,IAAIU,YAAY,QAAQ,8BAA2B;AAEnE;AACA,SAASV,OAAO,IAAIW,YAAY,QAAQ,8BAA2B;AACnE;;AAGA;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;;AAEtF;AACA,SAASC,OAAO,QAAQ,oBAAiB;AACzC,SACEC,eAAe,EACfC,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,QAChB,4BAAyB;AAChC,SAASC,eAAe,EAAEC,uBAAuB,QAAQ,4BAAyB;AAElF;AACA;AACA,SACEC,eAAe,EACfC,gCAAgC,QAC3B,uCAAoC;AAI3C,SAASC,8BAA8B,QAAQ,iCAA8B;AAE7E,SAASC,SAAS,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,sBAAmB;AACvF,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,cAAc,EAAEC,oBAAoB,QAAQ,mCAAgC;AAErF,SACEC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,QACZ,sCAAmC;AAC1C,SAASC,UAAU,QAAQ,uBAAoB;AAC/C;AACA;AACA,SAASC,WAAW,QAAQ,wBAAqB;AACjD;AACA;AACA;AACA;AACA,SACEC,gBAAgB,EAChBC,eAAe,EACfC,aAAa,QACR,0CAAuC;AAC9C,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,iBAAiB,QAAQ,8BAA2B;AAE7D,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,uBAAuB,QAAQ,yCAAsC;AAG9E;AACA;;AAEA;AACA,SACEC,oBAAoB,EACpBC,0BAA0B,EAC1BC,2BAA2B,QACtB,6BAA0B;AAGjC;AACA,SACEC,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,4BAA4B,QACvB,8BAA2B;AAClC,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,8BAA8B,QACzB,8BAA2B;AAOlC;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACEC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QACd,0BAAuB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["parseOrganizationDraft","default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","FollowButton","FollowTargetButton","useFollowErrorMessage","ProfileButton","PeableButton","OxyPayButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAuth","useAccountColor","useAccountColorSave","resolveAccountColor","entitledAccountColors","useAccountTheme","useAccountThemeControls","useAppAssertion","AppAssertionProviderMissingError","createDeferredProductAnalytics","useFollow","useFollowerCounts","useSeedFollowStatuses","useFollowTarget","useSupervision","supervisionQueryKeys","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useStorage","useOxyEvent","useUpdateProfile","useUploadAvatar","useUploadFile","useFileDownloadUrl","useMutationStatus","useOnlineStatus","useDisplayCurrency","useDisplayPrice","DisplayCurrencySelector","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/client.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,wBAAqB;;AAE5B;AACA,SAASA,sBAAsB,QAAQ,8BAA2B;;AAElE;AACA,SAASC,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,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AAMnE,SAASC,kBAAkB,QAAQ,oCAAiC;AAGpE,SAASC,qBAAqB,QAAQ,8BAA2B;AAEjE,SAASR,OAAO,IAAIS,aAAa,QAAQ,+BAA4B;AAErE,SAAST,OAAO,IAAIU,YAAY,QAAQ,8BAA2B;AAEnE;AACA,SAASV,OAAO,IAAIW,YAAY,QAAQ,8BAA2B;AACnE;;AAGA;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;;AAEtF;AACA,SAASC,OAAO,QAAQ,oBAAiB;AACzC,SACEC,eAAe,EACfC,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,QAChB,4BAAyB;AAChC,SAASC,eAAe,EAAEC,uBAAuB,QAAQ,4BAAyB;AAElF;AACA;AACA,SACEC,eAAe,EACfC,gCAAgC,QAC3B,uCAAoC;AAI3C,SAASC,8BAA8B,QAAQ,iCAA8B;AAE7E,SAASC,SAAS,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,sBAAmB;AACvF,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,cAAc,EAAEC,oBAAoB,QAAQ,mCAAgC;AAErF,SACEC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,QACZ,sCAAmC;AAC1C,SAASC,UAAU,QAAQ,uBAAoB;AAC/C;AACA;AACA,SAASC,WAAW,QAAQ,wBAAqB;AACjD;AACA;AACA;AACA;AACA,SACEC,gBAAgB,EAChBC,eAAe,EACfC,aAAa,QACR,0CAAuC;AAC9C,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,iBAAiB,QAAQ,8BAA2B;AAE7D,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,uBAAuB,QAAQ,yCAAsC;AAG9E;AACA;;AAEA;AACA,SACEC,oBAAoB,EACpBC,0BAA0B,EAC1BC,2BAA2B,QACtB,6BAA0B;AAGjC;AACA,SACEC,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,4BAA4B,QACvB,8BAA2B;AAClC,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,8BAA8B,QACzB,8BAA2B;AAOlC;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACEC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QACd,0BAAuB","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { logger as loggerUtil } from '@oxy.so/core';
|
|
4
4
|
import { isUnauthorizedStatus } from "./oxyContextHelpers.js";
|
|
5
|
+
import { isSessionChangedError } from "../utils/sessionChangedError.js";
|
|
5
6
|
const LOG_CONTEXT = {
|
|
6
7
|
component: 'OxyContext',
|
|
7
8
|
method: 'commitSession'
|
|
@@ -47,6 +48,7 @@ export async function commitDeviceSetAndResolve(deps) {
|
|
|
47
48
|
await syncFromClient();
|
|
48
49
|
};
|
|
49
50
|
const logReconcileError = registrationError => {
|
|
51
|
+
if (isSessionChangedError(registrationError)) return;
|
|
50
52
|
// A 401 here is the EXPECTED signed-out edge: the bearer was stale/cleared, so
|
|
51
53
|
// the device-set registration (`POST /session/device/add`) cannot carry auth.
|
|
52
54
|
// This is not a failure — the cold boot re-registers on the next load once a
|
|
@@ -67,6 +69,7 @@ export async function commitDeviceSetAndResolve(deps) {
|
|
|
67
69
|
try {
|
|
68
70
|
fullUser = await getCurrentUser();
|
|
69
71
|
} catch (profileError) {
|
|
72
|
+
if (isSessionChangedError(profileError)) throw profileError;
|
|
70
73
|
if (__DEV__) {
|
|
71
74
|
loggerUtil.debug('Failed to fetch full user on commit; using minimal fallback', LOG_CONTEXT, profileError);
|
|
72
75
|
}
|
|
@@ -91,6 +94,7 @@ export async function commitDeviceSetAndResolve(deps) {
|
|
|
91
94
|
try {
|
|
92
95
|
await reconcileDeviceSet();
|
|
93
96
|
} catch (registrationError) {
|
|
97
|
+
if (isSessionChangedError(registrationError)) throw registrationError;
|
|
94
98
|
logReconcileError(registrationError);
|
|
95
99
|
}
|
|
96
100
|
await hydrateAndResolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","loggerUtil","isUnauthorizedStatus","LOG_CONTEXT","component","method","commitDeviceSetAndResolve","deps","activate","isolatedOAuth","hasDeviceState","userId","fallbackUser","registerAndActivate","addCurrentAccount","startSocket","syncFromClient","getCurrentUser","loginSuccess","onAuthStateChange","markAuthResolved","reconcileDeviceSet","logReconcileError","registrationError","debug","warn","hydrateAndResolve","fullUser","profileError","__DEV__","catch"],"sourceRoot":"../../../../src","sources":["ui/context/commitSessionFlow.ts"],"mappings":";;AACA,SAASA,MAAM,IAAIC,UAAU,QAAQ,cAAc;AACnD,SAASC,oBAAoB,QAAQ,wBAAqB;
|
|
1
|
+
{"version":3,"names":["logger","loggerUtil","isUnauthorizedStatus","isSessionChangedError","LOG_CONTEXT","component","method","commitDeviceSetAndResolve","deps","activate","isolatedOAuth","hasDeviceState","userId","fallbackUser","registerAndActivate","addCurrentAccount","startSocket","syncFromClient","getCurrentUser","loginSuccess","onAuthStateChange","markAuthResolved","reconcileDeviceSet","logReconcileError","registrationError","debug","warn","hydrateAndResolve","fullUser","profileError","__DEV__","catch"],"sourceRoot":"../../../../src","sources":["ui/context/commitSessionFlow.ts"],"mappings":";;AACA,SAASA,MAAM,IAAIC,UAAU,QAAQ,cAAc;AACnD,SAASC,oBAAoB,QAAQ,wBAAqB;AAC1D,SAASC,qBAAqB,QAAQ,iCAA8B;AAEpE,MAAMC,WAAW,GAAG;EAAEC,SAAS,EAAE,YAAY;EAAEC,MAAM,EAAE;AAAgB,CAAU;AAiCjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,yBAAyBA,CAC7CC,IAAmC,EACpB;EACf,MAAM;IACJC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,cAAc,GAAG,KAAK;IACtBC,MAAM;IACNC,YAAY;IACZC,mBAAmB;IACnBC,iBAAiB;IACjBC,WAAW;IACXC,cAAc;IACdC,cAAc;IACdC,YAAY;IACZC,iBAAiB;IACjBC;EACF,CAAC,GAAGb,IAAI;;EAER;EACA;EACA;EACA;EACA,MAAMc,kBAAkB,GAAG,MAAAA,CAAA,KAA2B;IACpD,IAAIb,QAAQ,EAAE;MACZ,MAAMK,mBAAmB,CAACF,MAAM,CAAC;IACnC,CAAC,MAAM,IAAI,CAACD,cAAc,EAAE;MAC1B,MAAMI,iBAAiB,CAAC,CAAC;IAC3B;IACA,MAAMC,WAAW,CAAC,CAAC;IACnB,MAAMC,cAAc,CAAC,CAAC;EACxB,CAAC;EAED,MAAMM,iBAAiB,GAAIC,iBAA0B,IAAW;IAC9D,IAAIrB,qBAAqB,CAACqB,iBAAiB,CAAC,EAAE;IAC9C;IACA;IACA;IACA;IACA;IACA,IAAItB,oBAAoB,CAACsB,iBAAiB,CAAC,EAAE;MAC3CvB,UAAU,CAACwB,KAAK,CACd,6DAA6D,EAC7DrB,WAAW,EACXoB,iBACF,CAAC;MACD;IACF;IACAvB,UAAU,CAACyB,IAAI,CACb,+CAA+C,EAC/CtB,WAAW,EACXoB,iBACF,CAAC;EACH,CAAC;;EAED;EACA;EACA;EACA,MAAMG,iBAAiB,GAAG,MAAAA,CAAA,KAA2B;IACnD,IAAIC,QAAqB,GAAG,IAAI;IAChC,IAAI;MACFA,QAAQ,GAAG,MAAMV,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC,OAAOW,YAAY,EAAE;MACrB,IAAI1B,qBAAqB,CAAC0B,YAAY,CAAC,EAAE,MAAMA,YAAY;MAC3D,IAAIC,OAAO,EAAE;QACX7B,UAAU,CAACwB,KAAK,CACd,6DAA6D,EAC7DrB,WAAW,EACXyB,YACF,CAAC;MACH;MACAD,QAAQ,GAAGf,YAAY;IACzB;IACA,IAAI,CAACe,QAAQ,EAAE;MACbA,QAAQ,GAAGf,YAAY;IACzB;IACA,IAAIe,QAAQ,EAAE;MACZT,YAAY,CAACS,QAAQ,CAAC;MACtBR,iBAAiB,GAAGQ,QAAQ,CAAC;IAC/B;IACAP,gBAAgB,CAAC,CAAC;EACpB,CAAC;EAED,IAAIX,aAAa,EAAE;IACjB,MAAMiB,iBAAiB,CAAC,CAAC;IACzB;EACF;EAEA,IAAIlB,QAAQ,EAAE;IACZ;IACA;IACA,IAAI;MACF,MAAMa,kBAAkB,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAOE,iBAAiB,EAAE;MAC1B,IAAIrB,qBAAqB,CAACqB,iBAAiB,CAAC,EAAE,MAAMA,iBAAiB;MACrED,iBAAiB,CAACC,iBAAiB,CAAC;IACtC;IACA,MAAMG,iBAAiB,CAAC,CAAC;IACzB;EACF;;EAEA;EACA;EACA;EACA;EACA,MAAMA,iBAAiB,CAAC,CAAC;EACzB,KAAKL,kBAAkB,CAAC,CAAC,CAACS,KAAK,CAACR,iBAAiB,CAAC;AACpD","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
4
|
import { logoutIsolatedOAuthSession, readIsolatedOAuthSession } from "../isolatedOAuthSession.js";
|
|
5
|
+
import { isSessionChangedError } from "../../utils/sessionChangedError.js";
|
|
5
6
|
import { DeviceManager } from '@oxy.so/core/session';
|
|
6
7
|
import { fetchSessionsWithFallback } from "../../utils/sessionHelpers.js";
|
|
7
8
|
import { handleAuthError, isInvalidSessionError } from "../../utils/errorHandlers.js";
|
|
@@ -109,6 +110,7 @@ export const useAuthOperations = ({
|
|
|
109
110
|
});
|
|
110
111
|
await refreshPinnedAccountId?.();
|
|
111
112
|
} catch (pinError) {
|
|
113
|
+
if (isSessionChangedError(pinError)) throw pinError;
|
|
112
114
|
logger?.('Failed to persist identity pin after sign-in', pinError);
|
|
113
115
|
}
|
|
114
116
|
}
|
|
@@ -127,6 +129,7 @@ export const useAuthOperations = ({
|
|
|
127
129
|
await syncFromClient();
|
|
128
130
|
deviceRegistrationCommitted = true;
|
|
129
131
|
} catch (registrationError) {
|
|
132
|
+
if (isSessionChangedError(registrationError)) throw registrationError;
|
|
130
133
|
logger?.('Failed to register sign-in into device session set', registrationError);
|
|
131
134
|
}
|
|
132
135
|
|
|
@@ -145,6 +148,7 @@ export const useAuthOperations = ({
|
|
|
145
148
|
logger
|
|
146
149
|
});
|
|
147
150
|
} catch (error) {
|
|
151
|
+
if (isSessionChangedError(error)) throw error;
|
|
148
152
|
if (__DEV__ && logger) {
|
|
149
153
|
logger('Failed to fetch device sessions after login', error);
|
|
150
154
|
}
|
|
@@ -157,6 +161,7 @@ export const useAuthOperations = ({
|
|
|
157
161
|
try {
|
|
158
162
|
await oxyServices.session.logout(sessionResponse.sessionId, sessionResponse.sessionId);
|
|
159
163
|
} catch (logoutError) {
|
|
164
|
+
if (isSessionChangedError(logoutError)) throw logoutError;
|
|
160
165
|
// Non-critical - continue to switch session even if logout fails
|
|
161
166
|
if (__DEV__ && logger) {
|
|
162
167
|
logger('Failed to logout duplicate session, continuing with switch', logoutError);
|
|
@@ -190,6 +195,7 @@ export const useAuthOperations = ({
|
|
|
190
195
|
* Sign in with existing public key
|
|
191
196
|
*/
|
|
192
197
|
const signIn = useCallback(async (publicKey, deviceName) => {
|
|
198
|
+
let superseded = false;
|
|
193
199
|
runtime.batch(() => {
|
|
194
200
|
runtime.setLoading(true);
|
|
195
201
|
runtime.setError(null);
|
|
@@ -197,6 +203,10 @@ export const useAuthOperations = ({
|
|
|
197
203
|
try {
|
|
198
204
|
return await performSignIn(publicKey);
|
|
199
205
|
} catch (error) {
|
|
206
|
+
if (isSessionChangedError(error)) {
|
|
207
|
+
superseded = true;
|
|
208
|
+
throw error;
|
|
209
|
+
}
|
|
200
210
|
const message = handleAuthError(error, {
|
|
201
211
|
defaultMessage: 'Sign in failed',
|
|
202
212
|
code: LOGIN_ERROR_CODE,
|
|
@@ -207,7 +217,7 @@ export const useAuthOperations = ({
|
|
|
207
217
|
runtime.setError(message);
|
|
208
218
|
throw error;
|
|
209
219
|
} finally {
|
|
210
|
-
runtime.setLoading(false);
|
|
220
|
+
if (!superseded) runtime.setLoading(false);
|
|
211
221
|
}
|
|
212
222
|
}, [runtime, performSignIn, onError, logger]);
|
|
213
223
|
|
|
@@ -227,7 +237,7 @@ export const useAuthOperations = ({
|
|
|
227
237
|
revokeSelf: sessionId => oxyServices.session.logout(sessionId),
|
|
228
238
|
clearSessionState
|
|
229
239
|
});
|
|
230
|
-
if (result.status === 'failed') {
|
|
240
|
+
if (result.status === 'failed' && !isSessionChangedError(result.error)) {
|
|
231
241
|
handleAuthError(result.error, {
|
|
232
242
|
defaultMessage: 'Logout failed',
|
|
233
243
|
code: LOGOUT_ERROR_CODE,
|
|
@@ -270,6 +280,10 @@ export const useAuthOperations = ({
|
|
|
270
280
|
status: 'signed-out'
|
|
271
281
|
};
|
|
272
282
|
} catch (error) {
|
|
283
|
+
if (isSessionChangedError(error)) return {
|
|
284
|
+
status: 'failed',
|
|
285
|
+
error
|
|
286
|
+
};
|
|
273
287
|
const isInvalid = isInvalidSessionError(error);
|
|
274
288
|
|
|
275
289
|
// Compare the RESOLVED target, not the raw optional parameter: every
|
|
@@ -346,6 +360,7 @@ export const useAuthOperations = ({
|
|
|
346
360
|
await clearPersistedAuthSafe(store, logger);
|
|
347
361
|
await clearSessionState();
|
|
348
362
|
} catch (error) {
|
|
363
|
+
if (isSessionChangedError(error)) throw error;
|
|
349
364
|
if (isInvalidSessionError(error)) {
|
|
350
365
|
// An already-invalid bearer means the sessions this call would have
|
|
351
366
|
// revoked are ALREADY gone — the sign-out happened, it just happened
|