@blackcode_sa/metaestetics-api 1.7.45 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/admin/index.d.mts +999 -959
  2. package/dist/admin/index.d.ts +999 -959
  3. package/dist/admin/index.js +69 -69
  4. package/dist/admin/index.mjs +67 -69
  5. package/dist/index.d.mts +14675 -13040
  6. package/dist/index.d.ts +14675 -13040
  7. package/dist/index.js +12224 -14615
  8. package/dist/index.mjs +12452 -14968
  9. package/package.json +5 -5
  10. package/src/admin/index.ts +8 -1
  11. package/src/index.backup.ts +407 -0
  12. package/src/index.ts +5 -406
  13. package/src/services/PATIENTAUTH.MD +197 -0
  14. package/src/services/__tests__/auth/auth.setup.ts +2 -2
  15. package/src/services/__tests__/auth.service.test.ts +1 -1
  16. package/src/services/__tests__/user.service.test.ts +1 -1
  17. package/src/services/appointment/index.ts +1 -2
  18. package/src/services/{auth.service.ts → auth/auth.service.ts} +36 -22
  19. package/src/services/{auth.v2.service.ts → auth/auth.v2.service.ts} +17 -17
  20. package/src/services/auth/index.ts +2 -16
  21. package/src/services/calendar/calendar-refactored.service.ts +1 -1
  22. package/src/services/calendar/externalCalendar.service.ts +178 -0
  23. package/src/services/calendar/index.ts +5 -0
  24. package/src/services/clinic/index.ts +4 -0
  25. package/src/services/index.ts +14 -0
  26. package/src/services/media/index.ts +1 -0
  27. package/src/services/notifications/index.ts +1 -0
  28. package/src/services/patient/README.md +48 -0
  29. package/src/services/patient/To-Do.md +43 -0
  30. package/src/services/patient/index.ts +2 -0
  31. package/src/services/patient/patient.service.ts +289 -34
  32. package/src/services/patient/utils/index.ts +9 -0
  33. package/src/services/patient/utils/medical.utils.ts +114 -157
  34. package/src/services/patient/utils/profile.utils.ts +9 -0
  35. package/src/services/patient/utils/sensitive.utils.ts +79 -14
  36. package/src/services/patient/utils/token.utils.ts +211 -0
  37. package/src/services/practitioner/index.ts +1 -0
  38. package/src/services/procedure/index.ts +1 -0
  39. package/src/services/reviews/index.ts +1 -0
  40. package/src/services/user/index.ts +1 -0
  41. package/src/services/{user.service.ts → user/user.service.ts} +61 -12
  42. package/src/services/{user.v2.service.ts → user/user.v2.service.ts} +12 -12
  43. package/src/types/index.ts +42 -42
  44. package/src/types/patient/index.ts +33 -6
  45. package/src/types/patient/token.types.ts +61 -0
  46. package/src/types/user/index.ts +38 -0
  47. package/src/utils/index.ts +1 -0
  48. package/src/validations/calendar.schema.ts +6 -45
  49. package/src/validations/documentation-templates/index.ts +1 -0
  50. package/src/validations/documentation-templates.schema.ts +1 -1
  51. package/src/validations/index.ts +20 -0
  52. package/src/validations/patient/token.schema.ts +29 -0
  53. package/src/validations/patient.schema.ts +23 -6
  54. package/src/validations/profile-info.schema.ts +1 -1
  55. package/src/validations/schemas.ts +24 -24
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@blackcode_sa/metaestetics-api",
3
3
  "private": false,
4
- "version": "1.7.45",
4
+ "version": "1.8.0",
5
5
  "description": "Firebase authentication service with anonymous upgrade support",
