@shipfox/client-runners 5.0.0 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +49 -0
  3. package/dist/components/create-manual-registration-token-form.d.ts +3 -3
  4. package/dist/components/create-manual-registration-token-form.d.ts.map +1 -1
  5. package/dist/components/create-manual-registration-token-form.js +8 -23
  6. package/dist/components/create-manual-registration-token-form.js.map +1 -1
  7. package/dist/components/create-provisioner-token-form.d.ts +3 -3
  8. package/dist/components/create-provisioner-token-form.d.ts.map +1 -1
  9. package/dist/components/create-provisioner-token-form.js +8 -23
  10. package/dist/components/create-provisioner-token-form.js.map +1 -1
  11. package/dist/components/manual-registration-token-errors.d.ts.map +1 -1
  12. package/dist/components/manual-registration-token-errors.js +0 -1
  13. package/dist/components/manual-registration-token-errors.js.map +1 -1
  14. package/dist/components/manual-registration-token-format.d.ts +0 -2
  15. package/dist/components/manual-registration-token-format.d.ts.map +1 -1
  16. package/dist/components/manual-registration-token-format.js +0 -3
  17. package/dist/components/manual-registration-token-format.js.map +1 -1
  18. package/dist/components/manual-registration-token-list.d.ts +2 -2
  19. package/dist/components/manual-registration-token-list.d.ts.map +1 -1
  20. package/dist/components/manual-registration-token-list.js +12 -19
  21. package/dist/components/manual-registration-token-list.js.map +1 -1
  22. package/dist/components/manual-registration-tokens-settings-section.d.ts.map +1 -1
  23. package/dist/components/manual-registration-tokens-settings-section.js +1 -1
  24. package/dist/components/manual-registration-tokens-settings-section.js.map +1 -1
  25. package/dist/components/provisioner-token-errors.d.ts.map +1 -1
  26. package/dist/components/provisioner-token-errors.js +0 -1
  27. package/dist/components/provisioner-token-errors.js.map +1 -1
  28. package/dist/components/provisioner-token-format.d.ts +0 -18
  29. package/dist/components/provisioner-token-format.d.ts.map +1 -1
  30. package/dist/components/provisioner-token-format.js +0 -25
  31. package/dist/components/provisioner-token-format.js.map +1 -1
  32. package/dist/components/provisioner-token-list.d.ts +2 -2
  33. package/dist/components/provisioner-token-list.d.ts.map +1 -1
  34. package/dist/components/provisioner-token-list.js +9 -19
  35. package/dist/components/provisioner-token-list.js.map +1 -1
  36. package/dist/components/provisioner-tokens-settings-section.js +2 -2
  37. package/dist/components/provisioner-tokens-settings-section.js.map +1 -1
  38. package/dist/components/token-expiration-select.d.ts +7 -0
  39. package/dist/components/token-expiration-select.d.ts.map +1 -1
  40. package/dist/components/token-expiration-select.js +8 -0
  41. package/dist/components/token-expiration-select.js.map +1 -1
  42. package/dist/components/token-settings-sections.stories.d.ts.map +1 -1
  43. package/dist/components/token-settings-sections.stories.js +66 -23
  44. package/dist/components/token-settings-sections.stories.js.map +1 -1
  45. package/dist/core/token.d.ts +66 -0
  46. package/dist/core/token.d.ts.map +1 -0
  47. package/dist/core/token.js +37 -0
  48. package/dist/core/token.js.map +1 -0
  49. package/dist/feature.d.ts +13 -0
  50. package/dist/feature.d.ts.map +1 -1
  51. package/dist/feature.js +17 -16
  52. package/dist/feature.js.map +1 -1
  53. package/dist/hooks/api/manual-registration-tokens.d.ts +13 -71
  54. package/dist/hooks/api/manual-registration-tokens.d.ts.map +1 -1
  55. package/dist/hooks/api/manual-registration-tokens.js +40 -19
  56. package/dist/hooks/api/manual-registration-tokens.js.map +1 -1
  57. package/dist/hooks/api/provisioner-tokens.d.ts +17 -115
  58. package/dist/hooks/api/provisioner-tokens.d.ts.map +1 -1
  59. package/dist/hooks/api/provisioner-tokens.js +59 -32
  60. package/dist/hooks/api/provisioner-tokens.js.map +1 -1
  61. package/dist/hooks/api/token-mapper.d.ts +12 -0
  62. package/dist/hooks/api/token-mapper.d.ts.map +1 -0
  63. package/dist/hooks/api/token-mapper.js +61 -0
  64. package/dist/hooks/api/token-mapper.js.map +1 -0
  65. package/dist/tsconfig.test.tsbuildinfo +1 -1
  66. package/package.json +9 -9
  67. package/src/components/create-manual-registration-token-form.tsx +11 -21
  68. package/src/components/create-provisioner-token-form.tsx +11 -21
  69. package/src/components/form-errors.test.ts +2 -2
  70. package/src/components/manual-registration-token-errors.ts +0 -1
  71. package/src/components/manual-registration-token-format.test.ts +4 -4
  72. package/src/components/manual-registration-token-format.ts +0 -7
  73. package/src/components/manual-registration-token-list.tsx +13 -22
  74. package/src/components/manual-registration-tokens-settings-section.tsx +3 -5
  75. package/src/components/provisioner-token-errors.ts +0 -1
  76. package/src/components/provisioner-token-form-errors.test.ts +2 -2
  77. package/src/components/provisioner-token-format.test.ts +15 -14
  78. package/src/components/provisioner-token-format.ts +0 -29
  79. package/src/components/provisioner-token-list.tsx +14 -23
  80. package/src/components/provisioner-tokens-settings-section.tsx +4 -4
  81. package/src/components/token-expiration-select.test.ts +15 -0
  82. package/src/components/token-expiration-select.tsx +6 -0
  83. package/src/components/token-settings-sections.stories.tsx +72 -23
  84. package/src/core/token.test.ts +30 -0
  85. package/src/core/token.ts +83 -0
  86. package/src/feature.ts +19 -17
  87. package/src/hooks/api/manual-registration-tokens.test.ts +8 -5
  88. package/src/hooks/api/manual-registration-tokens.ts +71 -24
  89. package/src/hooks/api/provisioner-tokens.test.ts +10 -7
  90. package/src/hooks/api/provisioner-tokens.ts +100 -36
  91. package/src/hooks/api/token-mapper.test.ts +161 -0
  92. package/src/hooks/api/token-mapper.ts +79 -0
  93. package/tsconfig.build.tsbuildinfo +1 -1
  94. package/vercel.json +5 -0
