@doctorus/common 0.0.41 → 0.0.43

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.
@@ -2,162 +2,99 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getActionLabel = getActionLabel;
4
4
  exports.getResourceLabel = getResourceLabel;
5
+ exports.getResourceCategoryLabel = getResourceCategoryLabel;
5
6
  exports.getOperationLabel = getOperationLabel;
6
7
  const actions_1 = require("./actions");
7
8
  const operation_1 = require("./operation");
8
9
  const resources_1 = require("./resources");
9
10
  const enAction = {
10
11
  [actions_1.Action.CREATE]: 'Create',
11
- [actions_1.Action.READ]: 'Read',
12
- [actions_1.Action.DELETE]: 'Delete',
13
- [actions_1.Action.RETRIEVE]: 'Retrieve',
14
- [actions_1.Action.UPDATE]: 'Update',
15
- [actions_1.Action.PUT]: 'Put',
16
- [actions_1.Action.LIST]: 'List',
17
- [actions_1.Action.MANAGE]: 'Manage',
18
12
  [actions_1.Action.VIEW]: 'View',
19
- [actions_1.Action.SEARCH]: 'Search',
20
- [actions_1.Action.GRANT]: 'Grant',
21
- [actions_1.Action.REVOKE]: 'Revoke',
22
- [actions_1.Action.PRESCRIBE]: 'Prescribe',
23
- [actions_1.Action.DIAGNOSE]: 'Diagnose',
24
- [actions_1.Action.SCHEDULE]: 'Schedule',
13
+ [actions_1.Action.UPDATE]: 'Update',
14
+ [actions_1.Action.DELETE]: 'Delete',
15
+ [actions_1.Action.ASSIGN]: 'Assign',
25
16
  [actions_1.Action.CANCEL]: 'Cancel',
26
- [actions_1.Action.APPROVE]: 'Approve',
27
- [actions_1.Action.REJECT]: 'Reject',
28
- [actions_1.Action.SIGN]: 'Sign',
29
- [actions_1.Action.VERIFY]: 'Verify',
30
- [actions_1.Action.RECOVER]: 'Recover',
31
- [actions_1.Action.DISABLE]: 'Disable',
32
- [actions_1.Action.SET_MEDICAL_SERVICE_STATUS]: 'Set Medical Service Status',
33
- [actions_1.Action.SET_MEDICAL_SERVICE_FEES]: 'Set Medical Service Fees',
34
17
  [actions_1.Action.CHECK_IN]: 'Check In',
35
- [actions_1.Action.UNDO_CHECK_IN]: 'Undo Check In',
36
- [actions_1.Action.START_SERVICE]: 'Start Service',
37
- [actions_1.Action.UNSTART_SERVICE]: 'Undo Start Service',
38
- [actions_1.Action.COMPLETE_SERVICE]: 'Complete Service',
39
- [actions_1.Action.REOPEN_COMPLETED_SERVICE]: 'Reopen Completed Service',
40
- [actions_1.Action.CANCEL_SERVICE]: 'Cancel Service',
41
- [actions_1.Action.UNDO_CANCEL_SERVICE]: 'Undo Cancel Service',
42
- [actions_1.Action.FORCE_RESET_STATUS]: 'Force Reset Status',
43
- [actions_1.Action.CORRECT_TIMESTAMPS]: 'Correct Timestamps',
44
- [actions_1.Action.UPDATE_STATUS]: 'Update Status',
45
- [actions_1.Action.VIEW_PATIENTS]: 'View Patients',
46
- [actions_1.Action.PUT_PATIENT_PAYMENT]: 'Put Patient Payment',
47
- [actions_1.Action.DELETE_PATIENT_PAYMENT]: 'Delete Patient Payment',
48
- [actions_1.Action.EXPORT]: 'Export',
49
- [actions_1.Action.IMPORT]: 'Import',
50
- [actions_1.Action.ARCHIVE]: 'Archive',
51
- [actions_1.Action.RESTORE]: 'Restore',
52
- [actions_1.Action.SHARE]: 'Share',
53
- [actions_1.Action.DOWNLOAD]: 'Download',
54
- [actions_1.Action.UPLOAD]: 'Upload',
55
- [actions_1.Action.ENABLE_CALENDAR_SYNC]: 'Enable Calendar Sync',
56
- [actions_1.Action.DISABLE_CALENDAR_SYNC]: 'Disable Calendar Sync',
57
- [actions_1.Action.REGENERATE_CALENDAR_LINK]: 'Regenerate Calendar Link',
58
- [actions_1.Action.LOGIN]: 'Login',
59
- [actions_1.Action.LOGOUT]: 'Logout',
60
- [actions_1.Action.CONFIGURE]: 'Configure',
61
- [actions_1.Action.AUDIT]: 'Audit',
18
+ [actions_1.Action.COMPLETE]: 'Complete',
19
+ [actions_1.Action.DISABLE]: 'Disable',
20
+ [actions_1.Action.ENABLE]: 'Enable',
21
+ [actions_1.Action.GENERATE]: 'Generate',
22
+ [actions_1.Action.INVITE]: 'Invite',
23
+ [actions_1.Action.REMOVE]: 'Remove',
24
+ [actions_1.Action.ROTATE]: 'Rotate',
25
+ [actions_1.Action.TRANSFER_OWNERSHIP]: 'Transfer Ownership',
62
26
  };
63
27
  const frAction = {
64
28
  [actions_1.Action.CREATE]: 'Creer',
65
- [actions_1.Action.READ]: 'Lire',
66
- [actions_1.Action.DELETE]: 'Supprimer',
67
- [actions_1.Action.RETRIEVE]: 'Recuperer',
68
- [actions_1.Action.UPDATE]: 'Mettre a jour',
69
- [actions_1.Action.PUT]: 'Mettre',
70
- [actions_1.Action.LIST]: 'Lister',
71
- [actions_1.Action.MANAGE]: 'Gerer',
72
29
  [actions_1.Action.VIEW]: 'Voir',
73
- [actions_1.Action.SEARCH]: 'Rechercher',
74
- [actions_1.Action.GRANT]: 'Accorder',
75
- [actions_1.Action.REVOKE]: 'Revoquer',
76
- [actions_1.Action.PRESCRIBE]: 'Prescrire',
77
- [actions_1.Action.DIAGNOSE]: 'Diagnostiquer',
78
- [actions_1.Action.SCHEDULE]: 'Planifier',
30
+ [actions_1.Action.UPDATE]: 'Mettre a jour',
31
+ [actions_1.Action.DELETE]: 'Supprimer',
32
+ [actions_1.Action.ASSIGN]: 'Assigner',
79
33
  [actions_1.Action.CANCEL]: 'Annuler',
80
- [actions_1.Action.APPROVE]: 'Approuver',
81
- [actions_1.Action.REJECT]: 'Rejeter',
82
- [actions_1.Action.SIGN]: 'Signer',
83
- [actions_1.Action.VERIFY]: 'Verifier',
84
- [actions_1.Action.RECOVER]: 'Recuperer',
34
+ [actions_1.Action.CHECK_IN]: 'Enregistrer l arrivee',
35
+ [actions_1.Action.COMPLETE]: 'Terminer',
85
36
  [actions_1.Action.DISABLE]: 'Desactiver',
86
- [actions_1.Action.SET_MEDICAL_SERVICE_STATUS]: 'Definir le statut du service medical',
87
- [actions_1.Action.SET_MEDICAL_SERVICE_FEES]: 'Definir les frais du service medical',
88
- [actions_1.Action.CHECK_IN]: 'Enregistrement a l arrivee',
89
- [actions_1.Action.UNDO_CHECK_IN]: 'Annuler l enregistrement',
90
- [actions_1.Action.START_SERVICE]: 'Commencer le service',
91
- [actions_1.Action.UNSTART_SERVICE]: 'Annuler le debut du service',
92
- [actions_1.Action.COMPLETE_SERVICE]: 'Terminer le service',
93
- [actions_1.Action.REOPEN_COMPLETED_SERVICE]: 'Reouvrir le service termine',
94
- [actions_1.Action.CANCEL_SERVICE]: 'Annuler le service',
95
- [actions_1.Action.UNDO_CANCEL_SERVICE]: 'Annuler l annulation du service',
96
- [actions_1.Action.FORCE_RESET_STATUS]: 'Reinitialiser le statut',
97
- [actions_1.Action.CORRECT_TIMESTAMPS]: 'Corriger les horodatages',
98
- [actions_1.Action.UPDATE_STATUS]: 'Mettre a jour le statut',
99
- [actions_1.Action.VIEW_PATIENTS]: 'Voir les patients',
100
- [actions_1.Action.PUT_PATIENT_PAYMENT]: 'Enregistrer le paiement patient',
101
- [actions_1.Action.DELETE_PATIENT_PAYMENT]: 'Supprimer le paiement patient',
102
- [actions_1.Action.EXPORT]: 'Exporter',
103
- [actions_1.Action.IMPORT]: 'Importer',
104
- [actions_1.Action.ARCHIVE]: 'Archiver',
105
- [actions_1.Action.RESTORE]: 'Restaurer',
106
- [actions_1.Action.SHARE]: 'Partager',
107
- [actions_1.Action.DOWNLOAD]: 'Telecharger',
108
- [actions_1.Action.UPLOAD]: 'Televerser',
109
- [actions_1.Action.ENABLE_CALENDAR_SYNC]: 'Activer la synchronisation du calendrier',
110
- [actions_1.Action.DISABLE_CALENDAR_SYNC]: 'Desactiver la synchronisation du calendrier',
111
- [actions_1.Action.REGENERATE_CALENDAR_LINK]: 'Regenerer le lien du calendrier',
112
- [actions_1.Action.LOGIN]: 'Connexion',
113
- [actions_1.Action.LOGOUT]: 'Deconnexion',
114
- [actions_1.Action.CONFIGURE]: 'Configurer',
115
- [actions_1.Action.AUDIT]: 'Auditer',
37
+ [actions_1.Action.ENABLE]: 'Activer',
38
+ [actions_1.Action.GENERATE]: 'Generer',
39
+ [actions_1.Action.INVITE]: 'Inviter',
40
+ [actions_1.Action.REMOVE]: 'Retirer',
41
+ [actions_1.Action.ROTATE]: 'Tourner',
42
+ [actions_1.Action.TRANSFER_OWNERSHIP]: 'Transferer la propriete',
116
43
  };