6
- "main": "./dist/index.js",
7
- "module": "./dist/index.mjs",
8
- "types": "./dist/index.d.ts",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.mjs",
8
+ "types": "dist/index.d.ts",
9
9
  "typesVersions": {
10
10
  "*": {
11
11
  "*": [
@@ -61,7 +61,7 @@
61
61
  "build:admin": "tsup src/admin/index.ts --format cjs,esm --dts --out-dir dist/admin --external react-native",
62
62
  "build:backoffice": "tsup src/backoffice/index.ts --format cjs,esm --dts --out-dir dist/backoffice",
63
63
  "build": "npm run clean && npm run build:main && npm run build:admin && npm run build:backoffice",
64
- "dev": "npm run build -- --watch",
64
+ "dev": "tsup src/index.ts --format cjs,esm --dts --watch --external react-native",
65
65
  "prepublishOnly": "npm run build",
66
66
  "publish:patch": "bash ./publish.sh patch",
67
67
  "publish:minor": "bash ./publish.sh minor",
@@ -17,7 +17,7 @@ import {
17
17
  } from "../types/clinic/practitioner-invite.types";
18
18
  import { DoctorInfo } from "../types/clinic";
19
19
  import { Procedure, ProcedureSummaryInfo } from "../types/procedure";
20
- import { PatientProfile } from "../types/patient";
20
+ import { PatientProfile, PatientSensitiveInfo } from "../types/patient";
21
21
  import { Appointment, AppointmentStatus } from "../types/appointment";
22
22
 
23
23
  // Explicitly import the services to re-export them by name
@@ -50,6 +50,13 @@ export type {
50
50
  AppointmentReminderNotification,
51
51
  } from "../types/notifications";
52
52
 
53
+ // Re-export patient types
54
+ export type { PatientProfile, PatientSensitiveInfo } from "../types/patient";
55
+ export {
56
+ PATIENTS_COLLECTION,
57
+ PATIENT_SENSITIVE_INFO_COLLECTION,
58
+ } from "../types/patient";
59
+
53
60
  // Re-export types needed by cloud functions
54
61
  export type { Clinic, ClinicLocation } from "../types/clinic";
55
62
  export type { ClinicInfo } from "../types/profile";
@@ -0,0 +1,407 @@
1
+ import { UserRole } from "./types";
2
+ import { Category } from "./backoffice/types/category.types";
3
+ import {
4
+ createAppointmentSchema as appointmentCreateSchema,
5
+ updateAppointmentSchema as appointmentUpdateSchema,
6
+ searchAppointmentsSchema,
7
+ } from "./validations/appointment.schema";
8
+
9
+ // Firebase
10
+ export {
11
+ initializeFirebase,
12
+ getFirebaseInstance,
13
+ getFirebaseAuth,
14
+ getFirebaseDB,
15
+ getFirebaseApp,
16
+ } from "./config/firebase";
17
+
18
+ // Services
19
+ export { AuthService } from "./services/auth/auth.service";
20
+ export { UserService } from "./services/user/user.service";
21
+ export { NotificationService } from "./services/notifications/notification.service";
22
+ export { PatientService } from "./services/patient/patient.service";
23
+ export { PractitionerService } from "./services/practitioner/practitioner.service";
24
+ export { ProcedureService } from "./services/procedure/procedure.service";
25
+ export { ClinicService } from "./services/clinic/clinic.service";
26
+ export { ClinicAdminService } from "./services/clinic/clinic-admin.service";
27
+ export { ClinicGroupService } from "./services/clinic/clinic-group.service";
28
+ export { PractitionerInviteService } from "./services/clinic/practitioner-invite.service";
29
+ export {
30
+ DocumentationTemplateService,
31
+ FilledDocumentService,
32
+ } from "./services/documentation-templates";
33
+ export { CalendarServiceV2 } from "./services/calendar/calendar-refactored.service";
34
+ export { CalendarServiceV3 } from "./services/calendar/calendar.v3.service";
35
+ export { SyncedCalendarsService } from "./services/calendar/synced-calendars.service";
36
+ export { ReviewService } from "./services/reviews/reviews.service";
37
+ export { AppointmentService } from "./services/appointment/appointment.service";
38
+ export { PatientRequirementsService } from "./services/patient/patientRequirements.service";
39
+ export { MediaService } from "./services/media/media.service";
40
+
41
+ // Backoffice services
42
+ export { BrandService } from "./backoffice/services/brand.service";
43
+ export { CategoryService } from "./backoffice/services/category.service";
44
+ export { SubcategoryService } from "./backoffice/services/subcategory.service";
45
+ export { TechnologyService } from "./backoffice/services/technology.service";
46
+ export { ProductService } from "./backoffice/services/product.service";
47
+
48
+ // Types
49
+ export type { User, UserRole, CreateUserData, FirebaseUser } from "./types";
50
+ export { AUTH_ERRORS } from "./errors/auth.errors";
51
+ export { USER_ERRORS } from "./errors/user.errors";
52
+ export type { AuthError } from "./errors/auth.errors";
53
+ export * from "./validations/schemas";
54
+ export * from "./validations/notification.schema";
55
+ export * from "./validations/patient.schema";
56
+ export * from "./validations/practitioner.schema";
57
+ export * from "./validations/clinic.schema";
58
+ export * from "./validations/patient/medical-info.schema";
59
+ export * from "./validations/documentation-templates.schema";
60
+ export * from "./validations/calendar.schema";
61
+ export {
62
+ practitionerProfileInfoSchema,
63
+ patientProfileInfoSchema,
64
+ } from "./validations/profile-info.schema";
65
+ export { FirebaseErrorCode } from "./errors/firebase.errors";
66
+
67
+ // Appointment schemas
68
+ export {
69
+ appointmentCreateSchema as createAppointmentSchema,
70
+ appointmentUpdateSchema as updateAppointmentSchema,
71
+ searchAppointmentsSchema,
72
+ };
73
+
74
+ // Notification types
75
+ export type {
76
+ Notification,
77
+ BaseNotification,
78
+ PreRequirementNotification,
79
+ PostRequirementNotification,
80
+ AppointmentReminderNotification,
81
+ } from "./types/notifications";
82
+ export { NotificationType, NotificationStatus } from "./types/notifications";
83
+
84
+ // Patient types
85
+ export type {
86
+ PatientProfile,
87
+ CreatePatientProfileData,
88
+ UpdatePatientProfileData,
89
+ PatientLocationInfo,
90
+ CreatePatientLocationInfoData,
91
+ UpdatePatientLocationInfoData,
92
+ AddressData,
93
+ LocationData,
94
+ GamificationInfo,
95
+ EmergencyContact,
96
+ PatientDoctor,
97
+ PatientSensitiveInfo,
98
+ CreatePatientSensitiveInfoData,
99
+ UpdatePatientSensitiveInfoData,
100
+ PatientClinic,
101
+ PatientMedicalInfo,
102
+ CreatePatientMedicalInfoData,
103
+ UpdatePatientMedicalInfoData,
104
+ VitalStats,
105
+ UpdateVitalStatsData,
106
+ AddAllergyData,
107
+ UpdateAllergyData,
108
+ AddBlockingConditionData,
109
+ UpdateBlockingConditionData,
110
+ AddContraindicationData,
111
+ UpdateContraindicationData,
112
+ AddMedicationData,
113
+ UpdateMedicationData,
114
+ Allergy,
115
+ PatientProfileComplete,
116
+ SearchPatientsParams,
117
+ RequesterInfo,
118
+ PatientProfileForDoctor,
119
+ CreateManualPatientData,
120
+ } from "./types/patient";
121
+ export {
122
+ Gender,
123
+ PATIENTS_COLLECTION,
124
+ PATIENT_MEDICAL_INFO_COLLECTION,
125
+ PATIENT_SENSITIVE_INFO_COLLECTION,
126
+ PATIENT_LOCATION_INFO_COLLECTION,
127
+ PATIENT_MEDICAL_HISTORY_COLLECTION,
128
+ PATIENT_APPOINTMENTS_COLLECTION,
129
+ } from "./types/patient";
130
+
131
+ // Appointment types
132
+ export type {
133
+ Appointment,
134
+ CreateAppointmentData,
135
+ CreateAppointmentHttpData,
136
+ UpdateAppointmentData,
137
+ SearchAppointmentsParams,
138
+ AppointmentMetadata,
139
+ BeforeAfterPerZone,
140
+ BillingPerZone,
141
+ FinalBilling,
142
+ } from "./types/appointment";
143
+ export {
144
+ AppointmentStatus,
145
+ PaymentStatus,
146
+ APPOINTMENTS_COLLECTION,
147
+ } from "./types/appointment";
148
+
149
+ // Allergy tipovi
150
+ export type {
151
+ AllergyTypeWithSubtype,
152
+ AllergySubtype,
153
+ } from "./types/patient/allergies";
154
+
155
+ export {
156
+ AllergyType,
157
+ MedicationAllergySubtype,
158
+ FoodAllergySubtype,
159
+ EnvironmentalAllergySubtype,
160
+ CosmeticAllergySubtype,
161
+ } from "./types/patient/allergies";
162
+
163
+ // Practitioner types
164
+ export type {
165
+ Practitioner,
166
+ PractitionerBasicInfo,
167
+ PractitionerCertification,
168
+ CreatePractitionerData,
169
+ UpdatePractitionerData,
170
+ PractitionerClinicProcedures,
171
+ PractitionerWorkingHours,
172
+ PractitionerClinicWorkingHours,
173
+ CreateDraftPractitionerData,
174
+ PractitionerToken,
175
+ CreatePractitionerTokenData,
176
+ } from "./types/practitioner";
177
+ export {
178
+ PRACTITIONERS_COLLECTION,
179
+ REGISTER_TOKENS_COLLECTION,
180
+ PractitionerStatus,
181
+ PractitionerTokenStatus,
182
+ } from "./types/practitioner";
183
+
184
+ // Clinic types
185
+ export type {
186
+ Clinic,
187
+ ClinicGroup,
188
+ ClinicAdmin,
189
+ CreateClinicData,
190
+ UpdateClinicData,
191
+ CreateClinicGroupData,
192
+ UpdateClinicGroupData,
193
+ CreateClinicAdminData,
194
+ UpdateClinicAdminData,
195
+ ClinicLocation,
196
+ ClinicContactInfo,
197
+ WorkingHours,
198
+ ClinicTags,
199
+ ClinicAdminSignupData,
200
+ ContactPerson,
201
+ AdminToken,
202
+ AdminInfo,
203
+ CreateAdminTokenData,
204
+ DoctorInfo,
205
+ CreateDefaultClinicGroupData,
206
+ ClinicGroupSetupData,
207
+ ClinicBranchSetupData,
208
+ PractitionerInvite,
209
+ CreatePractitionerInviteData,
210
+ UpdatePractitionerInviteData,
211
+ PractitionerInviteFilters,
212
+ ProposedWorkingHours,
213
+ } from "./types/clinic";
214
+ export {
215
+ CLINICS_COLLECTION,
216
+ CLINIC_GROUPS_COLLECTION,
217
+ CLINIC_ADMINS_COLLECTION,
218
+ PRACTITIONER_INVITES_COLLECTION,
219
+ PracticeType,
220
+ Language,
221
+ ClinicTag,
222
+ ClinicPhotoTag,
223
+ AdminTokenStatus,
224
+ SubscriptionModel,
225
+ PractitionerInviteStatus,
226
+ } from "./types/clinic";
227
+
228
+ // Profile info types
229
+ export type {
230
+ ClinicInfo,
231
+ PractitionerProfileInfo,
232
+ PatientProfileInfo,
233
+ } from "./types/profile";
234
+
235
+ // Calendar types
236
+ export type {
237
+ CalendarEvent,
238
+ CalendarEventTime,
239
+ CreateCalendarEventData,
240
+ UpdateCalendarEventData,
241
+ TimeSlot,
242
+ ProcedureInfo,
243
+ ProcedureCategorization,
244
+ SyncedCalendarEvent,
245
+ CreateAppointmentParams,
246
+ UpdateAppointmentParams,
247
+ CreateBlockingEventParams,
248
+ UpdateBlockingEventParams,
249
+ } from "./types/calendar";
250
+
251
+ export {
252
+ CalendarEventStatus,
253
+ CalendarEventType,
254
+ CalendarSyncStatus,
255
+ SearchLocationEnum,
256
+ DateRange,
257
+ SearchCalendarEventsParams,
258
+ CALENDAR_COLLECTION,
259
+ } from "./types/calendar";
260
+
261
+ // Synced calendar types
262
+ export type {
263
+ SyncedCalendar,
264
+ CreateSyncedCalendarData,
265
+ UpdateSyncedCalendarData,
266
+ } from "./types/calendar/synced-calendar.types";
267
+
268
+ export {
269
+ SyncedCalendarProvider,
270
+ SYNCED_CALENDARS_COLLECTION,
271
+ } from "./types/calendar/synced-calendar.types";
272
+
273
+ // Certification types
274
+
275
+ // Brand types
276
+ export type { Brand } from "./backoffice/types/brand.types";
277
+
278
+ // Category types
279
+ export type { Category } from "./backoffice/types/category.types";
280
+
281
+ // Product types
282
+ export type { Product } from "./backoffice/types/product.types";
283
+
284
+ // Requirement types
285
+ export type { Requirement } from "./backoffice/types/requirement.types";
286
+
287
+ // Subcategory types
288
+ export type { Subcategory } from "./backoffice/types/subcategory.types";
289
+
290
+ // Technology types
291
+ export type {
292
+ Technology,
293
+ TechnologyDocumentationTemplate,
294
+ } from "./backoffice/types/technology.types";
295
+
296
+ // Pricing enums
297
+ export {
298
+ PricingMeasure,
299
+ Currency,
300
+ } from "./backoffice/types/static/pricing.types";
301
+
302
+ // Static types
303
+ export { BlockingCondition } from "./backoffice/types/static/blocking-condition.types";
304
+ export {
305
+ CertificationSpecialty,
306
+ CertificationLevel,
307
+ } from "./backoffice/types/static/certification.types";
308
+ export { Contraindication } from "./backoffice/types/static/contraindication.types";
309
+ export { ProcedureFamily } from "./backoffice/types/static/procedure-family.types";
310
+ export { TreatmentBenefit } from "./backoffice/types/static/treatment-benefit.types";
311
+ export {
312
+ RequirementType,
313
+ TimeUnit,
314
+ } from "./backoffice/types/requirement.types";
315
+
316
+ // Media types
317
+ export type {
318
+ MediaMetadata,
319
+ MediaResource,
320
+ } from "./services/media/media.service";
321
+ export { MEDIA_METADATA_COLLECTION } from "./services/media/media.service";
322
+ export { MediaAccessLevel } from "./services/media/media.service";
323
+ // Documentation Templates types
324
+ export type {
325
+ DocumentTemplate,
326
+ CreateDocumentTemplateData,
327
+ UpdateDocumentTemplateData,
328
+ DocumentElement,
329
+ FilledDocument,
330
+ BaseDocumentElement,
331
+ HeadingElement,
332
+ ParagraphElement,
333
+ ListElement,
334
+ DynamicTextElement,
335
+ BinaryChoiceElement,
336
+ MultipleChoiceElement,
337
+ SingleChoiceElement,
338
+ RatingScaleElement,
339
+ TextInputElement,
340
+ DatePickerElement,
341
+ SignatureElement,
342
+ DigitalSignatureElement,
343
+ FileUploadElement,
344
+ } from "./types/documentation-templates";
345
+ export {
346
+ DocumentElementType,
347
+ HeadingLevel,
348
+ ListType,
349
+ DynamicVariable,
350
+ FilledDocumentStatus,
351
+ FilledDocumentFileValue,
352
+ DOCUMENTATION_TEMPLATES_COLLECTION,
353
+ FILLED_DOCUMENTS_COLLECTION,
354
+ USER_FORMS_SUBCOLLECTION,
355
+ DOCTOR_FORMS_SUBCOLLECTION,
356
+ } from "./types/documentation-templates";
357
+
358
+ // Procedure types
359
+ export type {
360
+ Procedure,
361
+ CreateProcedureData,
362
+ UpdateProcedureData,
363
+ } from "./types/procedure";
364
+ export { PROCEDURES_COLLECTION } from "./types/procedure";
365
+
366
+ // Review types
367
+ export type {
368
+ ClinicReview,
369
+ PractitionerReview,
370
+ ProcedureReview,
371
+ ClinicReviewInfo,
372
+ PractitionerReviewInfo,
373
+ ProcedureReviewInfo,
374
+ Review,
375
+ } from "./types/reviews";
376
+
377
+ export { REVIEWS_COLLECTION } from "./types/reviews/index";
378
+
379
+ // Review schemas
380
+ export {
381
+ clinicReviewSchema,
382
+ createClinicReviewSchema,
383
+ practitionerReviewSchema,
384
+ createPractitionerReviewSchema,
385
+ procedureReviewSchema,
386
+ createProcedureReviewSchema,
387
+ clinicReviewInfoSchema,
388
+ practitionerReviewInfoSchema,
389
+ procedureReviewInfoSchema,
390
+ reviewSchema,
391
+ createReviewSchema,
392
+ } from "./validations/reviews.schema";
393
+
394
+ // Patient Requirement Types
395
+ export type {
396
+ PatientRequirementInstance,
397
+ PatientRequirementInstruction,
398
+ } from "./types/patient/patient-requirements";
399
+ export {
400
+ PatientInstructionStatus,
401
+ PatientRequirementOverallStatus,
402
+ PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME,
403
+ } from "./types/patient/patient-requirements";
404
+
405
+ // Patient Requirement Validation Schemas (if they exist and are for client use)
406
+ // Assuming the path, add if it exists and is needed:
407
+ // export * from "./validations/patient/patient-requirements.schema";