@@ -1,131 +1,33 @@
1
- import type { CreateProvisionerTokenBodyDto } from '@shipfox/api-runners-dto';
1
+ import { type FetchQueryOptions } from '@tanstack/react-query';
2
+ import type { ActiveProvisioner, CreatedProvisionerToken, CreateTokenCommand, ProvisionerToken } from '#core/token.js';
2
3
  export declare const provisionerTokenQueryKeys: {
3
4
  all: readonly ["provisioner-tokens"];
4
5
  list: (workspaceId: string) => readonly ["provisioner-tokens", "tokens", string];
5
6
  active: (workspaceId: string) => readonly ["provisioner-tokens", "provisioners", string];
6
7
  };
8
+ type ProvisionerTokensQueryOptions = FetchQueryOptions<ProvisionerToken[], Error, ProvisionerToken[], ReturnType<typeof provisionerTokenQueryKeys.list>>;
9
+ type ActiveProvisionersQueryOptions = FetchQueryOptions<ActiveProvisioner[], Error, ActiveProvisioner[], ReturnType<typeof provisionerTokenQueryKeys.active>>;
7
10
  export declare function listProvisionerTokens({ workspaceId, signal, }: {
8
11
  workspaceId: string;
9
12
  signal?: AbortSignal;
10
- }): Promise<{
11
- tokens: {
12
- id: string;
13
- workspace_id: string;
14
- prefix: string;
15
- name: string | null;
16
- created_by_user_id: string;
17
- revoked_by_user_id: string | null;
18
- expires_at: string | null;
19
- revoked_at: string | null;
20
- last_seen_at: string | null;
21
- created_at: string;
22
- updated_at: string;
23
- scope: "workspace";
24
- }[];
25
- }>;
26
- export declare function createProvisionerToken({ workspaceId, body, }: {
13
+ }): Promise<ProvisionerToken[]>;
14
+ export declare function createProvisionerToken({ workspaceId, command, }: {
27
15
  workspaceId: string;
28
- body: CreateProvisionerTokenBodyDto;
29
- }): Promise<{
30
- id: string;
31
- raw_token: string;
32
- prefix: string;
33
- name: string | null;
34
- workspace_id: string;
35
- created_by_user_id: string;
36
- revoked_by_user_id: string | null;
37
- expires_at: string | null;
38
- revoked_at: string | null;
39
- last_seen_at: string | null;
40
- created_at: string;
41
- updated_at: string;
42
- scope: "workspace";
43
- }>;
16
+ command: CreateTokenCommand;
17
+ }): Promise<CreatedProvisionerToken>;
44
18
  export declare function revokeProvisionerToken({ workspaceId, tokenId, }: {
45
19
  workspaceId: string;
46
20
  tokenId: string;
47
- }): Promise<{
48
- id: string;
49
- workspace_id: string;
50
- prefix: string;
51
- name: string | null;
52
- created_by_user_id: string;
53
- revoked_by_user_id: string | null;
54
- expires_at: string | null;
55
- revoked_at: string | null;
56
- last_seen_at: string | null;
57
- created_at: string;
58
- updated_at: string;
59
- scope: "workspace";
60
- }>;
21
+ }): Promise<ProvisionerToken>;
61
22
  export declare function listActiveProvisioners({ workspaceId, signal, }: {
62
23
  workspaceId: string;
63
24
  signal?: AbortSignal;
64
- }): Promise<{
65
- provisioners: {
66
- id: string;
67
- name: string | null;
68
- prefix: string;
69
- last_seen_at: string;
70
- }[];
71
- }>;
72
- export declare function useProvisionerTokensQuery(workspaceId: string | undefined): import("@tanstack/react-query").UseQueryResult<NoInfer<{
73
- tokens: {
74
- id: string;
75
- workspace_id: string;
76
- prefix: string;
77
- name: string | null;
78
- created_by_user_id: string;
79
- revoked_by_user_id: string | null;
80
- expires_at: string | null;
81
- revoked_at: string | null;
82
- last_seen_at: string | null;
83
- created_at: string;
84
- updated_at: string;
85
- scope: "workspace";
86
- }[];
87
- }>, Error>;
88
- export declare function useCreateProvisionerTokenMutation(): import("@tanstack/react-query").UseMutationResult<{
89
- id: string;
90
- raw_token: string;
91
- prefix: string;
92
- name: string | null;
93
- workspace_id: string;
94
- created_by_user_id: string;
95
- revoked_by_user_id: string | null;
96
- expires_at: string | null;
97
- revoked_at: string | null;
98
- last_seen_at: string | null;
99
- created_at: string;
100
- updated_at: string;
101
- scope: "workspace";
102
- }, Error, {
103
- workspaceId: string;
104
- body: CreateProvisionerTokenBodyDto;
105
- }, unknown>;
106
- export declare function useRevokeProvisionerTokenMutation(): import("@tanstack/react-query").UseMutationResult<{
107
- id: string;
108
- workspace_id: string;
109
- prefix: string;
110
- name: string | null;
111
- created_by_user_id: string;
112
- revoked_by_user_id: string | null;
113
- expires_at: string | null;
114
- revoked_at: string | null;
115
- last_seen_at: string | null;
116
- created_at: string;
117
- updated_at: string;
118
- scope: "workspace";
119
- }, Error, {
120
- workspaceId: string;
121
- tokenId: string;
122
- }, unknown>;
123
- export declare function useActiveProvisionersQuery(workspaceId: string | undefined): import("@tanstack/react-query").UseQueryResult<NoInfer<{
124
- provisioners: {
125
- id: string;
126
- name: string | null;
127
- prefix: string;
128
- last_seen_at: string;
129
- }[];
130
- }>, Error>;
25
+ }): Promise<ActiveProvisioner[]>;
26
+ export declare function provisionerTokensQueryOptions(workspaceId: string): ProvisionerTokensQueryOptions;
27
+ export declare function activeProvisionersQueryOptions(workspaceId: string): ActiveProvisionersQueryOptions;
28
+ export declare function useProvisionerTokensQuery(workspaceId: string | undefined): import("@tanstack/react-query").UseQueryResult<NoInfer<ProvisionerToken[]>, Error>;
29
+ export declare function useActiveProvisionersQuery(workspaceId: string | undefined): import("@tanstack/react-query").UseQueryResult<NoInfer<ActiveProvisioner[]>, Error>;
30
+ export declare function useCreateProvisionerTokenMutation(workspaceId: string): import("@tanstack/react-query").UseMutationResult<CreatedProvisionerToken, Error, CreateTokenCommand, unknown>;
31
+ export declare function useRevokeProvisionerTokenMutation(workspaceId: string): import("@tanstack/react-query").UseMutationResult<ProvisionerToken, Error, string, unknown>;
32
+ export {};
131
33
  //# sourceMappingURL=provisioner-tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provisioner-tokens.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/provisioner-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAK9B,MAAM,0BAA0B,CAAC;AAMlC,eAAO,MAAM,yBAAyB;;wBAEhB,MAAM;0BACJ,MAAM;CAE7B,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,EAC1C,WAAW,EACX,MAAM,GACP,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;;;;;;;;;;;;;;;GAKA;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,WAAW,EACX,IAAI,GACL,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,6BAA6B,CAAC;CACrC;;;;;;;;;;;;;;GAKA;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,WAAW,EACX,OAAO,GACR,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;;;;;;;;;;;;;GAKA;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,WAAW,EACX,MAAM,GACP,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;;;;;;;GAKA;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;WAUxE;AAED,wBAAgB,iCAAiC;;;;;;;;;;;;;;;iBA/ClC,MAAM;UACb,6BAA6B;YAgDpC;AAED,wBAAgB,iCAAiC;;;;;;;;;;;;;;iBAtClC,MAAM;aACV,MAAM;YAuChB;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;;;;;;;WAUzE"}
