From f563eb7cb7be314c59e228379e8a0812ff41464c Mon Sep 17 00:00:00 2001 From: CybAtax <62847599+CybAtax@users.noreply.github.com> Date: Sun, 17 Nov 2024 20:46:08 +0100 Subject: [PATCH] wip: first draft cert request --- frontend/src/components/Home.vue | 1 + frontend/src/pages/cert-request.vue | 95 +++++++++++++++++++++++++++++ frontend/src/types/certificate.d.ts | 24 ++++++++ frontend/src/types/util.d.ts | 5 ++ frontend/tsconfig.json | 1 + frontend/typed-router.d.ts | 1 + 6 files changed, 127 insertions(+) create mode 100644 frontend/src/pages/cert-request.vue create mode 100644 frontend/src/types/certificate.d.ts create mode 100644 frontend/src/types/util.d.ts diff --git a/frontend/src/components/Home.vue b/frontend/src/components/Home.vue index 6af172d..0982a85 100644 --- a/frontend/src/components/Home.vue +++ b/frontend/src/components/Home.vue @@ -39,6 +39,7 @@ rounded="lg" title="Manage your certificates" variant="text" + to="/cert-request" /> diff --git a/frontend/src/pages/cert-request.vue b/frontend/src/pages/cert-request.vue new file mode 100644 index 0000000..1689c10 --- /dev/null +++ b/frontend/src/pages/cert-request.vue @@ -0,0 +1,95 @@ + + + diff --git a/frontend/src/types/certificate.d.ts b/frontend/src/types/certificate.d.ts new file mode 100644 index 0000000..1fbaf20 --- /dev/null +++ b/frontend/src/types/certificate.d.ts @@ -0,0 +1,24 @@ +export interface Subject { + commonName: string; + organization: string; + orgUnit: string; + country: string; + state: string; + city: string +} + +export interface Validity { + from: Date; + to: Date; +} + +export interface Extensions { + +} + +export interface Certificate { + issuer: Subject; + validity: Validity; + subject: Subject; + extensions: Extensions; +} diff --git a/frontend/src/types/util.d.ts b/frontend/src/types/util.d.ts new file mode 100644 index 0000000..eefe08e --- /dev/null +++ b/frontend/src/types/util.d.ts @@ -0,0 +1,5 @@ +export type Valid = { + [K in keyof T as `${K}Rules`]: ((val: string) => true | string)[] +} & { + valid: boolean; +} & T; diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 66b5e57..416e35a 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -1,5 +1,6 @@ { "files": [], + "include": ["./typed-router.d.ts"], "references": [ { "path": "./tsconfig.node.json" diff --git a/frontend/typed-router.d.ts b/frontend/typed-router.d.ts index 331ee51..8d7445f 100644 --- a/frontend/typed-router.d.ts +++ b/frontend/typed-router.d.ts @@ -19,5 +19,6 @@ declare module 'vue-router/auto-routes' { */ export interface RouteNamedMap { '/': RouteRecordInfo<'/', '/', Record, Record>, + '/cert-request': RouteRecordInfo<'/cert-request', '/cert-request', Record, Record>, } }