117
44
  const frResourceOverrides = {
118
45
  [resources_1.Resource.ACCOUNT]: 'Compte',
119
- [resources_1.Resource.ACCOUNT_GENERAL_SETTINGS]: 'Parametres generaux du compte',
120
- [resources_1.Resource.ACCOUNT_LOCATION]: 'Lieu du compte',
121
- [resources_1.Resource.ACCOUNT_PREFERENCES]: 'Preferences du compte',
122
- [resources_1.Resource.ACCOUNT_SUMMARY]: 'Resume du compte',
123
- [resources_1.Resource.AVAILABLE_SLOT]: 'Creneau disponible',
124
46
  [resources_1.Resource.CALCULATED_MEASURE_MODEL]: 'Modele de mesure calculee',
47
+ [resources_1.Resource.CALENDAR_SETTINGS]: 'Parametres du calendrier',
125
48
  [resources_1.Resource.CALENDAR_SYNC]: 'Synchronisation du calendrier',
126
49
  [resources_1.Resource.CALENDAR_TOKEN]: 'Jeton de calendrier',
127
50
  [resources_1.Resource.CONTACT]: 'Contact',
128
51
  [resources_1.Resource.DOCUMENT_LAYOUT]: 'Mise en page du document',
129
52
  [resources_1.Resource.DOCUMENT_MODEL]: 'Modele de document',
53
+ [resources_1.Resource.GENERAL_SETTINGS]: 'Parametres generaux',
130
54
  [resources_1.Resource.GENERATED_DOCUMENT]: 'Document genere',
131
- [resources_1.Resource.LOG_RECORD]: 'Journal',
55
+ [resources_1.Resource.LOCATION]: 'Lieu',
132
56
  [resources_1.Resource.MEASURE_MODEL]: 'Modele de mesure',
57
+ [resources_1.Resource.MEDICATION_SEARCH]: 'Recherche de medicaments',
133
58
  [resources_1.Resource.MEDICAL_HISTORY]: 'Antecedents medicaux',
134
59
  [resources_1.Resource.MEDICAL_HISTORY_MODEL]: "Modele d'antecedents medicaux",
135
60
  [resources_1.Resource.MEDICAL_SERVICE]: 'Service medical',
136
- [resources_1.Resource.MEDICAL_SERVICE_ASSIGNEES]: 'Assignations du service medical',
137
- [resources_1.Resource.MEDICAL_SERVICE_DESCRIPTION]: 'Description du service medical',
138
- [resources_1.Resource.MEDICAL_SERVICE_FEES]: 'Frais du service medical',
139
- [resources_1.Resource.MEDICAL_SERVICE_LOCATION]: 'Lieu du service medical',
140
61
  [resources_1.Resource.MEDICAL_SERVICE_NOTE]: 'Note du service medical',
141
- [resources_1.Resource.MEDICAL_SERVICE_SCHEDULE]: 'Planning du service medical',
142
- [resources_1.Resource.MEDICAL_SERVICE_STATUS]: 'Statut du service medical',
143
- [resources_1.Resource.MEDICAL_SERVICE_TIMESTAMPS]: 'Horodatages du service medical',
144
62
  [resources_1.Resource.MEMBERSHIP]: 'Adhesion',
145
- [resources_1.Resource.MEDICATION]: 'Medicament',
146
63
  [resources_1.Resource.OBSERVATION]: 'Observation',
147
64
  [resources_1.Resource.PATIENT]: 'Patient',
148
- [resources_1.Resource.PATIENT_MEDICAL_NOTES]: 'Notes medicales du patient',
149
- [resources_1.Resource.PATIENT_MEDICAL_PROPERTIES]: 'Proprietes medicales du patient',
65
+ [resources_1.Resource.PATIENT_MEDICAL_NOTE]: 'Note medicale patient',
150
66
  [resources_1.Resource.PATIENT_PAYMENT]: 'Paiement du patient',
151
- [resources_1.Resource.PATIENT_PROFILE]: 'Profil du patient',
152
- [resources_1.Resource.PATIENT_PUBLIC_PROPERTIES]: 'Proprietes publiques du patient',
153
- [resources_1.Resource.PATIENT_STATUS]: 'Statut du patient',
67
+ [resources_1.Resource.PATIENT_PROPERTY_MODEL]: 'Modele de propriete patient',
68
+ [resources_1.Resource.PREFERENCES]: 'Preferences',
154
69
  [resources_1.Resource.PRESCRIPTION]: 'Ordonnance',
155
70
  [resources_1.Resource.PRESCRIPTION_MODEL]: "Modele d'ordonnance",
71
+ [resources_1.Resource.ROLE]: 'Role',
156
72
  [resources_1.Resource.TASK_TYPE]: 'Type de tache',
157
73
  [resources_1.Resource.UPLOAD_DOCUMENT]: 'Document televerse',
158
74
  [resources_1.Resource.USER]: 'Utilisateur',
159
- [resources_1.Resource.USER_CALENDAR_PREFERENCES]: 'Preferences de calendrier utilisateur',
160
- [resources_1.Resource.USER_PREFERENCES]: 'Preferences utilisateur',
75
+ [resources_1.Resource.AVAILABLE_SLOTS]: 'Creneaux disponibles',
76
+ };
77
+ const enResourceCategory = {
78
+ [resources_1.ResourceCategory.CORE]: 'Core',
79
+ [resources_1.ResourceCategory.MEMBERSHIP]: 'Membership',
80
+ [resources_1.ResourceCategory.CLINICAL]: 'Clinical',
81
+ [resources_1.ResourceCategory.DOCUMENTS]: 'Documents',
82
+ [resources_1.ResourceCategory.SETTINGS]: 'Settings',
83
+ [resources_1.ResourceCategory.INTEGRATION]: 'Integration',
84
+ [resources_1.ResourceCategory.SCHEDULING]: 'Scheduling',
85
+ [resources_1.ResourceCategory.EXTERNAL]: 'External',
86
+ [resources_1.ResourceCategory.SYSTEM]: 'System',
87
+ };
88
+ const frResourceCategory = {
89
+ [resources_1.ResourceCategory.CORE]: 'Noyau',
90
+ [resources_1.ResourceCategory.MEMBERSHIP]: 'Adhesion',
91
+ [resources_1.ResourceCategory.CLINICAL]: 'Clinique',
92
+ [resources_1.ResourceCategory.DOCUMENTS]: 'Documents',
93
+ [resources_1.ResourceCategory.SETTINGS]: 'Parametres',
94
+ [resources_1.ResourceCategory.INTEGRATION]: 'Integration',
95
+ [resources_1.ResourceCategory.SCHEDULING]: 'Planification',
96
+ [resources_1.ResourceCategory.EXTERNAL]: 'Externe',
97
+ [resources_1.ResourceCategory.SYSTEM]: 'Systeme',
161
98
  };
