@shipfox/client-secrets 4.0.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +46 -0
- package/dist/components/form-errors.d.ts.map +1 -1
- package/dist/components/form-errors.js +0 -6
- package/dist/components/form-errors.js.map +1 -1
- package/dist/components/secret-form.d.ts.map +1 -1
- package/dist/components/secret-form.js +6 -8
- package/dist/components/secret-form.js.map +1 -1
- package/dist/components/variable-form.d.ts.map +1 -1
- package/dist/components/variable-form.js +6 -8
- package/dist/components/variable-form.js.map +1 -1
- package/dist/components/workspace-secrets-section.d.ts.map +1 -1
- package/dist/components/workspace-secrets-section.js +4 -2
- package/dist/components/workspace-secrets-section.js.map +1 -1
- package/dist/components/workspace-secrets-section.stories.d.ts.map +1 -1
- package/dist/components/workspace-secrets-section.stories.js.map +1 -1
- package/dist/components/workspace-variables-section.d.ts.map +1 -1
- package/dist/components/workspace-variables-section.js +5 -3
- package/dist/components/workspace-variables-section.js.map +1 -1
- package/dist/components/workspace-variables-section.stories.d.ts.map +1 -1
- package/dist/components/workspace-variables-section.stories.js.map +1 -1
- package/dist/core/store.d.ts +54 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +44 -0
- package/dist/core/store.js.map +1 -0
- package/dist/feature.d.ts +39 -0
- package/dist/feature.d.ts.map +1 -0
- package/dist/feature.js +35 -0
- package/dist/feature.js.map +1 -0
- package/dist/hooks/api/create-store-api.d.ts +31 -49
- package/dist/hooks/api/create-store-api.d.ts.map +1 -1
- package/dist/hooks/api/create-store-api.js +44 -45
- package/dist/hooks/api/create-store-api.js.map +1 -1
- package/dist/hooks/api/secrets.d.ts +16 -55
- package/dist/hooks/api/secrets.d.ts.map +1 -1
- package/dist/hooks/api/secrets.js +10 -2
- package/dist/hooks/api/secrets.js.map +1 -1
- package/dist/hooks/api/store-mapper.d.ts +7 -0
- package/dist/hooks/api/store-mapper.d.ts.map +1 -0
- package/dist/hooks/api/store-mapper.js +36 -0
- package/dist/hooks/api/store-mapper.js.map +1 -0
- package/dist/hooks/api/variables.d.ts +25 -78
- package/dist/hooks/api/variables.d.ts.map +1 -1
- package/dist/hooks/api/variables.js +37 -28
- package/dist/hooks/api/variables.js.map +1 -1
- package/dist/routes/secrets-settings.d.ts +5 -0
- package/dist/routes/secrets-settings.d.ts.map +1 -0
- package/dist/routes/secrets-settings.js +10 -0
- package/dist/routes/secrets-settings.js.map +1 -0
- package/dist/routes/variables-settings.d.ts +5 -0
- package/dist/routes/variables-settings.d.ts.map +1 -0
- package/dist/routes/variables-settings.js +10 -0
- package/dist/routes/variables-settings.js.map +1 -0
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +17 -9
- package/src/components/form-errors.test.ts +2 -2
- package/src/components/form-errors.ts +0 -3
- package/src/components/secret-form.tsx +15 -5
- package/src/components/variable-form.tsx +15 -5
- package/src/components/workspace-secrets-section.stories.tsx +1 -2
- package/src/components/workspace-secrets-section.tsx +8 -4
- package/src/components/workspace-variables-section.stories.tsx +1 -2
- package/src/components/workspace-variables-section.tsx +10 -6
- package/src/core/store.test.ts +38 -0
- package/src/core/store.ts +91 -0
- package/src/feature.ts +29 -0
- package/src/hooks/api/create-store-api.ts +104 -75
- package/src/hooks/api/secrets.test.ts +16 -10
- package/src/hooks/api/secrets.ts +11 -14
- package/src/hooks/api/store-mapper.test.ts +39 -0
- package/src/hooks/api/store-mapper.ts +47 -0
- package/src/hooks/api/variables.ts +52 -36
- package/src/routes/secrets-settings.tsx +6 -0
- package/src/routes/variables-settings.tsx +6 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/vercel.json +5 -0
- package/dist/components/store-key.d.ts +0 -20
- package/dist/components/store-key.d.ts.map +0 -1
- package/dist/components/store-key.js +0 -25
- package/dist/components/store-key.js.map +0 -1
- package/src/components/store-key.test.ts +0 -53
- package/src/components/store-key.ts +0 -36
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/api/create-store-api.ts"],"sourcesContent":["import {SECRETS_MAX_LIST_LIMIT
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/api/create-store-api.ts"],"sourcesContent":["import {SECRETS_MAX_LIST_LIMIT} from '@shipfox/api-secrets-dto';\nimport {\n checkedApiRequest,\n emptyResponseSchema,\n type StandardSchema,\n type StandardSchemaOutput,\n} from '@shipfox/client-api';\nimport {\n type FetchQueryOptions,\n queryOptions,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/react-query';\nimport {\n type DeleteStoreCommand,\n type PutStoreCommand,\n projectIdFromScope,\n type StoreScope,\n type StoreWriteWarning,\n workspaceStoreScope,\n} from '#core/store.js';\n\ntype StoreApiConfig<\n TListItem,\n TPutItem,\n TListSchema extends StandardSchema,\n TPutSchema extends StandardSchema,\n> = {\n resource: 'secrets' | 'variables';\n listResponseSchema: TListSchema;\n putResponseSchema: TPutSchema;\n toListItems: (response: StandardSchemaOutput<TListSchema>) => TListItem[];\n toPutResult: (response: StandardSchemaOutput<TPutSchema>) => {\n item: TPutItem;\n warnings: StoreWriteWarning[];\n };\n};\n\nexport function createStoreApi<\n TListItem,\n TPutItem,\n TListSchema extends StandardSchema,\n TPutSchema extends StandardSchema,\n>(config: StoreApiConfig<TListItem, TPutItem, TListSchema, TPutSchema>) {\n const {resource} = config;\n const queryKeys = {\n all: [resource] as const,\n list: (workspaceId: string, scope: StoreScope = workspaceStoreScope) =>\n [...queryKeys.all, 'list', workspaceId, scope] as const,\n };\n\n type ListQueryOptions = FetchQueryOptions<\n TListItem[],\n Error,\n TListItem[],\n ReturnType<typeof queryKeys.list>\n >;\n\n function searchForScope(scope: StoreScope, includeLimit = false): string {\n const search = new URLSearchParams();\n if (includeLimit) search.set('limit', String(SECRETS_MAX_LIST_LIMIT));\n const projectId = projectIdFromScope(scope);\n if (projectId) search.set('project_id', projectId);\n return search.toString();\n }\n\n async function listAll(params: {\n workspaceId: string;\n scope?: StoreScope;\n signal?: AbortSignal | undefined;\n }): Promise<TListItem[]> {\n const scope = params.scope ?? workspaceStoreScope;\n const response = await checkedApiRequest(\n config.listResponseSchema,\n `/workspaces/${params.workspaceId}/${resource}?${searchForScope(scope, true)}`,\n {signal: params.signal},\n );\n return config.toListItems(response);\n }\n\n async function put(command: PutStoreCommand) {\n const response = await checkedApiRequest(\n config.putResponseSchema,\n `/workspaces/${command.workspaceId}/${resource}/${encodeURIComponent(command.key)}`,\n {\n method: 'PUT',\n body: {value: command.value, project_id: projectIdFromScope(command.scope)},\n },\n );\n return config.toPutResult(response);\n }\n\n async function remove(command: DeleteStoreCommand): Promise<void> {\n const search = searchForScope(command.scope);\n await checkedApiRequest(\n emptyResponseSchema,\n `/workspaces/${command.workspaceId}/${resource}/${encodeURIComponent(command.key)}${search ? `?${search}` : ''}`,\n {method: 'DELETE'},\n );\n }\n\n function listQueryOptions(\n workspaceId: string,\n scope: StoreScope = workspaceStoreScope,\n ): ListQueryOptions {\n return queryOptions({\n queryKey: queryKeys.list(workspaceId, scope),\n queryFn: ({signal}) => listAll({workspaceId, scope, signal}),\n });\n }\n\n function useListQuery(workspaceId: string | undefined, scope: StoreScope = workspaceStoreScope) {\n return useQuery({...listQueryOptions(workspaceId ?? '', scope), enabled: Boolean(workspaceId)});\n }\n\n function usePutMutation() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: put,\n onSuccess: async () => await queryClient.invalidateQueries({queryKey: queryKeys.all}),\n });\n }\n\n function useDeleteMutation() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: remove,\n onSuccess: async () => await queryClient.invalidateQueries({queryKey: queryKeys.all}),\n });\n }\n\n return {\n queryKeys,\n listAll,\n put,\n remove,\n listQueryOptions,\n useListQuery,\n usePutMutation,\n useDeleteMutation,\n };\n}\n"],"names":["SECRETS_MAX_LIST_LIMIT","checkedApiRequest","emptyResponseSchema","queryOptions","useMutation","useQuery","useQueryClient","projectIdFromScope","workspaceStoreScope","createStoreApi","config","resource","queryKeys","all","list","workspaceId","scope","searchForScope","includeLimit","search","URLSearchParams","set","String","projectId","toString","listAll","params","response","listResponseSchema","signal","toListItems","put","command","putResponseSchema","encodeURIComponent","key","method","body","value","project_id","toPutResult","remove","listQueryOptions","queryKey","queryFn","useListQuery","enabled","Boolean","usePutMutation","queryClient","mutationFn","onSuccess","invalidateQueries","useDeleteMutation"],"mappings":"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"}
|
|
@@ -1,61 +1,22 @@
|
|
|
1
1
|
export declare const secretsQueryKeys: {
|
|
2
|
-
all: readonly [
|
|
3
|
-
list: (workspaceId: string) => readonly [
|
|
2
|
+
all: readonly ["secrets" | "variables"];
|
|
3
|
+
list: (workspaceId: string, scope?: import("../../core/store.js").StoreScope) => readonly ["secrets" | "variables", "list", string, import("../../core/store.js").StoreScope];
|
|
4
4
|
};
|
|
5
5
|
export declare const listSecrets: (params: {
|
|
6
6
|
workspaceId: string;
|
|
7
|
-
|
|
7
|
+
scope?: import("../../core/store.js").StoreScope;
|
|
8
8
|
signal?: AbortSignal | undefined;
|
|
9
|
-
}) => Promise<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export declare const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
}) => Promise<import("./create-store-api.js").PutResult<{
|
|
24
|
-
key: string;
|
|
25
|
-
project_id: string | null;
|
|
26
|
-
created_at: string;
|
|
27
|
-
updated_at: string;
|
|
28
|
-
last_edited_by: string | null;
|
|
29
|
-
}>>;
|
|
30
|
-
export declare const deleteSecret: (params: {
|
|
31
|
-
workspaceId: string;
|
|
32
|
-
key: string;
|
|
33
|
-
projectId?: string | undefined;
|
|
34
|
-
}) => Promise<void>;
|
|
35
|
-
export declare const useSecretsQuery: (workspaceId: string | undefined) => import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
36
|
-
key: string;
|
|
37
|
-
project_id: string | null;
|
|
38
|
-
created_at: string;
|
|
39
|
-
updated_at: string;
|
|
40
|
-
last_edited_by: string | null;
|
|
41
|
-
}[]>, Error>;
|
|
42
|
-
export declare const usePutSecretMutation: () => import("@tanstack/react-query").UseMutationResult<import("./create-store-api.js").PutResult<{
|
|
43
|
-
key: string;
|
|
44
|
-
project_id: string | null;
|
|
45
|
-
created_at: string;
|
|
46
|
-
updated_at: string;
|
|
47
|
-
last_edited_by: string | null;
|
|
48
|
-
}>, Error, {
|
|
49
|
-
workspaceId: string;
|
|
50
|
-
key: string;
|
|
51
|
-
body: {
|
|
52
|
-
value: string;
|
|
53
|
-
project_id?: string | undefined;
|
|
54
|
-
};
|
|
55
|
-
}, unknown>;
|
|
56
|
-
export declare const useDeleteSecretMutation: () => import("@tanstack/react-query").UseMutationResult<void, Error, {
|
|
57
|
-
workspaceId: string;
|
|
58
|
-
key: string;
|
|
59
|
-
projectId?: string | undefined;
|
|
60
|
-
}, unknown>;
|
|
9
|
+
}) => Promise<import("../../core/store.js").StoreMetadata[]>;
|
|
10
|
+
export declare const putSecret: (command: import("../../core/store.js").PutStoreCommand) => Promise<{
|
|
11
|
+
item: import("../../core/store.js").StoreMetadata;
|
|
12
|
+
warnings: import("../../core/store.js").StoreWriteWarning[];
|
|
13
|
+
}>;
|
|
14
|
+
export declare const deleteSecret: (command: import("../../core/store.js").DeleteStoreCommand) => Promise<void>;
|
|
15
|
+
export declare const listSecretsQueryOptions: (workspaceId: string, scope?: import("../../core/store.js").StoreScope) => import("@tanstack/react-query").FetchQueryOptions<import("../../core/store.js").StoreMetadata[], Error, import("../../core/store.js").StoreMetadata[], readonly ["secrets" | "variables", "list", string, import("../../core/store.js").StoreScope], never>;
|
|
16
|
+
export declare const useSecretsQuery: (workspaceId: string | undefined, scope?: import("../../core/store.js").StoreScope) => import("@tanstack/react-query").UseQueryResult<NoInfer<import("../../core/store.js").StoreMetadata[]>, Error>;
|
|
17
|
+
export declare const usePutSecretMutation: () => import("@tanstack/react-query").UseMutationResult<{
|
|
18
|
+
item: import("../../core/store.js").StoreMetadata;
|
|
19
|
+
warnings: import("../../core/store.js").StoreWriteWarning[];
|
|
20
|
+
}, Error, import("../../core/store.js").PutStoreCommand, unknown>;
|
|
21
|
+
export declare const useDeleteSecretMutation: () => import("@tanstack/react-query").UseMutationResult<void, Error, import("../../core/store.js").DeleteStoreCommand, unknown>;
|
|
61
22
|
//# sourceMappingURL=secrets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/secrets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/secrets.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB;;;CAAuB,CAAC;AACrD,eAAO,MAAM,WAAW;;;;4DAAqB,CAAC;AAC9C,eAAO,MAAM,SAAS;;;EAAiB,CAAC;AACxC,eAAO,MAAM,YAAY,8EAAoB,CAAC;AAC9C,eAAO,MAAM,uBAAuB,wUAA8B,CAAC;AACnE,eAAO,MAAM,eAAe,sMAA0B,CAAC;AACvD,eAAO,MAAM,oBAAoB;;;iEAA4B,CAAC;AAC9D,eAAO,MAAM,uBAAuB,iIAA+B,CAAC"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
import { listSecretsResponseSchema, putSecretResponseSchema } from '@shipfox/api-secrets-dto';
|
|
1
2
|
import { createStoreApi } from './create-store-api.js';
|
|
3
|
+
import { toSecretMetadata, toStoreWriteWarnings } from './store-mapper.js';
|
|
2
4
|
const secretsApi = createStoreApi({
|
|
3
5
|
resource: 'secrets',
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
listResponseSchema: listSecretsResponseSchema,
|
|
7
|
+
putResponseSchema: putSecretResponseSchema,
|
|
8
|
+
toListItems: (response)=>response.secrets.map(toSecretMetadata),
|
|
9
|
+
toPutResult: (response)=>({
|
|
10
|
+
item: toSecretMetadata(response.secret),
|
|
11
|
+
warnings: toStoreWriteWarnings(response.warnings)
|
|
12
|
+
})
|
|
6
13
|
});
|
|
7
14
|
export const secretsQueryKeys = secretsApi.queryKeys;
|
|
8
15
|
export const listSecrets = secretsApi.listAll;
|
|
9
16
|
export const putSecret = secretsApi.put;
|
|
10
17
|
export const deleteSecret = secretsApi.remove;
|
|
18
|
+
export const listSecretsQueryOptions = secretsApi.listQueryOptions;
|
|
11
19
|
export const useSecretsQuery = secretsApi.useListQuery;
|
|
12
20
|
export const usePutSecretMutation = secretsApi.usePutMutation;
|
|
13
21
|
export const useDeleteSecretMutation = secretsApi.useDeleteMutation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/api/secrets.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/api/secrets.ts"],"sourcesContent":["import {listSecretsResponseSchema, putSecretResponseSchema} from '@shipfox/api-secrets-dto';\nimport {createStoreApi} from './create-store-api.js';\nimport {toSecretMetadata, toStoreWriteWarnings} from './store-mapper.js';\n\nconst secretsApi = createStoreApi({\n resource: 'secrets',\n listResponseSchema: listSecretsResponseSchema,\n putResponseSchema: putSecretResponseSchema,\n toListItems: (response) => response.secrets.map(toSecretMetadata),\n toPutResult: (response) => ({\n item: toSecretMetadata(response.secret),\n warnings: toStoreWriteWarnings(response.warnings),\n }),\n});\n\nexport const secretsQueryKeys = secretsApi.queryKeys;\nexport const listSecrets = secretsApi.listAll;\nexport const putSecret = secretsApi.put;\nexport const deleteSecret = secretsApi.remove;\nexport const listSecretsQueryOptions = secretsApi.listQueryOptions;\nexport const useSecretsQuery = secretsApi.useListQuery;\nexport const usePutSecretMutation = secretsApi.usePutMutation;\nexport const useDeleteSecretMutation = secretsApi.useDeleteMutation;\n"],"names":["listSecretsResponseSchema","putSecretResponseSchema","createStoreApi","toSecretMetadata","toStoreWriteWarnings","secretsApi","resource","listResponseSchema","putResponseSchema","toListItems","response","secrets","map","toPutResult","item","secret","warnings","secretsQueryKeys","queryKeys","listSecrets","listAll","putSecret","put","deleteSecret","remove","listSecretsQueryOptions","listQueryOptions","useSecretsQuery","useListQuery","usePutSecretMutation","usePutMutation","useDeleteSecretMutation","useDeleteMutation"],"mappings":"AAAA,SAAQA,yBAAyB,EAAEC,uBAAuB,QAAO,2BAA2B;AAC5F,SAAQC,cAAc,QAAO,wBAAwB;AACrD,SAAQC,gBAAgB,EAAEC,oBAAoB,QAAO,oBAAoB;AAEzE,MAAMC,aAAaH,eAAe;IAChCI,UAAU;IACVC,oBAAoBP;IACpBQ,mBAAmBP;IACnBQ,aAAa,CAACC,WAAaA,SAASC,OAAO,CAACC,GAAG,CAACT;IAChDU,aAAa,CAACH,WAAc,CAAA;YAC1BI,MAAMX,iBAAiBO,SAASK,MAAM;YACtCC,UAAUZ,qBAAqBM,SAASM,QAAQ;QAClD,CAAA;AACF;AAEA,OAAO,MAAMC,mBAAmBZ,WAAWa,SAAS,CAAC;AACrD,OAAO,MAAMC,cAAcd,WAAWe,OAAO,CAAC;AAC9C,OAAO,MAAMC,YAAYhB,WAAWiB,GAAG,CAAC;AACxC,OAAO,MAAMC,eAAelB,WAAWmB,MAAM,CAAC;AAC9C,OAAO,MAAMC,0BAA0BpB,WAAWqB,gBAAgB,CAAC;AACnE,OAAO,MAAMC,kBAAkBtB,WAAWuB,YAAY,CAAC;AACvD,OAAO,MAAMC,uBAAuBxB,WAAWyB,cAAc,CAAC;AAC9D,OAAO,MAAMC,0BAA0B1B,WAAW2B,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SecretDto, SecretWriteWarningDto, VariableDto, VariableListItemDto } from '@shipfox/api-secrets-dto';
|
|
2
|
+
import type { SecretMetadata, StoreWriteWarning, Variable, VariablePreview } from '#core/store.js';
|
|
3
|
+
export declare function toSecretMetadata(secret: SecretDto): SecretMetadata;
|
|
4
|
+
export declare function toVariablePreview(variable: VariableListItemDto): VariablePreview;
|
|
5
|
+
export declare function toVariable(variable: VariableDto): Variable;
|
|
6
|
+
export declare function toStoreWriteWarnings(warnings: readonly SecretWriteWarningDto[]): StoreWriteWarning[];
|
|
7
|
+
//# sourceMappingURL=store-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-mapper.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/store-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,cAAc,EAEd,iBAAiB,EACjB,QAAQ,EACR,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAaxB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,CAElE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,eAAe,CAOhF;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,CAE1D;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,GACzC,iBAAiB,EAAE,CAErB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { scopeFromProjectId } from '#core/store.js';
|
|
2
|
+
function toStoreMetadata(item) {
|
|
3
|
+
return {
|
|
4
|
+
key: item.key,
|
|
5
|
+
scope: scopeFromProjectId(item.project_id),
|
|
6
|
+
createdAt: item.created_at,
|
|
7
|
+
updatedAt: item.updated_at,
|
|
8
|
+
lastEditedBy: item.last_edited_by
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export function toSecretMetadata(secret) {
|
|
12
|
+
return toStoreMetadata(secret);
|
|
13
|
+
}
|
|
14
|
+
export function toVariablePreview(variable) {
|
|
15
|
+
return {
|
|
16
|
+
...toStoreMetadata(variable),
|
|
17
|
+
value: variable.value,
|
|
18
|
+
valueState: 'preview',
|
|
19
|
+
valueTruncated: variable.value_truncated
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function toVariable(variable) {
|
|
23
|
+
return {
|
|
24
|
+
...toStoreMetadata(variable),
|
|
25
|
+
value: variable.value,
|
|
26
|
+
valueState: 'full'
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function toStoreWriteWarnings(warnings) {
|
|
30
|
+
return warnings.map((warning)=>({
|
|
31
|
+
code: warning.code,
|
|
32
|
+
key: warning.key
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=store-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/api/store-mapper.ts"],"sourcesContent":["import type {\n SecretDto,\n SecretWriteWarningDto,\n VariableDto,\n VariableListItemDto,\n} from '@shipfox/api-secrets-dto';\nimport type {\n SecretMetadata,\n StoreMetadata,\n StoreWriteWarning,\n Variable,\n VariablePreview,\n} from '#core/store.js';\nimport {scopeFromProjectId} from '#core/store.js';\n\nfunction toStoreMetadata(item: SecretDto): StoreMetadata {\n return {\n key: item.key,\n scope: scopeFromProjectId(item.project_id),\n createdAt: item.created_at,\n updatedAt: item.updated_at,\n lastEditedBy: item.last_edited_by,\n };\n}\n\nexport function toSecretMetadata(secret: SecretDto): SecretMetadata {\n return toStoreMetadata(secret);\n}\n\nexport function toVariablePreview(variable: VariableListItemDto): VariablePreview {\n return {\n ...toStoreMetadata(variable),\n value: variable.value,\n valueState: 'preview',\n valueTruncated: variable.value_truncated,\n };\n}\n\nexport function toVariable(variable: VariableDto): Variable {\n return {...toStoreMetadata(variable), value: variable.value, valueState: 'full'};\n}\n\nexport function toStoreWriteWarnings(\n warnings: readonly SecretWriteWarningDto[],\n): StoreWriteWarning[] {\n return warnings.map((warning) => ({code: warning.code, key: warning.key}));\n}\n"],"names":["scopeFromProjectId","toStoreMetadata","item","key","scope","project_id","createdAt","created_at","updatedAt","updated_at","lastEditedBy","last_edited_by","toSecretMetadata","secret","toVariablePreview","variable","value","valueState","valueTruncated","value_truncated","toVariable","toStoreWriteWarnings","warnings","map","warning","code"],"mappings":"AAaA,SAAQA,kBAAkB,QAAO,iBAAiB;AAElD,SAASC,gBAAgBC,IAAe;IACtC,OAAO;QACLC,KAAKD,KAAKC,GAAG;QACbC,OAAOJ,mBAAmBE,KAAKG,UAAU;QACzCC,WAAWJ,KAAKK,UAAU;QAC1BC,WAAWN,KAAKO,UAAU;QAC1BC,cAAcR,KAAKS,cAAc;IACnC;AACF;AAEA,OAAO,SAASC,iBAAiBC,MAAiB;IAChD,OAAOZ,gBAAgBY;AACzB;AAEA,OAAO,SAASC,kBAAkBC,QAA6B;IAC7D,OAAO;QACL,GAAGd,gBAAgBc,SAAS;QAC5BC,OAAOD,SAASC,KAAK;QACrBC,YAAY;QACZC,gBAAgBH,SAASI,eAAe;IAC1C;AACF;AAEA,OAAO,SAASC,WAAWL,QAAqB;IAC9C,OAAO;QAAC,GAAGd,gBAAgBc,SAAS;QAAEC,OAAOD,SAASC,KAAK;QAAEC,YAAY;IAAM;AACjF;AAEA,OAAO,SAASI,qBACdC,QAA0C;IAE1C,OAAOA,SAASC,GAAG,CAAC,CAACC,UAAa,CAAA;YAACC,MAAMD,QAAQC,IAAI;YAAEtB,KAAKqB,QAAQrB,GAAG;QAAA,CAAA;AACzE"}
|
|
@@ -1,88 +1,35 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type FetchQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
import { type StoreScope, type Variable } from '#core/store.js';
|
|
2
3
|
export declare const variablesQueryKeys: {
|
|
3
|
-
all: readonly [
|
|
4
|
-
list: (workspaceId: string) => readonly [
|
|
4
|
+
all: readonly ["secrets" | "variables"];
|
|
5
|
+
list: (workspaceId: string, scope?: StoreScope) => readonly ["secrets" | "variables", "list", string, StoreScope];
|
|
5
6
|
};
|
|
6
7
|
export declare const listVariables: (params: {
|
|
7
8
|
workspaceId: string;
|
|
8
|
-
|
|
9
|
+
scope?: StoreScope;
|
|
9
10
|
signal?: AbortSignal | undefined;
|
|
10
|
-
}) => Promise<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
}) => Promise<import("./create-store-api.js").PutResult<{
|
|
27
|
-
key: string;
|
|
28
|
-
project_id: string | null;
|
|
29
|
-
created_at: string;
|
|
30
|
-
updated_at: string;
|
|
31
|
-
last_edited_by: string | null;
|
|
32
|
-
value: string;
|
|
33
|
-
value_truncated: boolean;
|
|
34
|
-
}>>;
|
|
35
|
-
export declare const deleteVariable: (params: {
|
|
36
|
-
workspaceId: string;
|
|
37
|
-
key: string;
|
|
38
|
-
projectId?: string | undefined;
|
|
39
|
-
}) => Promise<void>;
|
|
40
|
-
export declare const useVariablesQuery: (workspaceId: string | undefined) => import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
41
|
-
key: string;
|
|
42
|
-
project_id: string | null;
|
|
43
|
-
created_at: string;
|
|
44
|
-
updated_at: string;
|
|
45
|
-
last_edited_by: string | null;
|
|
46
|
-
value: string;
|
|
47
|
-
value_truncated: boolean;
|
|
48
|
-
}[]>, Error>;
|
|
49
|
-
export declare const usePutVariableMutation: () => import("@tanstack/react-query").UseMutationResult<import("./create-store-api.js").PutResult<{
|
|
50
|
-
key: string;
|
|
51
|
-
project_id: string | null;
|
|
52
|
-
created_at: string;
|
|
53
|
-
updated_at: string;
|
|
54
|
-
last_edited_by: string | null;
|
|
55
|
-
value: string;
|
|
56
|
-
value_truncated: boolean;
|
|
57
|
-
}>, Error, {
|
|
58
|
-
workspaceId: string;
|
|
59
|
-
key: string;
|
|
60
|
-
body: {
|
|
61
|
-
value: string;
|
|
62
|
-
project_id?: string | undefined;
|
|
63
|
-
};
|
|
64
|
-
}, unknown>;
|
|
65
|
-
export declare const useDeleteVariableMutation: () => import("@tanstack/react-query").UseMutationResult<void, Error, {
|
|
66
|
-
workspaceId: string;
|
|
67
|
-
key: string;
|
|
68
|
-
projectId?: string | undefined;
|
|
69
|
-
}, unknown>;
|
|
70
|
-
/**
|
|
71
|
-
* Reads a single variable including its full value. The list only returns a
|
|
72
|
-
* bounded preview, so editing a truncated variable fetches the full value here.
|
|
73
|
-
*/
|
|
11
|
+
}) => Promise<import("#core/store.js").VariablePreview[]>;
|
|
12
|
+
export declare const putVariable: (command: import("#core/store.js").PutStoreCommand) => Promise<{
|
|
13
|
+
item: Variable;
|
|
14
|
+
warnings: import("#core/store.js").StoreWriteWarning[];
|
|
15
|
+
}>;
|
|
16
|
+
export declare const deleteVariable: (command: import("#core/store.js").DeleteStoreCommand) => Promise<void>;
|
|
17
|
+
export declare const listVariablesQueryOptions: (workspaceId: string, scope?: StoreScope) => FetchQueryOptions<import("#core/store.js").VariablePreview[], Error, import("#core/store.js").VariablePreview[], readonly ["secrets" | "variables", "list", string, StoreScope], never>;
|
|
18
|
+
export declare const useVariablesQuery: (workspaceId: string | undefined, scope?: StoreScope) => import("@tanstack/react-query").UseQueryResult<NoInfer<import("#core/store.js").VariablePreview[]>, Error>;
|
|
19
|
+
export declare const usePutVariableMutation: () => import("@tanstack/react-query").UseMutationResult<{
|
|
20
|
+
item: Variable;
|
|
21
|
+
warnings: import("#core/store.js").StoreWriteWarning[];
|
|
22
|
+
}, Error, import("#core/store.js").PutStoreCommand, unknown>;
|
|
23
|
+
export declare const useDeleteVariableMutation: () => import("@tanstack/react-query").UseMutationResult<void, Error, import("#core/store.js").DeleteStoreCommand, unknown>;
|
|
24
|
+
export declare const variableQueryKey: (workspaceId: string, key: string, scope: StoreScope) => readonly ["secrets" | "variables", "detail", string, string, StoreScope];
|
|
25
|
+
type VariableQueryOptions = FetchQueryOptions<Variable, Error, Variable, ReturnType<typeof variableQueryKey>>;
|
|
74
26
|
export declare function getVariable(params: {
|
|
75
27
|
workspaceId: string;
|
|
76
28
|
key: string;
|
|
77
|
-
|
|
29
|
+
scope?: StoreScope;
|
|
78
30
|
signal?: AbortSignal | undefined;
|
|
79
|
-
}): Promise<
|
|
80
|
-
export declare function
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
created_at: string;
|
|
84
|
-
updated_at: string;
|
|
85
|
-
last_edited_by: string | null;
|
|
86
|
-
value: string;
|
|
87
|
-
}>, Error>;
|
|
31
|
+
}): Promise<Variable>;
|
|
32
|
+
export declare function variableQueryOptions(workspaceId: string, key: string, scope?: StoreScope): VariableQueryOptions;
|
|
33
|
+
export declare function useVariableQuery(workspaceId: string, key: string | undefined): import("@tanstack/react-query").UseQueryResult<NoInfer<Variable>, Error>;
|
|
34
|
+
export {};
|
|
88
35
|
//# sourceMappingURL=variables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/variables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/hooks/api/variables.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,KAAK,iBAAiB,EAAyB,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,QAAQ,EAEd,MAAM,gBAAgB,CAAC;AAexB,eAAO,MAAM,kBAAkB;;;CAAyB,CAAC;AACzD,eAAO,MAAM,aAAa;;;;yDAAuB,CAAC;AAClD,eAAO,MAAM,WAAW;;;EAAmB,CAAC;AAC5C,eAAO,MAAM,cAAc,yEAAsB,CAAC;AAClD,eAAO,MAAM,yBAAyB,sOAAgC,CAAC;AACvE,eAAO,MAAM,iBAAiB,qKAA4B,CAAC;AAC3D,eAAO,MAAM,sBAAsB;;;4DAA8B,CAAC;AAClE,eAAO,MAAM,yBAAyB,4HAAiC,CAAC;AAExE,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,UAAU,6EACX,CAAC;AAE1E,KAAK,oBAAoB,GAAG,iBAAiB,CAC3C,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,UAAU,CAAC,OAAO,gBAAgB,CAAC,CACpC,CAAC;AAEF,wBAAsB,WAAW,CAAC,MAAM,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC,qBAUA;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,UAAgC,GACtC,oBAAoB,CAKtB;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,4EAE5E"}
|
|
@@ -1,52 +1,61 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getVariableResponseSchema, listVariablesResponseSchema, putVariableResponseSchema } from '@shipfox/api-secrets-dto';
|
|
2
|
+
import { checkedApiRequest } from '@shipfox/client-api';
|
|
3
|
+
import { queryOptions, useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { projectIdFromScope, workspaceStoreScope } from '#core/store.js';
|
|
3
5
|
import { createStoreApi } from './create-store-api.js';
|
|
6
|
+
import { toStoreWriteWarnings, toVariable, toVariablePreview } from './store-mapper.js';
|
|
4
7
|
const variablesApi = createStoreApi({
|
|
5
8
|
resource: 'variables',
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
listResponseSchema: listVariablesResponseSchema,
|
|
10
|
+
putResponseSchema: putVariableResponseSchema,
|
|
11
|
+
toListItems: (response)=>response.variables.map(toVariablePreview),
|
|
12
|
+
toPutResult: (response)=>({
|
|
13
|
+
item: toVariable(response.variable),
|
|
14
|
+
warnings: toStoreWriteWarnings(response.warnings)
|
|
11
15
|
})
|
|
12
16
|
});
|
|
13
17
|
export const variablesQueryKeys = variablesApi.queryKeys;
|
|
14
18
|
export const listVariables = variablesApi.listAll;
|
|
15
19
|
export const putVariable = variablesApi.put;
|
|
16
20
|
export const deleteVariable = variablesApi.remove;
|
|
21
|
+
export const listVariablesQueryOptions = variablesApi.listQueryOptions;
|
|
17
22
|
export const useVariablesQuery = variablesApi.useListQuery;
|
|
18
23
|
export const usePutVariableMutation = variablesApi.usePutMutation;
|
|
19
24
|
export const useDeleteVariableMutation = variablesApi.useDeleteMutation;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
export const variableQueryKey = (workspaceId, key, scope)=>[
|
|
26
|
+
...variablesQueryKeys.all,
|
|
27
|
+
'detail',
|
|
28
|
+
workspaceId,
|
|
29
|
+
key,
|
|
30
|
+
scope
|
|
31
|
+
];
|
|
32
|
+
export async function getVariable(params) {
|
|
33
|
+
const scope = params.scope ?? workspaceStoreScope;
|
|
34
|
+
const projectId = projectIdFromScope(scope);
|
|
35
|
+
const search = projectId ? `?${new URLSearchParams({
|
|
36
|
+
project_id: projectId
|
|
26
37
|
}).toString()}` : '';
|
|
27
|
-
const response = await
|
|
38
|
+
const response = await checkedApiRequest(getVariableResponseSchema, `/workspaces/${params.workspaceId}/variables/${encodeURIComponent(params.key)}${search}`, {
|
|
28
39
|
signal: params.signal
|
|
29
40
|
});
|
|
30
|
-
return response.variable;
|
|
41
|
+
return toVariable(response.variable);
|
|
31
42
|
}
|
|
32
|
-
export function
|
|
33
|
-
return
|
|
34
|
-
queryKey: key
|
|
35
|
-
...variablesQueryKeys.all,
|
|
36
|
-
'detail',
|
|
37
|
-
workspaceId,
|
|
38
|
-
key
|
|
39
|
-
] : [
|
|
40
|
-
...variablesQueryKeys.all,
|
|
41
|
-
'detail'
|
|
42
|
-
],
|
|
43
|
-
enabled: Boolean(key),
|
|
43
|
+
export function variableQueryOptions(workspaceId, key, scope = workspaceStoreScope) {
|
|
44
|
+
return queryOptions({
|
|
45
|
+
queryKey: variableQueryKey(workspaceId, key, scope),
|
|
44
46
|
queryFn: ({ signal })=>getVariable({
|
|
45
47
|
workspaceId,
|
|
46
|
-
key
|
|
48
|
+
key,
|
|
49
|
+
scope,
|
|
47
50
|
signal
|
|
48
51
|
})
|
|
49
52
|
});
|
|
50
53
|
}
|
|
54
|
+
export function useVariableQuery(workspaceId, key) {
|
|
55
|
+
return useQuery({
|
|
56
|
+
...variableQueryOptions(workspaceId, key ?? ''),
|
|
57
|
+
enabled: Boolean(key)
|
|
58
|
+
});
|
|
59
|
+
}
|
|
51
60
|
|
|
52
61
|
//# sourceMappingURL=variables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/api/variables.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/api/variables.ts"],"sourcesContent":["import {\n getVariableResponseSchema,\n listVariablesResponseSchema,\n putVariableResponseSchema,\n} from '@shipfox/api-secrets-dto';\nimport {checkedApiRequest} from '@shipfox/client-api';\nimport {type FetchQueryOptions, queryOptions, useQuery} from '@tanstack/react-query';\nimport {\n projectIdFromScope,\n type StoreScope,\n type Variable,\n workspaceStoreScope,\n} from '#core/store.js';\nimport {createStoreApi} from './create-store-api.js';\nimport {toStoreWriteWarnings, toVariable, toVariablePreview} from './store-mapper.js';\n\nconst variablesApi = createStoreApi({\n resource: 'variables',\n listResponseSchema: listVariablesResponseSchema,\n putResponseSchema: putVariableResponseSchema,\n toListItems: (response) => response.variables.map(toVariablePreview),\n toPutResult: (response) => ({\n item: toVariable(response.variable),\n warnings: toStoreWriteWarnings(response.warnings),\n }),\n});\n\nexport const variablesQueryKeys = variablesApi.queryKeys;\nexport const listVariables = variablesApi.listAll;\nexport const putVariable = variablesApi.put;\nexport const deleteVariable = variablesApi.remove;\nexport const listVariablesQueryOptions = variablesApi.listQueryOptions;\nexport const useVariablesQuery = variablesApi.useListQuery;\nexport const usePutVariableMutation = variablesApi.usePutMutation;\nexport const useDeleteVariableMutation = variablesApi.useDeleteMutation;\n\nexport const variableQueryKey = (workspaceId: string, key: string, scope: StoreScope) =>\n [...variablesQueryKeys.all, 'detail', workspaceId, key, scope] as const;\n\ntype VariableQueryOptions = FetchQueryOptions<\n Variable,\n Error,\n Variable,\n ReturnType<typeof variableQueryKey>\n>;\n\nexport async function getVariable(params: {\n workspaceId: string;\n key: string;\n scope?: StoreScope;\n signal?: AbortSignal | undefined;\n}) {\n const scope = params.scope ?? workspaceStoreScope;\n const projectId = projectIdFromScope(scope);\n const search = projectId ? `?${new URLSearchParams({project_id: projectId}).toString()}` : '';\n const response = await checkedApiRequest(\n getVariableResponseSchema,\n `/workspaces/${params.workspaceId}/variables/${encodeURIComponent(params.key)}${search}`,\n {signal: params.signal},\n );\n return toVariable(response.variable);\n}\n\nexport function variableQueryOptions(\n workspaceId: string,\n key: string,\n scope: StoreScope = workspaceStoreScope,\n): VariableQueryOptions {\n return queryOptions({\n queryKey: variableQueryKey(workspaceId, key, scope),\n queryFn: ({signal}) => getVariable({workspaceId, key, scope, signal}),\n });\n}\n\nexport function useVariableQuery(workspaceId: string, key: string | undefined) {\n return useQuery({...variableQueryOptions(workspaceId, key ?? ''), enabled: Boolean(key)});\n}\n"],"names":["getVariableResponseSchema","listVariablesResponseSchema","putVariableResponseSchema","checkedApiRequest","queryOptions","useQuery","projectIdFromScope","workspaceStoreScope","createStoreApi","toStoreWriteWarnings","toVariable","toVariablePreview","variablesApi","resource","listResponseSchema","putResponseSchema","toListItems","response","variables","map","toPutResult","item","variable","warnings","variablesQueryKeys","queryKeys","listVariables","listAll","putVariable","put","deleteVariable","remove","listVariablesQueryOptions","listQueryOptions","useVariablesQuery","useListQuery","usePutVariableMutation","usePutMutation","useDeleteVariableMutation","useDeleteMutation","variableQueryKey","workspaceId","key","scope","all","getVariable","params","projectId","search","URLSearchParams","project_id","toString","encodeURIComponent","signal","variableQueryOptions","queryKey","queryFn","useVariableQuery","enabled","Boolean"],"mappings":"AAAA,SACEA,yBAAyB,EACzBC,2BAA2B,EAC3BC,yBAAyB,QACpB,2BAA2B;AAClC,SAAQC,iBAAiB,QAAO,sBAAsB;AACtD,SAAgCC,YAAY,EAAEC,QAAQ,QAAO,wBAAwB;AACrF,SACEC,kBAAkB,EAGlBC,mBAAmB,QACd,iBAAiB;AACxB,SAAQC,cAAc,QAAO,wBAAwB;AACrD,SAAQC,oBAAoB,EAAEC,UAAU,EAAEC,iBAAiB,QAAO,oBAAoB;AAEtF,MAAMC,eAAeJ,eAAe;IAClCK,UAAU;IACVC,oBAAoBb;IACpBc,mBAAmBb;IACnBc,aAAa,CAACC,WAAaA,SAASC,SAAS,CAACC,GAAG,CAACR;IAClDS,aAAa,CAACH,WAAc,CAAA;YAC1BI,MAAMX,WAAWO,SAASK,QAAQ;YAClCC,UAAUd,qBAAqBQ,SAASM,QAAQ;QAClD,CAAA;AACF;AAEA,OAAO,MAAMC,qBAAqBZ,aAAaa,SAAS,CAAC;AACzD,OAAO,MAAMC,gBAAgBd,aAAae,OAAO,CAAC;AAClD,OAAO,MAAMC,cAAchB,aAAaiB,GAAG,CAAC;AAC5C,OAAO,MAAMC,iBAAiBlB,aAAamB,MAAM,CAAC;AAClD,OAAO,MAAMC,4BAA4BpB,aAAaqB,gBAAgB,CAAC;AACvE,OAAO,MAAMC,oBAAoBtB,aAAauB,YAAY,CAAC;AAC3D,OAAO,MAAMC,yBAAyBxB,aAAayB,cAAc,CAAC;AAClE,OAAO,MAAMC,4BAA4B1B,aAAa2B,iBAAiB,CAAC;AAExE,OAAO,MAAMC,mBAAmB,CAACC,aAAqBC,KAAaC,QACjE;WAAInB,mBAAmBoB,GAAG;QAAE;QAAUH;QAAaC;QAAKC;KAAM,CAAU;AAS1E,OAAO,eAAeE,YAAYC,MAKjC;IACC,MAAMH,QAAQG,OAAOH,KAAK,IAAIpC;IAC9B,MAAMwC,YAAYzC,mBAAmBqC;IACrC,MAAMK,SAASD,YAAY,CAAC,CAAC,EAAE,IAAIE,gBAAgB;QAACC,YAAYH;IAAS,GAAGI,QAAQ,IAAI,GAAG;IAC3F,MAAMlC,WAAW,MAAMd,kBACrBH,2BACA,CAAC,YAAY,EAAE8C,OAAOL,WAAW,CAAC,WAAW,EAAEW,mBAAmBN,OAAOJ,GAAG,IAAIM,QAAQ,EACxF;QAACK,QAAQP,OAAOO,MAAM;IAAA;IAExB,OAAO3C,WAAWO,SAASK,QAAQ;AACrC;AAEA,OAAO,SAASgC,qBACdb,WAAmB,EACnBC,GAAW,EACXC,QAAoBpC,mBAAmB;IAEvC,OAAOH,aAAa;QAClBmD,UAAUf,iBAAiBC,aAAaC,KAAKC;QAC7Ca,SAAS,CAAC,EAACH,MAAM,EAAC,GAAKR,YAAY;gBAACJ;gBAAaC;gBAAKC;gBAAOU;YAAM;IACrE;AACF;AAEA,OAAO,SAASI,iBAAiBhB,WAAmB,EAAEC,GAAuB;IAC3E,OAAOrC,SAAS;QAAC,GAAGiD,qBAAqBb,aAAaC,OAAO,GAAG;QAAEgB,SAASC,QAAQjB;IAAI;AACzF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets-settings.d.ts","sourceRoot":"","sources":["../../src/routes/secrets-settings.tsx"],"names":[],"mappings":";;;AAGA,wBAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { defineRoute, useActiveWorkspace } from '@shipfox/client-shell/runtime';
|
|
3
|
+
import { WorkspaceSecretsSection } from '#index.js';
|
|
4
|
+
export default defineRoute({
|
|
5
|
+
component: ()=>/*#__PURE__*/ _jsx(WorkspaceSecretsSection, {
|
|
6
|
+
workspaceId: useActiveWorkspace().id
|
|
7
|
+
})
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=secrets-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/routes/secrets-settings.tsx"],"sourcesContent":["import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';\nimport {WorkspaceSecretsSection} from '#index.js';\n\nexport default defineRoute({\n component: () => <WorkspaceSecretsSection workspaceId={useActiveWorkspace().id} />,\n});\n"],"names":["defineRoute","useActiveWorkspace","WorkspaceSecretsSection","component","workspaceId","id"],"mappings":";AAAA,SAAQA,WAAW,EAAEC,kBAAkB,QAAO,gCAAgC;AAC9E,SAAQC,uBAAuB,QAAO,YAAY;AAElD,eAAeF,YAAY;IACzBG,WAAW,kBAAM,KAACD;YAAwBE,aAAaH,qBAAqBI,EAAE;;AAChF,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variables-settings.d.ts","sourceRoot":"","sources":["../../src/routes/variables-settings.tsx"],"names":[],"mappings":";;;AAGA,wBAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { defineRoute, useActiveWorkspace } from '@shipfox/client-shell/runtime';
|
|
3
|
+
import { WorkspaceVariablesSection } from '#index.js';
|
|
4
|
+
export default defineRoute({
|
|
5
|
+
component: ()=>/*#__PURE__*/ _jsx(WorkspaceVariablesSection, {
|
|
6
|
+
workspaceId: useActiveWorkspace().id
|
|
7
|
+
})
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=variables-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/routes/variables-settings.tsx"],"sourcesContent":["import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';\nimport {WorkspaceVariablesSection} from '#index.js';\n\nexport default defineRoute({\n component: () => <WorkspaceVariablesSection workspaceId={useActiveWorkspace().id} />,\n});\n"],"names":["defineRoute","useActiveWorkspace","WorkspaceVariablesSection","component","workspaceId","id"],"mappings":";AAAA,SAAQA,WAAW,EAAEC,kBAAkB,QAAO,gCAAgC;AAC9E,SAAQC,yBAAyB,QAAO,YAAY;AAEpD,eAAeF,YAAY;IACzBG,WAAW,kBAAM,KAACD;YAA0BE,aAAaH,qBAAqBI,EAAE;;AAClF,GAAG"}
|