@estopia/shared 1.0.5 → 1.0.6
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/database/dataTypes.d.ts +97 -3
- package/dist/database/dataTypes.d.ts.map +1 -1
- package/dist/helpers/validateJWTToken.d.ts.map +1 -1
- package/dist/helpers/validateJWTToken.js +4 -3
- package/dist/helpers/validateJWTToken.js.map +1 -1
- package/package.json +1 -1
- package/src/database/dataTypes.ts +115 -3
|
@@ -5,9 +5,20 @@
|
|
|
5
5
|
import type { ColumnType } from "kysely";
|
|
6
6
|
export type AppType = "medAndroid" | "medIOS" | "web";
|
|
7
7
|
export type DoseStatus = "missed" | "scheduled" | "skipped" | "taken";
|
|
8
|
+
export type EventStatus = "approved" | "cancelled" | "completed" | "pending" | "rejected";
|
|
8
9
|
export type FactorAuthType = "email" | "whatsapp";
|
|
9
10
|
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U> ? ColumnType<S, I | undefined, U> : ColumnType<T, T | undefined, T>;
|
|
10
11
|
export type Int8 = ColumnType<string, bigint | number | string, bigint | number | string>;
|
|
12
|
+
export type InvoiceStatus = "overdue" | "paid" | "partial" | "unpaid";
|
|
13
|
+
export type Json = JsonValue;
|
|
14
|
+
export type JsonArray = JsonValue[];
|
|
15
|
+
export type JsonObject = {
|
|
16
|
+
[x: string]: JsonValue | undefined;
|
|
17
|
+
};
|
|
18
|
+
export type JsonPrimitive = boolean | number | string | null;
|
|
19
|
+
export type JsonValue = JsonArray | JsonObject | JsonPrimitive;
|
|
20
|
+
export type Numeric = ColumnType<string, number | string, number | string>;
|
|
21
|
+
export type QuoteStatus = "accepted" | "declined" | "draft" | "sent";
|
|
11
22
|
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
|
|
12
23
|
export type VerificationType = "email" | "password_reset" | "phone";
|
|
13
24
|
export interface AuthApps {
|
|
@@ -16,6 +27,39 @@ export interface AuthApps {
|
|
|
16
27
|
secret: string;
|
|
17
28
|
user_id: string;
|
|
18
29
|
}
|
|
30
|
+
export interface Clients {
|
|
31
|
+
company_address: string | null;
|
|
32
|
+
company_email: string | null;
|
|
33
|
+
company_number: string | null;
|
|
34
|
+
company_website: string | null;
|
|
35
|
+
contact_email: string | null;
|
|
36
|
+
contact_name: string;
|
|
37
|
+
contact_number: string | null;
|
|
38
|
+
email: string;
|
|
39
|
+
id: Generated<string>;
|
|
40
|
+
name: string;
|
|
41
|
+
organization_id: string;
|
|
42
|
+
phone: string | null;
|
|
43
|
+
preferred_invoice_email: string | null;
|
|
44
|
+
preferred_invoice_name: string | null;
|
|
45
|
+
preferred_invoice_number: string | null;
|
|
46
|
+
}
|
|
47
|
+
export interface EventDays {
|
|
48
|
+
day_date: Timestamp;
|
|
49
|
+
end_time: string;
|
|
50
|
+
equipment: Generated<Json>;
|
|
51
|
+
event_id: string;
|
|
52
|
+
id: Generated<string>;
|
|
53
|
+
staffing: Generated<Json>;
|
|
54
|
+
start_time: string;
|
|
55
|
+
}
|
|
56
|
+
export interface Events {
|
|
57
|
+
description: string | null;
|
|
58
|
+
id: Generated<string>;
|
|
59
|
+
location: string;
|
|
60
|
+
name: string;
|
|
61
|
+
status: Generated<EventStatus>;
|
|
62
|
+
}
|
|
19
63
|
export interface FactorAuthentication {
|
|
20
64
|
code: string;
|
|
21
65
|
data: string;
|
|
@@ -25,6 +69,21 @@ export interface FactorAuthentication {
|
|
|
25
69
|
type: FactorAuthType;
|
|
26
70
|
user_id: string;
|
|
27
71
|
}
|
|
72
|
+
export interface InvoiceEvents {
|
|
73
|
+
event_id: string;
|
|
74
|
+
id: Generated<string>;
|
|
75
|
+
invoice_id: string;
|
|
76
|
+
}
|
|
77
|
+
export interface Invoices {
|
|
78
|
+
client_id: string;
|
|
79
|
+
created_at: Generated<Timestamp>;
|
|
80
|
+
discount: Generated<Numeric | null>;
|
|
81
|
+
due_date: Timestamp;
|
|
82
|
+
id: Generated<string>;
|
|
83
|
+
organization_id: string;
|
|
84
|
+
status: Generated<InvoiceStatus>;
|
|
85
|
+
tax: Generated<Numeric | null>;
|
|
86
|
+
}
|
|
28
87
|
export interface MedicationRefills {
|
|
29
88
|
amount: Int8;
|
|
30
89
|
date: Timestamp;
|
|
@@ -33,13 +92,13 @@ export interface MedicationRefills {
|
|
|
33
92
|
}
|
|
34
93
|
export interface Medications {
|
|
35
94
|
created_at: Generated<Timestamp>;
|
|
36
|
-
dosage: string
|
|
37
|
-
end_date: Timestamp
|
|
95
|
+
dosage: string;
|
|
96
|
+
end_date: Timestamp;
|
|
38
97
|
id: Generated<string>;
|
|
39
98
|
name: string;
|
|
40
99
|
notes: string | null;
|
|
41
100
|
quantity: Int8 | null;
|
|
42
|
-
start_date: Timestamp
|
|
101
|
+
start_date: Timestamp;
|
|
43
102
|
user_id: string;
|
|
44
103
|
}
|
|
45
104
|
export interface MedicationTimes {
|
|
@@ -59,6 +118,18 @@ export interface NotificationSettings {
|
|
|
59
118
|
server_reply: Generated<boolean | null>;
|
|
60
119
|
user_id: string;
|
|
61
120
|
}
|
|
121
|
+
export interface OrganizationMembers {
|
|
122
|
+
id: Generated<string>;
|
|
123
|
+
joined_at: Generated<Timestamp>;
|
|
124
|
+
organization_id: string;
|
|
125
|
+
real_name: string;
|
|
126
|
+
role: string;
|
|
127
|
+
user_id: string;
|
|
128
|
+
}
|
|
129
|
+
export interface Organizations {
|
|
130
|
+
id: Generated<string>;
|
|
131
|
+
name: string;
|
|
132
|
+
}
|
|
62
133
|
export interface Passkeys {
|
|
63
134
|
counter: Int8;
|
|
64
135
|
id: Generated<string>;
|
|
@@ -73,6 +144,20 @@ export interface Pgmigrations {
|
|
|
73
144
|
name: string;
|
|
74
145
|
run_on: Timestamp;
|
|
75
146
|
}
|
|
147
|
+
export interface QuoteEvents {
|
|
148
|
+
event_id: string;
|
|
149
|
+
id: Generated<string>;
|
|
150
|
+
quote_id: string;
|
|
151
|
+
}
|
|
152
|
+
export interface Quotes {
|
|
153
|
+
client_id: string;
|
|
154
|
+
created_at: Generated<Timestamp>;
|
|
155
|
+
discount: Generated<Numeric | null>;
|
|
156
|
+
id: Generated<string>;
|
|
157
|
+
organization_id: string;
|
|
158
|
+
status: Generated<QuoteStatus>;
|
|
159
|
+
tax: Generated<Numeric | null>;
|
|
160
|
+
}
|
|
76
161
|
export interface SecureTokens {
|
|
77
162
|
created_at: Generated<Timestamp>;
|
|
78
163
|
expiry_at: Timestamp;
|
|
@@ -120,13 +205,22 @@ export interface UserVerifications {
|
|
|
120
205
|
}
|
|
121
206
|
export interface DB {
|
|
122
207
|
auth_apps: AuthApps;
|
|
208
|
+
clients: Clients;
|
|
209
|
+
event_days: EventDays;
|
|
210
|
+
events: Events;
|
|
123
211
|
factor_authentication: FactorAuthentication;
|
|
212
|
+
invoice_events: InvoiceEvents;
|
|
213
|
+
invoices: Invoices;
|
|
124
214
|
medication_refills: MedicationRefills;
|
|
125
215
|
medication_times: MedicationTimes;
|
|
126
216
|
medications: Medications;
|
|
127
217
|
notification_settings: NotificationSettings;
|
|
218
|
+
organization_members: OrganizationMembers;
|
|
219
|
+
organizations: Organizations;
|
|
128
220
|
passkeys: Passkeys;
|
|
129
221
|
pgmigrations: Pgmigrations;
|
|
222
|
+
quote_events: QuoteEvents;
|
|
223
|
+
quotes: Quotes;
|
|
130
224
|
secure_tokens: SecureTokens;
|
|
131
225
|
taken_doses: TakenDoses;
|
|
132
226
|
tokens: Tokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataTypes.d.ts","sourceRoot":"","sources":["../../src/database/dataTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACtE,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAE1F,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dataTypes.d.ts","sourceRoot":"","sources":["../../src/database/dataTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1F,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACtE,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,GAC/B,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAE1F,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtE,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC;AAE7B,MAAM,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AAEpC,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAE/D,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACjC,GAAG,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,WAAW,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,cAAc,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1C,gBAAgB,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC5C,gBAAgB,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC5C,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,uBAAuB,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACnD,cAAc,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1C,YAAY,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,IAAI,CAAC;IACd,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/B,GAAG,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,EAAE;IACjB,SAAS,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,oBAAoB,CAAC;IAC5C,cAAc,EAAE,aAAa,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,EAAE,eAAe,CAAC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,oBAAoB,CAAC;IAC5C,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;CACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateJWTToken.d.ts","sourceRoot":"","sources":["../../src/helpers/validateJWTToken.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"validateJWTToken.d.ts","sourceRoot":"","sources":["../../src/helpers/validateJWTToken.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMpE;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.validateJWTToken = validateJWTToken;
|
|
7
7
|
exports.tryValidateJWTToken = tryValidateJWTToken;
|
|
8
8
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
9
|
-
// Keep verification options minimal to allow tokens signed without an explicit issuer in tests.
|
|
10
|
-
const jwtVerifyOptions = {};
|
|
11
9
|
/**
|
|
12
10
|
* Verify a JWT and return the decoded payload. Throws on invalid/expired token.
|
|
13
11
|
*/
|
|
@@ -15,7 +13,10 @@ function validateJWTToken(token) {
|
|
|
15
13
|
const secret = process.env.JWT_SECRET;
|
|
16
14
|
if (!secret)
|
|
17
15
|
throw new Error('JWT secret not configured');
|
|
18
|
-
const payload = jsonwebtoken_1.default.verify(token, secret,
|
|
16
|
+
const payload = jsonwebtoken_1.default.verify(token, secret, {
|
|
17
|
+
algorithms: ['HS256'],
|
|
18
|
+
issuer: 'estopia-auth',
|
|
19
|
+
});
|
|
19
20
|
const userId = payload?.sub ?? payload?.userId ?? payload?.id ?? null;
|
|
20
21
|
if (!userId)
|
|
21
22
|
throw new Error('token missing subject');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateJWTToken.js","sourceRoot":"","sources":["../../src/helpers/validateJWTToken.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"validateJWTToken.js","sourceRoot":"","sources":["../../src/helpers/validateJWTToken.ts"],"names":[],"mappings":";;;;;AAYA,4CAYC;AAKD,kDAMC;AAnCD,gEAA+B;AAS/B;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;QACxC,UAAU,EAAE,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,cAAc;KACvB,CAAmB,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;IACtE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEtD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAgB,CAAC;AACpH,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,8 @@ export type AppType = "medAndroid" | "medIOS" | "web";
|
|
|
9
9
|
|
|
10
10
|
export type DoseStatus = "missed" | "scheduled" | "skipped" | "taken";
|
|
11
11
|
|
|
12
|
+
export type EventStatus = "approved" | "cancelled" | "completed" | "pending" | "rejected";
|
|
13
|
+
|
|
12
14
|
export type FactorAuthType = "email" | "whatsapp";
|
|
13
15
|
|
|
14
16
|
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U>
|
|
@@ -17,6 +19,24 @@ export type Generated<T> = T extends ColumnType<infer S, infer I, infer U>
|
|
|
17
19
|
|
|
18
20
|
export type Int8 = ColumnType<string, bigint | number | string, bigint | number | string>;
|
|
19
21
|
|
|
22
|
+
export type InvoiceStatus = "overdue" | "paid" | "partial" | "unpaid";
|
|
23
|
+
|
|
24
|
+
export type Json = JsonValue;
|
|
25
|
+
|
|
26
|
+
export type JsonArray = JsonValue[];
|
|
27
|
+
|
|
28
|
+
export type JsonObject = {
|
|
29
|
+
[x: string]: JsonValue | undefined;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type JsonPrimitive = boolean | number | string | null;
|
|
33
|
+
|
|
34
|
+
export type JsonValue = JsonArray | JsonObject | JsonPrimitive;
|
|
35
|
+
|
|
36
|
+
export type Numeric = ColumnType<string, number | string, number | string>;
|
|
37
|
+
|
|
38
|
+
export type QuoteStatus = "accepted" | "declined" | "draft" | "sent";
|
|
39
|
+
|
|
20
40
|
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
|
|
21
41
|
|
|
22
42
|
export type VerificationType = "email" | "password_reset" | "phone";
|
|
@@ -28,6 +48,42 @@ export interface AuthApps {
|
|
|
28
48
|
user_id: string;
|
|
29
49
|
}
|
|
30
50
|
|
|
51
|
+
export interface Clients {
|
|
52
|
+
company_address: string | null;
|
|
53
|
+
company_email: string | null;
|
|
54
|
+
company_number: string | null;
|
|
55
|
+
company_website: string | null;
|
|
56
|
+
contact_email: string | null;
|
|
57
|
+
contact_name: string;
|
|
58
|
+
contact_number: string | null;
|
|
59
|
+
email: string;
|
|
60
|
+
id: Generated<string>;
|
|
61
|
+
name: string;
|
|
62
|
+
organization_id: string;
|
|
63
|
+
phone: string | null;
|
|
64
|
+
preferred_invoice_email: string | null;
|
|
65
|
+
preferred_invoice_name: string | null;
|
|
66
|
+
preferred_invoice_number: string | null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface EventDays {
|
|
70
|
+
day_date: Timestamp;
|
|
71
|
+
end_time: string;
|
|
72
|
+
equipment: Generated<Json>;
|
|
73
|
+
event_id: string;
|
|
74
|
+
id: Generated<string>;
|
|
75
|
+
staffing: Generated<Json>;
|
|
76
|
+
start_time: string;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface Events {
|
|
80
|
+
description: string | null;
|
|
81
|
+
id: Generated<string>;
|
|
82
|
+
location: string;
|
|
83
|
+
name: string;
|
|
84
|
+
status: Generated<EventStatus>;
|
|
85
|
+
}
|
|
86
|
+
|
|
31
87
|
export interface FactorAuthentication {
|
|
32
88
|
code: string;
|
|
33
89
|
data: string;
|
|
@@ -38,6 +94,23 @@ export interface FactorAuthentication {
|
|
|
38
94
|
user_id: string;
|
|
39
95
|
}
|
|
40
96
|
|
|
97
|
+
export interface InvoiceEvents {
|
|
98
|
+
event_id: string;
|
|
99
|
+
id: Generated<string>;
|
|
100
|
+
invoice_id: string;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface Invoices {
|
|
104
|
+
client_id: string;
|
|
105
|
+
created_at: Generated<Timestamp>;
|
|
106
|
+
discount: Generated<Numeric | null>;
|
|
107
|
+
due_date: Timestamp;
|
|
108
|
+
id: Generated<string>;
|
|
109
|
+
organization_id: string;
|
|
110
|
+
status: Generated<InvoiceStatus>;
|
|
111
|
+
tax: Generated<Numeric | null>;
|
|
112
|
+
}
|
|
113
|
+
|
|
41
114
|
export interface MedicationRefills {
|
|
42
115
|
amount: Int8;
|
|
43
116
|
date: Timestamp;
|
|
@@ -47,13 +120,13 @@ export interface MedicationRefills {
|
|
|
47
120
|
|
|
48
121
|
export interface Medications {
|
|
49
122
|
created_at: Generated<Timestamp>;
|
|
50
|
-
dosage: string
|
|
51
|
-
end_date: Timestamp
|
|
123
|
+
dosage: string;
|
|
124
|
+
end_date: Timestamp;
|
|
52
125
|
id: Generated<string>;
|
|
53
126
|
name: string;
|
|
54
127
|
notes: string | null;
|
|
55
128
|
quantity: Int8 | null;
|
|
56
|
-
start_date: Timestamp
|
|
129
|
+
start_date: Timestamp;
|
|
57
130
|
user_id: string;
|
|
58
131
|
}
|
|
59
132
|
|
|
@@ -76,6 +149,20 @@ export interface NotificationSettings {
|
|
|
76
149
|
user_id: string;
|
|
77
150
|
}
|
|
78
151
|
|
|
152
|
+
export interface OrganizationMembers {
|
|
153
|
+
id: Generated<string>;
|
|
154
|
+
joined_at: Generated<Timestamp>;
|
|
155
|
+
organization_id: string;
|
|
156
|
+
real_name: string;
|
|
157
|
+
role: string;
|
|
158
|
+
user_id: string;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface Organizations {
|
|
162
|
+
id: Generated<string>;
|
|
163
|
+
name: string;
|
|
164
|
+
}
|
|
165
|
+
|
|
79
166
|
export interface Passkeys {
|
|
80
167
|
counter: Int8;
|
|
81
168
|
id: Generated<string>;
|
|
@@ -92,6 +179,22 @@ export interface Pgmigrations {
|
|
|
92
179
|
run_on: Timestamp;
|
|
93
180
|
}
|
|
94
181
|
|
|
182
|
+
export interface QuoteEvents {
|
|
183
|
+
event_id: string;
|
|
184
|
+
id: Generated<string>;
|
|
185
|
+
quote_id: string;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export interface Quotes {
|
|
189
|
+
client_id: string;
|
|
190
|
+
created_at: Generated<Timestamp>;
|
|
191
|
+
discount: Generated<Numeric | null>;
|
|
192
|
+
id: Generated<string>;
|
|
193
|
+
organization_id: string;
|
|
194
|
+
status: Generated<QuoteStatus>;
|
|
195
|
+
tax: Generated<Numeric | null>;
|
|
196
|
+
}
|
|
197
|
+
|
|
95
198
|
export interface SecureTokens {
|
|
96
199
|
created_at: Generated<Timestamp>;
|
|
97
200
|
expiry_at: Timestamp;
|
|
@@ -144,13 +247,22 @@ export interface UserVerifications {
|
|
|
144
247
|
|
|
145
248
|
export interface DB {
|
|
146
249
|
auth_apps: AuthApps;
|
|
250
|
+
clients: Clients;
|
|
251
|
+
event_days: EventDays;
|
|
252
|
+
events: Events;
|
|
147
253
|
factor_authentication: FactorAuthentication;
|
|
254
|
+
invoice_events: InvoiceEvents;
|
|
255
|
+
invoices: Invoices;
|
|
148
256
|
medication_refills: MedicationRefills;
|
|
149
257
|
medication_times: MedicationTimes;
|
|
150
258
|
medications: Medications;
|
|
151
259
|
notification_settings: NotificationSettings;
|
|
260
|
+
organization_members: OrganizationMembers;
|
|
261
|
+
organizations: Organizations;
|
|
152
262
|
passkeys: Passkeys;
|
|
153
263
|
pgmigrations: Pgmigrations;
|
|
264
|
+
quote_events: QuoteEvents;
|
|
265
|
+
quotes: Quotes;
|
|
154
266
|
secure_tokens: SecureTokens;
|
|
155
267
|
taken_doses: TakenDoses;
|
|
156
268
|
tokens: Tokens;
|