162
99
  function humanizeKey(key) {
163
100
  return key
@@ -174,6 +111,9 @@ function getResourceLabel(resource, locale = 'us-EN') {
174
111
  return frResourceOverrides[resource] ?? humanizeKey(resource);
175
112
  return humanizeKey(resource);
176
113
  }
114
+ function getResourceCategoryLabel(category, locale = 'us-EN') {
115
+ return locale === 'fr-FR' ? frResourceCategory[category] : enResourceCategory[category];
116
+ }
177
117
  function getOperationLabel(operation, locale = 'us-EN', opts) {
178
118
  const order = opts?.order ?? 'action-resource';
179
119
  const sep = opts?.separator ?? ' ';
@@ -184,4 +124,4 @@ function getOperationLabel(operation, locale = 'us-EN', opts) {
184
124
  const r = getResourceLabel(op.resource, locale);
185
125
  return order === 'resource-action' ? `${r}${sep}${a}` : `${a}${sep}${r}`;
186
126
  }
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvbGFiZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEtBLHdDQUVDO0FBRUQsNENBR0M7QUFFRCw4Q0FhQztBQWhNRCx1Q0FBbUM7QUFDbkMsMkNBQXdDO0FBQ3hDLDJDQUF1QztBQUl2QyxNQUFNLFFBQVEsR0FBMkI7SUFDdkMsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7SUFDbkIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU07SUFDckIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU87SUFDdkIsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVc7SUFDL0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDN0IsQ0FBQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVE7SUFDekIsQ0FBQyxnQkFB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QUMsUUFBUSxDQUFDLENBQUM7SUFDdEYsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixTQUE2QixFQUM3QixTQUFpQixPQUFPLEVBQ3hCLElBQTRFO0lBRTVFLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksaUJBQWlCLENBQUM7SUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHLENBQUM7SUFFbkMsTUFBTSxFQUFFLEdBQUcsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZGLElBQUksQ0FBQyxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDbkIsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxPQUFPLEtBQUssS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJy4vcmVzb3VyY2VzJztcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0gJ2ZyLUZSJyB8ICd1cy1FTic7XG5cbmNvbnN0IGVuQWN0aW9uOiBSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+ID0ge1xuICBbQWN0aW9uLkNSRUFURV06ICdDcmVhdGUnLFxuICBbQWN0aW9uLlJFQURdOiAnUmVhZCcsXG4gIFtBY3Rpb24uREVMRVRFXTogJ0RlbGV0ZScsXG4gIFtBY3Rpb24uUkVUUklFVkVdOiAnUmV0cmlldmUnLFxuICBbQWN0aW9uLlVQREFURV06ICdVcGRhdGUnLFxuICBbQWN0aW9uLlBVVF06ICdQdXQnLFxuICBbQWN0aW9uLkxJU1RdOiAnTGlzdCcsXG4gIFtBY3Rpb24uTUFOQUdFXTogJ01hbmFnZScsXG4gIFtBY3Rpb24uVklFV106ICdWaWV3JyxcbiAgW0FjdGlvbi5TRUFSQ0hdOiAnU2VhcmNoJyxcbiAgW0FjdGlvbi5HUkFOVF06ICdHcmFudCcsXG4gIFtBY3Rpb24uUkVWT0tFXTogJ1Jldm9rZScsXG4gIFtBY3Rpb24uUFJFU0NSSUJFXTogJ1ByZXNjcmliZScsXG4gIFtBY3Rpb24uRElBR05PU0VdOiAnRGlhZ25vc2UnLFxuICBbQWN0aW9uLlNDSEVEVUxFXTogJ1NjaGVkdWxlJyxcbiAgW0FjdGlvbi5DQU5DRUxdOiAnQ2FuY2VsJyxcbiAgW0FjdGlvbi5BUFBST1ZFXTogJ0FwcHJvdmUnLFxuICBbQWN0aW9uLlJFSkVDVF06ICdSZWplY3QnLFxuICBbQWN0aW9uLlNJR05dOiAnU2lnbicsXG4gIFtBY3Rpb24uVkVSSUZZXTogJ1ZlcmlmeScsXG4gIFtBY3Rpb24uUkVDT1ZFUl06ICdSZWNvdmVyJyxcbiAgW0FjdGlvbi5ESVNBQkxFXTogJ0Rpc2FibGUnLFxuICBbQWN0aW9uLlNFVF9NRURJQ0FMX1NFUlZJQ0VfU1RBVFVTXTogJ1NldCBNZWRpY2FsIFNlcnZpY2UgU3RhdHVzJyxcbiAgW0FjdGlvbi5TRVRfTUVESUNBTF9TRVJWSUNFX0ZFRVNdOiAnU2V0IE1lZGljYWwgU2VydmljZSBGZWVzJyxcbiAgW0FjdGlvbi5DSEVDS19JTl06ICdDaGVjayBJbicsXG4gIFtBY3Rpb24uVU5ET19DSEVDS19JTl06ICdVbmRvIENoZWNrIEluJyxcbiAgW0FjdGlvbi5TVEFSVF9TRVJWSUNFXTogJ1N0YXJ0IFNlcnZpY2UnLFxuICBbQWN0aW9uLlVOU1RBUlRfU0VSVklDRV06ICdVbmRvIFN0YXJ0IFNlcnZpY2UnLFxuICBbQWN0aW9uLkNPTVBMRVRFX1NFUlZJQ0VdOiAnQ29tcGxldGUgU2VydmljZScsXG4gIFtBY3Rpb24uUkVPUEVOX0NPTVBMRVRFRF9TRVJWSUNFXTogJ1Jlb3BlbiBDb21wbGV0ZWQgU2VydmljZScsXG4gIFtBY3Rpb24uQ0FOQ0VMX1NFUlZJQ0VdOiAnQ2FuY2VsIFNlcnZpY2UnLFxuICBbQWN0aW9uLlVORE9fQ0FOQ0VMX1NFUlZJQ0VdOiAnVW5kbyBDYW5jZWwgU2VydmljZScsXG4gIFtBY3Rpb24uRk9SQ0VfUkVTRVRfU1RBVFVTXTogJ0ZvcmNlIFJlc2V0IFN0YXR1cycsXG4gIFtBY3Rpb24uQ09SUkVDVF9USU1FU1RBTVBTXTogJ0NvcnJlY3QgVGltZXN0YW1wcycsXG4gIFtBY3Rpb24uVVBEQVRFX1NUQVRVU106ICdVcGRhdGUgU3RhdHVzJyxcbiAgW0FjdGlvbi5WSUVXX1BBVElFTlRTXTogJ1ZpZXcgUGF0aWVudHMnLFxuICBbQWN0aW9uLlBVVF9QQVRJRU5UX1BBWU1FTlRdOiAnUHV0IFBhdGllbnQgUGF5bWVudCcsXG4gIFtBY3Rpb24uREVMRVRFX1BBVElFTlRfUEFZTUVOVF06ICdEZWxldGUgUGF0aWVudCBQYXltZW50JyxcbiAgW0FjdGlvbi5FWFBPUlRdOiAnRXhwb3J0JyxcbiAgW0FjdGlvbi5JTVBPUlRdOiAnSW1wb3J0JyxcbiAgW0FjdGlvbi5BUkNISVZFXTogJ0FyY2hpdmUnLFxuICBbQWN0aW9uLlJFU1RPUkVdOiAnUmVzdG9yZScsXG4gIFtBY3Rpb24uU0hBUkVdOiAnU2hhcmUnLFxuICBbQWN0aW9uLkRPV05MT0FEXTogJ0Rvd25sb2FkJyxcbiAgW0FjdGlvbi5VUExPQURdOiAnVXBsb2FkJyxcbiAgW0FjdGlvbi5FTkFCTEVfQ0FMRU5EQVJfU1lOQ106ICdFbmFibGUgQ2FsZW5kYXIgU3luYycsXG4gIFtBY3Rpb24uRElTQUJMRV9DQUxFTkRBUl9TWU5DXTogJ0Rpc2FibGUgQ2FsZW5kYXIgU3luYycsXG4gIFtBY3Rpb24uUkVHRU5FUkFURV9DQUxFTkRBUl9MSU5LXTogJ1JlZ2VuZXJhdGUgQ2FsZW5kYXIgTGluaycsXG4gIFtBY3Rpb24uTE9HSU5dOiAnTG9naW4nLFxuICBbQWN0aW9uLkxPR09VVF06ICdMb2dvdXQnLFxuICBbQWN0aW9uLkNPTkZJR1VSRV06ICdDb25maWd1cmUnLFxuICBbQWN0aW9uLkFVRElUXTogJ0F1ZGl0Jyxcbn07XG5cbmNvbnN0IGZyQWN0aW9uOiBSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+ID0ge1xuICBbQWN0aW9uLkNSRUFURV06ICdDcmVlcicsXG4gIFtBY3Rpb24uUkVBRF06ICdMaXJlJyxcbiAgW0FjdGlvbi5ERUxFVEVdOiAnU3VwcHJpbWVyJyxcbiAgW0FjdGlvbi5SRVRSSUVWRV06ICdSZWN1cGVyZXInLFxuICBbQWN0aW9uLlVQREFURV06ICdNZXR0cmUgYSBqb3VyJyxcbiAgW0FjdGlvbi5QVVRdOiAnTWV0dHJlJyxcbiAgW0FjdGlvbi5MSVNUXTogJ0xpc3RlcicsXG4gIFtBY3Rpb24uTUFOQUdFXTogJ0dlcmVyJyxcbiAgW0FjdGlvbi5WSUVXXTogJ1ZvaXInLFxuICBbQWN0aW9uLlNFQVJDSF06ICdSZWNoZXJjaGVyJyxcbiAgW0FjdGlvbi5HUkFOVF06ICdBY2NvcmRlcicsXG4gIFtBY3Rpb24uUkVWT0tFXTogJ1Jldm9xdWVyJyxcbiAgW0FjdGlvbi5QUkVTQ1JJQkVdOiAnUHJlc2NyaXJlJyxcbiAgW0FjdGlvbi5ESUFHTk9TRV06ICdEaWFnbm9zdGlxdWVyJyxcbiAgW0FjdGlvbi5TQ0hFRFVMRV06ICdQbGFuaWZpZXInLFxuICBbQWN0aW9uLkNBTkNFTF06ICdBbm51bGVyJyxcbiAgW0FjdGlvbi5BUFBST1ZFXTogJ0FwcHJvdXZlcicsXG4gIFtBY3Rpb24uUkVKRUNUXTogJ1JlamV0ZXInLFxuICBbQWN0aW9uLlNJR05dOiAnU2lnbmVyJyxcbiAgW0FjdGlvbi5WRVJJRlldOiAnVmVyaWZpZXInLFxuICBbQWN0aW9uLlJFQ09WRVJdOiAnUmVjdXBlcmVyJyxcbiAgW0FjdGlvbi5ESVNBQkxFXTogJ0Rlc2FjdGl2ZXInLFxuICBbQWN0aW9uLlNFVF9NRURJQ0FMX1NFUlZJQ0VfU1RBVFVTXTogJ0RlZmluaXIgbGUgc3RhdHV0IGR1IHNlcnZpY2UgbWVkaWNhbCcsXG4gIFtBY3Rpb24uU0VUX01FRElDQUxfU0VSVklDRV9GRUVTXTogJ0RlZmluaXIgbGVzIGZyYWlzIGR1IHNlcnZpY2UgbWVkaWNhbCcsXG4gIFtBY3Rpb24uQ0hFQ0tfSU5dOiAnRW5yZWdpc3RyZW1lbnQgYSBsIGFycml2ZWUnLFxuICBbQWN0aW9uLlVORE9fQ0hFQ0tfSU5dOiAnQW5udWxlciBsIGVucmVnaXN0cmVtZW50JyxcbiAgW0FjdGlvbi5TVEFSVF9TRVJWSUNFXTogJ0NvbW1lbmNlciBsZSBzZXJ2aWNlJyxcbiAgW0FjdGlvbi5VTlNUQVJUX1NFUlZJQ0VdOiAnQW5udWxlciBsZSBkZWJ1dCBkdSBzZXJ2aWNlJyxcbiAgW0FjdGlvbi5DT01QTEVURV9TRVJWSUNFXTogJ1Rlcm1pbmVyIGxlIHNlcnZpY2UnLFxuICBbQWN0aW9uLlJFT1BFTl9DT01QTEVURURfU0VSVklDRV06ICdSZW91dnJpciBsZSBzZXJ2aWNlIHRlcm1pbmUnLFxuICBbQWN0aW9uLkNBTkNFTF9TRVJWSUNFXTogJ0FubnVsZXIgbGUgc2VydmljZScsXG4gIFtBY3Rpb24uVU5ET19DQU5DRUxfU0VSVklDRV06ICdBbm51bGVyIGwgYW5udWxhdGlvbiBkdSBzZXJ2aWNlJyxcbiAgW0FjdGlvbi5GT1JDRV9SRVNFVF9TVEFUVVNdOiAnUmVpbml0aWFsaXNlciBsZSBzdGF0dXQnLFxuICBbQWN0aW9uLkNPUlJFQ1RfVElNRVNUQU1QU106ICdDb3JyaWdlciBsZXMgaG9yb2RhdGFnZXMnLFxuICBbQWN0aW9uLlVQREFURV9TVEFUVVNdOiAnTWV0dHJlIGEgam91ciBsZSBzdGF0dXQnLFxuICBbQWN0aW9uLlZJRVdfUEFUSUVOVFNdOiAnVm9pciBsZXMgcGF0aWVudHMnLFxuICBbQWN0aW9uLlBVVF9QQVRJRU5UX1BBWU1FTlRdOiAnRW5yZWdpc3RyZXIgbGUgcGFpZW1lbnQgcGF0aWVudCcsXG4gIFtBY3Rpb24uREVMRVRFX1BBVElFTlRfUEFZTUVOVF06ICdTdXBwcmltZXIgbGUgcGFpZW1lbnQgcGF0aWVudCcsXG4gIFtBY3Rpb24uRVhQT1JUXTogJ0V4cG9ydGVyJyxcbiAgW0FjdGlvbi5JTVBPUlRdOiAnSW1wb3J0ZXInLFxuICBbQWN0aW9uLkFSQ0hJVkVdOiAnQXJjaGl2ZXInLFxuICBbQWN0aW9uLlJFU1RPUkVdOiAnUmVzdGF1cmVyJyxcbiAgW0FjdGlvbi5TSEFSRV06ICdQYXJ0YWdlcicsXG4gIFtBY3Rpb24uRE9XTkxPQURdOiAnVGVsZWNoYXJnZXInLFxuICBbQWN0aW9uLlVQTE9BRF06ICdUZWxldmVyc2VyJyxcbiAgW0FjdGlvbi5FTkFCTEVfQ0FMRU5EQVJfU1lOQ106ICdBY3RpdmVyIGxhIHN5bmNocm9uaXNhdGlvbiBkdSBjYWxlbmRyaWVyJyxcbiAgW0FjdGlvbi5ESVNBQkxFX0NBTEVOREFSX1NZTkNdOiAnRGVzYWN0aXZlciBsYSBzeW5jaHJvbmlzYXRpb24gZHUgY2FsZW5kcmllcicsXG4gIFtBY3Rpb24uUkVHRU5FUkFURV9DQUxFTkRBUl9MSU5LXTogJ1JlZ2VuZXJlciBsZSBsaWVuIGR1IGNhbGVuZHJpZXInLFxuICBbQWN0aW9uLkxPR0lOXTogJ0Nvbm5leGlvbicsXG4gIFtBY3Rpb24uTE9HT1VUXTogJ0RlY29ubmV4aW9uJyxcbiAgW0FjdGlvbi5DT05GSUdVUkVdOiAnQ29uZmlndXJlcicsXG4gIFtBY3Rpb24uQVVESVRdOiAnQXVkaXRlcicsXG59O1xuXG5jb25zdCBmclJlc291cmNlT3ZlcnJpZGVzOiBQYXJ0aWFsPFJlY29yZDxSZXNvdXJjZSwgc3RyaW5nPj4gPSB7XG4gIFtSZXNvdXJjZS5BQ0NPVU5UXTogJ0NvbXB0ZScsXG4gIFtSZXNvdXJjZS5BQ0NPVU5UX0dFTkVSQUxfU0VUVElOR1NdOiAnUGFyYW1ldHJlcyBnZW5lcmF1eCBkdSBjb21wdGUnLFxuICBbUmVzb3VyY2UuQUNDT1VOVF9MT0NBVElPTl06ICdMaWV1IGR1IGNvbXB0ZScsXG4gIFtSZXNvdXJjZS5BQ0NPVU5UX1BSRUZFUkVOQ0VTXTogJ1ByZWZlcmVuY2VzIGR1IGNvbXB0ZScsXG4gIFtSZXNvdXJjZS5BQ0NPVU5UX1NVTU1BUlldOiAnUmVzdW1lIGR1IGNvbXB0ZScsXG4gIFtSZXNvdXJjZS5BVkFJTEFCTEVfU0xPVF06ICdDcmVuZWF1IGRpc3BvbmlibGUnLFxuICBbUmVzb3VyY2UuQ0FMQ1VMQVRFRF9NRUFTVVJFX01PREVMXTogJ01vZGVsZSBkZSBtZXN1cmUgY2FsY3VsZWUnLFxuICBbUmVzb3VyY2UuQ0FMRU5EQVJfU1lOQ106ICdTeW5jaHJvbmlzYXRpb24gZHUgY2FsZW5kcmllcicsXG4gIFtSZXNvdXJjZS5DQUxFTkRBUl9UT0tFTl06ICdKZXRvbiBkZSBjYWxlbmRyaWVyJyxcbiAgW1Jlc291cmNlLkNPTlRBQ1RdOiAnQ29udGFjdCcsXG4gIFtSZXNvdXJjZS5ET0NVTUVOVF9MQVlPVVRdOiAnTWlzZSBlbiBwYWdlIGR1IGRvY3VtZW50JyxcbiAgW1Jlc291cmNlLkRPQ1VNRU5UX01PREVMXTogJ01vZGVsZSBkZSBkb2N1bWVudCcsXG4gIFtSZXNvdXJjZS5HRU5FUkFURURfRE9DVU1FTlRdOiAnRG9jdW1lbnQgZ2VuZXJlJyxcbiAgW1Jlc291cmNlLkxPR19SRUNPUkRdOiAnSm91cm5hbCcsXG4gIFtSZXNvdXJjZS5NRUFTVVJFX01PREVMXTogJ01vZGVsZSBkZSBtZXN1cmUnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZXTogJ0FudGVjZWRlbnRzIG1lZGljYXV4JyxcbiAgW1Jlc291cmNlLk1FRElDQUxfSElTVE9SWV9NT0RFTF06IFwiTW9kZWxlIGQnYW50ZWNlZGVudHMgbWVkaWNhdXhcIixcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV06ICdTZXJ2aWNlIG1lZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX0FTU0lHTkVFU106ICdBc3NpZ25hdGlvbnMgZHUgc2VydmljZSBtZWRpY2FsJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9ERVNDUklQVElPTl06ICdEZXNjcmlwdGlvbiBkdSBzZXJ2aWNlIG1lZGljYWwnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFX0ZFRVNdOiAnRnJhaXMgZHUgc2VydmljZSBtZWRpY2FsJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9MT0NBVElPTl06ICdMaWV1IGR1IHNlcnZpY2UgbWVkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URV06ICdOb3RlIGR1IHNlcnZpY2UgbWVkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfU0NIRURVTEVdOiAnUGxhbm5pbmcgZHUgc2VydmljZSBtZWRpY2FsJyxcbiAgW1Jlc291cmNlLk1FRElDQUxfU0VSVklDRV9TVEFUVVNdOiAnU3RhdHV0IGR1IHNlcnZpY2UgbWVkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfVElNRVNUQU1QU106ICdIb3JvZGF0YWdlcyBkdSBzZXJ2aWNlIG1lZGljYWwnLFxuICBbUmVzb3VyY2UuTUVNQkVSU0hJUF06ICdBZGhlc2lvbicsXG4gIFtSZXNvdXJjZS5NRURJQ0FUSU9OXTogJ01lZGljYW1lbnQnLFxuICBbUmVzb3VyY2UuT0JTRVJWQVRJT05dOiAnT2JzZXJ2YXRpb24nLFxuICBbUmVzb3VyY2UuUEFUSUVOVF06ICdQYXRpZW50JyxcbiAgW1Jlc291cmNlLlBBVElFTlRfTUVESUNBTF9OT1RFU106ICdOb3RlcyBtZWRpY2FsZXMgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX01FRElDQUxfUFJPUEVSVElFU106ICdQcm9wcmlldGVzIG1lZGljYWxlcyBkdSBwYXRpZW50JyxcbiAgW1Jlc291cmNlLlBBVElFTlRfUEFZTUVOVF06ICdQYWllbWVudCBkdSBwYXRpZW50JyxcbiAgW1Jlc291cmNlLlBBVElFTlRfUFJPRklMRV06ICdQcm9maWwgZHUgcGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX1BVQkxJQ19QUk9QRVJUSUVTXTogJ1Byb3ByaWV0ZXMgcHVibGlxdWVzIGR1IHBhdGllbnQnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9TVEFUVVNdOiAnU3RhdHV0IGR1IHBhdGllbnQnLFxuICBbUmVzb3VyY2UuUFJFU0NSSVBUSU9OXTogJ09yZG9ubmFuY2UnLFxuICBbUmVzb3VyY2UuUFJFU0NSSVBUSU9OX01PREVMXTogXCJNb2RlbGUgZCdvcmRvbm5hbmNlXCIsXG4gIFtSZXNvdXJjZS5UQVNLX1RZUEVdOiAnVHlwZSBkZSB0YWNoZScsXG4gIFtSZXNvdXJjZS5VUExPQURfRE9DVU1FTlRdOiAnRG9jdW1lbnQgdGVsZXZlcnNlJyxcbiAgW1Jlc291cmNlLlVTRVJdOiAnVXRpbGlzYXRldXInLFxuICBbUmVzb3VyY2UuVVNFUl9DQUxFTkRBUl9QUkVGRVJFTkNFU106ICdQcmVmZXJlbmNlcyBkZSBjYWxlbmRyaWVyIHV0aWxpc2F0ZXVyJyxcbiAgW1Jlc291cmNlLlVTRVJfUFJFRkVSRU5DRVNdOiAnUHJlZmVyZW5jZXMgdXRpbGlzYXRldXInLFxufTtcblxuZnVuY3Rpb24gaHVtYW5pemVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4ga2V5XG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAuc3BsaXQoJ18nKVxuICAgIC5tYXAoKHcpID0+IHcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3LnNsaWNlKDEpKVxuICAgIC5qb2luKCcgJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25MYWJlbChhY3Rpb246IEFjdGlvbiwgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGxvY2FsZSA9PT0gJ2ZyLUZSJyA/IGZyQWN0aW9uW2FjdGlvbl0gOiBlbkFjdGlvblthY3Rpb25dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMYWJlbChyZXNvdXJjZTogUmVzb3VyY2UsIGxvY2FsZTogTG9jYWxlID0gJ3VzLUVOJyk6IHN0cmluZyB7XG4gIGlmIChsb2NhbGUgPT09ICdmci1GUicpIHJldHVybiBmclJlc291cmNlT3ZlcnJpZGVzW3Jlc291cmNlXSA/PyBodW1hbml6ZUtleShyZXNvdXJjZSk7XG4gIHJldHVybiBodW1hbml6ZUtleShyZXNvdXJjZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcGVyYXRpb25MYWJlbChcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb24gfCBzdHJpbmcsXG4gIGxvY2FsZTogTG9jYWxlID0gJ3VzLUVOJyxcbiAgb3B0cz86IHsgb3JkZXI/OiAnYWN0aW9uLXJlc291cmNlJyB8ICdyZXNvdXJjZS1hY3Rpb24nOyBzZXBhcmF0b3I/OiBzdHJpbmcgfSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG9yZGVyID0gb3B0cz8ub3JkZXIgPz8gJ2FjdGlvbi1yZXNvdXJjZSc7XG4gIGNvbnN0IHNlcCA9IG9wdHM/LnNlcGFyYXRvciA/PyAnICc7XG5cbiAgY29uc3Qgb3AgPSB0eXBlb2Ygb3BlcmF0aW9uID09PSAnc3RyaW5nJyA/IE9wZXJhdGlvbi5mcm9tU3RyaW5nKG9wZXJhdGlvbikgOiBvcGVyYXRpb247XG4gIGlmICghb3ApIHJldHVybiAnJztcbiAgY29uc3QgYSA9IGdldEFjdGlvbkxhYmVsKG9wLmFjdGlvbiwgbG9jYWxlKTtcbiAgY29uc3QgciA9IGdldFJlc291cmNlTGFiZWwob3AucmVzb3VyY2UsIGxvY2FsZSk7XG4gIHJldHVybiBvcmRlciA9PT0gJ3Jlc291cmNlLWFjdGlvbicgPyBgJHtyfSR7c2VwfSR7YX1gIDogYCR7YX0ke3NlcH0ke3J9YDtcbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdGlvbnMvbGFiZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNEdBLHdDQUVDO0FBRUQsNENBR0M7QUFFRCw0REFFQztBQUVELDhDQWFDO0FBdElELHVDQUFtQztBQUNuQywyQ0FBd0M7QUFDeEMsMkNBQXlEO0FBSXpELE1BQU0sUUFBUSxHQUEyQjtJQUN2QyxDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTTtJQUNyQixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtJQUM3QixDQUFDLGdCQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtJQUM3QixDQUFDLGdCQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUztJQUMzQixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtJQUM3QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN6QixDQUFDLGdCQUFNLENBQUMsa0JBQWtCLENBQUMsRUFBRSxvQkFBb0I7Q0FDbEQsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUEyQjtJQUN2QyxDQUFD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LENBQUM7QUFDMUYsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixTQUE2QixFQUM3QixTQUFpQixPQUFPLEVBQ3hCLElBQTRFO0lBRTVFLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksaUJBQWlCLENBQUM7SUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxHQUFHLENBQUM7SUFFbkMsTUFBTSxFQUFFLEdBQUcsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZGLElBQUksQ0FBQyxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDbkIsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxPQUFPLEtBQUssS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucyc7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5pbXBvcnQgeyBSZXNvdXJjZSwgUmVzb3VyY2VDYXRlZ29yeSB9IGZyb20gJy4vcmVzb3VyY2VzJztcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0gJ2ZyLUZSJyB8ICd1cy1FTic7XG5cbmNvbnN0IGVuQWN0aW9uOiBSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+ID0ge1xuICBbQWN0aW9uLkNSRUFURV06ICdDcmVhdGUnLFxuICBbQWN0aW9uLlZJRVddOiAnVmlldycsXG4gIFtBY3Rpb24uVVBEQVRFXTogJ1VwZGF0ZScsXG4gIFtBY3Rpb24uREVMRVRFXTogJ0RlbGV0ZScsXG4gIFtBY3Rpb24uQVNTSUdOXTogJ0Fzc2lnbicsXG4gIFtBY3Rpb24uQ0FOQ0VMXTogJ0NhbmNlbCcsXG4gIFtBY3Rpb24uQ0hFQ0tfSU5dOiAnQ2hlY2sgSW4nLFxuICBbQWN0aW9uLkNPTVBMRVRFXTogJ0NvbXBsZXRlJyxcbiAgW0FjdGlvbi5ESVNBQkxFXTogJ0Rpc2FibGUnLFxuICBbQWN0aW9uLkVOQUJMRV06ICdFbmFibGUnLFxuICBbQWN0aW9uLkdFTkVSQVRFXTogJ0dlbmVyYXRlJyxcbiAgW0FjdGlvbi5JTlZJVEVdOiAnSW52aXRlJyxcbiAgW0FjdGlvbi5SRU1PVkVdOiAnUmVtb3ZlJyxcbiAgW0FjdGlvbi5ST1RBVEVdOiAnUm90YXRlJyxcbiAgW0FjdGlvbi5UUkFOU0ZFUl9PV05FUlNISVBdOiAnVHJhbnNmZXIgT3duZXJzaGlwJyxcbn07XG5cbmNvbnN0IGZyQWN0aW9uOiBSZWNvcmQ8QWN0aW9uLCBzdHJpbmc+ID0ge1xuICBbQWN0aW9uLkNSRUFURV06ICdDcmVlcicsXG4gIFtBY3Rpb24uVklFV106ICdWb2lyJyxcbiAgW0FjdGlvbi5VUERBVEVdOiAnTWV0dHJlIGEgam91cicsXG4gIFtBY3Rpb24uREVMRVRFXTogJ1N1cHByaW1lcicsXG4gIFtBY3Rpb24uQVNTSUdOXTogJ0Fzc2lnbmVyJyxcbiAgW0FjdGlvbi5DQU5DRUxdOiAnQW5udWxlcicsXG4gIFtBY3Rpb24uQ0hFQ0tfSU5dOiAnRW5yZWdpc3RyZXIgbCBhcnJpdmVlJyxcbiAgW0FjdGlvbi5DT01QTEVURV06ICdUZXJtaW5lcicsXG4gIFtBY3Rpb24uRElTQUJMRV06ICdEZXNhY3RpdmVyJyxcbiAgW0FjdGlvbi5FTkFCTEVdOiAnQWN0aXZlcicsXG4gIFtBY3Rpb24uR0VORVJBVEVdOiAnR2VuZXJlcicsXG4gIFtBY3Rpb24uSU5WSVRFXTogJ0ludml0ZXInLFxuICBbQWN0aW9uLlJFTU9WRV06ICdSZXRpcmVyJyxcbiAgW0FjdGlvbi5ST1RBVEVdOiAnVG91cm5lcicsXG4gIFtBY3Rpb24uVFJBTlNGRVJfT1dORVJTSElQXTogJ1RyYW5zZmVyZXIgbGEgcHJvcHJpZXRlJyxcbn07XG5cbmNvbnN0IGZyUmVzb3VyY2VPdmVycmlkZXM6IFBhcnRpYWw8UmVjb3JkPFJlc291cmNlLCBzdHJpbmc+PiA9IHtcbiAgW1Jlc291cmNlLkFDQ09VTlRdOiAnQ29tcHRlJyxcbiAgW1Jlc291cmNlLkNBTENVTEFURURfTUVBU1VSRV9NT0RFTF06ICdNb2RlbGUgZGUgbWVzdXJlIGNhbGN1bGVlJyxcbiAgW1Jlc291cmNlLkNBTEVOREFSX1NFVFRJTkdTXTogJ1BhcmFtZXRyZXMgZHUgY2FsZW5kcmllcicsXG4gIFtSZXNvdXJjZS5DQUxFTkRBUl9TWU5DXTogJ1N5bmNocm9uaXNhdGlvbiBkdSBjYWxlbmRyaWVyJyxcbiAgW1Jlc291cmNlLkNBTEVOREFSX1RPS0VOXTogJ0pldG9uIGRlIGNhbGVuZHJpZXInLFxuICBbUmVzb3VyY2UuQ09OVEFDVF06ICdDb250YWN0JyxcbiAgW1Jlc291cmNlLkRPQ1VNRU5UX0xBWU9VVF06ICdNaXNlIGVuIHBhZ2UgZHUgZG9jdW1lbnQnLFxuICBbUmVzb3VyY2UuRE9DVU1FTlRfTU9ERUxdOiAnTW9kZWxlIGRlIGRvY3VtZW50JyxcbiAgW1Jlc291cmNlLkdFTkVSQUxfU0VUVElOR1NdOiAnUGFyYW1ldHJlcyBnZW5lcmF1eCcsXG4gIFtSZXNvdXJjZS5HRU5FUkFURURfRE9DVU1FTlRdOiAnRG9jdW1lbnQgZ2VuZXJlJyxcbiAgW1Jlc291cmNlLkxPQ0FUSU9OXTogJ0xpZXUnLFxuICBbUmVzb3VyY2UuTUVBU1VSRV9NT0RFTF06ICdNb2RlbGUgZGUgbWVzdXJlJyxcbiAgW1Jlc291cmNlLk1FRElDQVRJT05fU0VBUkNIXTogJ1JlY2hlcmNoZSBkZSBtZWRpY2FtZW50cycsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX0hJU1RPUlldOiAnQW50ZWNlZGVudHMgbWVkaWNhdXgnLFxuICBbUmVzb3VyY2UuTUVESUNBTF9ISVNUT1JZX01PREVMXTogXCJNb2RlbGUgZCdhbnRlY2VkZW50cyBtZWRpY2F1eFwiLFxuICBbUmVzb3VyY2UuTUVESUNBTF9TRVJWSUNFXTogJ1NlcnZpY2UgbWVkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRURJQ0FMX1NFUlZJQ0VfTk9URV06ICdOb3RlIGR1IHNlcnZpY2UgbWVkaWNhbCcsXG4gIFtSZXNvdXJjZS5NRU1CRVJTSElQXTogJ0FkaGVzaW9uJyxcbiAgW1Jlc291cmNlLk9CU0VSVkFUSU9OXTogJ09ic2VydmF0aW9uJyxcbiAgW1Jlc291cmNlLlBBVElFTlRdOiAnUGF0aWVudCcsXG4gIFtSZXNvdXJjZS5QQVRJRU5UX01FRElDQUxfTk9URV06ICdOb3RlIG1lZGljYWxlIHBhdGllbnQnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9QQVlNRU5UXTogJ1BhaWVtZW50IGR1IHBhdGllbnQnLFxuICBbUmVzb3VyY2UuUEFUSUVOVF9QUk9QRVJUWV9NT0RFTF06ICdNb2RlbGUgZGUgcHJvcHJpZXRlIHBhdGllbnQnLFxuICBbUmVzb3VyY2UuUFJFRkVSRU5DRVNdOiAnUHJlZmVyZW5jZXMnLFxuICBbUmVzb3VyY2UuUFJFU0NSSVBUSU9OXTogJ09yZG9ubmFuY2UnLFxuICBbUmVzb3VyY2UuUFJFU0NSSVBUSU9OX01PREVMXTogXCJNb2RlbGUgZCdvcmRvbm5hbmNlXCIsXG4gIFtSZXNvdXJjZS5ST0xFXTogJ1JvbGUnLFxuICBbUmVzb3VyY2UuVEFTS19UWVBFXTogJ1R5cGUgZGUgdGFjaGUnLFxuICBbUmVzb3VyY2UuVVBMT0FEX0RPQ1VNRU5UXTogJ0RvY3VtZW50IHRlbGV2ZXJzZScsXG4gIFtSZXNvdXJjZS5VU0VSXTogJ1V0aWxpc2F0ZXVyJyxcbiAgW1Jlc291cmNlLkFWQUlMQUJMRV9TTE9UU106ICdDcmVuZWF1eCBkaXNwb25pYmxlcycsXG59O1xuXG5jb25zdCBlblJlc291cmNlQ2F0ZWdvcnk6IFJlY29yZDxSZXNvdXJjZUNhdGVnb3J5LCBzdHJpbmc+ID0ge1xuICBbUmVzb3VyY2VDYXRlZ29yeS5DT1JFXTogJ0NvcmUnLFxuICBbUmVzb3VyY2VDYXRlZ29yeS5NRU1CRVJTSElQXTogJ01lbWJlcnNoaXAnLFxuICBbUmVzb3VyY2VDYXRlZ29yeS5DTElOSUNBTF06ICdDbGluaWNhbCcsXG4gIFtSZXNvdXJjZUNhdGVnb3J5LkRPQ1VNRU5UU106ICdEb2N1bWVudHMnLFxuICBbUmVzb3VyY2VDYXRlZ29yeS5TRVRUSU5HU106ICdTZXR0aW5ncycsXG4gIFtSZXNvdXJjZUNhdGVnb3J5LklOVEVHUkFUSU9OXTogJ0ludGVncmF0aW9uJyxcbiAgW1Jlc291cmNlQ2F0ZWdvcnkuU0NIRURVTElOR106ICdTY2hlZHVsaW5nJyxcbiAgW1Jlc291cmNlQ2F0ZWdvcnkuRVhURVJOQUxdOiAnRXh0ZXJuYWwnLFxuICBbUmVzb3VyY2VDYXRlZ29yeS5TWVNURU1dOiAnU3lzdGVtJyxcbn07XG5cbmNvbnN0IGZyUmVzb3VyY2VDYXRlZ29yeTogUmVjb3JkPFJlc291cmNlQ2F0ZWdvcnksIHN0cmluZz4gPSB7XG4gIFtSZXNvdXJjZUNhdGVnb3J5LkNPUkVdOiAnTm95YXUnLFxuICBbUmVzb3VyY2VDYXRlZ29yeS5NRU1CRVJTSElQXTogJ0FkaGVzaW9uJyxcbiAgW1Jlc291cmNlQ2F0ZWdvcnkuQ0xJTklDQUxdOiAnQ2xpbmlxdWUnLFxuICBbUmVzb3VyY2VDYXRlZ29yeS5ET0NVTUVOVFNdOiAnRG9jdW1lbnRzJyxcbiAgW1Jlc291cmNlQ2F0ZWdvcnkuU0VUVElOR1NdOiAnUGFyYW1ldHJlcycsXG4gIFtSZXNvdXJjZUNhdGVnb3J5LklOVEVHUkFUSU9OXTogJ0ludGVncmF0aW9uJyxcbiAgW1Jlc291cmNlQ2F0ZWdvcnkuU0NIRURVTElOR106ICdQbGFuaWZpY2F0aW9uJyxcbiAgW1Jlc291cmNlQ2F0ZWdvcnkuRVhURVJOQUxdOiAnRXh0ZXJuZScsXG4gIFtSZXNvdXJjZUNhdGVnb3J5LlNZU1RFTV06ICdTeXN0ZW1lJyxcbn07XG5cbmZ1bmN0aW9uIGh1bWFuaXplS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGtleVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnNwbGl0KCdfJylcbiAgICAubWFwKCh3KSA9PiB3LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKSlcbiAgICAuam9pbignICcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwoYWN0aW9uOiBBY3Rpb24sIGxvY2FsZTogTG9jYWxlID0gJ3VzLUVOJyk6IHN0cmluZyB7XG4gIHJldHVybiBsb2NhbGUgPT09ICdmci1GUicgPyBmckFjdGlvblthY3Rpb25dIDogZW5BY3Rpb25bYWN0aW9uXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGFiZWwocmVzb3VyY2U6IFJlc291cmNlLCBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicpOiBzdHJpbmcge1xuICBpZiAobG9jYWxlID09PSAnZnItRlInKSByZXR1cm4gZnJSZXNvdXJjZU92ZXJyaWRlc1tyZXNvdXJjZV0gPz8gaHVtYW5pemVLZXkocmVzb3VyY2UpO1xuICByZXR1cm4gaHVtYW5pemVLZXkocmVzb3VyY2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VDYXRlZ29yeUxhYmVsKGNhdGVnb3J5OiBSZXNvdXJjZUNhdGVnb3J5LCBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicpOiBzdHJpbmcge1xuICByZXR1cm4gbG9jYWxlID09PSAnZnItRlInID8gZnJSZXNvdXJjZUNhdGVnb3J5W2NhdGVnb3J5XSA6IGVuUmVzb3VyY2VDYXRlZ29yeVtjYXRlZ29yeV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcGVyYXRpb25MYWJlbChcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb24gfCBzdHJpbmcsXG4gIGxvY2FsZTogTG9jYWxlID0gJ3VzLUVOJyxcbiAgb3B0cz86IHsgb3JkZXI/OiAnYWN0aW9uLXJlc291cmNlJyB8ICdyZXNvdXJjZS1hY3Rpb24nOyBzZXBhcmF0b3I/OiBzdHJpbmcgfSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG9yZGVyID0gb3B0cz8ub3JkZXIgPz8gJ2FjdGlvbi1yZXNvdXJjZSc7XG4gIGNvbnN0IHNlcCA9IG9wdHM/LnNlcGFyYXRvciA/PyAnICc7XG5cbiAgY29uc3Qgb3AgPSB0eXBlb2Ygb3BlcmF0aW9uID09PSAnc3RyaW5nJyA/IE9wZXJhdGlvbi5mcm9tU3RyaW5nKG9wZXJhdGlvbikgOiBvcGVyYXRpb247XG4gIGlmICghb3ApIHJldHVybiAnJztcbiAgY29uc3QgYSA9IGdldEFjdGlvbkxhYmVsKG9wLmFjdGlvbiwgbG9jYWxlKTtcbiAgY29uc3QgciA9IGdldFJlc291cmNlTGFiZWwob3AucmVzb3VyY2UsIGxvY2FsZSk7XG4gIHJldHVybiBvcmRlciA9PT0gJ3Jlc291cmNlLWFjdGlvbicgPyBgJHtyfSR7c2VwfSR7YX1gIDogYCR7YX0ke3NlcH0ke3J9YDtcbn1cbiJdfQ==
@@ -2,112 +2,117 @@ import { Action } from './actions';
2
2
  import { Operation } from './operation';
3
3
  import { Resource } from './resources';
4
4
  /**
5
- * Predefined operations aligned with the GraphQL schema domain.
5
+ * Predefined operations aligned with the permission catalog architecture.
6
6
  */
7
7
  export declare const Operations: {
8
- readonly ACCOUNT_CREATE: Operation;
9
- readonly ACCOUNT_RETRIEVE: Operation;
8
+ readonly ACCOUNT_VIEW: Operation;
10
9
  readonly ACCOUNT_UPDATE: Operation;
11
- readonly ACCOUNT_GENERAL_SETTINGS_UPDATE: Operation;
12
- readonly ACCOUNT_PREFERENCES_UPDATE: Operation;
13
- readonly ACCOUNT_LOCATION_CREATE: Operation;
14
- readonly ACCOUNT_LOCATION_RETRIEVE: Operation;
15
- readonly ACCOUNT_LOCATION_UPDATE: Operation;
16
- readonly ACCOUNT_LOCATION_DELETE: Operation;
17
- readonly ACCOUNT_SUMMARY_RETRIEVE: Operation;
18
- readonly AVAILABLE_SLOT_RETRIEVE: Operation;
19
- readonly CALCULATED_MEASURE_MODEL_RETRIEVE: Operation;
20
- readonly CALCULATED_MEASURE_MODEL_UPDATE: Operation;
21
- readonly CALCULATED_MEASURE_MODEL_DELETE: Operation;
22
- readonly CALENDAR_SYNC_ENABLE: Operation;
23
- readonly CALENDAR_SYNC_DISABLE: Operation;
24
- readonly CALENDAR_TOKEN_RETRIEVE: Operation;
25
- readonly CALENDAR_TOKEN_REGENERATE: Operation;
10
+ readonly ACCOUNT_TRANSFER_OWNERSHIP: Operation;
11
+ readonly USER_VIEW: Operation;
12
+ readonly USER_UPDATE: Operation;
13
+ readonly MEMBERSHIP_VIEW: Operation;
14
+ readonly MEMBERSHIP_INVITE: Operation;
15
+ readonly MEMBERSHIP_UPDATE: Operation;
16
+ readonly MEMBERSHIP_REMOVE: Operation;
17
+ readonly ROLE_VIEW: Operation;
18
+ readonly ROLE_CREATE: Operation;
19
+ readonly ROLE_UPDATE: Operation;
20
+ readonly ROLE_DELETE: Operation;
21
+ readonly PATIENT_VIEW: Operation;
22
+ readonly PATIENT_CREATE: Operation;
23
+ readonly PATIENT_UPDATE: Operation;
24
+ readonly PATIENT_DELETE: Operation;
25
+ readonly CONTACT_VIEW: Operation;
26
+ readonly CONTACT_CREATE: Operation;
26
27
  readonly CONTACT_UPDATE: Operation;
27
28
  readonly CONTACT_DELETE: Operation;
28
- readonly DOCUMENT_LAYOUT_CREATE: Operation;
29
- readonly DOCUMENT_LAYOUT_RETRIEVE: Operation;
30
- readonly DOCUMENT_LAYOUT_UPDATE: Operation;
31
- readonly DOCUMENT_LAYOUT_DELETE: Operation;
32
- readonly DOCUMENT_MODEL_RETRIEVE: Operation;
33
- readonly DOCUMENT_MODEL_UPDATE: Operation;
34
- readonly DOCUMENT_MODEL_DELETE: Operation;
35
- readonly GENERATED_DOCUMENT_CREATE: Operation;
36
- readonly GENERATED_DOCUMENT_RETRIEVE: Operation;
37
- readonly GENERATED_DOCUMENT_UPDATE: Operation;
38
- readonly GENERATED_DOCUMENT_DELETE: Operation;
39
- readonly LOG_RECORD_RETRIEVE: Operation;
40
- readonly MEASURE_MODEL_RETRIEVE: Operation;
41
- readonly MEASURE_MODEL_UPDATE: Operation;
42
- readonly MEASURE_MODEL_DELETE: Operation;
43
- readonly MEDICAL_HISTORY_CREATE: Operation;
44
- readonly MEDICAL_HISTORY_RETRIEVE: Operation;
45
- readonly MEDICAL_HISTORY_UPDATE: Operation;
46
- readonly MEDICAL_HISTORY_DELETE: Operation;
47
- readonly MEDICAL_HISTORY_MODEL_RETRIEVE: Operation;
48
- readonly MEDICAL_HISTORY_MODEL_UPDATE: Operation;
49
- readonly MEDICAL_HISTORY_MODEL_DELETE: Operation;
29
+ readonly PATIENT_PAYMENT_VIEW: Operation;
30
+ readonly PATIENT_PAYMENT_CREATE: Operation;
31
+ readonly PATIENT_PAYMENT_UPDATE: Operation;
32
+ readonly PATIENT_PAYMENT_DELETE: Operation;
33
+ readonly MEDICAL_SERVICE_VIEW: Operation;
50
34
  readonly MEDICAL_SERVICE_CREATE: Operation;
51
- readonly MEDICAL_SERVICE_RETRIEVE: Operation;
52
35
  readonly MEDICAL_SERVICE_UPDATE: Operation;
53
36
  readonly MEDICAL_SERVICE_DELETE: Operation;
54
- readonly MEDICAL_SERVICE_ASSIGNEES_UPDATE: Operation;
55
- readonly MEDICAL_SERVICE_DESCRIPTION_UPDATE: Operation;
56
- readonly MEDICAL_SERVICE_FEES_UPDATE: Operation;
57
- readonly MEDICAL_SERVICE_LOCATION_UPDATE: Operation;
58
- readonly MEDICAL_SERVICE_NOTE_UPDATE: Operation;
59
- readonly MEDICAL_SERVICE_NOTE_DELETE: Operation;
60
- readonly MEDICAL_SERVICE_SCHEDULE_UPDATE: Operation;
61
- readonly MEDICAL_SERVICE_STATUS_UPDATE: Operation;
62
- readonly MEDICAL_SERVICE_TIMESTAMPS_UPDATE: Operation;
63
37
  readonly MEDICAL_SERVICE_CHECK_IN: Operation;
64
- readonly MEDICAL_SERVICE_UNDO_CHECK_IN: Operation;
65
- readonly MEDICAL_SERVICE_START: Operation;
66
- readonly MEDICAL_SERVICE_UNSTART: Operation;
67
38
  readonly MEDICAL_SERVICE_COMPLETE: Operation;
68
- readonly MEDICAL_SERVICE_REOPEN_COMPLETED: Operation;
69
39
  readonly MEDICAL_SERVICE_CANCEL: Operation;
70
- readonly MEDICAL_SERVICE_UNDO_CANCEL: Operation;
71
- readonly MEDICAL_SERVICE_FORCE_RESET: Operation;
72
- readonly MEMBERSHIP_CREATE: Operation;
73
- readonly MEMBERSHIP_RETRIEVE: Operation;
74
- readonly MEMBERSHIP_UPDATE: Operation;
75
- readonly MEMBERSHIP_DELETE: Operation;
76
- readonly MEDICATION_RETRIEVE: Operation;
40
+ readonly MEDICAL_SERVICE_ASSIGN: Operation;
41
+ readonly MEDICAL_SERVICE_NOTE_VIEW: Operation;
42
+ readonly MEDICAL_SERVICE_NOTE_CREATE: Operation;
43
+ readonly MEDICAL_SERVICE_NOTE_UPDATE: Operation;
44
+ readonly MEDICAL_SERVICE_NOTE_DELETE: Operation;
45
+ readonly PATIENT_MEDICAL_NOTE_VIEW: Operation;
46
+ readonly PATIENT_MEDICAL_NOTE_CREATE: Operation;
47
+ readonly PATIENT_MEDICAL_NOTE_UPDATE: Operation;
48
+ readonly PATIENT_MEDICAL_NOTE_DELETE: Operation;
49
+ readonly MEDICAL_HISTORY_VIEW: Operation;
50
+ readonly MEDICAL_HISTORY_CREATE: Operation;
51
+ readonly MEDICAL_HISTORY_UPDATE: Operation;
52
+ readonly MEDICAL_HISTORY_DELETE: Operation;
53
+ readonly OBSERVATION_VIEW: Operation;
77
54
  readonly OBSERVATION_CREATE: Operation;
78
- readonly OBSERVATION_RETRIEVE: Operation;
79
55
  readonly OBSERVATION_UPDATE: Operation;
80
56
  readonly OBSERVATION_DELETE: Operation;
81
- readonly PATIENT_CREATE: Operation;
82
- readonly PATIENT_RETRIEVE: Operation;
83
- readonly PATIENT_UPDATE: Operation;
84
- readonly PATIENT_DELETE: Operation;
85
- readonly PATIENT_PROFILE_UPDATE: Operation;
86
- readonly PATIENT_STATUS_UPDATE: Operation;
87
- readonly PATIENT_MEDICAL_NOTES_UPDATE: Operation;
88
- readonly PATIENT_MEDICAL_PROPERTIES_UPDATE: Operation;
89
- readonly PATIENT_PUBLIC_PROPERTIES_UPDATE: Operation;
90
- readonly PATIENT_PAYMENT_UPDATE: Operation;
91
- readonly PATIENT_PAYMENT_RETRIEVE: Operation;
92
- readonly PATIENT_PAYMENT_DELETE: Operation;
57
+ readonly PRESCRIPTION_VIEW: Operation;
93
58
  readonly PRESCRIPTION_CREATE: Operation;
94
- readonly PRESCRIPTION_RETRIEVE: Operation;
95
59
  readonly PRESCRIPTION_UPDATE: Operation;
96
60
  readonly PRESCRIPTION_DELETE: Operation;
97
- readonly PRESCRIPTION_MODEL_RETRIEVE: Operation;
98
- readonly PRESCRIPTION_MODEL_UPDATE: Operation;
99
- readonly PRESCRIPTION_MODEL_DELETE: Operation;
100
- readonly TASK_TYPE_RETRIEVE: Operation;
101
- readonly TASK_TYPE_UPDATE: Operation;
102
- readonly TASK_TYPE_DELETE: Operation;
61
+ readonly DOCUMENT_LAYOUT_VIEW: Operation;
62
+ readonly DOCUMENT_LAYOUT_CREATE: Operation;
63
+ readonly DOCUMENT_LAYOUT_UPDATE: Operation;
64
+ readonly DOCUMENT_LAYOUT_DELETE: Operation;
65
+ readonly DOCUMENT_MODEL_VIEW: Operation;
66
+ readonly DOCUMENT_MODEL_CREATE: Operation;
67
+ readonly DOCUMENT_MODEL_UPDATE: Operation;
68
+ readonly DOCUMENT_MODEL_DELETE: Operation;
69
+ readonly GENERATED_DOCUMENT_VIEW: Operation;
70
+ readonly GENERATED_DOCUMENT_GENERATE: Operation;
71
+ readonly GENERATED_DOCUMENT_DELETE: Operation;
72
+ readonly UPLOAD_DOCUMENT_VIEW: Operation;
103
73
  readonly UPLOAD_DOCUMENT_CREATE: Operation;
104
- readonly UPLOAD_DOCUMENT_RETRIEVE: Operation;
105
- readonly UPLOAD_DOCUMENT_UPDATE: Operation;
106
74
  readonly UPLOAD_DOCUMENT_DELETE: Operation;
107
- readonly USER_RETRIEVE: Operation;
108
- readonly USER_UPDATE: Operation;
109
- readonly USER_CALENDAR_PREFERENCES_UPDATE: Operation;
110
- readonly USER_PREFERENCES_RETRIEVE: Operation;
75
+ readonly GENERAL_SETTINGS_VIEW: Operation;
76
+ readonly GENERAL_SETTINGS_UPDATE: Operation;
77
+ readonly PREFERENCES_VIEW: Operation;
78
+ readonly PREFERENCES_UPDATE: Operation;
79
+ readonly MEASURE_MODEL_VIEW: Operation;
80
+ readonly MEASURE_MODEL_CREATE: Operation;
81
+ readonly MEASURE_MODEL_UPDATE: Operation;
82
+ readonly MEASURE_MODEL_DELETE: Operation;
83
+ readonly CALCULATED_MEASURE_MODEL_VIEW: Operation;
84
+ readonly CALCULATED_MEASURE_MODEL_CREATE: Operation;
85
+ readonly CALCULATED_MEASURE_MODEL_UPDATE: Operation;
86
+ readonly CALCULATED_MEASURE_MODEL_DELETE: Operation;
87
+ readonly TASK_TYPE_VIEW: Operation;
88
+ readonly TASK_TYPE_CREATE: Operation;
89
+ readonly TASK_TYPE_UPDATE: Operation;
90
+ readonly TASK_TYPE_DELETE: Operation;
91
+ readonly LOCATION_VIEW: Operation;
92
+ readonly LOCATION_CREATE: Operation;
93
+ readonly LOCATION_UPDATE: Operation;
94
+ readonly LOCATION_DELETE: Operation;
95
+ readonly MEDICAL_HISTORY_MODEL_VIEW: Operation;
96
+ readonly MEDICAL_HISTORY_MODEL_CREATE: Operation;
97
+ readonly MEDICAL_HISTORY_MODEL_UPDATE: Operation;
98
+ readonly MEDICAL_HISTORY_MODEL_DELETE: Operation;
99
+ readonly PRESCRIPTION_MODEL_VIEW: Operation;
100
+ readonly PRESCRIPTION_MODEL_CREATE: Operation;
101
+ readonly PRESCRIPTION_MODEL_UPDATE: Operation;
102
+ readonly PRESCRIPTION_MODEL_DELETE: Operation;
103
+ readonly PATIENT_PROPERTY_MODEL_VIEW: Operation;
104
+ readonly PATIENT_PROPERTY_MODEL_CREATE: Operation;
105
+ readonly PATIENT_PROPERTY_MODEL_UPDATE: Operation;
106
+ readonly PATIENT_PROPERTY_MODEL_DELETE: Operation;
107
+ readonly CALENDAR_TOKEN_VIEW: Operation;
108
+ readonly CALENDAR_TOKEN_ROTATE: Operation;
109
+ readonly CALENDAR_SETTINGS_VIEW: Operation;
110
+ readonly CALENDAR_SETTINGS_UPDATE: Operation;
111
+ readonly CALENDAR_SYNC_ENABLE: Operation;
112
+ readonly CALENDAR_SYNC_DISABLE: Operation;
113
+ readonly CALENDAR_SYNC_VIEW: Operation;
114
+ readonly AVAILABLE_SLOTS_VIEW: Operation;
115
+ readonly MEDICATION_SEARCH_VIEW: Operation;
111
116
  };
112
117
  export declare function getAllOperations(): Operation[];
113
118
  export declare function getOperationsByResource(resource: Resource): Operation[];