@cobaltcore-dev/aurora 0.18.0 → 0.19.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/dist/client/{BucketToastNotifications-D2Cq2VrV.mjs → BucketToastNotifications-BGd2wVmh.mjs} +2 -2
- package/dist/client/{BucketToastNotifications-D2Cq2VrV.mjs.map → BucketToastNotifications-BGd2wVmh.mjs.map} +1 -1
- package/dist/client/DeletePcaModal-BU6kbKsw.mjs +80 -0
- package/dist/client/DeletePcaModal-BU6kbKsw.mjs.map +1 -0
- package/dist/client/DetailsInfo-BUyuYpJj.mjs +52 -0
- package/dist/client/DetailsInfo-BUyuYpJj.mjs.map +1 -0
- package/dist/client/{FloatingIpActionModals-sJlSFIsK.mjs → FloatingIpActionModals-DAtZoYGS.mjs} +22 -22
- package/dist/client/{FloatingIpActionModals-sJlSFIsK.mjs.map → FloatingIpActionModals-DAtZoYGS.mjs.map} +1 -1
- package/dist/client/{ImageToastNotifications-CISH3c_d.mjs → ImageToastNotifications-BhjU1bfT.mjs} +7 -7
- package/dist/client/{ImageToastNotifications-CISH3c_d.mjs.map → ImageToastNotifications-BhjU1bfT.mjs.map} +1 -1
- package/dist/client/{_flavorId-Cx5tf2KQ.mjs → _flavorId-BQY7YhNx.mjs} +2 -2
- package/dist/client/{_flavorId-Cx5tf2KQ.mjs.map → _flavorId-BQY7YhNx.mjs.map} +1 -1
- package/dist/client/{_flavorId-C6RJfhh8.mjs → _flavorId-sS1sg_DZ.mjs} +3 -3
- package/dist/client/{_flavorId-C6RJfhh8.mjs.map → _flavorId-sS1sg_DZ.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-C4Sa8tMa.mjs → _floatingIpId-BHZGh8U8.mjs} +2 -2
- package/dist/client/{_floatingIpId-C4Sa8tMa.mjs.map → _floatingIpId-BHZGh8U8.mjs.map} +1 -1
- package/dist/client/{_floatingIpId-CAUBZ5WD2.mjs → _floatingIpId-CR3aD38l2.mjs} +5 -5
- package/dist/client/{_floatingIpId-CAUBZ5WD2.mjs.map → _floatingIpId-CR3aD38l2.mjs.map} +1 -1
- package/dist/client/{_imageId-DpXNAIbD.mjs → _imageId-Cf-Xdksv.mjs} +3 -3
- package/dist/client/{_imageId-DpXNAIbD.mjs.map → _imageId-Cf-Xdksv.mjs.map} +1 -1
- package/dist/client/_pcaId-B7j0sXnY.mjs +545 -0
- package/dist/client/_pcaId-B7j0sXnY.mjs.map +1 -0
- package/dist/client/{_projectId-fEA6fnFQ.mjs → _projectId-Cq9JnhRj.mjs} +3 -3
- package/dist/client/{_projectId-fEA6fnFQ.mjs.map → _projectId-Cq9JnhRj.mjs.map} +1 -1
- package/dist/client/{_projectId-w-tZz0FI.mjs → _projectId-D8FHe0gr.mjs} +2 -2
- package/dist/client/{_projectId-w-tZz0FI.mjs.map → _projectId-D8FHe0gr.mjs.map} +1 -1
- package/dist/client/{_projectId-qvINx3Dx.mjs → _projectId-Ig3QqYzt.mjs} +2 -2
- package/dist/client/{_projectId-qvINx3Dx.mjs.map → _projectId-Ig3QqYzt.mjs.map} +1 -1
- package/dist/client/{_projectId-BOaPmCuz.mjs → _projectId-b4NGeECR.mjs} +3 -3
- package/dist/client/{_projectId-BOaPmCuz.mjs.map → _projectId-b4NGeECR.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-B6_lD8ry.mjs → _securityGroupId-BVSsCus9.mjs} +2 -2
- package/dist/client/{_securityGroupId-B6_lD8ry.mjs.map → _securityGroupId-BVSsCus9.mjs.map} +1 -1
- package/dist/client/{_securityGroupId-D9FHSkNU.mjs → _securityGroupId-gwV4eB0s.mjs} +16 -16
- package/dist/client/{_securityGroupId-D9FHSkNU.mjs.map → _securityGroupId-gwV4eB0s.mjs.map} +1 -1
- package/dist/client/{_storageType-ZFnIALny.mjs → _storageType-CH2khFcZ.mjs} +2 -2
- package/dist/client/{_storageType-ZFnIALny.mjs.map → _storageType-CH2khFcZ.mjs.map} +1 -1
- package/dist/client/{_storageType-MgntkZb6.mjs → _storageType-D-1H6SX1.mjs} +856 -856
- package/dist/client/{_storageType-MgntkZb6.mjs.map → _storageType-D-1H6SX1.mjs.map} +1 -1
- package/dist/client/build-DgeVmENN.mjs.map +1 -1
- package/dist/client/{floatingips-DOGKGGkC.mjs → floatingips-DyBEotB8.mjs} +10 -10
- package/dist/client/{floatingips-DOGKGGkC.mjs.map → floatingips-DyBEotB8.mjs.map} +1 -1
- package/dist/client/hooks-iGiEkLTp.mjs +12 -0
- package/dist/client/hooks-iGiEkLTp.mjs.map +1 -0
- package/dist/client/{images-B1wqMKYw.mjs → images-BklbSacK.mjs} +2 -2
- package/dist/client/{images-B1wqMKYw.mjs.map → images-BklbSacK.mjs.map} +1 -1
- package/dist/client/{images-D5UsQi8i.mjs → images-C3voJ3B1.mjs} +259 -259
- package/dist/client/{images-D5UsQi8i.mjs.map → images-C3voJ3B1.mjs.map} +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.js +337 -344
- package/dist/client/index.js.map +1 -1
- package/dist/client/md-CyCflQee.mjs.map +1 -1
- package/dist/client/{objects-DpgXMFrG.mjs → objects-B3Z8h4RU.mjs} +2 -2
- package/dist/client/{objects-DpgXMFrG.mjs.map → objects-B3Z8h4RU.mjs.map} +1 -1
- package/dist/client/{objects-Deo1Ic1A.mjs → objects-CGOfO00N.mjs} +499 -475
- package/dist/client/objects-CGOfO00N.mjs.map +1 -0
- package/dist/client/{pca-DztTIs18.mjs → pca-72YR_Pk0.mjs} +3 -3
- package/dist/client/pca-72YR_Pk0.mjs.map +1 -0
- package/dist/client/pca-CsBx_IDO.mjs +251 -0
- package/dist/client/pca-CsBx_IDO.mjs.map +1 -0
- package/dist/client/pcaAccess-Br4kVjLQ.mjs +9 -0
- package/dist/client/pcaAccess-Br4kVjLQ.mjs.map +1 -0
- package/dist/client/{securitygroups-BRtHaTLm.mjs → securitygroups-8vRbXmBL.mjs} +3 -3
- package/dist/client/{securitygroups-BRtHaTLm.mjs.map → securitygroups-8vRbXmBL.mjs.map} +1 -1
- package/dist/client/trpcClient-BxcNKnhv.mjs +65 -0
- package/dist/client/trpcClient-BxcNKnhv.mjs.map +1 -0
- package/dist/client/trpcClient.d.ts +56 -49
- package/dist/server/index.d.ts +51 -49
- package/dist/server/index.js +53 -23
- package/package.json +4 -2
- package/dist/client/_pcaId-DY9GPV7t.mjs +0 -479
- package/dist/client/_pcaId-DY9GPV7t.mjs.map +0 -1
- package/dist/client/_pcaId-ldtkXsbp.mjs +0 -36
- package/dist/client/_pcaId-ldtkXsbp.mjs.map +0 -1
- package/dist/client/constants-COPE2ktv.mjs +0 -153
- package/dist/client/constants-COPE2ktv.mjs.map +0 -1
- package/dist/client/hooks-DvdvErNv.mjs +0 -2
- package/dist/client/objects-Deo1Ic1A.mjs.map +0 -1
- package/dist/client/pca-B7WldCGw.mjs +0 -202
- package/dist/client/pca-B7WldCGw.mjs.map +0 -1
- package/dist/client/pca-DztTIs18.mjs.map +0 -1
- package/dist/client/pcaAccess-BYUY700H.mjs +0 -9
- package/dist/client/pcaAccess-BYUY700H.mjs.map +0 -1
- package/dist/client/trpcClient-Dy_MP_Pv.mjs +0 -57
- package/dist/client/trpcClient-Dy_MP_Pv.mjs.map +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { createTRPCReact as e } from "@trpc/react-query";
|
|
2
|
+
import { createTRPCClient as t, httpBatchLink as n, httpBatchStreamLink as r, httpLink as i, httpSubscriptionLink as a, isNonJsonSerializable as o, splitLink as s } from "@trpc/client";
|
|
3
|
+
//#region src/client/trpcClient.ts
|
|
4
|
+
var c = {
|
|
5
|
+
token: null,
|
|
6
|
+
pending: null,
|
|
7
|
+
async getHeaders() {
|
|
8
|
+
if (this.token) return { "x-csrf-token": this.token };
|
|
9
|
+
this.pending ||= fetch("/csrf-token").then((e) => e.json()).then(({ csrfToken: e }) => (this.token = e, this.pending = null, e)).catch((e) => (this.pending = null, console.error("Failed to fetch CSRF token:", e), null));
|
|
10
|
+
let e = await this.pending;
|
|
11
|
+
return e ? { "x-csrf-token": e } : {};
|
|
12
|
+
},
|
|
13
|
+
invalidate() {
|
|
14
|
+
this.token = null;
|
|
15
|
+
}
|
|
16
|
+
}, l = new Set(["storage.swift.downloadObject", "storage.ceph.objects.downloadObject"]), u = { bffEndpoint: "/polaris-bff" };
|
|
17
|
+
function d(e) {
|
|
18
|
+
u.bffEndpoint = e;
|
|
19
|
+
}
|
|
20
|
+
var f = () => [s({
|
|
21
|
+
condition: (e) => e.type === "subscription",
|
|
22
|
+
true: a({
|
|
23
|
+
url: u.bffEndpoint,
|
|
24
|
+
eventSourceOptions: async () => ({ headers: await c.getHeaders() })
|
|
25
|
+
}),
|
|
26
|
+
false: s({
|
|
27
|
+
condition: (e) => o(e.input),
|
|
28
|
+
true: i({
|
|
29
|
+
url: u.bffEndpoint,
|
|
30
|
+
async headers({ op: e }) {
|
|
31
|
+
let t = await c.getHeaders(), n = e.context?.headers ?? {};
|
|
32
|
+
return {
|
|
33
|
+
...t,
|
|
34
|
+
...n
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}),
|
|
38
|
+
false: s({
|
|
39
|
+
condition: (e) => l.has(e.path),
|
|
40
|
+
true: r({
|
|
41
|
+
url: u.bffEndpoint,
|
|
42
|
+
async headers() {
|
|
43
|
+
return c.getHeaders();
|
|
44
|
+
}
|
|
45
|
+
}),
|
|
46
|
+
false: n({
|
|
47
|
+
url: u.bffEndpoint,
|
|
48
|
+
async headers() {
|
|
49
|
+
return c.getHeaders();
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
})], p = e(), m = {
|
|
55
|
+
react: null,
|
|
56
|
+
vanilla: null
|
|
57
|
+
}, h = new Proxy({}, { get(e, t) {
|
|
58
|
+
return m.react ||= p.createClient({ links: f() }), m.react[t];
|
|
59
|
+
} }), g = new Proxy({}, { get(e, n) {
|
|
60
|
+
return m.vanilla ||= t({ links: f() }), m.vanilla[n];
|
|
61
|
+
} });
|
|
62
|
+
//#endregion
|
|
63
|
+
export { h as i, g as n, p as r, d as t };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=trpcClient-BxcNKnhv.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trpcClient-BxcNKnhv.mjs","names":["createTRPCReact","createTRPCClient","httpBatchLink","httpBatchStreamLink","httpLink","splitLink","isNonJsonSerializable","httpSubscriptionLink","csrfCache","token","pending","getHeaders","fetch","then","res","json","csrfToken","catch","error","console","invalidate","invalidateCsrfToken","STREAMING_PROCEDURES","Set","config","bffEndpoint","setBffEndpoint","endpoint","getLinks","condition","op","type","true","url","eventSourceOptions","headers","false","input","csrf","extra","context","has","path","trpcReact","clients","react","vanilla","trpcReactClient","Proxy","get","_target","prop","createClient","links","trpcClient"],"sources":["../../src/client/trpcClient.ts"],"sourcesContent":["import { createTRPCReact } from \"@trpc/react-query\"\nimport type { CreateTRPCReact } from \"@trpc/react-query\"\nimport { createTRPCClient, type TRPCClient } from \"@trpc/client\"\nimport {\n httpBatchLink,\n httpBatchStreamLink,\n httpLink,\n splitLink,\n isNonJsonSerializable,\n httpSubscriptionLink,\n} from \"@trpc/client\"\nimport type { AuroraRouter } from \"../server/routers\"\n\n/** Type alias for the React tRPC client */\nexport type TrpcReact = ReturnType<typeof createTRPCReact<AuroraRouter>>\n\n/** Type alias for the vanilla tRPC client */\nexport type TrpcClient = ReturnType<typeof createTRPCClient<AuroraRouter>>\n\n/** Generic type for creating a typed React tRPC client with a custom router */\nexport type CreateTypedTrpcReact<TRouter extends AuroraRouter> = CreateTRPCReact<TRouter, unknown>\n\n/** Generic type for creating a typed vanilla tRPC client with a custom router */\nexport type CreateTypedTrpcClient<TRouter extends AuroraRouter> = TRPCClient<TRouter>\n\n// CSRF token cache with request deduplication\nconst csrfCache = {\n token: null as string | null,\n pending: null as Promise<string | null> | null,\n\n async getHeaders() {\n if (this.token) {\n return { \"x-csrf-token\": this.token }\n }\n\n // Dedupe concurrent fetches - only one request in flight at a time\n if (!this.pending) {\n this.pending = fetch(\"/csrf-token\")\n .then((res) => res.json())\n .then(({ csrfToken }) => {\n this.token = csrfToken\n this.pending = null\n return csrfToken as string\n })\n .catch((error) => {\n this.pending = null\n console.error(\"Failed to fetch CSRF token:\", error)\n return null\n })\n }\n\n const token = await this.pending\n return token ? { \"x-csrf-token\": token } : {}\n },\n\n invalidate() {\n this.token = null\n },\n}\n\n/**\n * Invalidate the cached CSRF token.\n * Call this when receiving a 403 response to trigger a fresh token fetch on the next request.\n */\nexport const invalidateCsrfToken = () => csrfCache.invalidate()\n\n// Procedures that return async iterables (chunked streaming responses).\n// These are routed through httpBatchStreamLink instead of httpBatchLink.\n// Add any new streaming procedure paths here.\nconst STREAMING_PROCEDURES = new Set<string>([\"storage.swift.downloadObject\", \"storage.ceph.objects.downloadObject\"])\n\n// BFF endpoint - set once by App before any tRPC calls are made\nconst config = {\n bffEndpoint: \"/polaris-bff\",\n}\n\nexport function setBffEndpoint(endpoint: string) {\n config.bffEndpoint = endpoint\n}\n\nconst getLinks = () => [\n splitLink({\n // First check: is it a subscription?\n condition: (op) => op.type === \"subscription\",\n // Use HTTP subscription link for subscriptions (long-polling)\n true: httpSubscriptionLink({\n url: config.bffEndpoint,\n // Callback to populate headers\n eventSourceOptions: async () => {\n return { headers: await csrfCache.getHeaders() }\n },\n }),\n // For non-subscriptions, check for non-JSON data or streaming procedures\n false: splitLink({\n // Non-JSON serializable input (FormData, Blob, ArrayBuffer, etc.) → plain httpLink.\n condition: (op) => isNonJsonSerializable(op.input),\n true: httpLink({\n url: config.bffEndpoint,\n async headers({ op }) {\n const csrf = await csrfCache.getHeaders()\n // Per-request headers can be injected via tRPC operation context.\n // op.context is set by the caller and forwarded through the link chain.\n const extra = (op.context as { headers?: Record<string, string> } | undefined)?.headers ?? {}\n return { ...csrf, ...extra }\n },\n }),\n // For JSON procedures, decide between streaming and regular batching\n false: splitLink({\n // Procedures returning async iterables must use httpBatchStreamLink.\n // httpBatchLink buffers the full response before resolving, which\n // breaks streaming. httpBatchStreamLink preserves batching while\n // supporting chunked/streamed responses.\n // Note: httpBatchStreamLink is intentionally NOT used globally because\n // it is incompatible with the @fastify/csrf-protection cookie rotation\n // used in this app — CSRF tokens can expire mid-stream on long-lived\n // connections. Scope it only to procedures that actually need streaming.\n condition: (op) => STREAMING_PROCEDURES.has(op.path),\n true: httpBatchStreamLink({\n url: config.bffEndpoint,\n async headers() {\n return csrfCache.getHeaders()\n },\n }),\n // Regular JSON mutations/queries — standard batching\n false: httpBatchLink({\n url: config.bffEndpoint,\n async headers() {\n return csrfCache.getHeaders()\n },\n }),\n }),\n }),\n }),\n]\n\n// React Query client (for hooks like useQuery/useMutation/useSubscription)\nexport const trpcReact: TrpcReact = createTRPCReact<AuroraRouter>()\n\n// Lazy-initialized clients - created on first access after setBffEndpoint() has been called by App\nconst clients = {\n react: null as ReturnType<typeof trpcReact.createClient> | null,\n vanilla: null as TrpcClient | null,\n}\n\nexport const trpcReactClient = new Proxy({} as ReturnType<typeof trpcReact.createClient>, {\n get(_target, prop) {\n if (!clients.react) {\n clients.react = trpcReact.createClient({ links: getLinks() })\n }\n return (clients.react as Record<string | symbol, unknown>)[prop]\n },\n})\n\nexport const trpcClient: TrpcClient = new Proxy({} as TrpcClient, {\n get(_target, prop) {\n if (!clients.vanilla) {\n clients.vanilla = createTRPCClient<AuroraRouter>({ links: getLinks() })\n }\n return (clients.vanilla as Record<string | symbol, unknown>)[prop]\n },\n})\n"],"mappings":";;;AA0BA,IAAMQ,IAAY;CAChBC,OAAO;CACPC,SAAS;CAET,MAAMC,aAAAA;EACJ,IAAI,KAAKF,OACP,OAAO,EAAE,gBAAgB,KAAKA,MAAM;EAItC,AACE,KAAKC,YAAUE,MAAM,aAAA,EAClBC,MAAMC,MAAQA,EAAIC,KAAI,CAAA,EACtBF,MAAM,EAAEG,oBACP,KAAKP,QAAQO,GACb,KAAKN,UAAU,MACRM,EACT,EACCC,OAAOC,OACN,KAAKR,UAAU,MACfS,QAAQD,MAAM,+BAA+BA,CAAAA,GACtC,KACT;EAGJ,IAAMT,IAAQ,MAAM,KAAKC;EACzB,OAAOD,IAAQ,EAAE,gBAAgBA,EAAM,IAAI,CAAC;CAC9C;CAEAW,aAAAA;EACE,KAAKX,QAAQ;CACf;AACF,GAWMa,IAAuB,IAAIC,IAAY,CAAC,gCAAgC,qCAAA,CAAsC,GAG9GC,IAAS,EACbC,aAAa,eACf;AAEA,SAAgBC,EAAeC,GAAgB;CAC7CH,EAAOC,cAAcE;AACvB;AAEA,IAAMC,UAAiB,CACrBvB,EAAU;CAERwB,YAAYC,MAAOA,EAAGC,SAAS;CAE/BC,MAAMzB,EAAqB;EACzB0B,KAAKT,EAAOC;EAEZS,oBAAoB,aACX,EAAEC,SAAS,MAAM3B,EAAUG,WAAU,EAAG;CAEnD,CAAA;CAEAyB,OAAO/B,EAAU;EAEfwB,YAAYC,MAAOxB,EAAsBwB,EAAGO,KAAK;EACjDL,MAAM5B,EAAS;GACb6B,KAAKT,EAAOC;GACZ,MAAMU,QAAQ,EAAEL,SAAI;IAClB,IAAMQ,IAAO,MAAM9B,EAAUG,WAAU,GAGjC4B,IAAQ,EAAIC,SAA8DL,WAAW,CAAC;IAC5F,OAAO;KAAE,GAAGG;KAAM,GAAGC;IAAM;GAC7B;EACF,CAAA;EAEAH,OAAO/B,EAAU;GASfwB,YAAYC,MAAOR,EAAqBmB,IAAIX,EAAGY,IAAI;GACnDV,MAAM7B,EAAoB;IACxB8B,KAAKT,EAAOC;IACZ,MAAMU,UAAAA;KACJ,OAAO3B,EAAUG,WAAU;IAC7B;GACF,CAAA;GAEAyB,OAAOlC,EAAc;IACnB+B,KAAKT,EAAOC;IACZ,MAAMU,UAAAA;KACJ,OAAO3B,EAAUG,WAAU;IAC7B;GACF,CAAA;EACF,CAAA;CACF,CAAA;AACF,CAAA,CAAA,GAIWgC,IAAuB3C,EAAAA,GAG9B4C,IAAU;CACdC,OAAO;CACPC,SAAS;AACX,GAEaC,IAAkB,IAAIC,MAAM,CAAC,GAAgD,EACxFC,IAAIC,GAASC,GAAI;CAIf,OAHA,AACEP,EAAQC,UAAQF,EAAUS,aAAa,EAAEC,OAAOzB,EAAAA,EAAW,CAAA,GAEtD,EAASiB,MAA2CM;AAC7D,EACF,CAAA,GAEaG,IAAyB,IAAIN,MAAM,CAAC,GAAiB,EAChEC,IAAIC,GAASC,GAAI;CAIf,OAHA,AACEP,EAAQE,YAAU7C,EAA+B,EAAEoD,OAAOzB,EAAAA,EAAW,CAAA,GAEhE,EAASkB,QAA6CK;AAC/D,EACF,CAAA"}
|
|
@@ -9,6 +9,11 @@ export type TrpcClient = ReturnType<typeof createTRPCClient<AuroraRouter>>;
|
|
|
9
9
|
export type CreateTypedTrpcReact<TRouter extends AuroraRouter> = CreateTRPCReact<TRouter, unknown>;
|
|
10
10
|
/** Generic type for creating a typed vanilla tRPC client with a custom router */
|
|
11
11
|
export type CreateTypedTrpcClient<TRouter extends AuroraRouter> = TRPCClient<TRouter>;
|
|
12
|
+
/**
|
|
13
|
+
* Invalidate the cached CSRF token.
|
|
14
|
+
* Call this when receiving a 403 response to trigger a fresh token fetch on the next request.
|
|
15
|
+
*/
|
|
16
|
+
export declare const invalidateCsrfToken: () => void;
|
|
12
17
|
export declare function setBffEndpoint(endpoint: string): void;
|
|
13
18
|
export declare const trpcReact: TrpcReact;
|
|
14
19
|
export declare const trpcReactClient: TRPCClient<import('@trpc/server').TRPCBuiltRouter<{
|
|
@@ -50,22 +55,25 @@ export declare const trpcReactClient: TRPCClient<import('@trpc/server').TRPCBuil
|
|
|
50
55
|
} | undefined;
|
|
51
56
|
configuration?: {
|
|
52
57
|
subject: {
|
|
53
|
-
|
|
58
|
+
named_attributes: {
|
|
59
|
+
cn: string;
|
|
60
|
+
c?: string[] | undefined;
|
|
61
|
+
l?: string[] | undefined;
|
|
62
|
+
o?: string[] | undefined;
|
|
63
|
+
ou?: string[] | undefined;
|
|
64
|
+
postal_code?: string[] | undefined;
|
|
65
|
+
st?: string[] | undefined;
|
|
66
|
+
serial_number?: string | undefined;
|
|
67
|
+
street?: string[] | undefined;
|
|
68
|
+
};
|
|
54
69
|
additional_attribute?: {
|
|
55
70
|
key: number[];
|
|
56
71
|
value: string;
|
|
57
72
|
}[] | undefined;
|
|
58
|
-
country?: string[] | undefined;
|
|
59
|
-
locality?: string[] | undefined;
|
|
60
|
-
organization?: string[] | undefined;
|
|
61
|
-
organizational_unit?: string[] | undefined;
|
|
62
|
-
postal_code?: string[] | undefined;
|
|
63
|
-
province?: string[] | undefined;
|
|
64
|
-
serial_number?: string | undefined;
|
|
65
|
-
street_address?: string[] | undefined;
|
|
66
73
|
};
|
|
67
74
|
} | undefined;
|
|
68
75
|
csr?: string | undefined;
|
|
76
|
+
display_subject?: string | undefined;
|
|
69
77
|
imported_certificate_chain?: string | undefined;
|
|
70
78
|
}[];
|
|
71
79
|
links: {
|
|
@@ -81,19 +89,9 @@ export declare const trpcReactClient: TRPCClient<import('@trpc/server').TRPCBuil
|
|
|
81
89
|
project_id: string;
|
|
82
90
|
configuration: {
|
|
83
91
|
subject: {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
value: string;
|
|
88
|
-
}[] | undefined;
|
|
89
|
-
country?: string[] | undefined;
|
|
90
|
-
locality?: string[] | undefined;
|
|
91
|
-
organization?: string[] | undefined;
|
|
92
|
-
organizational_unit?: string[] | undefined;
|
|
93
|
-
postal_code?: string[] | undefined;
|
|
94
|
-
province?: string[] | undefined;
|
|
95
|
-
serial_number?: string | undefined;
|
|
96
|
-
street_address?: string[] | undefined;
|
|
92
|
+
named_attributes: {
|
|
93
|
+
cn: string;
|
|
94
|
+
};
|
|
97
95
|
};
|
|
98
96
|
};
|
|
99
97
|
};
|
|
@@ -116,22 +114,25 @@ export declare const trpcReactClient: TRPCClient<import('@trpc/server').TRPCBuil
|
|
|
116
114
|
} | undefined;
|
|
117
115
|
configuration?: {
|
|
118
116
|
subject: {
|
|
119
|
-
|
|
117
|
+
named_attributes: {
|
|
118
|
+
cn: string;
|
|
119
|
+
c?: string[] | undefined;
|
|
120
|
+
l?: string[] | undefined;
|
|
121
|
+
o?: string[] | undefined;
|
|
122
|
+
ou?: string[] | undefined;
|
|
123
|
+
postal_code?: string[] | undefined;
|
|
124
|
+
st?: string[] | undefined;
|
|
125
|
+
serial_number?: string | undefined;
|
|
126
|
+
street?: string[] | undefined;
|
|
127
|
+
};
|
|
120
128
|
additional_attribute?: {
|
|
121
129
|
key: number[];
|
|
122
130
|
value: string;
|
|
123
131
|
}[] | undefined;
|
|
124
|
-
country?: string[] | undefined;
|
|
125
|
-
locality?: string[] | undefined;
|
|
126
|
-
organization?: string[] | undefined;
|
|
127
|
-
organizational_unit?: string[] | undefined;
|
|
128
|
-
postal_code?: string[] | undefined;
|
|
129
|
-
province?: string[] | undefined;
|
|
130
|
-
serial_number?: string | undefined;
|
|
131
|
-
street_address?: string[] | undefined;
|
|
132
132
|
};
|
|
133
133
|
} | undefined;
|
|
134
134
|
csr?: string | undefined;
|
|
135
|
+
display_subject?: string | undefined;
|
|
135
136
|
imported_certificate_chain?: string | undefined;
|
|
136
137
|
};
|
|
137
138
|
meta: object;
|
|
@@ -160,22 +161,25 @@ export declare const trpcReactClient: TRPCClient<import('@trpc/server').TRPCBuil
|
|
|
160
161
|
} | undefined;
|
|
161
162
|
configuration?: {
|
|
162
163
|
subject: {
|
|
163
|
-
|
|
164
|
+
named_attributes: {
|
|
165
|
+
cn: string;
|
|
166
|
+
c?: string[] | undefined;
|
|
167
|
+
l?: string[] | undefined;
|
|
168
|
+
o?: string[] | undefined;
|
|
169
|
+
ou?: string[] | undefined;
|
|
170
|
+
postal_code?: string[] | undefined;
|
|
171
|
+
st?: string[] | undefined;
|
|
172
|
+
serial_number?: string | undefined;
|
|
173
|
+
street?: string[] | undefined;
|
|
174
|
+
};
|
|
164
175
|
additional_attribute?: {
|
|
165
176
|
key: number[];
|
|
166
177
|
value: string;
|
|
167
178
|
}[] | undefined;
|
|
168
|
-
country?: string[] | undefined;
|
|
169
|
-
locality?: string[] | undefined;
|
|
170
|
-
organization?: string[] | undefined;
|
|
171
|
-
organizational_unit?: string[] | undefined;
|
|
172
|
-
postal_code?: string[] | undefined;
|
|
173
|
-
province?: string[] | undefined;
|
|
174
|
-
serial_number?: string | undefined;
|
|
175
|
-
street_address?: string[] | undefined;
|
|
176
179
|
};
|
|
177
180
|
} | undefined;
|
|
178
181
|
csr?: string | undefined;
|
|
182
|
+
display_subject?: string | undefined;
|
|
179
183
|
imported_certificate_chain?: string | undefined;
|
|
180
184
|
};
|
|
181
185
|
meta: object;
|
|
@@ -213,22 +217,25 @@ export declare const trpcReactClient: TRPCClient<import('@trpc/server').TRPCBuil
|
|
|
213
217
|
} | undefined;
|
|
214
218
|
configuration?: {
|
|
215
219
|
subject: {
|
|
216
|
-
|
|
220
|
+
named_attributes: {
|
|
221
|
+
cn: string;
|
|
222
|
+
c?: string[] | undefined;
|
|
223
|
+
l?: string[] | undefined;
|
|
224
|
+
o?: string[] | undefined;
|
|
225
|
+
ou?: string[] | undefined;
|
|
226
|
+
postal_code?: string[] | undefined;
|
|
227
|
+
st?: string[] | undefined;
|
|
228
|
+
serial_number?: string | undefined;
|
|
229
|
+
street?: string[] | undefined;
|
|
230
|
+
};
|
|
217
231
|
additional_attribute?: {
|
|
218
232
|
key: number[];
|
|
219
233
|
value: string;
|
|
220
234
|
}[] | undefined;
|
|
221
|
-
country?: string[] | undefined;
|
|
222
|
-
locality?: string[] | undefined;
|
|
223
|
-
organization?: string[] | undefined;
|
|
224
|
-
organizational_unit?: string[] | undefined;
|
|
225
|
-
postal_code?: string[] | undefined;
|
|
226
|
-
province?: string[] | undefined;
|
|
227
|
-
serial_number?: string | undefined;
|
|
228
|
-
street_address?: string[] | undefined;
|
|
229
235
|
};
|
|
230
236
|
} | undefined;
|
|
231
237
|
csr?: string | undefined;
|
|
238
|
+
display_subject?: string | undefined;
|
|
232
239
|
imported_certificate_chain?: string | undefined;
|
|
233
240
|
};
|
|
234
241
|
meta: object;
|
package/dist/server/index.d.ts
CHANGED
|
@@ -708,22 +708,25 @@ declare const buildBaseRouter: (policyDir: string) => _trpc_server.TRPCBuiltRout
|
|
|
708
708
|
} | undefined;
|
|
709
709
|
configuration?: {
|
|
710
710
|
subject: {
|
|
711
|
-
|
|
711
|
+
named_attributes: {
|
|
712
|
+
cn: string;
|
|
713
|
+
c?: string[] | undefined;
|
|
714
|
+
l?: string[] | undefined;
|
|
715
|
+
o?: string[] | undefined;
|
|
716
|
+
ou?: string[] | undefined;
|
|
717
|
+
postal_code?: string[] | undefined;
|
|
718
|
+
st?: string[] | undefined;
|
|
719
|
+
serial_number?: string | undefined;
|
|
720
|
+
street?: string[] | undefined;
|
|
721
|
+
};
|
|
712
722
|
additional_attribute?: {
|
|
713
723
|
key: number[];
|
|
714
724
|
value: string;
|
|
715
725
|
}[] | undefined;
|
|
716
|
-
country?: string[] | undefined;
|
|
717
|
-
locality?: string[] | undefined;
|
|
718
|
-
organization?: string[] | undefined;
|
|
719
|
-
organizational_unit?: string[] | undefined;
|
|
720
|
-
postal_code?: string[] | undefined;
|
|
721
|
-
province?: string[] | undefined;
|
|
722
|
-
serial_number?: string | undefined;
|
|
723
|
-
street_address?: string[] | undefined;
|
|
724
726
|
};
|
|
725
727
|
} | undefined;
|
|
726
728
|
csr?: string | undefined;
|
|
729
|
+
display_subject?: string | undefined;
|
|
727
730
|
imported_certificate_chain?: string | undefined;
|
|
728
731
|
}[];
|
|
729
732
|
links: {
|
|
@@ -739,19 +742,9 @@ declare const buildBaseRouter: (policyDir: string) => _trpc_server.TRPCBuiltRout
|
|
|
739
742
|
project_id: string;
|
|
740
743
|
configuration: {
|
|
741
744
|
subject: {
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
value: string;
|
|
746
|
-
}[] | undefined;
|
|
747
|
-
country?: string[] | undefined;
|
|
748
|
-
locality?: string[] | undefined;
|
|
749
|
-
organization?: string[] | undefined;
|
|
750
|
-
organizational_unit?: string[] | undefined;
|
|
751
|
-
postal_code?: string[] | undefined;
|
|
752
|
-
province?: string[] | undefined;
|
|
753
|
-
serial_number?: string | undefined;
|
|
754
|
-
street_address?: string[] | undefined;
|
|
745
|
+
named_attributes: {
|
|
746
|
+
cn: string;
|
|
747
|
+
};
|
|
755
748
|
};
|
|
756
749
|
};
|
|
757
750
|
};
|
|
@@ -774,22 +767,25 @@ declare const buildBaseRouter: (policyDir: string) => _trpc_server.TRPCBuiltRout
|
|
|
774
767
|
} | undefined;
|
|
775
768
|
configuration?: {
|
|
776
769
|
subject: {
|
|
777
|
-
|
|
770
|
+
named_attributes: {
|
|
771
|
+
cn: string;
|
|
772
|
+
c?: string[] | undefined;
|
|
773
|
+
l?: string[] | undefined;
|
|
774
|
+
o?: string[] | undefined;
|
|
775
|
+
ou?: string[] | undefined;
|
|
776
|
+
postal_code?: string[] | undefined;
|
|
777
|
+
st?: string[] | undefined;
|
|
778
|
+
serial_number?: string | undefined;
|
|
779
|
+
street?: string[] | undefined;
|
|
780
|
+
};
|
|
778
781
|
additional_attribute?: {
|
|
779
782
|
key: number[];
|
|
780
783
|
value: string;
|
|
781
784
|
}[] | undefined;
|
|
782
|
-
country?: string[] | undefined;
|
|
783
|
-
locality?: string[] | undefined;
|
|
784
|
-
organization?: string[] | undefined;
|
|
785
|
-
organizational_unit?: string[] | undefined;
|
|
786
|
-
postal_code?: string[] | undefined;
|
|
787
|
-
province?: string[] | undefined;
|
|
788
|
-
serial_number?: string | undefined;
|
|
789
|
-
street_address?: string[] | undefined;
|
|
790
785
|
};
|
|
791
786
|
} | undefined;
|
|
792
787
|
csr?: string | undefined;
|
|
788
|
+
display_subject?: string | undefined;
|
|
793
789
|
imported_certificate_chain?: string | undefined;
|
|
794
790
|
};
|
|
795
791
|
meta: object;
|
|
@@ -818,22 +814,25 @@ declare const buildBaseRouter: (policyDir: string) => _trpc_server.TRPCBuiltRout
|
|
|
818
814
|
} | undefined;
|
|
819
815
|
configuration?: {
|
|
820
816
|
subject: {
|
|
821
|
-
|
|
817
|
+
named_attributes: {
|
|
818
|
+
cn: string;
|
|
819
|
+
c?: string[] | undefined;
|
|
820
|
+
l?: string[] | undefined;
|
|
821
|
+
o?: string[] | undefined;
|
|
822
|
+
ou?: string[] | undefined;
|
|
823
|
+
postal_code?: string[] | undefined;
|
|
824
|
+
st?: string[] | undefined;
|
|
825
|
+
serial_number?: string | undefined;
|
|
826
|
+
street?: string[] | undefined;
|
|
827
|
+
};
|
|
822
828
|
additional_attribute?: {
|
|
823
829
|
key: number[];
|
|
824
830
|
value: string;
|
|
825
831
|
}[] | undefined;
|
|
826
|
-
country?: string[] | undefined;
|
|
827
|
-
locality?: string[] | undefined;
|
|
828
|
-
organization?: string[] | undefined;
|
|
829
|
-
organizational_unit?: string[] | undefined;
|
|
830
|
-
postal_code?: string[] | undefined;
|
|
831
|
-
province?: string[] | undefined;
|
|
832
|
-
serial_number?: string | undefined;
|
|
833
|
-
street_address?: string[] | undefined;
|
|
834
832
|
};
|
|
835
833
|
} | undefined;
|
|
836
834
|
csr?: string | undefined;
|
|
835
|
+
display_subject?: string | undefined;
|
|
837
836
|
imported_certificate_chain?: string | undefined;
|
|
838
837
|
};
|
|
839
838
|
meta: object;
|
|
@@ -871,22 +870,25 @@ declare const buildBaseRouter: (policyDir: string) => _trpc_server.TRPCBuiltRout
|
|
|
871
870
|
} | undefined;
|
|
872
871
|
configuration?: {
|
|
873
872
|
subject: {
|
|
874
|
-
|
|
873
|
+
named_attributes: {
|
|
874
|
+
cn: string;
|
|
875
|
+
c?: string[] | undefined;
|
|
876
|
+
l?: string[] | undefined;
|
|
877
|
+
o?: string[] | undefined;
|
|
878
|
+
ou?: string[] | undefined;
|
|
879
|
+
postal_code?: string[] | undefined;
|
|
880
|
+
st?: string[] | undefined;
|
|
881
|
+
serial_number?: string | undefined;
|
|
882
|
+
street?: string[] | undefined;
|
|
883
|
+
};
|
|
875
884
|
additional_attribute?: {
|
|
876
885
|
key: number[];
|
|
877
886
|
value: string;
|
|
878
887
|
}[] | undefined;
|
|
879
|
-
country?: string[] | undefined;
|
|
880
|
-
locality?: string[] | undefined;
|
|
881
|
-
organization?: string[] | undefined;
|
|
882
|
-
organizational_unit?: string[] | undefined;
|
|
883
|
-
postal_code?: string[] | undefined;
|
|
884
|
-
province?: string[] | undefined;
|
|
885
|
-
serial_number?: string | undefined;
|
|
886
|
-
street_address?: string[] | undefined;
|
|
887
888
|
};
|
|
888
889
|
} | undefined;
|
|
889
890
|
csr?: string | undefined;
|
|
891
|
+
display_subject?: string | undefined;
|
|
890
892
|
imported_certificate_chain?: string | undefined;
|
|
891
893
|
};
|
|
892
894
|
meta: object;
|
package/dist/server/index.js
CHANGED
|
@@ -34673,10 +34673,20 @@ var objectRouter = {
|
|
|
34673
34673
|
throw mappedError;
|
|
34674
34674
|
}
|
|
34675
34675
|
}, "emitMappedError");
|
|
34676
|
-
const response = await s3.send(
|
|
34677
|
-
|
|
34678
|
-
|
|
34679
|
-
|
|
34676
|
+
const response = await s3.send(
|
|
34677
|
+
new import_client_s33.GetObjectCommand({
|
|
34678
|
+
Bucket: containerName,
|
|
34679
|
+
Key: objectKey
|
|
34680
|
+
}),
|
|
34681
|
+
// AWS SDK v3's per-call cancellation option — the equivalent of passing
|
|
34682
|
+
// `{ signal }` to a raw fetch() (see 0010_abort_signal_propagation.md).
|
|
34683
|
+
// ctx.req.signal is aborted automatically when the client disconnects
|
|
34684
|
+
// (tab closed, navigated away) or explicitly via the cancel button,
|
|
34685
|
+
// which calls AbortController.abort() on the frontend.
|
|
34686
|
+
{
|
|
34687
|
+
abortSignal: ctx.req.signal
|
|
34688
|
+
}
|
|
34689
|
+
).catch(emitMappedError);
|
|
34680
34690
|
const body = response.Body;
|
|
34681
34691
|
if (!body) {
|
|
34682
34692
|
emitMappedError(new import_server13.TRPCError({
|
|
@@ -34695,8 +34705,13 @@ var objectRouter = {
|
|
|
34695
34705
|
});
|
|
34696
34706
|
let isFirst = true;
|
|
34697
34707
|
let downloaded = 0;
|
|
34708
|
+
let aborted = false;
|
|
34698
34709
|
try {
|
|
34699
34710
|
for await (const value of body) {
|
|
34711
|
+
if (ctx.req.signal?.aborted) {
|
|
34712
|
+
aborted = true;
|
|
34713
|
+
break;
|
|
34714
|
+
}
|
|
34700
34715
|
downloaded += value.byteLength;
|
|
34701
34716
|
const progress = downloadProgressMap2.get(scopedDownloadId);
|
|
34702
34717
|
progress.downloaded = downloaded;
|
|
@@ -34716,7 +34731,9 @@ var objectRouter = {
|
|
|
34716
34731
|
};
|
|
34717
34732
|
isFirst = false;
|
|
34718
34733
|
}
|
|
34719
|
-
|
|
34734
|
+
if (!aborted) {
|
|
34735
|
+
downloadProgressEmitter2.emit(`progress:${scopedDownloadId}:complete`);
|
|
34736
|
+
}
|
|
34720
34737
|
} catch (error) {
|
|
34721
34738
|
emitMappedError(error);
|
|
34722
34739
|
} finally {
|
|
@@ -37559,24 +37576,31 @@ var CertificateAuthorityAdditionalAttributeSchema = import_zod25.z.object({
|
|
|
37559
37576
|
key: import_zod25.z.array(import_zod25.z.number().int()),
|
|
37560
37577
|
value: import_zod25.z.string()
|
|
37561
37578
|
});
|
|
37579
|
+
var stringOrStringArray = import_zod25.z.union([
|
|
37580
|
+
import_zod25.z.array(import_zod25.z.string()),
|
|
37581
|
+
import_zod25.z.string().transform((s) => [
|
|
37582
|
+
s
|
|
37583
|
+
])
|
|
37584
|
+
]);
|
|
37562
37585
|
var CertificateAuthoritySubjectSchema = import_zod25.z.object({
|
|
37563
37586
|
additional_attribute: import_zod25.z.array(CertificateAuthorityAdditionalAttributeSchema).optional(),
|
|
37564
|
-
|
|
37565
|
-
|
|
37566
|
-
|
|
37567
|
-
|
|
37568
|
-
|
|
37569
|
-
|
|
37570
|
-
|
|
37571
|
-
|
|
37572
|
-
|
|
37573
|
-
|
|
37574
|
-
|
|
37575
|
-
|
|
37576
|
-
|
|
37577
|
-
|
|
37578
|
-
|
|
37579
|
-
|
|
37587
|
+
named_attributes: import_zod25.z.object({
|
|
37588
|
+
cn: import_zod25.z.string(),
|
|
37589
|
+
/** Country codes (ISO 3166-1 alpha-2). */
|
|
37590
|
+
c: stringOrStringArray.optional(),
|
|
37591
|
+
/** Locality/city names. */
|
|
37592
|
+
l: stringOrStringArray.optional(),
|
|
37593
|
+
/** Organization names. */
|
|
37594
|
+
o: stringOrStringArray.optional(),
|
|
37595
|
+
/** Organizational unit names. */
|
|
37596
|
+
ou: stringOrStringArray.optional(),
|
|
37597
|
+
/** Postal/ZIP codes. */
|
|
37598
|
+
postal_code: stringOrStringArray.optional(),
|
|
37599
|
+
/** State or province names. */
|
|
37600
|
+
st: stringOrStringArray.optional(),
|
|
37601
|
+
serial_number: import_zod25.z.string().optional(),
|
|
37602
|
+
street: stringOrStringArray.optional()
|
|
37603
|
+
})
|
|
37580
37604
|
});
|
|
37581
37605
|
var CertificateAuthorityStateSchema = import_zod25.z.enum([
|
|
37582
37606
|
"CREATING",
|
|
@@ -37594,6 +37618,8 @@ var CertificateAuthoritySchema = import_zod25.z.object({
|
|
|
37594
37618
|
subject: CertificateAuthoritySubjectSchema
|
|
37595
37619
|
}).optional(),
|
|
37596
37620
|
csr: import_zod25.z.string().optional(),
|
|
37621
|
+
/** Human-readable subject string, e.g. "CN=demo-ca.test.sci". */
|
|
37622
|
+
display_subject: import_zod25.z.string().optional(),
|
|
37597
37623
|
id: import_zod25.z.string(),
|
|
37598
37624
|
/**
|
|
37599
37625
|
* Required on import certificate operation.
|
|
@@ -37622,7 +37648,11 @@ var CertificateAuthoritiesListInputSchema = projectScopedInputSchema.extend({
|
|
|
37622
37648
|
});
|
|
37623
37649
|
var CertificateAuthorityCreateSchema = import_zod25.z.object({
|
|
37624
37650
|
configuration: import_zod25.z.object({
|
|
37625
|
-
subject:
|
|
37651
|
+
subject: import_zod25.z.object({
|
|
37652
|
+
named_attributes: import_zod25.z.object({
|
|
37653
|
+
cn: import_zod25.z.string().trim().min(1)
|
|
37654
|
+
})
|
|
37655
|
+
})
|
|
37626
37656
|
})
|
|
37627
37657
|
});
|
|
37628
37658
|
var CertificateAuthorityIdInputSchema = projectScopedInputSchema.extend({
|
|
@@ -37662,7 +37692,7 @@ var CertificatesListSchema = import_zod25.z.object({
|
|
|
37662
37692
|
});
|
|
37663
37693
|
|
|
37664
37694
|
// src/server/Services/routers/pcaRouter.ts
|
|
37665
|
-
var PCA_BASE_URL = "certificate-authorities";
|
|
37695
|
+
var PCA_BASE_URL = "v1/certificate-authorities";
|
|
37666
37696
|
var pcaRouter = {
|
|
37667
37697
|
list: projectScopedProcedure.input(CertificateAuthoritiesListInputSchema).query(async ({ input, ctx }) => {
|
|
37668
37698
|
return withErrorHandling3(async () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cobaltcore-dev/aurora",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Aurora OpenStack dashboard — server and client library",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"@headlessui/react": "^2.2.2",
|
|
52
52
|
"@lingui/core": "^5.9.5",
|
|
53
53
|
"@lingui/react": "^5.9.5",
|
|
54
|
+
"@peculiar/x509": "^2.0.0",
|
|
54
55
|
"@tanstack/react-form": "^1.28.5",
|
|
55
56
|
"@tanstack/react-query": "^5.95.2",
|
|
56
57
|
"@tanstack/react-router": "^1.168.4",
|
|
@@ -65,6 +66,7 @@
|
|
|
65
66
|
"node-fetch": "^3.3.2",
|
|
66
67
|
"react-error-boundary": "^6.1.0",
|
|
67
68
|
"react-icons": "^5.6.0",
|
|
69
|
+
"reflect-metadata": "^0.2.2",
|
|
68
70
|
"tailwind-merge": "^3.2.0",
|
|
69
71
|
"zod": "^4.0.0"
|
|
70
72
|
},
|
|
@@ -106,8 +108,8 @@
|
|
|
106
108
|
"vite-plugin-svgr": "^5.0.0",
|
|
107
109
|
"vite-tsconfig-paths": "^6.1.1",
|
|
108
110
|
"vitest": "^4.1.2",
|
|
109
|
-
"@cobaltcore-dev/policy-engine": "2.0.0",
|
|
110
111
|
"@cobaltcore-dev/aurora-config": "0.0.1",
|
|
112
|
+
"@cobaltcore-dev/policy-engine": "2.0.0",
|
|
111
113
|
"@cobaltcore-dev/signal-openstack": "1.0.0"
|
|
112
114
|
},
|
|
113
115
|
"scripts": {
|