@ethlete/query 6.0.0-next.3 → 6.0.0-next.5
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/CHANGELOG.md +12 -0
- package/fesm2022/ethlete-query.mjs +38 -5
- package/fesm2022/ethlete-query.mjs.map +1 -1
- package/generators/migrate-to-query-v3/cleanup-migration.js +242 -0
- package/generators/migrate-to-query-v3/legacy-prepare-migration.js +773 -0
- package/generators/migrate-to-query-v3/legacy-query-creator-migration.js +589 -0
- package/generators/migrate-to-query-v3/migration.js +16 -2928
- package/generators/migrate-to-query-v3/query-client-migration.js +477 -0
- package/generators/migrate-to-query-v3/report.js +136 -0
- package/generators/migrate-to-query-v3/shared.js +97 -0
- package/package.json +1 -1
- package/types/ethlete-query.d.ts +26 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ethlete/query
|
|
2
2
|
|
|
3
|
+
## 6.0.0-next.5
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2959](https://github.com/ethlete-io/ethdk/pull/2959) [`5423369`](https://github.com/ethlete-io/ethdk/commit/542336985297868592cdb6a9732c5d161160730f) Thanks [@github-actions](https://github.com/apps/github-actions)! - Add executionState signal to auth provider
|
|
8
|
+
|
|
9
|
+
## 6.0.0-next.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#2958](https://github.com/ethlete-io/ethdk/pull/2958) [`8ecdfc0`](https://github.com/ethlete-io/ethdk/commit/8ecdfc00d785b0b535601b5d95ca7e2cd55455b6) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update v3 migration to reflect latest api changes
|
|
14
|
+
|
|
3
15
|
## 6.0.0-next.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -5539,7 +5539,16 @@ const defaultExtractTokens = (response) => {
|
|
|
5539
5539
|
}
|
|
5540
5540
|
return { accessToken: response['accessToken'], refreshToken: response['refreshToken'] };
|
|
5541
5541
|
};
|
|
5542
|
-
const
|
|
5542
|
+
const deriveExecutionStateType = (builder, triggeredBy) => {
|
|
5543
|
+
if (triggeredBy === 'persistent-auth')
|
|
5544
|
+
return 'autoLogin';
|
|
5545
|
+
if (builder._type === 'tokenRefreshQuery')
|
|
5546
|
+
return 'tokenRefresh';
|
|
5547
|
+
if (triggeredBy === 'token-revocation')
|
|
5548
|
+
return 'revocation';
|
|
5549
|
+
return builder.key;
|
|
5550
|
+
};
|
|
5551
|
+
const setupBearerQueryRegistry = (builders, injector, latestExecutedQuery, latestNonInternalQuery, setTokens, executionState) => {
|
|
5543
5552
|
const queries = {};
|
|
5544
5553
|
const querySnapshots = new Map();
|
|
5545
5554
|
for (const builder of builders) {
|
|
@@ -5572,10 +5581,27 @@ const setupBearerQueryRegistry = (builders, injector, latestExecutedQuery, lates
|
|
|
5572
5581
|
});
|
|
5573
5582
|
query.execute({ args, options });
|
|
5574
5583
|
const snapshot = query.createSnapshot();
|
|
5575
|
-
|
|
5576
|
-
if (
|
|
5577
|
-
|
|
5584
|
+
const stateType = deriveExecutionStateType(builder, options?.triggeredBy);
|
|
5585
|
+
if (stateType !== 'revocation') {
|
|
5586
|
+
latestExecutedQuery.set({ key: builder.key, snapshot });
|
|
5587
|
+
if (!snapshot.triggeredBy()) {
|
|
5588
|
+
latestNonInternalQuery.set({ key: builder.key, snapshot });
|
|
5589
|
+
}
|
|
5578
5590
|
}
|
|
5591
|
+
executionState.set({ type: stateType, state: 'loading' });
|
|
5592
|
+
effect(() => {
|
|
5593
|
+
const response = snapshot.response();
|
|
5594
|
+
const loading = snapshot.loading();
|
|
5595
|
+
const error = snapshot.error();
|
|
5596
|
+
if (loading)
|
|
5597
|
+
return;
|
|
5598
|
+
if (error) {
|
|
5599
|
+
executionState.set({ type: stateType, state: 'error', error });
|
|
5600
|
+
}
|
|
5601
|
+
else if (response) {
|
|
5602
|
+
executionState.set({ type: stateType, state: 'success', response });
|
|
5603
|
+
}
|
|
5604
|
+
}, { injector });
|
|
5579
5605
|
querySnapshot.set(snapshot);
|
|
5580
5606
|
return snapshot;
|
|
5581
5607
|
};
|
|
@@ -5655,16 +5681,20 @@ const createBearerAuthProviderImpl = (config) => {
|
|
|
5655
5681
|
const isAuthenticated = computed(() => !!accessToken(), ...(ngDevMode ? [{ debugName: "isAuthenticated" }] : []));
|
|
5656
5682
|
const latestExecutedQuery = signal(null, ...(ngDevMode ? [{ debugName: "latestExecutedQuery" }] : []));
|
|
5657
5683
|
const latestNonInternalQuery = signal(null, ...(ngDevMode ? [{ debugName: "latestNonInternalQuery" }] : []));
|
|
5684
|
+
const executionState = signal(null, ...(ngDevMode ? [{ debugName: "executionState" }] : []));
|
|
5658
5685
|
const setTokens = (access, refresh) => {
|
|
5659
5686
|
accessToken.set(access);
|
|
5660
5687
|
refreshToken.set(refresh);
|
|
5661
5688
|
afterTokenRefresh$.next();
|
|
5662
5689
|
};
|
|
5663
|
-
const { queries } = setupBearerQueryRegistry(config.queries, injector, latestExecutedQuery, latestNonInternalQuery, setTokens);
|
|
5690
|
+
const { queries } = setupBearerQueryRegistry(config.queries, injector, latestExecutedQuery, latestNonInternalQuery, setTokens, executionState);
|
|
5664
5691
|
const logout = () => {
|
|
5665
5692
|
accessToken.set(null);
|
|
5666
5693
|
refreshToken.set(null);
|
|
5667
5694
|
queryClient.repository.unbindAllSecure();
|
|
5695
|
+
latestExecutedQuery.set(null);
|
|
5696
|
+
latestNonInternalQuery.set(null);
|
|
5697
|
+
executionState.set({ type: 'logout', state: 'success' });
|
|
5668
5698
|
};
|
|
5669
5699
|
const isLeader = createLeaderElection(config);
|
|
5670
5700
|
const querySetupContext = {
|
|
@@ -5692,6 +5722,7 @@ const createBearerAuthProviderImpl = (config) => {
|
|
|
5692
5722
|
leaderElection: isLeader.leaderElectionContext,
|
|
5693
5723
|
afterTokenRefresh$,
|
|
5694
5724
|
queries: queries,
|
|
5725
|
+
executionState,
|
|
5695
5726
|
};
|
|
5696
5727
|
const features = setupFeatures(config.features, featureSetupContext);
|
|
5697
5728
|
setupMultiTabSyncIfEnabled(config, accessToken, refreshToken, queryClient);
|
|
@@ -5704,6 +5735,7 @@ const createBearerAuthProviderImpl = (config) => {
|
|
|
5704
5735
|
isAuthenticated,
|
|
5705
5736
|
latestExecutedQuery: latestExecutedQuery.asReadonly(),
|
|
5706
5737
|
latestNonInternalQuery: latestNonInternalQuery.asReadonly(),
|
|
5738
|
+
executionState: executionState.asReadonly(),
|
|
5707
5739
|
logout,
|
|
5708
5740
|
afterTokenRefresh$,
|
|
5709
5741
|
};
|
|
@@ -6041,6 +6073,7 @@ const withTokenRevocation = (config) => {
|
|
|
6041
6073
|
return null;
|
|
6042
6074
|
}
|
|
6043
6075
|
const args = config.buildArgs({ accessToken, refreshToken });
|
|
6076
|
+
context.executionState.set({ type: 'revocation', state: 'loading' });
|
|
6044
6077
|
currentRevocationSnapshot = context.queries[config.queryKey].execute(args, {
|
|
6045
6078
|
triggeredBy: 'token-revocation',
|
|
6046
6079
|
});
|