1
+ {"version":3,"file":"provisioner-tokens.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/provisioner-tokens.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,iBAAiB,EAKvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAUxB,eAAO,MAAM,yBAAyB;;wBAEhB,MAAM;0BACJ,MAAM;CAE7B,CAAC;AAEF,KAAK,6BAA6B,GAAG,iBAAiB,CACpD,gBAAgB,EAAE,EAClB,KAAK,EACL,gBAAgB,EAAE,EAClB,UAAU,CAAC,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAClD,CAAC;AAEF,KAAK,8BAA8B,GAAG,iBAAiB,CACrD,iBAAiB,EAAE,EACnB,KAAK,EACL,iBAAiB,EAAE,EACnB,UAAU,CAAC,OAAO,yBAAyB,CAAC,MAAM,CAAC,CACpD,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,EAC1C,WAAW,EACX,MAAM,GACP,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAO9B;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,WAAW,EACX,OAAO,GACR,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAOnC;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,WAAW,EACX,OAAO,GACR,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAO5B;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,WAAW,EACX,MAAM,GACP,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAO/B;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,6BAA6B,CAOhG;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,GAClB,8BAA8B,CAOhC;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,sFAKxE;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,uFAKzE;AAED,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,MAAM,kHAQpE;AAED,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,MAAM,+FAWpE"}
@@ -1,5 +1,7 @@
1
- import { apiRequest } from '@shipfox/client-api';
2
- import { useMutation, useQuery } from '@tanstack/react-query';
1
+ import { createProvisionerTokenResponseSchema, listActiveProvisionersResponseSchema, listProvisionerTokensResponseSchema, revokeProvisionerTokenResponseSchema } from '@shipfox/api-runners-dto';
2
+ import { checkedApiRequest } from '@shipfox/client-api';
3
+ import { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
4
+ import { toActiveProvisioner, toCreatedProvisionerToken, toCreateTokenBody, toProvisionerToken } from './token-mapper.js';
3
5
  const PROVISIONER_TOKEN_REFETCH_INTERVAL_MS = 30_000;
4
6
  export const provisionerTokenQueryKeys = {
5
7
  all: [
@@ -17,64 +19,89 @@ export const provisionerTokenQueryKeys = {
17
19
  ]
18
20
  };
19
21
  export async function listProvisionerTokens({ workspaceId, signal }) {
20
- return await apiRequest(`/workspaces/${workspaceId}/provisioners/tokens`, {
22
+ const response = await checkedApiRequest(listProvisionerTokensResponseSchema, `/workspaces/${workspaceId}/provisioners/tokens`, {
21
23
  signal
22
24
  });
25
+ return response.tokens.map(toProvisionerToken);
23
26
  }
24
- export async function createProvisionerToken({ workspaceId, body }) {
25
- return await apiRequest(`/workspaces/${workspaceId}/provisioners/tokens`, {
27
+ export async function createProvisionerToken({ workspaceId, command }) {
28
+ const response = await checkedApiRequest(createProvisionerTokenResponseSchema, `/workspaces/${workspaceId}/provisioners/tokens`, {
26
29
  method: 'POST',
27
- body
30
+ body: toCreateTokenBody(command)
28
31
  });
32
+ return toCreatedProvisionerToken(response);
29
33
  }
30
34
  export async function revokeProvisionerToken({ workspaceId, tokenId }) {
31
- return await apiRequest(`/workspaces/${workspaceId}/provisioners/tokens/${tokenId}/revoke`, {
35
+ const response = await checkedApiRequest(revokeProvisionerTokenResponseSchema, `/workspaces/${workspaceId}/provisioners/tokens/${tokenId}/revoke`, {
32
36
  method: 'POST'
33
37
  });
38
+ return toProvisionerToken(response);
34
39
  }
35
40
  export async function listActiveProvisioners({ workspaceId, signal }) {
36
- return await apiRequest(`/workspaces/${workspaceId}/provisioners/active`, {
41
+ const response = await checkedApiRequest(listActiveProvisionersResponseSchema, `/workspaces/${workspaceId}/provisioners/active`, {
37
42
  signal
38
43
  });
44
+ return response.provisioners.map(toActiveProvisioner);
39
45
  }
40
- export function useProvisionerTokensQuery(workspaceId) {
41
- return useQuery({
42
- queryKey: workspaceId ? provisionerTokenQueryKeys.list(workspaceId) : [
43
- ...provisionerTokenQueryKeys.all,
44
- 'tokens'
45
- ],
46
- enabled: Boolean(workspaceId),
46
+ export function provisionerTokensQueryOptions(workspaceId) {
47
+ return queryOptions({
48
+ queryKey: provisionerTokenQueryKeys.list(workspaceId),
47
49
  queryFn: ({ signal })=>listProvisionerTokens({
48
- workspaceId: workspaceId ?? '',
50
+ workspaceId,
49
51
  signal
50
52
  }),
51
53
  refetchInterval: PROVISIONER_TOKEN_REFETCH_INTERVAL_MS,
52
54
  refetchIntervalInBackground: false
53
55
  });
54
56
  }
55
- export function useCreateProvisionerTokenMutation() {
56
- return useMutation({
57
- mutationFn: createProvisionerToken
57
+ export function activeProvisionersQueryOptions(workspaceId) {
58
+ return queryOptions({
59
+ queryKey: provisionerTokenQueryKeys.active(workspaceId),
60
+ queryFn: ({ signal })=>listActiveProvisioners({
61
+ workspaceId,
62
+ signal
63
+ }),
64
+ refetchInterval: PROVISIONER_TOKEN_REFETCH_INTERVAL_MS,
65
+ refetchIntervalInBackground: false
58
66
  });
59
67
  }
60
- export function useRevokeProvisionerTokenMutation() {
61
- return useMutation({
62
- mutationFn: revokeProvisionerToken
68
+ export function useProvisionerTokensQuery(workspaceId) {
69
+ return useQuery({
70
+ ...provisionerTokensQueryOptions(workspaceId ?? ''),
71
+ enabled: Boolean(workspaceId)
63
72
  });
64
73
  }
65
74
  export function useActiveProvisionersQuery(workspaceId) {
66
75
  return useQuery({
67
- queryKey: workspaceId ? provisionerTokenQueryKeys.active(workspaceId) : [
68
- ...provisionerTokenQueryKeys.all,
69
- 'provisioners'
70
- ],
71
- enabled: Boolean(workspaceId),
72
- queryFn: ({ signal })=>listActiveProvisioners({
73
- workspaceId: workspaceId ?? '',
74
- signal
76
+ ...activeProvisionersQueryOptions(workspaceId ?? ''),
77
+ enabled: Boolean(workspaceId)
78
+ });
79
+ }
80
+ export function useCreateProvisionerTokenMutation(workspaceId) {
81
+ const queryClient = useQueryClient();
82
+ return useMutation({
83
+ mutationFn: (command)=>createProvisionerToken({
84
+ workspaceId,
85
+ command
75
86
  }),
76
- refetchInterval: PROVISIONER_TOKEN_REFETCH_INTERVAL_MS,
77
- refetchIntervalInBackground: false
87
+ onSuccess: async ()=>{
88
+ await queryClient.invalidateQueries(provisionerTokensQueryOptions(workspaceId));
89
+ }
90
+ });
91
+ }
92
+ export function useRevokeProvisionerTokenMutation(workspaceId) {
93
+ const queryClient = useQueryClient();
94
+ return useMutation({
95
+ mutationFn: (tokenId)=>revokeProvisionerToken({
96
+ workspaceId,
97
+ tokenId
98
+ }),
99
+ onSuccess: async ()=>{
100
+ await Promise.all([
101
+ queryClient.invalidateQueries(provisionerTokensQueryOptions(workspaceId)),
102
+ queryClient.invalidateQueries(activeProvisionersQueryOptions(workspaceId))
103
+ ]);
104
+ }
78
105
  });
79
106
  }
80
107
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/api/provisioner-tokens.ts"],"sourcesContent":["import type {\n CreateProvisionerTokenBodyDto,\n CreateProvisionerTokenResponseDto,\n ListActiveProvisionersResponseDto,\n ListProvisionerTokensResponseDto,\n RevokeProvisionerTokenResponseDto,\n} from '@shipfox/api-runners-dto';\nimport {apiRequest} from '@shipfox/client-api';\nimport {useMutation, useQuery} from '@tanstack/react-query';\n\nconst PROVISIONER_TOKEN_REFETCH_INTERVAL_MS = 30_000;\n\nexport const provisionerTokenQueryKeys = {\n all: ['provisioner-tokens'] as const,\n list: (workspaceId: string) => [...provisionerTokenQueryKeys.all, 'tokens', workspaceId] as const,\n active: (workspaceId: string) =>\n [...provisionerTokenQueryKeys.all, 'provisioners', workspaceId] as const,\n};\n\nexport async function listProvisionerTokens({\n workspaceId,\n signal,\n}: {\n workspaceId: string;\n signal?: AbortSignal;\n}) {\n return await apiRequest<ListProvisionerTokensResponseDto>(\n `/workspaces/${workspaceId}/provisioners/tokens`,\n {signal},\n );\n}\n\nexport async function createProvisionerToken({\n workspaceId,\n body,\n}: {\n workspaceId: string;\n body: CreateProvisionerTokenBodyDto;\n}) {\n return await apiRequest<CreateProvisionerTokenResponseDto>(\n `/workspaces/${workspaceId}/provisioners/tokens`,\n {method: 'POST', body},\n );\n}\n\nexport async function revokeProvisionerToken({\n workspaceId,\n tokenId,\n}: {\n workspaceId: string;\n tokenId: string;\n}) {\n return await apiRequest<RevokeProvisionerTokenResponseDto>(\n `/workspaces/${workspaceId}/provisioners/tokens/${tokenId}/revoke`,\n {method: 'POST'},\n );\n}\n\nexport async function listActiveProvisioners({\n workspaceId,\n signal,\n}: {\n workspaceId: string;\n signal?: AbortSignal;\n}) {\n return await apiRequest<ListActiveProvisionersResponseDto>(\n `/workspaces/${workspaceId}/provisioners/active`,\n {signal},\n );\n}\n\nexport function useProvisionerTokensQuery(workspaceId: string | undefined) {\n return useQuery({\n queryKey: workspaceId\n ? provisionerTokenQueryKeys.list(workspaceId)\n : [...provisionerTokenQueryKeys.all, 'tokens'],\n enabled: Boolean(workspaceId),\n queryFn: ({signal}) => listProvisionerTokens({workspaceId: workspaceId ?? '', signal}),\n refetchInterval: PROVISIONER_TOKEN_REFETCH_INTERVAL_MS,\n refetchIntervalInBackground: false,\n });\n}\n\nexport function useCreateProvisionerTokenMutation() {\n return useMutation({mutationFn: createProvisionerToken});\n}\n\nexport function useRevokeProvisionerTokenMutation() {\n return useMutation({mutationFn: revokeProvisionerToken});\n}\n\nexport function useActiveProvisionersQuery(workspaceId: string | undefined) {\n return useQuery({\n queryKey: workspaceId\n ? provisionerTokenQueryKeys.active(workspaceId)\n : [...provisionerTokenQueryKeys.all, 'provisioners'],\n enabled: Boolean(workspaceId),\n queryFn: ({signal}) => listActiveProvisioners({workspaceId: workspaceId ?? '', signal}),\n refetchInterval: PROVISIONER_TOKEN_REFETCH_INTERVAL_MS,\n refetchIntervalInBackground: false,\n });\n}\n"],"names":["apiRequest","useMutation","useQuery","PROVISIONER_TOKEN_REFETCH_INTERVAL_MS","provisionerTokenQueryKeys","all","list","workspaceId","active","listProvisionerTokens","signal","createProvisionerToken","body","method","revokeProvisionerToken","tokenId","listActiveProvisioners","useProvisionerTokensQuery","queryKey","enabled","Boolean","queryFn","refetchInterval","refetchIntervalInBackground","useCreateProvisionerTokenMutation","mutationFn","useRevokeProvisionerTokenMutation","useActiveProvisionersQuery"],"mappings":"AAOA,SAAQA,UAAU,QAAO,sBAAsB;AAC/C,SAAQC,WAAW,EAAEC,QAAQ,QAAO,wBAAwB;AAE5D,MAAMC,wCAAwC;AAE9C,OAAO,MAAMC,4BAA4B;IACvCC,KAAK;QAAC;KAAqB;IAC3BC,MAAM,CAACC,cAAwB;eAAIH,0BAA0BC,GAAG;YAAE;YAAUE;SAAY;IACxFC,QAAQ,CAACD,cACP;eAAIH,0BAA0BC,GAAG;YAAE;YAAgBE;SAAY;AACnE,EAAE;AAEF,OAAO,eAAeE,sBAAsB,EAC1CF,WAAW,EACXG,MAAM,EAIP;IACC,OAAO,MAAMV,WACX,CAAC,YAAY,EAAEO,YAAY,oBAAoB,CAAC,EAChD;QAACG;IAAM;AAEX;AAEA,OAAO,eAAeC,uBAAuB,EAC3CJ,WAAW,EACXK,IAAI,EAIL;IACC,OAAO,MAAMZ,WACX,CAAC,YAAY,EAAEO,YAAY,oBAAoB,CAAC,EAChD;QAACM,QAAQ;QAAQD;IAAI;AAEzB;AAEA,OAAO,eAAeE,uBAAuB,EAC3CP,WAAW,EACXQ,OAAO,EAIR;IACC,OAAO,MAAMf,WACX,CAAC,YAAY,EAAEO,YAAY,qBAAqB,EAAEQ,QAAQ,OAAO,CAAC,EAClE;QAACF,QAAQ;IAAM;AAEnB;AAEA,OAAO,eAAeG,uBAAuB,EAC3CT,WAAW,EACXG,MAAM,EAIP;IACC,OAAO,MAAMV,WACX,CAAC,YAAY,EAAEO,YAAY,oBAAoB,CAAC,EAChD;QAACG;IAAM;AAEX;AAEA,OAAO,SAASO,0BAA0BV,WAA+B;IACvE,OAAOL,SAAS;QACdgB,UAAUX,cACNH,0BAA0BE,IAAI,CAACC,eAC/B;eAAIH,0BAA0BC,GAAG;YAAE;SAAS;QAChDc,SAASC,QAAQb;QACjBc,SAAS,CAAC,EAACX,MAAM,EAAC,GAAKD,sBAAsB;gBAACF,aAAaA,eAAe;gBAAIG;YAAM;QACpFY,iBAAiBnB;QACjBoB,6BAA6B;IAC/B;AACF;AAEA,OAAO,SAASC;IACd,OAAOvB,YAAY;QAACwB,YAAYd;IAAsB;AACxD;AAEA,OAAO,SAASe;IACd,OAAOzB,YAAY;QAACwB,YAAYX;IAAsB;AACxD;AAEA,OAAO,SAASa,2BAA2BpB,WAA+B;IACxE,OAAOL,SAAS;QACdgB,UAAUX,cACNH,0BAA0BI,MAAM,CAACD,eACjC;eAAIH,0BAA0BC,GAAG;YAAE;SAAe;QACtDc,SAASC,QAAQb;QACjBc,SAAS,CAAC,EAACX,MAAM,EAAC,GAAKM,uBAAuB;gBAACT,aAAaA,eAAe;gBAAIG;YAAM;QACrFY,iBAAiBnB;QACjBoB,6BAA6B;IAC/B;AACF"}
1
+ {"version":3,"sources":["../../../src/hooks/api/provisioner-tokens.ts"],"sourcesContent":["import {\n createProvisionerTokenResponseSchema,\n listActiveProvisionersResponseSchema,\n listProvisionerTokensResponseSchema,\n revokeProvisionerTokenResponseSchema,\n} from '@shipfox/api-runners-dto';\nimport {checkedApiRequest} from '@shipfox/client-api';\nimport {\n type FetchQueryOptions,\n queryOptions,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/react-query';\nimport type {\n ActiveProvisioner,\n CreatedProvisionerToken,\n CreateTokenCommand,\n ProvisionerToken,\n} from '#core/token.js';\nimport {\n toActiveProvisioner,\n toCreatedProvisionerToken,\n toCreateTokenBody,\n toProvisionerToken,\n} from './token-mapper.js';\n\nconst PROVISIONER_TOKEN_REFETCH_INTERVAL_MS = 30_000;\n\nexport const provisionerTokenQueryKeys = {\n all: ['provisioner-tokens'] as const,\n list: (workspaceId: string) => [...provisionerTokenQueryKeys.all, 'tokens', workspaceId] as const,\n active: (workspaceId: string) =>\n [...provisionerTokenQueryKeys.all, 'provisioners', workspaceId] as const,\n};\n\ntype ProvisionerTokensQueryOptions = FetchQueryOptions<\n ProvisionerToken[],\n Error,\n ProvisionerToken[],\n ReturnType<typeof provisionerTokenQueryKeys.list>\n>;\n\ntype ActiveProvisionersQueryOptions = FetchQueryOptions<\n ActiveProvisioner[],\n Error,\n ActiveProvisioner[],\n ReturnType<typeof provisionerTokenQueryKeys.active>\n>;\n\nexport async function listProvisionerTokens({\n workspaceId,\n signal,\n}: {\n workspaceId: string;\n signal?: AbortSignal;\n}): Promise<ProvisionerToken[]> {\n const response = await checkedApiRequest(\n listProvisionerTokensResponseSchema,\n `/workspaces/${workspaceId}/provisioners/tokens`,\n {signal},\n );\n return response.tokens.map(toProvisionerToken);\n}\n\nexport async function createProvisionerToken({\n workspaceId,\n command,\n}: {\n workspaceId: string;\n command: CreateTokenCommand;\n}): Promise<CreatedProvisionerToken> {\n const response = await checkedApiRequest(\n createProvisionerTokenResponseSchema,\n `/workspaces/${workspaceId}/provisioners/tokens`,\n {method: 'POST', body: toCreateTokenBody(command)},\n );\n return toCreatedProvisionerToken(response);\n}\n\nexport async function revokeProvisionerToken({\n workspaceId,\n tokenId,\n}: {\n workspaceId: string;\n tokenId: string;\n}): Promise<ProvisionerToken> {\n const response = await checkedApiRequest(\n revokeProvisionerTokenResponseSchema,\n `/workspaces/${workspaceId}/provisioners/tokens/${tokenId}/revoke`,\n {method: 'POST'},\n );\n return toProvisionerToken(response);\n}\n\nexport async function listActiveProvisioners({\n workspaceId,\n signal,\n}: {\n workspaceId: string;\n signal?: AbortSignal;\n}): Promise<ActiveProvisioner[]> {\n const response = await checkedApiRequest(\n listActiveProvisionersResponseSchema,\n `/workspaces/${workspaceId}/provisioners/active`,\n {signal},\n );\n return response.provisioners.map(toActiveProvisioner);\n}\n\nexport function provisionerTokensQueryOptions(workspaceId: string): ProvisionerTokensQueryOptions {\n return queryOptions({\n queryKey: provisionerTokenQueryKeys.list(workspaceId),\n queryFn: ({signal}) => listProvisionerTokens({workspaceId, signal}),\n refetchInterval: PROVISIONER_TOKEN_REFETCH_INTERVAL_MS,\n refetchIntervalInBackground: false,\n });\n}\n\nexport function activeProvisionersQueryOptions(\n workspaceId: string,\n): ActiveProvisionersQueryOptions {\n return queryOptions({\n queryKey: provisionerTokenQueryKeys.active(workspaceId),\n queryFn: ({signal}) => listActiveProvisioners({workspaceId, signal}),\n refetchInterval: PROVISIONER_TOKEN_REFETCH_INTERVAL_MS,\n refetchIntervalInBackground: false,\n });\n}\n\nexport function useProvisionerTokensQuery(workspaceId: string | undefined) {\n return useQuery({\n ...provisionerTokensQueryOptions(workspaceId ?? ''),\n enabled: Boolean(workspaceId),\n });\n}\n\nexport function useActiveProvisionersQuery(workspaceId: string | undefined) {\n return useQuery({\n ...activeProvisionersQueryOptions(workspaceId ?? ''),\n enabled: Boolean(workspaceId),\n });\n}\n\nexport function useCreateProvisionerTokenMutation(workspaceId: string) {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (command: CreateTokenCommand) => createProvisionerToken({workspaceId, command}),\n onSuccess: async () => {\n await queryClient.invalidateQueries(provisionerTokensQueryOptions(workspaceId));\n },\n });\n}\n\nexport function useRevokeProvisionerTokenMutation(workspaceId: string) {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (tokenId: string) => revokeProvisionerToken({workspaceId, tokenId}),\n onSuccess: async () => {\n await Promise.all([\n queryClient.invalidateQueries(provisionerTokensQueryOptions(workspaceId)),\n queryClient.invalidateQueries(activeProvisionersQueryOptions(workspaceId)),\n ]);\n },\n });\n}\n"],"names":["createProvisionerTokenResponseSchema","listActiveProvisionersResponseSchema","listProvisionerTokensResponseSchema","revokeProvisionerTokenResponseSchema","checkedApiRequest","queryOptions","useMutation","useQuery","useQueryClient","toActiveProvisioner","toCreatedProvisionerToken","toCreateTokenBody","toProvisionerToken","PROVISIONER_TOKEN_REFETCH_INTERVAL_MS","provisionerTokenQueryKeys","all","list","workspaceId","active","listProvisionerTokens","signal","response","tokens","map","createProvisionerToken","command","method","body","revokeProvisionerToken","tokenId","listActiveProvisioners","provisioners","provisionerTokensQueryOptions","queryKey","queryFn","refetchInterval","refetchIntervalInBackground","activeProvisionersQueryOptions","useProvisionerTokensQuery","enabled","Boolean","useActiveProvisionersQuery","useCreateProvisionerTokenMutation","queryClient","mutationFn","onSuccess","invalidateQueries","useRevokeProvisionerTokenMutation","Promise"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ActiveProvisionerDto, CreateManualRegistrationTokenResponseDto, CreateProvisionerTokenResponseDto, ManualRegistrationTokenDto, ProvisionerTokenDto } from '@shipfox/api-runners-dto';
2
+ import type { ActiveProvisioner, CreatedManualRegistrationToken, CreatedProvisionerToken, CreateTokenCommand, ManualRegistrationToken, ProvisionerToken } from '#core/token.js';
3
+ export declare function toCreateTokenBody(command: CreateTokenCommand): {
4
+ ttl_seconds?: number;
5
+ name?: string;
6
+ };
7
+ export declare function toManualRegistrationToken(dto: ManualRegistrationTokenDto): ManualRegistrationToken;
8
+ export declare function toProvisionerToken(dto: ProvisionerTokenDto): ProvisionerToken;
9
+ export declare function toActiveProvisioner(dto: ActiveProvisionerDto): ActiveProvisioner;
10
+ export declare function toCreatedManualRegistrationToken(dto: CreateManualRegistrationTokenResponseDto): CreatedManualRegistrationToken;
11
+ export declare function toCreatedProvisionerToken(dto: CreateProvisionerTokenResponseDto): CreatedProvisionerToken;
12
+ //# sourceMappingURL=token-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-mapper.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/token-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,wCAAwC,EACxC,iCAAiC,EACjC,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB;;;EAO5D;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,0BAA0B,GAC9B,uBAAuB,CAWzB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,gBAAgB,CAO7E;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,GAAG,iBAAiB,CAEhF;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,wCAAwC,GAC5C,8BAA8B,CAUhC;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,iCAAiC,GACrC,uBAAuB,CASzB"}
@@ -0,0 +1,61 @@
1
+ export function toCreateTokenBody(command) {
2
+ return {
3
+ ...command.name ? {
4
+ name: command.name
5
+ } : {},
6
+ ...command.expiration.kind === 'expires-after' ? {
7
+ ttl_seconds: command.expiration.seconds
8
+ } : {}
9
+ };
10
+ }
11
+ export function toManualRegistrationToken(dto) {
12
+ return {
13
+ id: dto.id,
14
+ workspaceId: dto.workspace_id,
15
+ prefix: dto.prefix,
16
+ name: dto.name,
17
+ expiresAt: dto.expires_at,
18
+ revokedAt: dto.revoked_at,
19
+ createdAt: dto.created_at,
20
+ updatedAt: dto.updated_at
21
+ };
22
+ }
23
+ export function toProvisionerToken(dto) {
24
+ return {
25
+ ...toManualRegistrationToken(dto),
26
+ createdByUserId: dto.created_by_user_id,
27
+ revokedByUserId: dto.revoked_by_user_id,
28
+ lastSeenAt: dto.last_seen_at
29
+ };
30
+ }
31
+ export function toActiveProvisioner(dto) {
32
+ return {
33
+ id: dto.id,
34
+ name: dto.name,
35
+ prefix: dto.prefix,
36
+ lastSeenAt: dto.last_seen_at
37
+ };
38
+ }
39
+ export function toCreatedManualRegistrationToken(dto) {
40
+ return {
41
+ token: dto.raw_token,
42
+ id: dto.id,
43
+ prefix: dto.prefix,
44
+ name: dto.name,
45
+ workspaceId: dto.workspace_id,
46
+ expiresAt: dto.expires_at,
47
+ createdAt: dto.created_at
48
+ };
49
+ }
50
+ export function toCreatedProvisionerToken(dto) {
51
+ return {
52
+ ...toCreatedManualRegistrationToken(dto),
53
+ createdByUserId: dto.created_by_user_id,
54
+ revokedByUserId: dto.revoked_by_user_id,
55
+ revokedAt: dto.revoked_at,
56
+ lastSeenAt: dto.last_seen_at,
57
+ updatedAt: dto.updated_at
58
+ };
59
+ }
60
+
61
+ //# sourceMappingURL=token-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/api/token-mapper.ts"],"sourcesContent":["import type {\n ActiveProvisionerDto,\n CreateManualRegistrationTokenResponseDto,\n CreateProvisionerTokenResponseDto,\n ManualRegistrationTokenDto,\n ProvisionerTokenDto,\n} from '@shipfox/api-runners-dto';\nimport type {\n ActiveProvisioner,\n CreatedManualRegistrationToken,\n CreatedProvisionerToken,\n CreateTokenCommand,\n ManualRegistrationToken,\n ProvisionerToken,\n} from '#core/token.js';\n\nexport function toCreateTokenBody(command: CreateTokenCommand) {\n return {\n ...(command.name ? {name: command.name} : {}),\n ...(command.expiration.kind === 'expires-after'\n ? {ttl_seconds: command.expiration.seconds}\n : {}),\n };\n}\n\nexport function toManualRegistrationToken(\n dto: ManualRegistrationTokenDto,\n): ManualRegistrationToken {\n return {\n id: dto.id,\n workspaceId: dto.workspace_id,\n prefix: dto.prefix,\n name: dto.name,\n expiresAt: dto.expires_at,\n revokedAt: dto.revoked_at,\n createdAt: dto.created_at,\n updatedAt: dto.updated_at,\n };\n}\n\nexport function toProvisionerToken(dto: ProvisionerTokenDto): ProvisionerToken {\n return {\n ...toManualRegistrationToken(dto),\n createdByUserId: dto.created_by_user_id,\n revokedByUserId: dto.revoked_by_user_id,\n lastSeenAt: dto.last_seen_at,\n };\n}\n\nexport function toActiveProvisioner(dto: ActiveProvisionerDto): ActiveProvisioner {\n return {id: dto.id, name: dto.name, prefix: dto.prefix, lastSeenAt: dto.last_seen_at};\n}\n\nexport function toCreatedManualRegistrationToken(\n dto: CreateManualRegistrationTokenResponseDto,\n): CreatedManualRegistrationToken {\n return {\n token: dto.raw_token,\n id: dto.id,\n prefix: dto.prefix,\n name: dto.name,\n workspaceId: dto.workspace_id,\n expiresAt: dto.expires_at,\n createdAt: dto.created_at,\n };\n}\n\nexport function toCreatedProvisionerToken(\n dto: CreateProvisionerTokenResponseDto,\n): CreatedProvisionerToken {\n return {\n ...toCreatedManualRegistrationToken(dto),\n createdByUserId: dto.created_by_user_id,\n revokedByUserId: dto.revoked_by_user_id,\n revokedAt: dto.revoked_at,\n lastSeenAt: dto.last_seen_at,\n updatedAt: dto.updated_at,\n };\n}\n"],"names":["toCreateTokenBody","command","name","expiration","kind","ttl_seconds","seconds","toManualRegistrationToken","dto","id","workspaceId","workspace_id","prefix","expiresAt","expires_at","revokedAt","revoked_at","createdAt","created_at","updatedAt","updated_at","toProvisionerToken","createdByUserId","created_by_user_id","revokedByUserId","revoked_by_user_id","lastSeenAt","last_seen_at","toActiveProvisioner","toCreatedManualRegistrationToken","token","raw_token","toCreatedProvisionerToken"],"mappings":"AAgBA,OAAO,SAASA,kBAAkBC,OAA2B;IAC3D,OAAO;QACL,GAAIA,QAAQC,IAAI,GAAG;YAACA,MAAMD,QAAQC,IAAI;QAAA,IAAI,CAAC,CAAC;QAC5C,GAAID,QAAQE,UAAU,CAACC,IAAI,KAAK,kBAC5B;YAACC,aAAaJ,QAAQE,UAAU,CAACG,OAAO;QAAA,IACxC,CAAC,CAAC;IACR;AACF;AAEA,OAAO,SAASC,0BACdC,GAA+B;IAE/B,OAAO;QACLC,IAAID,IAAIC,EAAE;QACVC,aAAaF,IAAIG,YAAY;QAC7BC,QAAQJ,IAAII,MAAM;QAClBV,MAAMM,IAAIN,IAAI;QACdW,WAAWL,IAAIM,UAAU;QACzBC,WAAWP,IAAIQ,UAAU;QACzBC,WAAWT,IAAIU,UAAU;QACzBC,WAAWX,IAAIY,UAAU;IAC3B;AACF;AAEA,OAAO,SAASC,mBAAmBb,GAAwB;IACzD,OAAO;QACL,GAAGD,0BAA0BC,IAAI;QACjCc,iBAAiBd,IAAIe,kBAAkB;QACvCC,iBAAiBhB,IAAIiB,kBAAkB;QACvCC,YAAYlB,IAAImB,YAAY;IAC9B;AACF;AAEA,OAAO,SAASC,oBAAoBpB,GAAyB;IAC3D,OAAO;QAACC,IAAID,IAAIC,EAAE;QAAEP,MAAMM,IAAIN,IAAI;QAAEU,QAAQJ,IAAII,MAAM;QAAEc,YAAYlB,IAAImB,YAAY;IAAA;AACtF;AAEA,OAAO,SAASE,iCACdrB,GAA6C;IAE7C,OAAO;QACLsB,OAAOtB,IAAIuB,SAAS;QACpBtB,IAAID,IAAIC,EAAE;QACVG,QAAQJ,IAAII,MAAM;QAClBV,MAAMM,IAAIN,IAAI;QACdQ,aAAaF,IAAIG,YAAY;QAC7BE,WAAWL,IAAIM,UAAU;QACzBG,WAAWT,IAAIU,UAAU;IAC3B;AACF;AAEA,OAAO,SAASc,0BACdxB,GAAsC;IAEtC,OAAO;QACL,GAAGqB,iCAAiCrB,IAAI;QACxCc,iBAAiBd,IAAIe,kBAAkB;QACvCC,iBAAiBhB,IAAIiB,kBAAkB;QACvCV,WAAWP,IAAIQ,UAAU;QACzBU,YAAYlB,IAAImB,YAAY;QAC5BR,WAAWX,IAAIY,UAAU;IAC3B;AACF"}