@doctorus/common 0.0.0 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,85 @@
1
+ import { Action } from "./actions";
2
+ import { Operation } from "./operation";
3
+ import { Resource } from "./resources";
4
+ /**
5
+ * Predefined common operations for convenience
6
+ */
7
+ export declare const Operations: {
8
+ readonly ACCOUNT_CREATE: Operation;
9
+ readonly ACCOUNT_READ: Operation;
10
+ readonly ACCOUNT_UPDATE: Operation;
11
+ readonly ACCOUNT_DELETE: Operation;
12
+ readonly ACCOUNT_MANAGE: Operation;
13
+ readonly PATIENT_CREATE: Operation;
14
+ readonly PATIENT_READ: Operation;
15
+ readonly PATIENT_UPDATE: Operation;
16
+ readonly PATIENT_DELETE: Operation;
17
+ readonly PATIENT_LIST: Operation;
18
+ readonly PATIENT_VIEW: Operation;
19
+ readonly PATIENT_UPDATE_STATUS: Operation;
20
+ readonly PATIENT_PAYMENT_PUT: Operation;
21
+ readonly PATIENT_PAYMENT_DELETE: Operation;
22
+ readonly MEDICAL_SERVICE_CREATE: Operation;
23
+ readonly MEDICAL_SERVICE_READ: Operation;
24
+ readonly MEDICAL_SERVICE_UPDATE: Operation;
25
+ readonly MEDICAL_SERVICE_DELETE: Operation;
26
+ readonly MEDICAL_SERVICE_MANAGE: Operation;
27
+ readonly MEDICAL_SERVICE_SET_STATUS: Operation;
28
+ readonly MEDICAL_SERVICE_SET_FEES: Operation;
29
+ readonly MEDICAL_RECORD_CREATE: Operation;
30
+ readonly MEDICAL_RECORD_READ: Operation;
31
+ readonly MEDICAL_RECORD_UPDATE: Operation;
32
+ readonly MEDICAL_RECORD_DELETE: Operation;
33
+ readonly MEDICAL_RECORD_SHARE: Operation;
34
+ readonly MEDICAL_RECORD_EXPORT: Operation;
35
+ readonly PRESCRIPTION_CREATE: Operation;
36
+ readonly PRESCRIPTION_READ: Operation;
37
+ readonly PRESCRIPTION_UPDATE: Operation;
38
+ readonly PRESCRIPTION_SIGN: Operation;
39
+ readonly PRESCRIPTION_PRESCRIBE: Operation;
40
+ readonly DIAGNOSIS_CREATE: Operation;
41
+ readonly DIAGNOSIS_READ: Operation;
42
+ readonly DIAGNOSIS_UPDATE: Operation;
43
+ readonly DIAGNOSIS_DIAGNOSE: Operation;
44
+ readonly DIAGNOSIS_VERIFY: Operation;
45
+ readonly MEDICAL_HISTORY_CREATE: Operation;
46
+ readonly MEDICAL_HISTORY_READ: Operation;
47
+ readonly MEDICAL_HISTORY_UPDATE: Operation;
48
+ readonly UPLOADED_DOCUMENT_CREATE: Operation;
49
+ readonly UPLOADED_DOCUMENT_READ: Operation;
50
+ readonly UPLOADED_DOCUMENT_DELETE: Operation;
51
+ readonly GENERATED_DOCUMENT_CREATE: Operation;
52
+ readonly GENERATED_DOCUMENT_READ: Operation;
53
+ readonly MEDICAL_SERVICE_SCHEDULE: Operation;
54
+ readonly MEDICAL_SERVICE_CANCEL: Operation;
55
+ readonly MEDICAL_SERVICE_LIST: Operation;
56
+ readonly USER_CREATE: Operation;
57
+ readonly USER_READ: Operation;
58
+ readonly USER_UPDATE: Operation;
59
+ readonly USER_DELETE: Operation;
60
+ readonly USER_LIST: Operation;
61
+ readonly USER_LOGIN: Operation;
62
+ readonly USER_LOGOUT: Operation;
63
+ readonly MEMBERSHIP_CREATE: Operation;
64
+ readonly MEMBERSHIP_READ: Operation;
65
+ readonly MEMBERSHIP_UPDATE: Operation;
66
+ readonly MEMBERSHIP_DELETE: Operation;
67
+ readonly AUDIT_LOG_CREATE: Operation;
68
+ readonly AUDIT_LOG_READ: Operation;
69
+ readonly AUDIT_LOG_LIST: Operation;
70
+ readonly AUDIT_LOG_AUDIT: Operation;
71
+ readonly SYSTEM_CONFIGURE: Operation;
72
+ readonly SYSTEM_AUDIT: Operation;
73
+ };
74
+ /**
75
+ * Get all predefined operations as an array
76
+ */
77
+ export declare function getAllOperations(): Operation[];
78
+ /**
79
+ * Get all operations for a specific resource
80
+ */
81
+ export declare function getOperationsByResource(resource: Resource): Operation[];
82
+ /**
83
+ * Get all operations for a specific action
84
+ */
85
+ export declare function getOperationsByAction(action: Action): Operation[];
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Operations = void 0;
4
+ exports.getAllOperations = getAllOperations;
5
+ exports.getOperationsByResource = getOperationsByResource;
6
+ exports.getOperationsByAction = getOperationsByAction;
7
+ const actions_1 = require("./actions");
8
+ const operation_1 = require("./operation");
9
+ const resources_1 = require("./resources");
10
+ /**
11
+ * Predefined common operations for convenience
12
+ */
13
+ exports.Operations = {
14
+ // Account operations
15
+ ACCOUNT_CREATE: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.CREATE),
16
+ ACCOUNT_READ: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.READ),
17
+ ACCOUNT_UPDATE: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.UPDATE),
18
+ ACCOUNT_DELETE: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.DELETE),
19
+ ACCOUNT_MANAGE: new operation_1.Operation(resources_1.Resource.ACCOUNT, actions_1.Action.MANAGE),
20
+ // Patient operations
21
+ PATIENT_CREATE: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.CREATE),
22
+ PATIENT_READ: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.READ),
23
+ PATIENT_UPDATE: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.UPDATE),
24
+ PATIENT_DELETE: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.DELETE),
25
+ PATIENT_LIST: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.LIST),
26
+ PATIENT_VIEW: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.VIEW_PATIENTS),
27
+ PATIENT_UPDATE_STATUS: new operation_1.Operation(resources_1.Resource.PATIENT, actions_1.Action.UPDATE_STATUS),
28
+ // Patient payment operations
29
+ PATIENT_PAYMENT_PUT: new operation_1.Operation(resources_1.Resource.PATIENT_PAYMENT, actions_1.Action.PUT_PATIENT_PAYMENT),
30
+ PATIENT_PAYMENT_DELETE: new operation_1.Operation(resources_1.Resource.PATIENT_PAYMENT, actions_1.Action.DELETE_PATIENT_PAYMENT),
31
+ // Medical service operations
32
+ MEDICAL_SERVICE_CREATE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.CREATE),
33
+ MEDICAL_SERVICE_READ: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.READ),
34
+ MEDICAL_SERVICE_UPDATE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.UPDATE),
35
+ MEDICAL_SERVICE_DELETE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.DELETE),
36
+ MEDICAL_SERVICE_MANAGE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.MANAGE),
37
+ MEDICAL_SERVICE_SET_STATUS: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE_STATUS, actions_1.Action.SET_MEDICAL_SERVICE_STATUS),
38
+ MEDICAL_SERVICE_SET_FEES: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE_FEES, actions_1.Action.SET_MEDICAL_SERVICE_FEES),
39
+ // Medical record operations
40
+ MEDICAL_RECORD_CREATE: new operation_1.Operation(resources_1.Resource.MEDICAL_RECORD, actions_1.Action.CREATE),
41
+ MEDICAL_RECORD_READ: new operation_1.Operation(resources_1.Resource.MEDICAL_RECORD, actions_1.Action.READ),
42
+ MEDICAL_RECORD_UPDATE: new operation_1.Operation(resources_1.Resource.MEDICAL_RECORD, actions_1.Action.UPDATE),
43
+ MEDICAL_RECORD_DELETE: new operation_1.Operation(resources_1.Resource.MEDICAL_RECORD, actions_1.Action.DELETE),
44
+ MEDICAL_RECORD_SHARE: new operation_1.Operation(resources_1.Resource.MEDICAL_RECORD, actions_1.Action.SHARE),
45
+ MEDICAL_RECORD_EXPORT: new operation_1.Operation(resources_1.Resource.MEDICAL_RECORD, actions_1.Action.EXPORT),
46
+ // Prescription operations
47
+ PRESCRIPTION_CREATE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.CREATE),
48
+ PRESCRIPTION_READ: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.READ),
49
+ PRESCRIPTION_UPDATE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.UPDATE),
50
+ PRESCRIPTION_SIGN: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.SIGN),
51
+ PRESCRIPTION_PRESCRIBE: new operation_1.Operation(resources_1.Resource.PRESCRIPTION, actions_1.Action.PRESCRIBE),
52
+ // Diagnosis operations
53
+ DIAGNOSIS_CREATE: new operation_1.Operation(resources_1.Resource.DIAGNOSIS, actions_1.Action.CREATE),
54
+ DIAGNOSIS_READ: new operation_1.Operation(resources_1.Resource.DIAGNOSIS, actions_1.Action.READ),
55
+ DIAGNOSIS_UPDATE: new operation_1.Operation(resources_1.Resource.DIAGNOSIS, actions_1.Action.UPDATE),
56
+ DIAGNOSIS_DIAGNOSE: new operation_1.Operation(resources_1.Resource.DIAGNOSIS, actions_1.Action.DIAGNOSE),
57
+ DIAGNOSIS_VERIFY: new operation_1.Operation(resources_1.Resource.DIAGNOSIS, actions_1.Action.VERIFY),
58
+ // Medical history operations
59
+ MEDICAL_HISTORY_CREATE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY, actions_1.Action.CREATE),
60
+ MEDICAL_HISTORY_READ: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY, actions_1.Action.READ),
61
+ MEDICAL_HISTORY_UPDATE: new operation_1.Operation(resources_1.Resource.MEDICAL_HISTORY, actions_1.Action.UPDATE),
62
+ // Document operations
63
+ UPLOADED_DOCUMENT_CREATE: new operation_1.Operation(resources_1.Resource.UPLOADED_DOCUMENT, actions_1.Action.CREATE),
64
+ UPLOADED_DOCUMENT_READ: new operation_1.Operation(resources_1.Resource.UPLOADED_DOCUMENT, actions_1.Action.READ),
65
+ UPLOADED_DOCUMENT_DELETE: new operation_1.Operation(resources_1.Resource.UPLOADED_DOCUMENT, actions_1.Action.DELETE),
66
+ GENERATED_DOCUMENT_CREATE: new operation_1.Operation(resources_1.Resource.GENERATED_DOCUMENT, actions_1.Action.CREATE),
67
+ GENERATED_DOCUMENT_READ: new operation_1.Operation(resources_1.Resource.GENERATED_DOCUMENT, actions_1.Action.READ),
68
+ // Medical service scheduling operations (appointments)
69
+ MEDICAL_SERVICE_SCHEDULE: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.SCHEDULE),
70
+ MEDICAL_SERVICE_CANCEL: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.CANCEL),
71
+ MEDICAL_SERVICE_LIST: new operation_1.Operation(resources_1.Resource.MEDICAL_SERVICE, actions_1.Action.LIST),
72
+ // User operations
73
+ USER_CREATE: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.CREATE),
74
+ USER_READ: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.READ),
75
+ USER_UPDATE: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.UPDATE),
76
+ USER_DELETE: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.DELETE),
77
+ USER_LIST: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.LIST),
78
+ USER_LOGIN: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.LOGIN),
79
+ USER_LOGOUT: new operation_1.Operation(resources_1.Resource.USER, actions_1.Action.LOGOUT),
80
+ // Membership operations
81
+ MEMBERSHIP_CREATE: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.CREATE),
82
+ MEMBERSHIP_READ: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.READ),
83
+ MEMBERSHIP_UPDATE: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.UPDATE),
84
+ MEMBERSHIP_DELETE: new operation_1.Operation(resources_1.Resource.MEMBERSHIP, actions_1.Action.DELETE),
85
+ // Audit log operations
86
+ AUDIT_LOG_CREATE: new operation_1.Operation(resources_1.Resource.AUDIT_LOG, actions_1.Action.CREATE),
87
+ AUDIT_LOG_READ: new operation_1.Operation(resources_1.Resource.AUDIT_LOG, actions_1.Action.READ),
88
+ AUDIT_LOG_LIST: new operation_1.Operation(resources_1.Resource.AUDIT_LOG, actions_1.Action.LIST),
89
+ AUDIT_LOG_AUDIT: new operation_1.Operation(resources_1.Resource.AUDIT_LOG, actions_1.Action.AUDIT),
90
+ // System operations
91
+ SYSTEM_CONFIGURE: new operation_1.Operation(resources_1.Resource.SYSTEM, actions_1.Action.CONFIGURE),
92
+ SYSTEM_AUDIT: new operation_1.Operation(resources_1.Resource.SYSTEM, actions_1.Action.AUDIT),
93
+ };
94
+ /**
95
+ * Get all predefined operations as an array
96
+ */
97
+ function getAllOperations() {
98
+ return Object.values(exports.Operations);
99
+ }
100
+ /**
101
+ * Get all operations for a specific resource
102
+ */
103
+ function getOperationsByResource(resource) {
104
+ return getAllOperations().filter((op) => op.resource === resource);
105
+ }
106
+ /**
107
+ * Get all operations for a specific action
108
+ */
109
+ function getOperationsByAction(action) {
110
+ return getAllOperations().filter((op) => op.action === action);
111
+ }
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGVmaW5lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb25zL3ByZWRlZmluZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0pBLDRDQUVDO0FBS0QsMERBRUM7QUFLRCxzREFFQztBQS9LRCx1Q0FBbUM7QUFDbkMsMkNBQXdDO0FBQ3hDLDJDQUF1QztBQUV2Qzs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFHO0lBQ3hCLHFCQUFxQjtJQUNyQixjQUFjLEVBQUUsSUFBSSxxQkFBUyxDQUFDLG9CQUFRLENBQUMsT0FBTyxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlELFlBQVksRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxPQUFPLEVBQUUsZ0JBQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUQsY0FBYyxFQUFFLElBQUkscUJBQVMsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sRUFBRSxnQkFBTSxDQUFDLE1BQU0sQ0FBQztJQUM5RCxjQUFjLEVBQUUsSUFBSSxxQkFBUyxDQUFDLG9CQUFRLENBQUMsT0FBTyxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlELGNBQWMsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxPQUFPLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFFOUQscUJBQXFCO0lBQ3JCLGNBQWMsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxPQUFPLEVBQUUsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUQsWUFBWSxFQUFFLElBQUkscUJBQVMsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sRUFBRSxnQkFBTSxDQUFDLElBQUksQ0FBQztJQUMxRCxjQUFjLEVBQUUsSUFBSSxxQkFBUyxDQUFDLG9CQUFRLENBQUMsT0FBTyxFQUFFLGdCQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlELGNBQWMsRUFBRSxJQUFJLHFCQUFTLENBQUMsb0JBQVEsQ0FBQyxPQUFPLEVB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QU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBVSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsUUFBa0I7SUFDeEQsT0FBTyxnQkFBZ0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFjO0lBQ2xELE9BQU8sZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuL2FjdGlvbnNcIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL29wZXJhdGlvblwiO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tIFwiLi9yZXNvdXJjZXNcIjtcblxuLyoqXG4gKiBQcmVkZWZpbmVkIGNvbW1vbiBvcGVyYXRpb25zIGZvciBjb252ZW5pZW5jZVxuICovXG5leHBvcnQgY29uc3QgT3BlcmF0aW9ucyA9IHtcbiAgLy8gQWNjb3VudCBvcGVyYXRpb25zXG4gIEFDQ09VTlRfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkFDQ09VTlQsIEFjdGlvbi5DUkVBVEUpLFxuICBBQ0NPVU5UX1JFQUQ6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQUNDT1VOVCwgQWN0aW9uLlJFQUQpLFxuICBBQ0NPVU5UX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5BQ0NPVU5ULCBBY3Rpb24uVVBEQVRFKSxcbiAgQUNDT1VOVF9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQUNDT1VOVCwgQWN0aW9uLkRFTEVURSksXG4gIEFDQ09VTlRfTUFOQUdFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkFDQ09VTlQsIEFjdGlvbi5NQU5BR0UpLFxuXG4gIC8vIFBhdGllbnQgb3BlcmF0aW9uc1xuICBQQVRJRU5UX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5QQVRJRU5ULCBBY3Rpb24uQ1JFQVRFKSxcbiAgUEFUSUVOVF9SRUFEOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlQsIEFjdGlvbi5SRUFEKSxcbiAgUEFUSUVOVF9VUERBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVCwgQWN0aW9uLlVQREFURSksXG4gIFBBVElFTlRfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBBVElFTlQsIEFjdGlvbi5ERUxFVEUpLFxuICBQQVRJRU5UX0xJU1Q6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVCwgQWN0aW9uLkxJU1QpLFxuICBQQVRJRU5UX1ZJRVc6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVCwgQWN0aW9uLlZJRVdfUEFUSUVOVFMpLFxuICBQQVRJRU5UX1VQREFURV9TVEFUVVM6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuUEFUSUVOVCwgQWN0aW9uLlVQREFURV9TVEFUVVMpLFxuXG4gIC8vIFBhdGllbnQgcGF5bWVudCBvcGVyYXRpb25zXG4gIFBBVElFTlRfUEFZTUVOVF9QVVQ6IG5ldyBPcGVyYXRpb24oXG4gICAgUmVzb3VyY2UuUEFUSUVOVF9QQVlNRU5ULFxuICAgIEFjdGlvbi5QVVRfUEFUSUVOVF9QQVlNRU5ULFxuICApLFxuICBQQVRJRU5UX1BBWU1FTlRfREVMRVRFOiBuZXcgT3BlcmF0aW9uKFxuICAgIFJlc291cmNlLlBBVElFTlRfUEFZTUVOVCxcbiAgICBBY3Rpb24uREVMRVRFX1BBVElFTlRfUEFZTUVOVCxcbiAgKSxcblxuICAvLyBNZWRpY2FsIHNlcnZpY2Ugb3BlcmF0aW9uc1xuICBNRURJQ0FMX1NFUlZJQ0VfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFxuICAgIFJlc291cmNlLk1FRElDQUxfU0VSVklDRSxcbiAgICBBY3Rpb24uQ1JFQVRFLFxuICApLFxuICBNRURJQ0FMX1NFUlZJQ0VfUkVBRDogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsIEFjdGlvbi5SRUFEKSxcbiAgTUVESUNBTF9TRVJWSUNFX1VQREFURTogbmV3IE9wZXJhdGlvbihcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsXG4gICAgQWN0aW9uLlVQREFURSxcbiAgKSxcbiAgTUVESUNBTF9TRVJWSUNFX0RFTEVURTogbmV3IE9wZXJhdGlvbihcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsXG4gICAgQWN0aW9uLkRFTEVURSxcbiAgKSxcbiAgTUVESUNBTF9TRVJWSUNFX01BTkFHRTogbmV3IE9wZXJhdGlvbihcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsXG4gICAgQWN0aW9uLk1BTkFHRSxcbiAgKSxcbiAgTUVESUNBTF9TRVJWSUNFX1NFVF9TVEFUVVM6IG5ldyBPcGVyYXRpb24oXG4gICAgUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX1NUQVRVUyxcbiAgICBBY3Rpb24uU0VUX01FRElDQUxfU0VSVklDRV9TVEFUVVMsXG4gICksXG4gIE1FRElDQUxfU0VSVklDRV9TRVRfRkVFUzogbmV3IE9wZXJhdGlvbihcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfRkVFUyxcbiAgICBBY3Rpb24uU0VUX01FRElDQUxfU0VSVklDRV9GRUVTLFxuICApLFxuXG4gIC8vIE1lZGljYWwgcmVjb3JkIG9wZXJhdGlvbnNcbiAgTUVESUNBTF9SRUNPUkRfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfUkVDT1JELCBBY3Rpb24uQ1JFQVRFKSxcbiAgTUVESUNBTF9SRUNPUkRfUkVBRDogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX1JFQ09SRCwgQWN0aW9uLlJFQUQpLFxuICBNRURJQ0FMX1JFQ09SRF9VUERBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9SRUNPUkQsIEFjdGlvbi5VUERBVEUpLFxuICBNRURJQ0FMX1JFQ09SRF9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9SRUNPUkQsIEFjdGlvbi5ERUxFVEUpLFxuICBNRURJQ0FMX1JFQ09SRF9TSEFSRTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRURJQ0FMX1JFQ09SRCwgQWN0aW9uLlNIQVJFKSxcbiAgTUVESUNBTF9SRUNPUkRfRVhQT1JUOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfUkVDT1JELCBBY3Rpb24uRVhQT1JUKSxcblxuICAvLyBQcmVzY3JpcHRpb24gb3BlcmF0aW9uc1xuICBQUkVTQ1JJUFRJT05fQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBSRVNDUklQVElPTiwgQWN0aW9uLkNSRUFURSksXG4gIFBSRVNDUklQVElPTl9SRUFEOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBSRVNDUklQVElPTiwgQWN0aW9uLlJFQUQpLFxuICBQUkVTQ1JJUFRJT05fVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBSRVNDUklQVElPTiwgQWN0aW9uLlVQREFURSksXG4gIFBSRVNDUklQVElPTl9TSUdOOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlBSRVNDUklQVElPTiwgQWN0aW9uLlNJR04pLFxuICBQUkVTQ1JJUFRJT05fUFJFU0NSSUJFOiBuZXcgT3BlcmF0aW9uKFxuICAgIFJlc291cmNlLlBSRVNDUklQVElPTixcbiAgICBBY3Rpb24uUFJFU0NSSUJFLFxuICApLFxuXG4gIC8vIERpYWdub3NpcyBvcGVyYXRpb25zXG4gIERJQUdOT1NJU19DUkVBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRElBR05PU0lTLCBBY3Rpb24uQ1JFQVRFKSxcbiAgRElBR05PU0lTX1JFQUQ6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRElBR05PU0lTLCBBY3Rpb24uUkVBRCksXG4gIERJQUdOT1NJU19VUERBVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuRElBR05PU0lTLCBBY3Rpb24uVVBEQVRFKSxcbiAgRElBR05PU0lTX0RJQUdOT1NFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLkRJQUdOT1NJUywgQWN0aW9uLkRJQUdOT1NFKSxcbiAgRElBR05PU0lTX1ZFUklGWTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5ESUFHTk9TSVMsIEFjdGlvbi5WRVJJRlkpLFxuXG4gIC8vIE1lZGljYWwgaGlzdG9yeSBvcGVyYXRpb25zXG4gIE1FRElDQUxfSElTVE9SWV9DUkVBVEU6IG5ldyBPcGVyYXRpb24oXG4gICAgUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZLFxuICAgIEFjdGlvbi5DUkVBVEUsXG4gICksXG4gIE1FRElDQUxfSElTVE9SWV9SRUFEOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FRElDQUxfSElTVE9SWSwgQWN0aW9uLlJFQUQpLFxuICBNRURJQ0FMX0hJU1RPUllfVVBEQVRFOiBuZXcgT3BlcmF0aW9uKFxuICAgIFJlc291cmNlLk1FRElDQUxfSElTVE9SWSxcbiAgICBBY3Rpb24uVVBEQVRFLFxuICApLFxuXG4gIC8vIERvY3VtZW50IG9wZXJhdGlvbnNcbiAgVVBMT0FERURfRE9DVU1FTlRfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFxuICAgIFJlc291cmNlLlVQTE9BREVEX0RPQ1VNRU5ULFxuICAgIEFjdGlvbi5DUkVBVEUsXG4gICksXG4gIFVQTE9BREVEX0RPQ1VNRU5UX1JFQUQ6IG5ldyBPcGVyYXRpb24oXG4gICAgUmVzb3VyY2UuVVBMT0FERURfRE9DVU1FTlQsXG4gICAgQWN0aW9uLlJFQUQsXG4gICksXG4gIFVQTE9BREVEX0RPQ1VNRU5UX0RFTEVURTogbmV3IE9wZXJhdGlvbihcbiAgICBSZXNvdXJjZS5VUExPQURFRF9ET0NVTUVOVCxcbiAgICBBY3Rpb24uREVMRVRFLFxuICApLFxuICBHRU5FUkFURURfRE9DVU1FTlRfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFxuICAgIFJlc291cmNlLkdFTkVSQVRFRF9ET0NVTUVOVCxcbiAgICBBY3Rpb24uQ1JFQVRFLFxuICApLFxuICBHRU5FUkFURURfRE9DVU1FTlRfUkVBRDogbmV3IE9wZXJhdGlvbihcbiAgICBSZXNvdXJjZS5HRU5FUkFURURfRE9DVU1FTlQsXG4gICAgQWN0aW9uLlJFQUQsXG4gICksXG5cbiAgLy8gTWVkaWNhbCBzZXJ2aWNlIHNjaGVkdWxpbmcgb3BlcmF0aW9ucyAoYXBwb2ludG1lbnRzKVxuICBNRURJQ0FMX1NFUlZJQ0VfU0NIRURVTEU6IG5ldyBPcGVyYXRpb24oXG4gICAgUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFLFxuICAgIEFjdGlvbi5TQ0hFRFVMRSxcbiAgKSxcbiAgTUVESUNBTF9TRVJWSUNFX0NBTkNFTDogbmV3IE9wZXJhdGlvbihcbiAgICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0UsXG4gICAgQWN0aW9uLkNBTkNFTCxcbiAgKSxcbiAgTUVESUNBTF9TRVJWSUNFX0xJU1Q6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFLCBBY3Rpb24uTElTVCksXG5cbiAgLy8gVXNlciBvcGVyYXRpb25zXG4gIFVTRVJfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLlVTRVIsIEFjdGlvbi5DUkVBVEUpLFxuICBVU0VSX1JFQUQ6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVVNFUiwgQWN0aW9uLlJFQUQpLFxuICBVU0VSX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5VU0VSLCBBY3Rpb24uVVBEQVRFKSxcbiAgVVNFUl9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVVNFUiwgQWN0aW9uLkRFTEVURSksXG4gIFVTRVJfTElTVDogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5VU0VSLCBBY3Rpb24uTElTVCksXG4gIFVTRVJfTE9HSU46IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVVNFUiwgQWN0aW9uLkxPR0lOKSxcbiAgVVNFUl9MT0dPVVQ6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuVVNFUiwgQWN0aW9uLkxPR09VVCksXG5cbiAgLy8gTWVtYmVyc2hpcCBvcGVyYXRpb25zXG4gIE1FTUJFUlNISVBfQ1JFQVRFOiBuZXcgT3BlcmF0aW9uKFJlc291cmNlLk1FTUJFUlNISVAsIEFjdGlvbi5DUkVBVEUpLFxuICBNRU1CRVJTSElQX1JFQUQ6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVNQkVSU0hJUCwgQWN0aW9uLlJFQUQpLFxuICBNRU1CRVJTSElQX1VQREFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5NRU1CRVJTSElQLCBBY3Rpb24uVVBEQVRFKSxcbiAgTUVNQkVSU0hJUF9ERUxFVEU6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuTUVNQkVSU0hJUCwgQWN0aW9uLkRFTEVURSksXG5cbiAgLy8gQXVkaXQgbG9nIG9wZXJhdGlvbnNcbiAgQVVESVRfTE9HX0NSRUFURTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5BVURJVF9MT0csIEFjdGlvbi5DUkVBVEUpLFxuICBBVURJVF9MT0dfUkVBRDogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5BVURJVF9MT0csIEFjdGlvbi5SRUFEKSxcbiAgQVVESVRfTE9HX0xJU1Q6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuQVVESVRfTE9HLCBBY3Rpb24uTElTVCksXG4gIEFVRElUX0xPR19BVURJVDogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5BVURJVF9MT0csIEFjdGlvbi5BVURJVCksXG5cbiAgLy8gU3lzdGVtIG9wZXJhdGlvbnNcbiAgU1lTVEVNX0NPTkZJR1VSRTogbmV3IE9wZXJhdGlvbihSZXNvdXJjZS5TWVNURU0sIEFjdGlvbi5DT05GSUdVUkUpLFxuICBTWVNURU1fQVVESVQ6IG5ldyBPcGVyYXRpb24oUmVzb3VyY2UuU1lTVEVNLCBBY3Rpb24uQVVESVQpLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBHZXQgYWxsIHByZWRlZmluZWQgb3BlcmF0aW9ucyBhcyBhbiBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsT3BlcmF0aW9ucygpOiBPcGVyYXRpb25bXSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKE9wZXJhdGlvbnMpO1xufVxuXG4vKipcbiAqIEdldCBhbGwgb3BlcmF0aW9ucyBmb3IgYSBzcGVjaWZpYyByZXNvdXJjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3BlcmF0aW9uc0J5UmVzb3VyY2UocmVzb3VyY2U6IFJlc291cmNlKTogT3BlcmF0aW9uW10ge1xuICByZXR1cm4gZ2V0QWxsT3BlcmF0aW9ucygpLmZpbHRlcigob3ApID0+IG9wLnJlc291cmNlID09PSByZXNvdXJjZSk7XG59XG5cbi8qKlxuICogR2V0IGFsbCBvcGVyYXRpb25zIGZvciBhIHNwZWNpZmljIGFjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3BlcmF0aW9uc0J5QWN0aW9uKGFjdGlvbjogQWN0aW9uKTogT3BlcmF0aW9uW10ge1xuICByZXR1cm4gZ2V0QWxsT3BlcmF0aW9ucygpLmZpbHRlcigob3ApID0+IG9wLmFjdGlvbiA9PT0gYWN0aW9uKTtcbn1cbiJdfQ==
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Resource types for operations
3
+ */
4
+ export declare enum Resource {
5
+ ACCOUNT = "ACCOUNT",
6
+ ACCOUNT_OWNERSHIP = "ACCOUNT_OWNERSHIP",
7
+ ACCOUNT_PREFERENCES = "ACCOUNT_PREFERENCES",
8
+ USER = "USER",
9
+ CONTACT = "CONTACT",
10
+ PATIENT = "PATIENT",
11
+ PATIENT_MEDICAL_NOTES = "PATIENT_MEDICAL_NOTES",
12
+ PATIENT_MEDICAL_PROPERTIES = "PATIENT_MEDICAL_PROPERTIES",
13
+ PATIENT_PUBLIC_PROPERTIES = "PATIENT_PUBLIC_PROPERTIES",
14
+ PATIENT_PAYMENT = "PATIENT_PAYMENT",
15
+ MEDICAL_SERVICE = "MEDICAL_SERVICE",
16
+ MEDICAL_SERVICE_NOTE = "MEDICAL_SERVICE_NOTE",
17
+ MEDICAL_SERVICE_SCHEDULE = "MEDICAL_SERVICE_SCHEDULE",
18
+ MEDICAL_SERVICE_FEES = "MEDICAL_SERVICE_FEES",
19
+ MEDICAL_SERVICE_STATUS = "MEDICAL_SERVICE_STATUS",
20
+ MEDICAL_NOTE = "MEDICAL_NOTE",
21
+ MEDICAL_RECORD = "MEDICAL_RECORD",
22
+ MEDICAL_HISTORY = "MEDICAL_HISTORY",
23
+ MEDICAL_HISTORY_MODEL = "MEDICAL_HISTORY_MODEL",
24
+ PRESCRIPTION = "PRESCRIPTION",
25
+ DIAGNOSIS = "DIAGNOSIS",
26
+ OBSERVATION = "OBSERVATION",
27
+ MEDICATION = "MEDICATION",
28
+ ALLERGY = "ALLERGY",
29
+ IMMUNIZATION = "IMMUNIZATION",
30
+ PROCEDURE = "PROCEDURE",
31
+ CLINICAL_NOTE = "CLINICAL_NOTE",
32
+ VITAL_SIGNS = "VITAL_SIGNS",
33
+ MEASURE_MODEL = "MEASURE_MODEL",
34
+ CALCULATED_MEASURE_MODEL = "CALCULATED_MEASURE_MODEL",
35
+ UPLOADED_DOCUMENT = "UPLOADED_DOCUMENT",
36
+ DOCUMENT_LAYOUT = "DOCUMENT_LAYOUT",
37
+ GENERATED_DOCUMENT = "GENERATED_DOCUMENT",
38
+ DOCUMENT_MODEL = "DOCUMENT_MODEL",
39
+ SNIPPET = "SNIPPET",
40
+ LOCATION = "LOCATION",
41
+ TASK_TYPE = "TASK_TYPE",
42
+ LAB_RESULT = "LAB_RESULT",
43
+ IMAGING = "IMAGING",
44
+ MEMBERSHIP = "MEMBERSHIP",
45
+ SETTINGS = "SETTINGS",
46
+ NOTIFICATION = "NOTIFICATION",
47
+ REPORT = "REPORT",
48
+ AUDIT_LOG = "AUDIT_LOG",
49
+ SYSTEM = "SYSTEM",
50
+ PUBLIC_RESOURCE = "PUBLIC_RESOURCE",
51
+ MEDICAL_RESOURCE = "MEDICAL_RESOURCE"
52
+ }
53
+ /**
54
+ * Medical resources - require special access control
55
+ */
56
+ export declare const MEDICAL_RESOURCES: Resource[];
57
+ /**
58
+ * Public resources - standard access control
59
+ */
60
+ export declare const PUBLIC_RESOURCES: Resource[];
61
+ /**
62
+ * Check if a resource is medical
63
+ */
64
+ export declare function isMedicalResource(resource: Resource): boolean;
65
+ /**
66
+ * Check if a resource is public
67
+ */
68
+ export declare function isPublicResource(resource: Resource): boolean;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PUBLIC_RESOURCES = exports.MEDICAL_RESOURCES = exports.Resource = void 0;
4
+ exports.isMedicalResource = isMedicalResource;
5
+ exports.isPublicResource = isPublicResource;
6
+ /**
7
+ * Resource types for operations
8
+ */
9
+ var Resource;
10
+ (function (Resource) {
11
+ // Account & Ownership
12
+ Resource["ACCOUNT"] = "ACCOUNT";
13
+ Resource["ACCOUNT_OWNERSHIP"] = "ACCOUNT_OWNERSHIP";
14
+ Resource["ACCOUNT_PREFERENCES"] = "ACCOUNT_PREFERENCES";
15
+ // User & Contact
16
+ Resource["USER"] = "USER";
17
+ Resource["CONTACT"] = "CONTACT";
18
+ // Patient resources
19
+ Resource["PATIENT"] = "PATIENT";
20
+ Resource["PATIENT_MEDICAL_NOTES"] = "PATIENT_MEDICAL_NOTES";
21
+ Resource["PATIENT_MEDICAL_PROPERTIES"] = "PATIENT_MEDICAL_PROPERTIES";
22
+ Resource["PATIENT_PUBLIC_PROPERTIES"] = "PATIENT_PUBLIC_PROPERTIES";
23
+ Resource["PATIENT_PAYMENT"] = "PATIENT_PAYMENT";
24
+ // Medical Service
25
+ Resource["MEDICAL_SERVICE"] = "MEDICAL_SERVICE";
26
+ Resource["MEDICAL_SERVICE_NOTE"] = "MEDICAL_SERVICE_NOTE";
27
+ Resource["MEDICAL_SERVICE_SCHEDULE"] = "MEDICAL_SERVICE_SCHEDULE";
28
+ Resource["MEDICAL_SERVICE_FEES"] = "MEDICAL_SERVICE_FEES";
29
+ Resource["MEDICAL_SERVICE_STATUS"] = "MEDICAL_SERVICE_STATUS";
30
+ // Medical resources
31
+ Resource["MEDICAL_NOTE"] = "MEDICAL_NOTE";
32
+ Resource["MEDICAL_RECORD"] = "MEDICAL_RECORD";
33
+ Resource["MEDICAL_HISTORY"] = "MEDICAL_HISTORY";
34
+ Resource["MEDICAL_HISTORY_MODEL"] = "MEDICAL_HISTORY_MODEL";
35
+ Resource["PRESCRIPTION"] = "PRESCRIPTION";
36
+ Resource["DIAGNOSIS"] = "DIAGNOSIS";
37
+ Resource["OBSERVATION"] = "OBSERVATION";
38
+ Resource["MEDICATION"] = "MEDICATION";
39
+ Resource["ALLERGY"] = "ALLERGY";
40
+ Resource["IMMUNIZATION"] = "IMMUNIZATION";
41
+ Resource["PROCEDURE"] = "PROCEDURE";
42
+ // Clinical & Measurements
43
+ Resource["CLINICAL_NOTE"] = "CLINICAL_NOTE";
44
+ Resource["VITAL_SIGNS"] = "VITAL_SIGNS";
45
+ Resource["MEASURE_MODEL"] = "MEASURE_MODEL";
46
+ Resource["CALCULATED_MEASURE_MODEL"] = "CALCULATED_MEASURE_MODEL";
47
+ // Documents
48
+ Resource["UPLOADED_DOCUMENT"] = "UPLOADED_DOCUMENT";
49
+ Resource["DOCUMENT_LAYOUT"] = "DOCUMENT_LAYOUT";
50
+ Resource["GENERATED_DOCUMENT"] = "GENERATED_DOCUMENT";
51
+ Resource["DOCUMENT_MODEL"] = "DOCUMENT_MODEL";
52
+ Resource["SNIPPET"] = "SNIPPET";
53
+ // Scheduling & Location
54
+ Resource["LOCATION"] = "LOCATION";
55
+ Resource["TASK_TYPE"] = "TASK_TYPE";
56
+ // Diagnostic
57
+ Resource["LAB_RESULT"] = "LAB_RESULT";
58
+ Resource["IMAGING"] = "IMAGING";
59
+ // Membership & Settings
60
+ Resource["MEMBERSHIP"] = "MEMBERSHIP";
61
+ Resource["SETTINGS"] = "SETTINGS";
62
+ // System
63
+ Resource["NOTIFICATION"] = "NOTIFICATION";
64
+ Resource["REPORT"] = "REPORT";
65
+ Resource["AUDIT_LOG"] = "AUDIT_LOG";
66
+ Resource["SYSTEM"] = "SYSTEM";
67
+ // Generic resources
68
+ Resource["PUBLIC_RESOURCE"] = "PUBLIC_RESOURCE";
69
+ Resource["MEDICAL_RESOURCE"] = "MEDICAL_RESOURCE";
70
+ })(Resource || (exports.Resource = Resource = {}));
71
+ /**
72
+ * Medical resources - require special access control
73
+ */
74
+ exports.MEDICAL_RESOURCES = [
75
+ Resource.PATIENT,
76
+ Resource.PATIENT_MEDICAL_NOTES,
77
+ Resource.PATIENT_MEDICAL_PROPERTIES,
78
+ Resource.PATIENT_PAYMENT,
79
+ Resource.MEDICAL_SERVICE,
80
+ Resource.MEDICAL_SERVICE_NOTE,
81
+ Resource.MEDICAL_SERVICE_SCHEDULE,
82
+ Resource.MEDICAL_SERVICE_FEES,
83
+ Resource.MEDICAL_SERVICE_STATUS,
84
+ Resource.MEDICAL_NOTE,
85
+ Resource.MEDICAL_RECORD,
86
+ Resource.MEDICAL_HISTORY,
87
+ Resource.MEDICAL_HISTORY_MODEL,
88
+ Resource.PRESCRIPTION,
89
+ Resource.DIAGNOSIS,
90
+ Resource.OBSERVATION,
91
+ Resource.MEDICATION,
92
+ Resource.ALLERGY,
93
+ Resource.IMMUNIZATION,
94
+ Resource.PROCEDURE,
95
+ Resource.CLINICAL_NOTE,
96
+ Resource.VITAL_SIGNS,
97
+ Resource.MEASURE_MODEL,
98
+ Resource.CALCULATED_MEASURE_MODEL,
99
+ Resource.LAB_RESULT,
100
+ Resource.IMAGING,
101
+ Resource.MEDICAL_RESOURCE,
102
+ ];
103
+ /**
104
+ * Public resources - standard access control
105
+ */
106
+ exports.PUBLIC_RESOURCES = [
107
+ Resource.ACCOUNT,
108
+ Resource.ACCOUNT_OWNERSHIP,
109
+ Resource.ACCOUNT_PREFERENCES,
110
+ Resource.USER,
111
+ Resource.CONTACT,
112
+ Resource.PATIENT_PUBLIC_PROPERTIES,
113
+ Resource.UPLOADED_DOCUMENT,
114
+ Resource.DOCUMENT_LAYOUT,
115
+ Resource.GENERATED_DOCUMENT,
116
+ Resource.DOCUMENT_MODEL,
117
+ Resource.SNIPPET,
118
+ Resource.LOCATION,
119
+ Resource.TASK_TYPE,
120
+ Resource.MEMBERSHIP,
121
+ Resource.SETTINGS,
122
+ Resource.NOTIFICATION,
123
+ Resource.REPORT,
124
+ Resource.AUDIT_LOG,
125
+ Resource.SYSTEM,
126
+ Resource.PUBLIC_RESOURCE,
127
+ ];
128
+ /**
129
+ * Check if a resource is medical
130
+ */
131
+ function isMedicalResource(resource) {
132
+ return exports.MEDICAL_RESOURCES.includes(resource);
133
+ }
134
+ /**
135
+ * Check if a resource is public
136
+ */
137
+ function isPublicResource(resource) {
138
+ return exports.PUBLIC_RESOURCES.includes(resource);
139
+ }
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBJQSw4Q0FFQztBQUtELDRDQUVDO0FBbkpEOztHQUVHO0FBQ0gsSUFBWSxRQXVFWDtBQXZFRCxXQUFZLFFBQVE7SUFDbEIsc0JBQXNCO0lBQ3RCLCtCQUFtQixDQUFBO0lBQ25CLG1EQUF1QyxDQUFBO0lBQ3ZDLHVEQUEyQyxDQUFBO0lBRTNDLGlCQUFpQjtJQUNqQix5QkFBYSxDQUFBO0lBQ2IsK0JBQW1CLENBQUE7SUFFbkIsb0JBQW9CO0lBQ3BCLCtCQUFtQixDQUFBO0lBQ25CLDJEQUErQyxDQUFBO0lBQy9DLHFFQUF5RCxDQUFBO0lBQ3pELG1FQUF1RCxDQUFBO0lBQ3ZELCtDQUFtQyxDQUFBO0lBRW5DLGtCQUFrQjtJQUNsQiwrQ0FBbUMsQ0FBQTtJQUNuQyx5REFBNkMsQ0FBQTtJQUM3QyxpRUFBcUQsQ0FBQTtJQUNyRCx5REFBNkMsQ0FBQTtJQUM3Qyw2REFBaUQsQ0FBQTtJQUVqRCxvQkFBb0I7SUFDcEIseUNBQTZCLENBQUE7SUFDN0IsNkNBQWlDLENBQUE7SUFDakMsK0NBQW1DLENBQUE7SUFDbkMsMkRBQStDLENBQUE7SUFDL0MseUNBQTZCLENBQUE7SUFDN0IsbUNBQXVCLENBQUE7SUFDdkIsdUNBQTJCLENBQUE7SUFDM0IscUNBQXlCLENBQUE7SUFDekIsK0JBQW1CLENBQUE7SUFDbkIseUNBQTZCLENBQUE7SUFDN0IsbUNBQXVCLENBQUE7SUFFdkIsMEJBQTBCO0lBQzFCLDJDQUErQixDQUFBO0lBQy9CLHVDQUEyQixDQUFBO0lBQzNCLDJDQUErQixDQUFBO0lBQy9CLGlFQUFxRCxDQUFBO0lBRXJELFlBQVk7SUFDWixtREFBdUMsQ0FBQTtJQUN2QywrQ0FBbUMsQ0FBQTtJQUNuQyxxREFBeUMsQ0FBQTtJQUN6Qyw2Q0FBaUMsQ0FBQTtJQUNqQywrQkFBbUIsQ0FBQTtJQUVuQix3QkFBd0I7SUFDeEIsaUNBQXFCLENBQUE7SUFDckIsbUNBQXVCLENBQUE7SUFFdkIsYUFBYTtJQUNiLHFDQUF5QixDQUFBO0lBQ3pCLCtCQUFtQixDQUFBO0lBRW5CLHdCQUF3QjtJQUN4QixxQ0FBeUIsQ0FBQTtJQUN6QixpQ0FBcUIsQ0FBQTtJQUVyQixTQUFTO0lBQ1QseUNBQTZCLENBQUE7SUFDN0IsNkJBQWlCLENBQUE7SUFDakIsbUNBQXVCLENBQUE7SUFDdkIsNkJBQWlCLENBQUE7SUFFakIsb0JBQW9CO0lBQ3BCLCtDQUFtQyxDQUFBO0lBQ25DLGlEQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUF2RVcsUUFBUSx3QkFBUixRQUFRLFFBdUVuQjtBQUVEOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBZTtJQUMzQyxRQUFRLENBQUMsT0FBTztJQUNoQixRQUFRLENBQUMscUJBQXFCO0lBQzlCLFFBQVEsQ0FBQywwQkFBMEI7SUFDbkMsUUFBUSxDQUFDLGVBQWU7SUFDeEIsUUFBUSxDQUFDLGVBQWU7SUFDeEIsUUFBUSxDQUFDLG9CQUFvQjtJQUM3QixRQUFRLENBQUMsd0JBQXdCO0lBQ2pDLFFBQVEsQ0FBQyxvQkFBb0I7SUFDN0IsUUFBUSxDQUFDLHNCQUFzQjtJQUMvQixRQUFRLENBQUMsWUFBWTtJQUNyQixRQUFRLENBQUMsY0FBYztJQUN2QixRQUFRLENBQUMsZUFBZTtJQUN4QixRQUFRLENBQUMscUJBQXFCO0lBQzlCLFFBQVEsQ0FBQyxZQUFZO0lBQ3JCLFFBQVEsQ0FBQyxTQUFTO0lBQ2xCLFFBQVEsQ0FBQyxXQUFXO0lBQ3BCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxZQUFZO0lBQ3JCLFFBQVEsQ0FBQyxTQUFTO0lBQ2xCLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyxXQUFXO0lBQ3BCLFFBQVEsQ0FBQyxhQUFhO0lBQ3RCLFFBQVEsQ0FBQyx3QkFBd0I7SUFDakMsUUFBUSxDQUFDLFVBQVU7SUFDbkIsUUFBUSxDQUFDLE9BQU87SUFDaEIsUUFBUSxDQUFDLGdCQUFnQjtDQUMxQixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFlO0lBQzFDLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxpQkFBaUI7SUFDMUIsUUFBUSxDQUFDLG1CQUFtQjtJQUM1QixRQUFRLENBQUMsSUFBSTtJQUNiLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyx5QkFBeUI7SUFDbEMsUUFBUSxDQUFDLGlCQUFpQjtJQUMxQixRQUFRLENBQUMsZUFBZTtJQUN4QixRQUFRLENBQUMsa0JBQWtCO0lBQzNCLFFBQVEsQ0FBQyxjQUFjO0lBQ3ZCLFFBQVEsQ0FBQyxPQUFPO0lBQ2hCLFFBQVEsQ0FBQyxRQUFRO0lBQ2pCLFFBQVEsQ0FBQyxTQUFTO0lBQ2xCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxRQUFRO0lBQ2pCLFFBQVEsQ0FBQyxZQUFZO0lBQ3JCLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLFNBQVM7SUFDbEIsUUFBUSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsZUFBZTtDQUN6QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxRQUFrQjtJQUNsRCxPQUFPLHlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFrQjtJQUNqRCxPQUFPLHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSB0eXBlcyBmb3Igb3BlcmF0aW9uc1xuICovXG5leHBvcnQgZW51bSBSZXNvdXJjZSB7XG4gIC8vIEFjY291bnQgJiBPd25lcnNoaXBcbiAgQUNDT1VOVCA9IFwiQUNDT1VOVFwiLFxuICBBQ0NPVU5UX09XTkVSU0hJUCA9IFwiQUNDT1VOVF9PV05FUlNISVBcIixcbiAgQUNDT1VOVF9QUkVGRVJFTkNFUyA9IFwiQUNDT1VOVF9QUkVGRVJFTkNFU1wiLFxuXG4gIC8vIFVzZXIgJiBDb250YWN0XG4gIFVTRVIgPSBcIlVTRVJcIixcbiAgQ09OVEFDVCA9IFwiQ09OVEFDVFwiLFxuXG4gIC8vIFBhdGllbnQgcmVzb3VyY2VzXG4gIFBBVElFTlQgPSBcIlBBVElFTlRcIixcbiAgUEFUSUVOVF9NRURJQ0FMX05PVEVTID0gXCJQQVRJRU5UX01FRElDQUxfTk9URVNcIixcbiAgUEFUSUVOVF9NRURJQ0FMX1BST1BFUlRJRVMgPSBcIlBBVElFTlRfTUVESUNBTF9QUk9QRVJUSUVTXCIsXG4gIFBBVElFTlRfUFVCTElDX1BST1BFUlRJRVMgPSBcIlBBVElFTlRfUFVCTElDX1BST1BFUlRJRVNcIixcbiAgUEFUSUVOVF9QQVlNRU5UID0gXCJQQVRJRU5UX1BBWU1FTlRcIixcblxuICAvLyBNZWRpY2FsIFNlcnZpY2VcbiAgTUVESUNBTF9TRVJWSUNFID0gXCJNRURJQ0FMX1NFUlZJQ0VcIixcbiAgTUVESUNBTF9TRVJWSUNFX05PVEUgPSBcIk1FRElDQUxfU0VSVklDRV9OT1RFXCIsXG4gIE1FRElDQUxfU0VSVklDRV9TQ0hFRFVMRSA9IFwiTUVESUNBTF9TRVJWSUNFX1NDSEVEVUxFXCIsXG4gIE1FRElDQUxfU0VSVklDRV9GRUVTID0gXCJNRURJQ0FMX1NFUlZJQ0VfRkVFU1wiLFxuICBNRURJQ0FMX1NFUlZJQ0VfU1RBVFVTID0gXCJNRURJQ0FMX1NFUlZJQ0VfU1RBVFVTXCIsXG5cbiAgLy8gTWVkaWNhbCByZXNvdXJjZXNcbiAgTUVESUNBTF9OT1RFID0gXCJNRURJQ0FMX05PVEVcIixcbiAgTUVESUNBTF9SRUNPUkQgPSBcIk1FRElDQUxfUkVDT1JEXCIsXG4gIE1FRElDQUxfSElTVE9SWSA9IFwiTUVESUNBTF9ISVNUT1JZXCIsXG4gIE1FRElDQUxfSElTVE9SWV9NT0RFTCA9IFwiTUVESUNBTF9ISVNUT1JZX01PREVMXCIsXG4gIFBSRVNDUklQVElPTiA9IFwiUFJFU0NSSVBUSU9OXCIsXG4gIERJQUdOT1NJUyA9IFwiRElBR05PU0lTXCIsXG4gIE9CU0VSVkFUSU9OID0gXCJPQlNFUlZBVElPTlwiLFxuICBNRURJQ0FUSU9OID0gXCJNRURJQ0FUSU9OXCIsXG4gIEFMTEVSR1kgPSBcIkFMTEVSR1lcIixcbiAgSU1NVU5JWkFUSU9OID0gXCJJTU1VTklaQVRJT05cIixcbiAgUFJPQ0VEVVJFID0gXCJQUk9DRURVUkVcIixcblxuICAvLyBDbGluaWNhbCAmIE1lYXN1cmVtZW50c1xuICBDTElOSUNBTF9OT1RFID0gXCJDTElOSUNBTF9OT1RFXCIsXG4gIFZJVEFMX1NJR05TID0gXCJWSVRBTF9TSUdOU1wiLFxuICBNRUFTVVJFX01PREVMID0gXCJNRUFTVVJFX01PREVMXCIsXG4gIENBTENVTEFURURfTUVBU1VSRV9NT0RFTCA9IFwiQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMXCIsXG5cbiAgLy8gRG9jdW1lbnRzXG4gIFVQTE9BREVEX0RPQ1VNRU5UID0gXCJVUExPQURFRF9ET0NVTUVOVFwiLFxuICBET0NVTUVOVF9MQVlPVVQgPSBcIkRPQ1VNRU5UX0xBWU9VVFwiLFxuICBHRU5FUkFURURfRE9DVU1FTlQgPSBcIkdFTkVSQVRFRF9ET0NVTUVOVFwiLFxuICBET0NVTUVOVF9NT0RFTCA9IFwiRE9DVU1FTlRfTU9ERUxcIixcbiAgU05JUFBFVCA9IFwiU05JUFBFVFwiLFxuXG4gIC8vIFNjaGVkdWxpbmcgJiBMb2NhdGlvblxuICBMT0NBVElPTiA9IFwiTE9DQVRJT05cIixcbiAgVEFTS19UWVBFID0gXCJUQVNLX1RZUEVcIixcblxuICAvLyBEaWFnbm9zdGljXG4gIExBQl9SRVNVTFQgPSBcIkxBQl9SRVNVTFRcIixcbiAgSU1BR0lORyA9IFwiSU1BR0lOR1wiLFxuXG4gIC8vIE1lbWJlcnNoaXAgJiBTZXR0aW5nc1xuICBNRU1CRVJTSElQID0gXCJNRU1CRVJTSElQXCIsXG4gIFNFVFRJTkdTID0gXCJTRVRUSU5HU1wiLFxuXG4gIC8vIFN5c3RlbVxuICBOT1RJRklDQVRJT04gPSBcIk5PVElGSUNBVElPTlwiLFxuICBSRVBPUlQgPSBcIlJFUE9SVFwiLFxuICBBVURJVF9MT0cgPSBcIkFVRElUX0xPR1wiLFxuICBTWVNURU0gPSBcIlNZU1RFTVwiLFxuXG4gIC8vIEdlbmVyaWMgcmVzb3VyY2VzXG4gIFBVQkxJQ19SRVNPVVJDRSA9IFwiUFVCTElDX1JFU09VUkNFXCIsXG4gIE1FRElDQUxfUkVTT1VSQ0UgPSBcIk1FRElDQUxfUkVTT1VSQ0VcIixcbn1cblxuLyoqXG4gKiBNZWRpY2FsIHJlc291cmNlcyAtIHJlcXVpcmUgc3BlY2lhbCBhY2Nlc3MgY29udHJvbFxuICovXG5leHBvcnQgY29uc3QgTUVESUNBTF9SRVNPVVJDRVM6IFJlc291cmNlW10gPSBbXG4gIFJlc291cmNlLlBBVElFTlQsXG4gIFJlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFUyxcbiAgUmVzb3VyY2UuUEFUSUVOVF9NRURJQ0FMX1BST1BFUlRJRVMsXG4gIFJlc291cmNlLlBBVElFTlRfUEFZTUVOVCxcbiAgUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFLFxuICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URSxcbiAgUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX1NDSEVEVUxFLFxuICBSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfRkVFUyxcbiAgUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX1NUQVRVUyxcbiAgUmVzb3VyY2UuTUVESUNBTF9OT1RFLFxuICBSZXNvdXJjZS5NRURJQ0FMX1JFQ09SRCxcbiAgUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZLFxuICBSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUllfTU9ERUwsXG4gIFJlc291cmNlLlBSRVNDUklQVElPTixcbiAgUmVzb3VyY2UuRElBR05PU0lTLFxuICBSZXNvdXJjZS5PQlNFUlZBVElPTixcbiAgUmVzb3VyY2UuTUVESUNBVElPTixcbiAgUmVzb3VyY2UuQUxMRVJHWSxcbiAgUmVzb3VyY2UuSU1NVU5JWkFUSU9OLFxuICBSZXNvdXJjZS5QUk9DRURVUkUsXG4gIFJlc291cmNlLkNMSU5JQ0FMX05PVEUsXG4gIFJlc291cmNlLlZJVEFMX1NJR05TLFxuICBSZXNvdXJjZS5NRUFTVVJFX01PREVMLFxuICBSZXNvdXJjZS5DQUxDVUxBVEVEX01FQVNVUkVfTU9ERUwsXG4gIFJlc291cmNlLkxBQl9SRVNVTFQsXG4gIFJlc291cmNlLklNQUdJTkcsXG4gIFJlc291cmNlLk1FRElDQUxfUkVTT1VSQ0UsXG5dO1xuXG4vKipcbiAqIFB1YmxpYyByZXNvdXJjZXMgLSBzdGFuZGFyZCBhY2Nlc3MgY29udHJvbFxuICovXG5leHBvcnQgY29uc3QgUFVCTElDX1JFU09VUkNFUzogUmVzb3VyY2VbXSA9IFtcbiAgUmVzb3VyY2UuQUNDT1VOVCxcbiAgUmVzb3VyY2UuQUNDT1VOVF9PV05FUlNISVAsXG4gIFJlc291cmNlLkFDQ09VTlRfUFJFRkVSRU5DRVMsXG4gIFJlc291cmNlLlVTRVIsXG4gIFJlc291cmNlLkNPTlRBQ1QsXG4gIFJlc291cmNlLlBBVElFTlRfUFVCTElDX1BST1BFUlRJRVMsXG4gIFJlc291cmNlLlVQTE9BREVEX0RPQ1VNRU5ULFxuICBSZXNvdXJjZS5ET0NVTUVOVF9MQVlPVVQsXG4gIFJlc291cmNlLkdFTkVSQVRFRF9ET0NVTUVOVCxcbiAgUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUwsXG4gIFJlc291cmNlLlNOSVBQRVQsXG4gIFJlc291cmNlLkxPQ0FUSU9OLFxuICBSZXNvdXJjZS5UQVNLX1RZUEUsXG4gIFJlc291cmNlLk1FTUJFUlNISVAsXG4gIFJlc291cmNlLlNFVFRJTkdTLFxuICBSZXNvdXJjZS5OT1RJRklDQVRJT04sXG4gIFJlc291cmNlLlJFUE9SVCxcbiAgUmVzb3VyY2UuQVVESVRfTE9HLFxuICBSZXNvdXJjZS5TWVNURU0sXG4gIFJlc291cmNlLlBVQkxJQ19SRVNPVVJDRSxcbl07XG5cbi8qKlxuICogQ2hlY2sgaWYgYSByZXNvdXJjZSBpcyBtZWRpY2FsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01lZGljYWxSZXNvdXJjZShyZXNvdXJjZTogUmVzb3VyY2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIE1FRElDQUxfUkVTT1VSQ0VTLmluY2x1ZGVzKHJlc291cmNlKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHJlc291cmNlIGlzIHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQdWJsaWNSZXNvdXJjZShyZXNvdXJjZTogUmVzb3VyY2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIFBVQkxJQ19SRVNPVVJDRVMuaW5jbHVkZXMocmVzb3VyY2UpO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export { SSM_PARAM_KEY } from "./keys";
2
+ export { buildSSMPath, buildSSMPathWithPrefix, extractEnvFromPath, extractKeyFromPath, isEnvAgnostic, } from "./utils";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEnvAgnostic = exports.extractKeyFromPath = exports.extractEnvFromPath = exports.buildSSMPathWithPrefix = exports.buildSSMPath = exports.SSM_PARAM_KEY = void 0;
4
+ var keys_1 = require("./keys");
5
+ Object.defineProperty(exports, "SSM_PARAM_KEY", { enumerable: true, get: function () { return keys_1.SSM_PARAM_KEY; } });
6
+ var utils_1 = require("./utils");
7
+ Object.defineProperty(exports, "buildSSMPath", { enumerable: true, get: function () { return utils_1.buildSSMPath; } });
8
+ Object.defineProperty(exports, "buildSSMPathWithPrefix", { enumerable: true, get: function () { return utils_1.buildSSMPathWithPrefix; } });
9
+ Object.defineProperty(exports, "extractEnvFromPath", { enumerable: true, get: function () { return utils_1.extractEnvFromPath; } });
10
+ Object.defineProperty(exports, "extractKeyFromPath", { enumerable: true, get: function () { return utils_1.extractKeyFromPath; } });
11
+ Object.defineProperty(exports, "isEnvAgnostic", { enumerable: true, get: function () { return utils_1.isEnvAgnostic; } });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3NtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUF1QztBQUE5QixxR0FBQSxhQUFhLE9BQUE7QUFDdEIsaUNBTWlCO0FBTGYscUdBQUEsWUFBWSxPQUFBO0FBQ1osK0dBQUEsc0JBQXNCLE9BQUE7QUFDdEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsc0dBQUEsYUFBYSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU1NNX1BBUkFNX0tFWSB9IGZyb20gXCIuL2tleXNcIjtcbmV4cG9ydCB7XG4gIGJ1aWxkU1NNUGF0aCxcbiAgYnVpbGRTU01QYXRoV2l0aFByZWZpeCxcbiAgZXh0cmFjdEVudkZyb21QYXRoLFxuICBleHRyYWN0S2V5RnJvbVBhdGgsXG4gIGlzRW52QWdub3N0aWMsXG59IGZyb20gXCIuL3V0aWxzXCI7XG4iXX0=
@@ -0,0 +1,27 @@
1
+ /**
2
+ * SSM Parameter Store keys used across AWS stacks
3
+ */
4
+ export declare enum SSM_PARAM_KEY {
5
+ COGNITO_USER_POOL_ID = "user-pool-id",
6
+ COGNITO_USER_POOL_WEB_CLIENT_ID = "user-pool-web-client-id",
7
+ COGNITO_OAUTH_DOMAIN = "oauth-domain",
8
+ RUM_GUEST_ROLE_ARN = "rum-guest-rome-arn",
9
+ RUM_IDENTITY_POOL_ID = "rum-identity-pool-id",
10
+ RUM_APP_ID = "rum-app-id",
11
+ GRAPHQL_HTTP_URL = "graphql-http-url",
12
+ GRAPHQL_WS_URL = "graphql-ws-url",
13
+ GRAPHQL_HOST = "graphql-host",
14
+ GRAPHQL_API_ID = "graphql-api-id",
15
+ MEDICAL_ASSETS_AWS_CLOUDFRONT_PRIVATE_KEY = "medical-assets-dist-private-key",
16
+ MEDICAL_ASSETS_AWS_CLOUDFRONT_KEY_ID = "medical-assets-dist-public-key-id",
17
+ MEDICAL_ASSETS_BUCKET_NAME = "medical-assets-bucket-name",
18
+ PUBLIC_ASSETS_BUCKET_NAME = "public-assets-bucket-name",
19
+ DB_USER = "db-user",
20
+ DB_PASSWORD = "db-password",
21
+ MEDICAL_ASSETS_DISTRIBUTION_DOMAIN_NAME = "medical-assets-dist-domain-name",
22
+ BASE_HOST = "base-host",
23
+ EMAIL_FROM_ADDRESS = "email-from-address",
24
+ EVENT_API_REAL_TIME_DNS = "event-api-real-time-dns",
25
+ EVENT_API_HTTP_DNS = "event-api-http-dns",
26
+ NOTIFIED_EVENT_ACTIONS = "notified-event-actions"
27
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SSM_PARAM_KEY = void 0;
4
+ /**
5
+ * SSM Parameter Store keys used across AWS stacks
6
+ */
7
+ var SSM_PARAM_KEY;
8
+ (function (SSM_PARAM_KEY) {
9
+ SSM_PARAM_KEY["COGNITO_USER_POOL_ID"] = "user-pool-id";
10
+ SSM_PARAM_KEY["COGNITO_USER_POOL_WEB_CLIENT_ID"] = "user-pool-web-client-id";
11
+ SSM_PARAM_KEY["COGNITO_OAUTH_DOMAIN"] = "oauth-domain";
12
+ SSM_PARAM_KEY["RUM_GUEST_ROLE_ARN"] = "rum-guest-rome-arn";
13
+ SSM_PARAM_KEY["RUM_IDENTITY_POOL_ID"] = "rum-identity-pool-id";
14
+ SSM_PARAM_KEY["RUM_APP_ID"] = "rum-app-id";
15
+ SSM_PARAM_KEY["GRAPHQL_HTTP_URL"] = "graphql-http-url";
16
+ SSM_PARAM_KEY["GRAPHQL_WS_URL"] = "graphql-ws-url";
17
+ SSM_PARAM_KEY["GRAPHQL_HOST"] = "graphql-host";
18
+ SSM_PARAM_KEY["GRAPHQL_API_ID"] = "graphql-api-id";
19
+ SSM_PARAM_KEY["MEDICAL_ASSETS_AWS_CLOUDFRONT_PRIVATE_KEY"] = "medical-assets-dist-private-key";
20
+ SSM_PARAM_KEY["MEDICAL_ASSETS_AWS_CLOUDFRONT_KEY_ID"] = "medical-assets-dist-public-key-id";
21
+ SSM_PARAM_KEY["MEDICAL_ASSETS_BUCKET_NAME"] = "medical-assets-bucket-name";
22
+ SSM_PARAM_KEY["PUBLIC_ASSETS_BUCKET_NAME"] = "public-assets-bucket-name";
23
+ SSM_PARAM_KEY["DB_USER"] = "db-user";
24
+ SSM_PARAM_KEY["DB_PASSWORD"] = "db-password";
25
+ SSM_PARAM_KEY["MEDICAL_ASSETS_DISTRIBUTION_DOMAIN_NAME"] = "medical-assets-dist-domain-name";
26
+ SSM_PARAM_KEY["BASE_HOST"] = "base-host";
27
+ SSM_PARAM_KEY["EMAIL_FROM_ADDRESS"] = "email-from-address";
28
+ SSM_PARAM_KEY["EVENT_API_REAL_TIME_DNS"] = "event-api-real-time-dns";
29
+ SSM_PARAM_KEY["EVENT_API_HTTP_DNS"] = "event-api-http-dns";
30
+ SSM_PARAM_KEY["NOTIFIED_EVENT_ACTIONS"] = "notified-event-actions";
31
+ })(SSM_PARAM_KEY || (exports.SSM_PARAM_KEY = SSM_PARAM_KEY = {}));
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zc20va2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksYUF1Qlg7QUF2QkQsV0FBWSxhQUFhO0lBQ3ZCLHNEQUFxQyxDQUFBO0lBQ3JDLDRFQUEyRCxDQUFBO0lBQzNELHNEQUFxQyxDQUFBO0lBQ3JDLDBEQUF5QyxDQUFBO0lBQ3pDLDhEQUE2QyxDQUFBO0lBQzdDLDBDQUF5QixDQUFBO0lBQ3pCLHNEQUFxQyxDQUFBO0lBQ3JDLGtEQUFpQyxDQUFBO0lBQ2pDLDhDQUE2QixDQUFBO0lBQzdCLGtEQUFpQyxDQUFBO0lBQ2pDLDhGQUE2RSxDQUFBO0lBQzdFLDJGQUEwRSxDQUFBO0lBQzFFLDBFQUF5RCxDQUFBO0lBQ3pELHdFQUF1RCxDQUFBO0lBQ3ZELG9DQUFtQixDQUFBO0lBQ25CLDRDQUEyQixDQUFBO0lBQzNCLDRGQUEyRSxDQUFBO0lBQzNFLHdDQUF1QixDQUFBO0lBQ3ZCLDBEQUF5QyxDQUFBO0lBQ3pDLG9FQUFtRCxDQUFBO0lBQ25ELDBEQUF5QyxDQUFBO0lBQ3pDLGtFQUFpRCxDQUFBO0FBQ25ELENBQUMsRUF2QlcsYUFBYSw2QkFBYixhQUFhLFFBdUJ4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU1NNIFBhcmFtZXRlciBTdG9yZSBrZXlzIHVzZWQgYWNyb3NzIEFXUyBzdGFja3NcbiAqL1xuZXhwb3J0IGVudW0gU1NNX1BBUkFNX0tFWSB7XG4gIENPR05JVE9fVVNFUl9QT09MX0lEID0gXCJ1c2VyLXBvb2wtaWRcIixcbiAgQ09HTklUT19VU0VSX1BPT0xfV0VCX0NMSUVOVF9JRCA9IFwidXNlci1wb29sLXdlYi1jbGllbnQtaWRcIixcbiAgQ09HTklUT19PQVVUSF9ET01BSU4gPSBcIm9hdXRoLWRvbWFpblwiLFxuICBSVU1fR1VFU1RfUk9MRV9BUk4gPSBcInJ1bS1ndWVzdC1yb21lLWFyblwiLFxuICBSVU1fSURFTlRJVFlfUE9PTF9JRCA9IFwicnVtLWlkZW50aXR5LXBvb2wtaWRcIixcbiAgUlVNX0FQUF9JRCA9IFwicnVtLWFwcC1pZFwiLFxuICBHUkFQSFFMX0hUVFBfVVJMID0gXCJncmFwaHFsLWh0dHAtdXJsXCIsXG4gIEdSQVBIUUxfV1NfVVJMID0gXCJncmFwaHFsLXdzLXVybFwiLFxuICBHUkFQSFFMX0hPU1QgPSBcImdyYXBocWwtaG9zdFwiLFxuICBHUkFQSFFMX0FQSV9JRCA9IFwiZ3JhcGhxbC1hcGktaWRcIixcbiAgTUVESUNBTF9BU1NFVFNfQVdTX0NMT1VERlJPTlRfUFJJVkFURV9LRVkgPSBcIm1lZGljYWwtYXNzZXRzLWRpc3QtcHJpdmF0ZS1rZXlcIixcbiAgTUVESUNBTF9BU1NFVFNfQVdTX0NMT1VERlJPTlRfS0VZX0lEID0gXCJtZWRpY2FsLWFzc2V0cy1kaXN0LXB1YmxpYy1rZXktaWRcIixcbiAgTUVESUNBTF9BU1NFVFNfQlVDS0VUX05BTUUgPSBcIm1lZGljYWwtYXNzZXRzLWJ1Y2tldC1uYW1lXCIsXG4gIFBVQkxJQ19BU1NFVFNfQlVDS0VUX05BTUUgPSBcInB1YmxpYy1hc3NldHMtYnVja2V0LW5hbWVcIixcbiAgREJfVVNFUiA9IFwiZGItdXNlclwiLFxuICBEQl9QQVNTV09SRCA9IFwiZGItcGFzc3dvcmRcIixcbiAgTUVESUNBTF9BU1NFVFNfRElTVFJJQlVUSU9OX0RPTUFJTl9OQU1FID0gXCJtZWRpY2FsLWFzc2V0cy1kaXN0LWRvbWFpbi1uYW1lXCIsXG4gIEJBU0VfSE9TVCA9IFwiYmFzZS1ob3N0XCIsXG4gIEVNQUlMX0ZST01fQUREUkVTUyA9IFwiZW1haWwtZnJvbS1hZGRyZXNzXCIsXG4gIEVWRU5UX0FQSV9SRUFMX1RJTUVfRE5TID0gXCJldmVudC1hcGktcmVhbC10aW1lLWRuc1wiLFxuICBFVkVOVF9BUElfSFRUUF9ETlMgPSBcImV2ZW50LWFwaS1odHRwLWRuc1wiLFxuICBOT1RJRklFRF9FVkVOVF9BQ1RJT05TID0gXCJub3RpZmllZC1ldmVudC1hY3Rpb25zXCIsXG59XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { SSM_PARAM_KEY } from "./keys";
2
+ /**
3
+ * Build SSM parameter path with optional environment prefix
4
+ * @param env - Environment name (e.g., 'dev', 'staging', 'prod'), or null for env-agnostic parameters
5
+ * @param key - SSM parameter key
6
+ * @returns Full SSM parameter path
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * buildSSMPath('prod', SSM_PARAM_KEY.COGNITO_USER_POOL_ID)
11
+ * // Returns: '/prod/user-pool-id'
12
+ *
13
+ * buildSSMPath(null, SSM_PARAM_KEY.DB_USER)
14
+ * // Returns: '/db-user' (env-agnostic)
15
+ * ```
16
+ */
17
+ export declare function buildSSMPath(env: string | null, key: SSM_PARAM_KEY): string;
18
+ /**
19
+ * Build SSM parameter path with custom prefix
20
+ * @param prefix - Custom prefix (e.g., '/myapp/prod')
21
+ * @param key - SSM parameter key
22
+ * @returns Full SSM parameter path
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * buildSSMPathWithPrefix('/myapp/prod', SSM_PARAM_KEY.DB_USER)
27
+ * // Returns: '/myapp/prod/db-user'
28
+ * ```
29
+ */
30
+ export declare function buildSSMPathWithPrefix(prefix: string, key: SSM_PARAM_KEY): string;
31
+ /**
32
+ * Extract environment from SSM parameter path
33
+ * @param path - SSM parameter path
34
+ * @returns Environment name or null if env-agnostic or not found
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * extractEnvFromPath('/prod/user-pool-id')
39
+ * // Returns: 'prod'
40
+ *
41
+ * extractEnvFromPath('/db-user')
42
+ * // Returns: null (env-agnostic parameter)
43
+ * ```
44
+ */
45
+ export declare function extractEnvFromPath(path: string): string | null;
46
+ /**
47
+ * Parse SSM parameter path to extract key
48
+ * @param path - SSM parameter path
49
+ * @returns SSM parameter key or null if not found
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * extractKeyFromPath('/prod/user-pool-id')
54
+ * // Returns: SSM_PARAM_KEY.COGNITO_USER_POOL_ID
55
+ *
56
+ * extractKeyFromPath('/db-user')
57
+ * // Returns: SSM_PARAM_KEY.DB_USER (env-agnostic)
58
+ * ```
59
+ */
60
+ export declare function extractKeyFromPath(path: string): SSM_PARAM_KEY | null;
61
+ /**
62
+ * Check if an SSM parameter path is environment-agnostic
63
+ * @param path - SSM parameter path
64
+ * @returns true if the path is env-agnostic (no environment prefix)
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * isEnvAgnostic('/db-user')
69
+ * // Returns: true
70
+ *
71
+ * isEnvAgnostic('/prod/user-pool-id')
72
+ * // Returns: false
73
+ * ```
74
+ */
75
+ export declare function isEnvAgnostic(path: string): boolean;