@7365admin1/core 3.47.1-staging.131 → 3.47.1-staging.132
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.changeset/member-type-platform-staff-gate.md +71 -0
- package/dist/index.d.ts +45 -8
- package/dist/index.js +51 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +75 -28
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/test/e2e/harness.mjs +77 -0
- package/test/e2e/privilege-escalation.e2e.test.mjs +393 -0
- package/test/member-staff-gate.test.mjs +148 -0
- package/test/member-type-allowlist.test.mjs +99 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
"@7365admin1/core": minor
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Only Seven365 staff can create a Seven365 staff membership.
|
|
6
|
+
|
|
7
|
+
`members.type` decides who is platform staff. `isSuperAdmin` answers true for a
|
|
8
|
+
live `members` row of type `"admin"` whose role is also of type `"admin"`, and
|
|
9
|
+
that field was validated as `Joi.string().required()` — a free-form string with
|
|
10
|
+
no allow-list. Every request path that writes a membership takes the value
|
|
11
|
+
straight from the caller:
|
|
12
|
+
|
|
13
|
+
- `POST /api/members/direct` writes the body's `app` verbatim as `type`
|
|
14
|
+
(`member.service.ts:137`);
|
|
15
|
+
- `POST /api/auth/invite` stores the body's `app` on the invitation, and
|
|
16
|
+
accepting it writes that value as `type` (`member.service.ts:73`);
|
|
17
|
+
- `PUT /api/members/id/:id/role/:role/type/:type/org/:org` re-pointed a
|
|
18
|
+
membership at any role, including the seeded platform one, checking only that
|
|
19
|
+
an owner role existed and that the target was not the last owner — never who
|
|
20
|
+
was asking.
|
|
21
|
+
|
|
22
|
+
All three are `requireAuth`-only. So any signed-in account — a resident, a
|
|
23
|
+
cleaner, a guard — could post `{ app: "admin" }`, or invite itself as `admin`
|
|
24
|
+
and accept its own invitation, and be Seven365 platform staff on the next
|
|
25
|
+
request. That defeats every gate built on `isSuperAdmin`: the staff console,
|
|
26
|
+
service-provider approvals, the notification broadcast and client suspension.
|
|
27
|
+
Executed end to end against a throwaway in-memory database, the chain succeeded
|
|
28
|
+
at every step.
|
|
29
|
+
|
|
30
|
+
Three changes, all fail-closed:
|
|
31
|
+
|
|
32
|
+
- `members.type` now validates against `MEMBER_TYPES`, enumerated from the
|
|
33
|
+
values this package actually writes — `admin` (`user.service.ts`
|
|
34
|
+
`createDefaultUser` and the console's own invitations), `organization` (the
|
|
35
|
+
default in `member.service.ts`, `user.service.ts`, `user-v2.service.ts` and
|
|
36
|
+
`subscription.service.ts`), `resident` (`person.service.ts`), and the eight
|
|
37
|
+
`AppServiceType` service memberships, the same list `organization.model.ts`
|
|
38
|
+
already accepts as an organisation's `nature`.
|
|
39
|
+
- `createMemberDirect` refuses `app: "admin"`, and refuses a role of type
|
|
40
|
+
`"admin"`, unless the caller is already platform staff. The caller is resolved
|
|
41
|
+
from the session by the controller and passed in; it is never read from a body
|
|
42
|
+
or a URL.
|
|
43
|
+
- `createUserInvite` refuses `app: "admin"` unless the caller is already
|
|
44
|
+
platform staff, so the invitation road to the same place is shut too.
|
|
45
|
+
|
|
46
|
+
`updateRoleById` refuses to move a membership onto a role of type `"admin"` for
|
|
47
|
+
the same reason — that was step 6 of the chain, the one that turned
|
|
48
|
+
`isPlatformOwner` true by pointing a membership at the seeded owner role.
|
|
49
|
+
|
|
50
|
+
The seeded role marker `default: true` was re-checked rather than assumed and is
|
|
51
|
+
still not forgeable: Joi rejects unknown keys on all three role schemas.
|
|
52
|
+
|
|
53
|
+
Every legitimate caller across the sibling repos was checked and still works.
|
|
54
|
+
`web-app-main pages/sign-in.vue` and `pages/verify/email/index.vue`, and
|
|
55
|
+
`web-app-org pages/onboarding/getting-started/index.vue`, all pass
|
|
56
|
+
`app: "organization"` or a service type — none reaches a gate. The one caller
|
|
57
|
+
that does send `"admin"` is the staff console itself
|
|
58
|
+
(`web-app-org pages/super-admin/invitations/index.vue:403`), operated by an
|
|
59
|
+
account that already is staff.
|
|
60
|
+
|
|
61
|
+
One transitional case is kept deliberately. `web-app-org
|
|
62
|
+
pages/org/[organization]/invitations/invite.vue:122` and `web-app-hygiene
|
|
63
|
+
pages/[org]/[site]/invitations/invite.vue:135` send the ORGANISATION ID as the
|
|
64
|
+
invitation's `app`, so accepting one of those invitations writes an org id into
|
|
65
|
+
`members.type`. That is a defect in those two screens, but it is live: the
|
|
66
|
+
validator therefore also accepts a 24-character hex string, with the two file
|
|
67
|
+
references named at the line, to be removed once both screens send a real
|
|
68
|
+
membership type. It cannot be used to escalate — `"admin"` is not 24 hex
|
|
69
|
+
characters, so the allow-list still decides that.
|
|
70
|
+
|
|
71
|
+
No response shape, status code or field changed for a permitted caller.
|
package/dist/index.d.ts
CHANGED
|
@@ -320,6 +320,41 @@ declare function useRoleController(): {
|
|
|
320
320
|
deleteWithReassignments: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
321
321
|
};
|
|
322
322
|
|
|
323
|
+
/**
|
|
324
|
+
* The membership type that makes somebody Seven365 platform staff.
|
|
325
|
+
*
|
|
326
|
+
* `isSuperAdmin` (`utils/super-admin.util.ts`) answers true for a live
|
|
327
|
+
* `members` row of this type whose role is also of type "admin". That makes
|
|
328
|
+
* this string the most privileged value in the collection, so it is named once
|
|
329
|
+
* and gated on the caller wherever a request can supply it — see
|
|
330
|
+
* `member.service.ts` and `verification-v2.controller.ts`.
|
|
331
|
+
*/
|
|
332
|
+
declare const PLATFORM_STAFF_MEMBER_TYPE = "admin";
|
|
333
|
+
/**
|
|
334
|
+
* Every membership type this package actually writes.
|
|
335
|
+
*
|
|
336
|
+
* `type` used to be `Joi.string().required()` with no allow-list at all, and it
|
|
337
|
+
* is the field the platform-staff test reads. Any signed-in account could post
|
|
338
|
+
* `{ app: "admin" }` to `POST /api/members/direct`, or invite itself with
|
|
339
|
+
* `app: "admin"`, and be Seven365 staff on the next request.
|
|
340
|
+
*
|
|
341
|
+
* Nothing here is invented. Each value is one this package writes today:
|
|
342
|
+
*
|
|
343
|
+
* - `admin` — `user.service.ts createDefaultUser` seeds it, and the staff
|
|
344
|
+
* console's own invitations send `app: "admin"`.
|
|
345
|
+
* - `organization` — the default in `member.service.ts:73`,
|
|
346
|
+
* `user.service.ts:197` and `user-v2.service.ts:114`, and what
|
|
347
|
+
* `subscription.service.ts:167` writes for a new client's first member.
|
|
348
|
+
* - `resident` — `person.service.ts:163`, when a resident record gets a login.
|
|
349
|
+
* - the eight `AppServiceType` values — the service-provider memberships, the
|
|
350
|
+
* same list `organization.model.ts allowedNatures` already accepts for an
|
|
351
|
+
* organisation's nature.
|
|
352
|
+
*
|
|
353
|
+
* Being on this list is not permission to BE that type. `admin` is allowed here
|
|
354
|
+
* because the seed and the console legitimately write it; who may ask for it is
|
|
355
|
+
* decided separately, on the caller, in `member.service.ts`.
|
|
356
|
+
*/
|
|
357
|
+
declare const MEMBER_TYPES: string[];
|
|
323
358
|
type TMember = {
|
|
324
359
|
_id?: ObjectId;
|
|
325
360
|
name: string;
|
|
@@ -434,7 +469,7 @@ declare function useMemberService(): {
|
|
|
434
469
|
createMember: (id: string) => Promise<{
|
|
435
470
|
member: string;
|
|
436
471
|
}>;
|
|
437
|
-
createMemberDirect: ({ userId, orgId, roleId, app, siteId, siteName, onboardingRequired, }: {
|
|
472
|
+
createMemberDirect: ({ userId, orgId, roleId, app, siteId, siteName, onboardingRequired, callerId, }: {
|
|
438
473
|
userId: string;
|
|
439
474
|
orgId: string;
|
|
440
475
|
roleId: string;
|
|
@@ -442,10 +477,12 @@ declare function useMemberService(): {
|
|
|
442
477
|
siteId?: string | undefined;
|
|
443
478
|
siteName?: string | undefined;
|
|
444
479
|
onboardingRequired?: boolean | undefined;
|
|
480
|
+
/** the session's user id, from the controller — never from the body */
|
|
481
|
+
callerId?: string | undefined;
|
|
445
482
|
}) => Promise<{
|
|
446
483
|
member: string;
|
|
447
484
|
}>;
|
|
448
|
-
updateRoleById: (id: string, role: string, type: string, org: string) => Promise<{
|
|
485
|
+
updateRoleById: (id: string, role: string, type: string, org: string, callerId?: string) => Promise<{
|
|
449
486
|
message: string;
|
|
450
487
|
}>;
|
|
451
488
|
updateSiteById: (id: string, siteId: string, siteName: string) => Promise<{
|
|
@@ -4192,7 +4229,7 @@ declare function MPerson(value: TPerson): {
|
|
|
4192
4229
|
unit: string | ObjectId | null;
|
|
4193
4230
|
start: string | Date | undefined;
|
|
4194
4231
|
end: string | Date | undefined;
|
|
4195
|
-
type: "walk-in" | "drop-off" | "contractor" | "delivery" | "pick-up" | "guest" | "tenant" |
|
|
4232
|
+
type: "resident" | "walk-in" | "drop-off" | "contractor" | "delivery" | "pick-up" | "guest" | "tenant" | undefined;
|
|
4196
4233
|
email: string | undefined;
|
|
4197
4234
|
password: string;
|
|
4198
4235
|
status: string;
|
|
@@ -4554,7 +4591,7 @@ declare function usePersonRepo(): {
|
|
|
4554
4591
|
getPersonByPhoneNumber: (value: string) => Promise<TPerson | null>;
|
|
4555
4592
|
getPeopleByUnit: ({ status, type, unit, }: {
|
|
4556
4593
|
status: string;
|
|
4557
|
-
type?: ("walk-in" | "drop-off" | "contractor" | "delivery" | "pick-up" | "guest" | "tenant"
|
|
4594
|
+
type?: ("resident" | "walk-in" | "drop-off" | "contractor" | "delivery" | "pick-up" | "guest" | "tenant")[] | undefined;
|
|
4558
4595
|
unit?: string | undefined;
|
|
4559
4596
|
}, session?: ClientSession) => Promise<TPerson[]>;
|
|
4560
4597
|
getCompany: (search?: string) => Promise<any[]>;
|
|
@@ -9790,7 +9827,7 @@ declare function MHidAmicoIdentity(value: THidAmicoIdentity): {
|
|
|
9790
9827
|
member: ObjectId | undefined;
|
|
9791
9828
|
serviceProvider: ObjectId | undefined;
|
|
9792
9829
|
visitor: ObjectId | undefined;
|
|
9793
|
-
type: "admin" | "
|
|
9830
|
+
type: "admin" | "resident" | "contractor" | "unknown" | "visitor" | "staff";
|
|
9794
9831
|
status: "deleted" | "active" | "inactive";
|
|
9795
9832
|
metadata: Record<string, unknown>;
|
|
9796
9833
|
createdAt: string | Date;
|
|
@@ -9894,7 +9931,7 @@ declare function useHidAmicoRepo(): {
|
|
|
9894
9931
|
member: ObjectId | undefined;
|
|
9895
9932
|
serviceProvider: ObjectId | undefined;
|
|
9896
9933
|
visitor: ObjectId | undefined;
|
|
9897
|
-
type: "admin" | "
|
|
9934
|
+
type: "admin" | "resident" | "contractor" | "unknown" | "visitor" | "staff";
|
|
9898
9935
|
status: "deleted" | "active" | "inactive";
|
|
9899
9936
|
metadata: Record<string, unknown>;
|
|
9900
9937
|
createdAt: string | Date;
|
|
@@ -10251,7 +10288,7 @@ declare function useHidAmicoService(): {
|
|
|
10251
10288
|
member: bson.ObjectId | undefined;
|
|
10252
10289
|
serviceProvider: bson.ObjectId | undefined;
|
|
10253
10290
|
visitor: bson.ObjectId | undefined;
|
|
10254
|
-
type: "admin" | "
|
|
10291
|
+
type: "admin" | "resident" | "contractor" | "unknown" | "visitor" | "staff";
|
|
10255
10292
|
status: "deleted" | "active" | "inactive";
|
|
10256
10293
|
metadata: Record<string, unknown>;
|
|
10257
10294
|
createdAt: string | Date;
|
|
@@ -11410,4 +11447,4 @@ declare function useNotificationPreferenceController(): {
|
|
|
11410
11447
|
update: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
11411
11448
|
};
|
|
11412
11449
|
|
|
11413
|
-
export { ANPRMode, AUDIT_VALUE_MAX_LENGTH, AccessTypeProps, AppServiceType, AssignCardConfig, BidStatus, BidType, BuildingLevelStatus, BuildingStatus, BulkCardUpdate, BulletinOrder, BulletinRecipient, BulletinSort, BulletinStatus, BulletinVideoOrder, BulletinVideoSort, CAMERA_ANPR_PERMISSIONS, CAMERA_CAPABILITIES, CAMERA_CAPABILITY_REASONS, CAMERA_NOT_PATROL_OR_CCTV, CAMERA_NO_SUB_STREAM_TTL_SECONDS, CAMERA_PTZ_PERMISSIONS, CAMERA_REQUEST_TIMEOUT_MS, CAMERA_RTSP_TIMEOUT_MS, CAMERA_SETUP_PERMISSIONS, CAMERA_SNAPSHOT_CACHE_SECONDS, CAMERA_SNAPSHOT_MAX_BYTES, CAMERA_TEST_MIN_INTERVAL_SECONDS, CAMERA_TEST_ROUND_LIMIT, CAMERA_TEST_ROUND_SECONDS, CAMERA_TYPE_ANPR, CAMERA_TYPE_IP, CAMERA_VIEW_PERMISSIONS, CLIENT_ACTIONS, CLOCK_DRIFT_WARN_SECONDS, CONSOLE_AUDIT_LABELS, CURRENT_TIME_ENDPOINT, Camera, CameraAddressInput, CameraCapability, CameraCapabilityContext, CameraCapabilityDescriptor, CameraCapabilityEntry, CameraCapabilityReason, CameraCapabilityState, CameraCapabilityTrace, CameraDevice, CameraFrame, CameraMembership, CameraStream, CameraTestStatus, CameraTransport, CameraType, ConsoleAuditAction, ConsoleAuditTarget, DEVICE_STATUS, DOBStatus, DUPLICATE_TERMS_VERSION_MESSAGE, DayOfWeek, DeviceHttpTarget, DeviceProbeResult, DynamicFormFields, EAccessCardTypes, EAccessCardUserTypes, EmailSender, EntryOrder, EntrySort, EventOrder, EventSort, EventStatus, EventType, FacilitySort, FacilityStatus, FormEntryStatus, GuestSort, GuestStatus, HID_CARD_VALUE_FACTOR, HID_PERMISSION_CATEGORIES, HID_UINT32_MAX, HID_UINT64_MAX, HidRawUint64, IAccessCard, IAccessCardTransaction, InviteActor, MAX_CAMERA_CHANNEL, MAccessCard, MAccessCardTransaction, MAddress, MAttendance, MAttendanceSettings, MBidPreloved, MBillingConfiguration, MBillingItem, MBuilding, MBuildingLevel, MBuildingUnit, MBulletinBoard, MBulletinVideo, MCategoryPreloved, MChannelPreloved, MChat, MChatPreloved, MConsoleAudit, MCustomer, MCustomerSite, MDocumentManagement, MEntryPassSettings, MEventManagement, MFeedback, MFile, MFormEntry, MGuestManagement, MHidAmicoEvent, MHidAmicoIdentity, MHidAmicoReader, MHidSipAccount, MHidSitePermissions, MIncidentReport, MManpowerDesignations, MManpowerMonitoring, MManpowerRemarks, MManpowerSites, MMember, MNfcPatrolLog, MNfcPatrolRoute, MNfcPatrolSettings, MNfcPatrolSettingsUpdate, MNfcPatrolTag, MNotification, MNotificationPreference, MOccurrenceBook, MOccurrenceEntry, MOccurrenceSubject, MOnlineForm, MOrg, MOvernightParkingApprovalHours, MOvernightParkingRequest, MPatrolLog, MPatrolQuestion, MPatrolRoute, MPerson, MPlatformTerms, MPost, MPostFavorite, MPromoCode, MRobot, MRole, MRoleV2, MServiceProvider, MServiceProviderBilling, MSession, MSite, MSiteCamera, MSiteFacility, MSiteFacilityBooking, MStatementOfAccount, MSubcategoryPreloved, MSubscription, MSubscriptionPlan, MUnitBilling, MUser, MVehicle, MVehicleTransaction, MVerification, MVerificationV2, MVisitorTransaction, MWorkOrder, NOTIFICATION_CATEGORIES, NOTIFICATION_CHANNELS, NOTIFICATION_CHANNEL_LABELS, NOTIFICATION_NAMESPACE, NotificationAppSlug, NotificationCategory, NotificationChannel, NotificationModule, NotificationPreferenceView, NotificationService, ORG_MARKETPLACE_VENDOR_FIELD, OrgNature, OvernightParkingRequestSort, OvernightParkingRequestStatus, PATROL_CCTV_CAMERA_FILTER, PERSON_TYPES, PROPERTY_MANAGEMENT_MEMBER_TYPES, PStatus, PTZ_ALLOWED_ACTIONS, PTZ_ALLOWED_CODES, Period, PersonStatus, PersonType, PersonTypes, PlatformTermsStatus, PostOrder, PostSort, PostStatus, QrTagProps, REALTIME_MAX_FANOUT, ResidentAppModuleKey, SERVICE_PROVIDER_INVITE_LABELS, SERVICE_PROVIDER_INVITE_TRANSITIONS, SERVICE_PROVIDER_SIGN_IN_SUBJECT, SERVICE_PROVIDER_SIGN_IN_TYPE, SERVICE_PROVIDER_SIGN_UP_SUBJECT, SERVICE_PROVIDER_SIGN_UP_TYPE, SOFTWARE_VERSION_ENDPOINT, ServiceProviderInviteAction, ServiceProviderInviteDecision, ServiceProviderInviteFacts, SiteAddress, SiteCategories, SiteStatus, SortFields, SortOrder, Status, SubjectOrder, SubjectSort, SubscriptionBillingMode, SubscriptionType, TAccessMngmntSettings, TActionStatus, TAddress, TAffectedEntities, TAffectedInjured, TAppServiceType, TApprovedBy, TApprover, TAttendance, TAttendanceCheckIn, TAttendanceCheckOut, TAttendanceCheckTime, TAttendanceLocation, TAttendanceSettings, TAttendanceSettingsGetBySite, TAuthorities, TAuthoritiesCalled, TBidPreloved, TBilling, TBillingConfiguration, TBillingItem, TBuilding, TBuildingLevel, TBuildingUnit, TBulletinBoard, TBulletinVideo, TCamera, TCameraHealthClaim, TCategoryPreloved, TChannelPreloved, TChat, TChatPreloved, TCheckPoint$1 as TCheckPoint, TComplaintInfo, TComplaintReceivedTo, TConsoleAudit, TConsoleAuditQuery, TCounter, TCreateNfcPatrolLog, TCustomer, TCustomerSite, TCustomerSitePropertyField, TDayNumber, TDaySchedule, TDefaultAccessCard, TDesignations, TDocs, TDocumentCreate, TDocumentManagement, TEntryPassSettings, TEventManagement, TFeedback, TFeedbackMetadata, TFeedbackUpdate, TFeedbackUpdateCategory, TFeedbackUpdateServiceProvider, TFeedbackUpdateStatus, TFeedbackUpdateToCompleted, TFile, TFiles, TFolderUpdate, TFormEntry, TGetAttendancesByUserQuery, TGetAttendancesQuery, TGuestManagement, THidAmicoEvent, THidAmicoGatewayJob, THidAmicoIdentity, THidAmicoPhysicalCard, THidAmicoReader, THidPermissionAssignment, THidPermissionCategory, THidPhysicalCardInput, THidPhysicalCardType$1 as THidPhysicalCardType, THidSipAccount, THidSitePermissions, TIncidentInformation, TIncidentReport, TIncidentTypeAndTime, TInvoice, TKeyRef, TManpowerDesignations, TManpowerDesignationsUpdate, TManpowerMonitoring, TManpowerMonitoringUpdate, TManpowerRemarks, TManpowerRemarksStatusUpdate, TManpowerRemarksUpdate, TManpowerSearchFilter, TManpowerSites, TMember, TMemberUpdateStatus, TMessagePreloved, TMiniRole, TNfcPatrolLog, TNfcPatrolRoute, TNfcPatrolRouteEdit, TNfcPatrolSettings, TNfcPatrolSettingsGetBySite, TNfcPatrolSettingsUpdate, TNfcPatrolTag, TNfcPatrolTagConfigureReset, TNfcPatrolTagEdit, TNfcPatrolTagUpdateData, TNotification, TNotificationPreference, TNotificationPreferenceOff, TOccurrenceBook, TOccurrenceEntry, TOccurrenceSubject, TOnlineForm, TOrg, TOvernightParkingApprovalHours, TOvernightParkingRequest, TPatrolLog, TPatrolQuestion, TPatrolRoute, TPerson, TPlaceOfIncident, TPlates, TPlatformTerms, TPost, TPostFavorite, TPrice, TPriceType, TPromoCode, TPromoCurrencyInput, TPromoTier, TRANSPORT_DEVICE_HTTP, TRANSPORT_RELAY_PLAYER, TRANSPORT_RTSP_FRAME, TRecipientOfComplaint, TRemarks, TResident, TResidentAppModules, TRobot, TRobotMetadata, TRole, TRoleV2, TRoute, TSOABillingItem, TSOAStatus, TServiceProvider, TServiceProviderBilling, TSession, TSessionCreate, TShifts, TSignNfcPatrolLog, TSite, TSiteCamera, TSiteFacility, TSiteFacilityBooking, TSiteInfo, TSiteInformation, TSiteMetadata, TSiteUpdateBlock, TStatementOfAccount, TSubcategoryPreloved, TSubmissionForm, TSubscription, TSubscriptionPlan, TSubscriptionPlanApplication, TUnitBilling, TUnits, TUpdateFormEntry, TUpdateName, TUser, TUserCreate, TVehicle, TVehicleTransaction, TVehicleUpdate, TVerification, TVerificationEvent, TVerificationMetadata, TVerificationMetadataV2, TVerificationV2, TVisitorTransaction, TWorkOrder, TWorkOrderMetadata, TWorkOrderUpdate, TWorkOrderUpdateStatus, TWorkOrderUpdateToCompleted, TanyoneDamageToProperty, UseAccessManagementRepo, UserStatus, VERIFICATION_OPEN_STATUSES, VehicleCategory, VehicleOrder, VehicleSort, VehicleStatus, VehicleType, VerificationLinkType, VerificationStatus, VerificationSubjectType, VerificationType, VisitorSort, VisitorStatus, addressSchema, allowedFieldsSite, allowedNatures, allowedPlanApplications, attendanceSchema, attendanceSettingsSchema, building_level_namespace_collection, building_units_namespace_collection, buildings_namespace_collection, bulletin_boards_namespace_collection, cameraBaseUrl, cameraCapabilitiesFor, cameraDevices, cameraGrant, cameraHealthClaim, cameraHealthSummary, cameraManagePermissions, cameraProbeCacheKey, cameraTransports, canRevokeRefreshTokenFamily, categoriesForPermissions, categorySupportsChannel, chatPrelovedEvents, chatSchema, clampPtzSpeed, clockDriftSeconds, console_audit_namespace_collection, createManpowerRemarksDaily, customerSchema, customerSitePropertyFields, decideServiceProviderInvite, decodeHidPacsCard, deriveCameraHost, describeCameraCapabilities, designationsSchema, deviceControlEnabled, deviceHttpEnabled, deviceHttpTargets, deviceHttpTimeoutMs, deviceProbeTtlSeconds, emitNotificationCreated, encodeHidPacsCard, events_namespace_collection, facility_bookings_namespace_collection, feedbackSchema, feedbacks2_namespace_collection, feedbacks_namespace_collection, ffmpegFrameArgs, ffmpegPath, formatCapabilityTrace, formatDahuaDate, getIO, getSessionIdFromRequest, grabWithSubStreamFallback, guests_namespace_collection, hasAnyCapability, hasAnyPermission, hidRawUint64, incidentReport, incidentReportLog, incidents_namespace_collection, isCameraEntitled, isDuplicateVersionError, isPatrolCctvCamera, isPlatformOwner, isPromoCodeExpired, isRelayPlayerUrl, isSuperAdmin, isTermsCurrent, logCamera, manpowerDesignationsSchema, manpowerEvents, manpowerMonitoringSchema, manpowerRemarksSchema, manpowerSitesSchema, mapWithLimit, nfcPatrolSettingsSchema, nfcPatrolSettingsSchemaUpdate, normalizeAcceptedTerms, normalizeHidCardValue, notificationCategory, notificationCategoryLabel, notificationEvents, notificationRoom, occurrence_book_namespace_collection, online_forms_namespace_collection, orgSchema, overnight_parking_requests_namespace_collection, parseCameraChannel, parseCameraHost, parseDahuaFind, parseDeviceTime, parseHidJsonLossless, parsePromoExpiry, parseSoftwareVersion, pickAuditFields, pickCustomerSiteProperties, platform_terms_namespace_collection, promoCodeRefusal, promoCodeSchema, promoCodeStatusSchema, promoCodeUpdate, promoCodeUpdateSchema, ptzEndpoint, publicCameraFields, recordConsoleAction, refuseServiceProviderInviteAction, registerCameraTransport, relayForRecorder, remarksSchema, resetCameraTransports, residentAppModuleKeys, residentFormEntry, resolutionRefusalReason, resolveCamera, resolveDeviceHttp, resolveHidPhysicalCardValue, resolveInviteActor, robotSchema, rtspUrl, schema, schemaAppSlugNotification, schemaApprovedBy, schemaApprover, schemaBidPreloved, schemaBilling, schemaBillingConfiguration, schemaBillingItem, schemaBuilding, schemaBuildingLevel, schemaBuildingUnit, schemaBuildingUpdateOptions, schemaBulletinBoard, schemaBulletinVideo, schemaCategoryPreloved, schemaChannelPreloved, schemaChatPreloved, schemaConsoleAudit, schemaCreateHidAmicoIdentity, schemaCreateNfcPatrolLog, schemaCreateNotification, schemaCustomerSite, schemaDiscoverHidAmicoReader, schemaDocumentManagement, schemaEntryPassSettings, schemaEventManagement, schemaFiles, schemaFormEntry, schemaGuestManagement, schemaHidAmicoAccessLogQuery, schemaHidAmicoAssignUserCard, schemaHidAmicoConfiguration, schemaHidAmicoEnrollUserCard, schemaHidAmicoEvent, schemaHidAmicoExecuteActions, schemaHidAmicoIdentity, schemaHidAmicoIdentityIdParams, schemaHidAmicoIdentityQuery, schemaHidAmicoIntercomCall, schemaHidAmicoLogQuery, schemaHidAmicoMonitor, schemaHidAmicoNotificationParams, schemaHidAmicoObjectOperation, schemaHidAmicoOperatingMode, schemaHidAmicoReader, schemaHidAmicoReaderIdParams, schemaHidAmicoReaderListQuery, schemaHidAmicoReaderUserQuery, schemaHidAmicoSetConfiguration, schemaHidAmicoSiteIdParams, schemaHidAmicoSync, schemaHidAmicoUserCardIdParams, schemaHidAmicoUserCardParams, schemaHidAmicoUserImageParams, schemaHidAmicoUserImageUploadQuery, schemaHidAmicoUserPin, schemaHidAmicoUserPinParams, schemaHidAmicoVisitorImageParams, schemaHidAmicoVisitorImageUploadQuery, schemaHidAmicoVisitorQr, schemaHidPermissionCandidateQuery, schemaHidPermissionScopeQuery, schemaHidSipAccountRequest, schemaIncidentReport, schemaListNotification, schemaMultipleDocumentManagement, schemaNfcPatrolLog, schemaNfcPatrolRoute, schemaNfcPatrolTag, schemaNfcPatrolTagUpdateData, schemaNotification, schemaNotificationPreference, schemaNotificationPreferenceOff, schemaOccurrenceBook, schemaOccurrenceEntry, schemaOccurrenceSubject, schemaOnlineForm, schemaOvernightParkingApprovalHours, schemaOvernightParkingRequest, schemaPatrolLog, schemaPatrolQuestion, schemaPatrolRoute, schemaPerson, schemaPlate, schemaPlatformTerms, schemaPost, schemaPostFavorite, schemaServiceProvider, schemaServiceProviderBilling, schemaSignNfcPatrolLog, schemaSiteCamera, schemaSiteFacility, schemaSiteFacilityBooking, schemaStatementOfAccount, schemaSubcategoryPreloved, schemaUnitBilling, schemaUpdateBidPreloved, schemaUpdateBuildingLevel, schemaUpdateBulletinBoard, schemaUpdateBulletinVideo, schemaUpdateCategoryPreloved, schemaUpdateChatPreloved, schemaUpdateDocumentManagement, schemaUpdateEntryPassSettings, schemaUpdateEventManagement, schemaUpdateFolderManagement, schemaUpdateFormEntry, schemaUpdateGuestManagement, schemaUpdateHidAmicoIdentity, schemaUpdateHidAmicoReader, schemaUpdateHidSitePermissions, schemaUpdateIncidentReport, schemaUpdateNotification, schemaUpdateNotificationPreference, schemaUpdateOccurrenceBook, schemaUpdateOccurrenceEntry, schemaUpdateOccurrenceSubject, schemaUpdateOnlineForm, schemaUpdateOptions, schemaUpdateOvernightParkingRequest, schemaUpdatePatrolLog, schemaUpdatePatrolQuestion, schemaUpdatePatrolRoute, schemaUpdatePerson, schemaUpdatePost, schemaUpdatePostFavorite, schemaUpdateServiceProviderBilling, schemaUpdateSiteBillingConfiguration, schemaUpdateSiteBillingItem, schemaUpdateSiteCamera, schemaUpdateSiteFacility, schemaUpdateSiteFacilityBooking, schemaUpdateSiteUnitBilling, schemaUpdateStatementOfAccount, schemaUpdateSubcategoryPreloved, schemaUpdateVisTrans, schemaVehicleTransaction, schemaVisitorTransaction, schemeCamera, schemeLogCamera, serviceProviderInviteLabel, sessionSchema, setIO, shiftSchema, siteSchema, site_people_namespace_collection, snapshotEndpoint, snapshotRefusalReason, stringifyHidJson, subscriptionPlanSchema, updateRemarksStatusEod, updateRemarksisAcknowledged, updateSiteSchema, useAccessManagementController, useAddressRepo, useAttendanceController, useAttendanceRepository, useAttendanceSettingsController, useAttendanceSettingsRepository, useAttendanceSettingsService, useAuthController, useAuthControllerV2, useAuthService, useAuthServiceV2, useBidPrelovedController, useBidPrelovedRepo, useBidPrelovedService, useBuildingController, useBuildingLevelController, useBuildingLevelRepo, useBuildingLevelService, useBuildingRepo, useBuildingService, useBuildingUnitController, useBuildingUnitRepo, useBuildingUnitService, useBulletinBoardController, useBulletinBoardRepo, useBulletinBoardService, useBulletinVideoController, useBulletinVideoRepo, useBulletinVideoService, useCameraViewController, useCameraViewService, useCategoryPrelovedController, useCategoryPrelovedRepo, useChannelPrelovedController, useChannelPrelovedRepo, useChatController, useChatPrelovedController, useChatPrelovedRepo, useChatPrelovedService, useChatRepo, useConsoleAuditController, useConsoleAuditRepo, useCounterModel, useCounterRepo, useCustomerController, useCustomerRepo, useCustomerSiteController, useCustomerSiteRepo, useCustomerSiteService, useDahuaService, useDashboardController, useDashboardRepo, useDocumentManagementController, useDocumentManagementRepo, useDocumentManagementService, useEntryPassSettingsController, useEntryPassSettingsRepo, useEventManagementController, useEventManagementRepo, useEventManagementService, useFeedbackController, useFeedbackRepo, useFeedbackService, useFileController, useFileRepo, useFileService, useFormEntryController, useFormEntryRepo, useGuestManagementController, useGuestManagementRepo, useGuestManagementService, useHidAmicoController, useHidAmicoRepo, useHidAmicoService, useHrmLabsAttendanceCtrl, useHrmLabsAttendanceSrvc, useIncidentReportController, useIncidentReportRepo, useIncidentReportService, useInvoiceController, useInvoiceModel, useInvoiceRepo, useManpowerDesignationCtrl, useManpowerDesignationRepo, useManpowerMonitoringCtrl, useManpowerMonitoringRepo, useManpowerMonitoringSrvc, useManpowerRemarkCtrl, useManpowerRemarksRepo, useManpowerSitesCtrl, useManpowerSitesRepo, useManpowerSitesSrvc, useMemberController, useMemberRepo, useMemberService, useNewDashboardController, useNewDashboardRepo, useNfcPatrolLogController, useNfcPatrolLogRepo, useNfcPatrolLogService, useNfcPatrolRouteController, useNfcPatrolRouteRepo, useNfcPatrolRouteService, useNfcPatrolSettingsController, useNfcPatrolSettingsRepository, useNfcPatrolSettingsService, useNfcPatrolTagController, useNfcPatrolTagRepo, useNfcPatrolTagService, useNotificationController, useNotificationPreferenceController, useNotificationPreferenceRepo, useNotificationPreferenceService, useNotificationRepo, useOccurrenceBookController, useOccurrenceBookRepo, useOccurrenceBookService, useOccurrenceEntryController, useOccurrenceEntryRepo, useOccurrenceEntryService, useOccurrenceSubjectController, useOccurrenceSubjectRepo, useOccurrenceSubjectService, useOnlineFormController, useOnlineFormRepo, useOrgController, useOrgControllerV2, useOrgRepo, useOvernightParkingController, useOvernightParkingRepo, useOvernightParkingRequestController, useOvernightParkingRequestRepo, useOvernightParkingRequestService, usePatrolLogController, usePatrolLogRepo, usePatrolLogService, usePatrolQuestionController, usePatrolQuestionRepo, usePatrolRouteController, usePatrolRouteRepo, usePersonController, usePersonRepo, usePlatformTermsController, usePlatformTermsRepo, usePlatformTermsService, usePostFavoriteController, usePostFavoriteRepo, usePostFavoriteService, usePostPrelovedController, usePostPrelovedRepo, usePriceController, usePriceModel, usePriceRepo, usePromoCodeController, usePromoCodeRepo, useRedDotPaymentController, useRedDotPaymentRepo, useRedDotPaymentSvc, useRobotController, useRobotRepo, useRobotService, useRoleController, useRoleControllerV2, useRoleRepo, useRoleRepoV2, useRoleServiceV2, useServiceProviderBillingController, useServiceProviderBillingRepo, useServiceProviderBillingService, useServiceProviderController, useServiceProviderInviteController, useServiceProviderInviteService, useServiceProviderRepo, useSessionRepo, useSiteBillingConfigurationController, useSiteBillingConfigurationRepo, useSiteBillingItemController, useSiteBillingItemRepo, useSiteCameraController, useSiteCameraRepo, useSiteCameraService, useSiteController, useSiteFacilityBookingController, useSiteFacilityBookingRepo, useSiteFacilityBookingService, useSiteFacilityController, useSiteFacilityRepo, useSiteFacilityService, useSiteRepo, useSiteService, useSiteUnitBillingController, useSiteUnitBillingRepo, useSiteUnitBillingService, useStatementOfAccountController, useStatementOfAccountRepo, useSubcategoryPrelovedController, useSubcategoryPrelovedRepo, useSubscriptionController, useSubscriptionPlanController, useSubscriptionPlanRepo, useSubscriptionRepo, useSubscriptionService, useUserController, useUserControllerV2, useUserRepo, useUserRepoV2, useUserService, useUserServiceV2, useVehicleController, useVehicleRepo, useVehicleService, useVerificationController, useVerificationControllerV2, useVerificationRepo, useVerificationRepoV2, useVerificationService, useVerificationServiceV2, useVisitorTransactionController, useVisitorTransactionRepo, useVisitorTransactionService, useWorkOrderController, useWorkOrderRepo, useWorkOrderService, userSchema, vehicleSchema, vehicles_namespace_collection, visitorPersonRepo, visitorPersonService, visitorType, visitors_namespace_collection, wallConfig, workOrderSchema, work_orders2_namespace_collection, work_orders_namespace_collection };
|
|
11450
|
+
export { ANPRMode, AUDIT_VALUE_MAX_LENGTH, AccessTypeProps, AppServiceType, AssignCardConfig, BidStatus, BidType, BuildingLevelStatus, BuildingStatus, BulkCardUpdate, BulletinOrder, BulletinRecipient, BulletinSort, BulletinStatus, BulletinVideoOrder, BulletinVideoSort, CAMERA_ANPR_PERMISSIONS, CAMERA_CAPABILITIES, CAMERA_CAPABILITY_REASONS, CAMERA_NOT_PATROL_OR_CCTV, CAMERA_NO_SUB_STREAM_TTL_SECONDS, CAMERA_PTZ_PERMISSIONS, CAMERA_REQUEST_TIMEOUT_MS, CAMERA_RTSP_TIMEOUT_MS, CAMERA_SETUP_PERMISSIONS, CAMERA_SNAPSHOT_CACHE_SECONDS, CAMERA_SNAPSHOT_MAX_BYTES, CAMERA_TEST_MIN_INTERVAL_SECONDS, CAMERA_TEST_ROUND_LIMIT, CAMERA_TEST_ROUND_SECONDS, CAMERA_TYPE_ANPR, CAMERA_TYPE_IP, CAMERA_VIEW_PERMISSIONS, CLIENT_ACTIONS, CLOCK_DRIFT_WARN_SECONDS, CONSOLE_AUDIT_LABELS, CURRENT_TIME_ENDPOINT, Camera, CameraAddressInput, CameraCapability, CameraCapabilityContext, CameraCapabilityDescriptor, CameraCapabilityEntry, CameraCapabilityReason, CameraCapabilityState, CameraCapabilityTrace, CameraDevice, CameraFrame, CameraMembership, CameraStream, CameraTestStatus, CameraTransport, CameraType, ConsoleAuditAction, ConsoleAuditTarget, DEVICE_STATUS, DOBStatus, DUPLICATE_TERMS_VERSION_MESSAGE, DayOfWeek, DeviceHttpTarget, DeviceProbeResult, DynamicFormFields, EAccessCardTypes, EAccessCardUserTypes, EmailSender, EntryOrder, EntrySort, EventOrder, EventSort, EventStatus, EventType, FacilitySort, FacilityStatus, FormEntryStatus, GuestSort, GuestStatus, HID_CARD_VALUE_FACTOR, HID_PERMISSION_CATEGORIES, HID_UINT32_MAX, HID_UINT64_MAX, HidRawUint64, IAccessCard, IAccessCardTransaction, InviteActor, MAX_CAMERA_CHANNEL, MAccessCard, MAccessCardTransaction, MAddress, MAttendance, MAttendanceSettings, MBidPreloved, MBillingConfiguration, MBillingItem, MBuilding, MBuildingLevel, MBuildingUnit, MBulletinBoard, MBulletinVideo, MCategoryPreloved, MChannelPreloved, MChat, MChatPreloved, MConsoleAudit, MCustomer, MCustomerSite, MDocumentManagement, MEMBER_TYPES, MEntryPassSettings, MEventManagement, MFeedback, MFile, MFormEntry, MGuestManagement, MHidAmicoEvent, MHidAmicoIdentity, MHidAmicoReader, MHidSipAccount, MHidSitePermissions, MIncidentReport, MManpowerDesignations, MManpowerMonitoring, MManpowerRemarks, MManpowerSites, MMember, MNfcPatrolLog, MNfcPatrolRoute, MNfcPatrolSettings, MNfcPatrolSettingsUpdate, MNfcPatrolTag, MNotification, MNotificationPreference, MOccurrenceBook, MOccurrenceEntry, MOccurrenceSubject, MOnlineForm, MOrg, MOvernightParkingApprovalHours, MOvernightParkingRequest, MPatrolLog, MPatrolQuestion, MPatrolRoute, MPerson, MPlatformTerms, MPost, MPostFavorite, MPromoCode, MRobot, MRole, MRoleV2, MServiceProvider, MServiceProviderBilling, MSession, MSite, MSiteCamera, MSiteFacility, MSiteFacilityBooking, MStatementOfAccount, MSubcategoryPreloved, MSubscription, MSubscriptionPlan, MUnitBilling, MUser, MVehicle, MVehicleTransaction, MVerification, MVerificationV2, MVisitorTransaction, MWorkOrder, NOTIFICATION_CATEGORIES, NOTIFICATION_CHANNELS, NOTIFICATION_CHANNEL_LABELS, NOTIFICATION_NAMESPACE, NotificationAppSlug, NotificationCategory, NotificationChannel, NotificationModule, NotificationPreferenceView, NotificationService, ORG_MARKETPLACE_VENDOR_FIELD, OrgNature, OvernightParkingRequestSort, OvernightParkingRequestStatus, PATROL_CCTV_CAMERA_FILTER, PERSON_TYPES, PLATFORM_STAFF_MEMBER_TYPE, PROPERTY_MANAGEMENT_MEMBER_TYPES, PStatus, PTZ_ALLOWED_ACTIONS, PTZ_ALLOWED_CODES, Period, PersonStatus, PersonType, PersonTypes, PlatformTermsStatus, PostOrder, PostSort, PostStatus, QrTagProps, REALTIME_MAX_FANOUT, ResidentAppModuleKey, SERVICE_PROVIDER_INVITE_LABELS, SERVICE_PROVIDER_INVITE_TRANSITIONS, SERVICE_PROVIDER_SIGN_IN_SUBJECT, SERVICE_PROVIDER_SIGN_IN_TYPE, SERVICE_PROVIDER_SIGN_UP_SUBJECT, SERVICE_PROVIDER_SIGN_UP_TYPE, SOFTWARE_VERSION_ENDPOINT, ServiceProviderInviteAction, ServiceProviderInviteDecision, ServiceProviderInviteFacts, SiteAddress, SiteCategories, SiteStatus, SortFields, SortOrder, Status, SubjectOrder, SubjectSort, SubscriptionBillingMode, SubscriptionType, TAccessMngmntSettings, TActionStatus, TAddress, TAffectedEntities, TAffectedInjured, TAppServiceType, TApprovedBy, TApprover, TAttendance, TAttendanceCheckIn, TAttendanceCheckOut, TAttendanceCheckTime, TAttendanceLocation, TAttendanceSettings, TAttendanceSettingsGetBySite, TAuthorities, TAuthoritiesCalled, TBidPreloved, TBilling, TBillingConfiguration, TBillingItem, TBuilding, TBuildingLevel, TBuildingUnit, TBulletinBoard, TBulletinVideo, TCamera, TCameraHealthClaim, TCategoryPreloved, TChannelPreloved, TChat, TChatPreloved, TCheckPoint$1 as TCheckPoint, TComplaintInfo, TComplaintReceivedTo, TConsoleAudit, TConsoleAuditQuery, TCounter, TCreateNfcPatrolLog, TCustomer, TCustomerSite, TCustomerSitePropertyField, TDayNumber, TDaySchedule, TDefaultAccessCard, TDesignations, TDocs, TDocumentCreate, TDocumentManagement, TEntryPassSettings, TEventManagement, TFeedback, TFeedbackMetadata, TFeedbackUpdate, TFeedbackUpdateCategory, TFeedbackUpdateServiceProvider, TFeedbackUpdateStatus, TFeedbackUpdateToCompleted, TFile, TFiles, TFolderUpdate, TFormEntry, TGetAttendancesByUserQuery, TGetAttendancesQuery, TGuestManagement, THidAmicoEvent, THidAmicoGatewayJob, THidAmicoIdentity, THidAmicoPhysicalCard, THidAmicoReader, THidPermissionAssignment, THidPermissionCategory, THidPhysicalCardInput, THidPhysicalCardType$1 as THidPhysicalCardType, THidSipAccount, THidSitePermissions, TIncidentInformation, TIncidentReport, TIncidentTypeAndTime, TInvoice, TKeyRef, TManpowerDesignations, TManpowerDesignationsUpdate, TManpowerMonitoring, TManpowerMonitoringUpdate, TManpowerRemarks, TManpowerRemarksStatusUpdate, TManpowerRemarksUpdate, TManpowerSearchFilter, TManpowerSites, TMember, TMemberUpdateStatus, TMessagePreloved, TMiniRole, TNfcPatrolLog, TNfcPatrolRoute, TNfcPatrolRouteEdit, TNfcPatrolSettings, TNfcPatrolSettingsGetBySite, TNfcPatrolSettingsUpdate, TNfcPatrolTag, TNfcPatrolTagConfigureReset, TNfcPatrolTagEdit, TNfcPatrolTagUpdateData, TNotification, TNotificationPreference, TNotificationPreferenceOff, TOccurrenceBook, TOccurrenceEntry, TOccurrenceSubject, TOnlineForm, TOrg, TOvernightParkingApprovalHours, TOvernightParkingRequest, TPatrolLog, TPatrolQuestion, TPatrolRoute, TPerson, TPlaceOfIncident, TPlates, TPlatformTerms, TPost, TPostFavorite, TPrice, TPriceType, TPromoCode, TPromoCurrencyInput, TPromoTier, TRANSPORT_DEVICE_HTTP, TRANSPORT_RELAY_PLAYER, TRANSPORT_RTSP_FRAME, TRecipientOfComplaint, TRemarks, TResident, TResidentAppModules, TRobot, TRobotMetadata, TRole, TRoleV2, TRoute, TSOABillingItem, TSOAStatus, TServiceProvider, TServiceProviderBilling, TSession, TSessionCreate, TShifts, TSignNfcPatrolLog, TSite, TSiteCamera, TSiteFacility, TSiteFacilityBooking, TSiteInfo, TSiteInformation, TSiteMetadata, TSiteUpdateBlock, TStatementOfAccount, TSubcategoryPreloved, TSubmissionForm, TSubscription, TSubscriptionPlan, TSubscriptionPlanApplication, TUnitBilling, TUnits, TUpdateFormEntry, TUpdateName, TUser, TUserCreate, TVehicle, TVehicleTransaction, TVehicleUpdate, TVerification, TVerificationEvent, TVerificationMetadata, TVerificationMetadataV2, TVerificationV2, TVisitorTransaction, TWorkOrder, TWorkOrderMetadata, TWorkOrderUpdate, TWorkOrderUpdateStatus, TWorkOrderUpdateToCompleted, TanyoneDamageToProperty, UseAccessManagementRepo, UserStatus, VERIFICATION_OPEN_STATUSES, VehicleCategory, VehicleOrder, VehicleSort, VehicleStatus, VehicleType, VerificationLinkType, VerificationStatus, VerificationSubjectType, VerificationType, VisitorSort, VisitorStatus, addressSchema, allowedFieldsSite, allowedNatures, allowedPlanApplications, attendanceSchema, attendanceSettingsSchema, building_level_namespace_collection, building_units_namespace_collection, buildings_namespace_collection, bulletin_boards_namespace_collection, cameraBaseUrl, cameraCapabilitiesFor, cameraDevices, cameraGrant, cameraHealthClaim, cameraHealthSummary, cameraManagePermissions, cameraProbeCacheKey, cameraTransports, canRevokeRefreshTokenFamily, categoriesForPermissions, categorySupportsChannel, chatPrelovedEvents, chatSchema, clampPtzSpeed, clockDriftSeconds, console_audit_namespace_collection, createManpowerRemarksDaily, customerSchema, customerSitePropertyFields, decideServiceProviderInvite, decodeHidPacsCard, deriveCameraHost, describeCameraCapabilities, designationsSchema, deviceControlEnabled, deviceHttpEnabled, deviceHttpTargets, deviceHttpTimeoutMs, deviceProbeTtlSeconds, emitNotificationCreated, encodeHidPacsCard, events_namespace_collection, facility_bookings_namespace_collection, feedbackSchema, feedbacks2_namespace_collection, feedbacks_namespace_collection, ffmpegFrameArgs, ffmpegPath, formatCapabilityTrace, formatDahuaDate, getIO, getSessionIdFromRequest, grabWithSubStreamFallback, guests_namespace_collection, hasAnyCapability, hasAnyPermission, hidRawUint64, incidentReport, incidentReportLog, incidents_namespace_collection, isCameraEntitled, isDuplicateVersionError, isPatrolCctvCamera, isPlatformOwner, isPromoCodeExpired, isRelayPlayerUrl, isSuperAdmin, isTermsCurrent, logCamera, manpowerDesignationsSchema, manpowerEvents, manpowerMonitoringSchema, manpowerRemarksSchema, manpowerSitesSchema, mapWithLimit, nfcPatrolSettingsSchema, nfcPatrolSettingsSchemaUpdate, normalizeAcceptedTerms, normalizeHidCardValue, notificationCategory, notificationCategoryLabel, notificationEvents, notificationRoom, occurrence_book_namespace_collection, online_forms_namespace_collection, orgSchema, overnight_parking_requests_namespace_collection, parseCameraChannel, parseCameraHost, parseDahuaFind, parseDeviceTime, parseHidJsonLossless, parsePromoExpiry, parseSoftwareVersion, pickAuditFields, pickCustomerSiteProperties, platform_terms_namespace_collection, promoCodeRefusal, promoCodeSchema, promoCodeStatusSchema, promoCodeUpdate, promoCodeUpdateSchema, ptzEndpoint, publicCameraFields, recordConsoleAction, refuseServiceProviderInviteAction, registerCameraTransport, relayForRecorder, remarksSchema, resetCameraTransports, residentAppModuleKeys, residentFormEntry, resolutionRefusalReason, resolveCamera, resolveDeviceHttp, resolveHidPhysicalCardValue, resolveInviteActor, robotSchema, rtspUrl, schema, schemaAppSlugNotification, schemaApprovedBy, schemaApprover, schemaBidPreloved, schemaBilling, schemaBillingConfiguration, schemaBillingItem, schemaBuilding, schemaBuildingLevel, schemaBuildingUnit, schemaBuildingUpdateOptions, schemaBulletinBoard, schemaBulletinVideo, schemaCategoryPreloved, schemaChannelPreloved, schemaChatPreloved, schemaConsoleAudit, schemaCreateHidAmicoIdentity, schemaCreateNfcPatrolLog, schemaCreateNotification, schemaCustomerSite, schemaDiscoverHidAmicoReader, schemaDocumentManagement, schemaEntryPassSettings, schemaEventManagement, schemaFiles, schemaFormEntry, schemaGuestManagement, schemaHidAmicoAccessLogQuery, schemaHidAmicoAssignUserCard, schemaHidAmicoConfiguration, schemaHidAmicoEnrollUserCard, schemaHidAmicoEvent, schemaHidAmicoExecuteActions, schemaHidAmicoIdentity, schemaHidAmicoIdentityIdParams, schemaHidAmicoIdentityQuery, schemaHidAmicoIntercomCall, schemaHidAmicoLogQuery, schemaHidAmicoMonitor, schemaHidAmicoNotificationParams, schemaHidAmicoObjectOperation, schemaHidAmicoOperatingMode, schemaHidAmicoReader, schemaHidAmicoReaderIdParams, schemaHidAmicoReaderListQuery, schemaHidAmicoReaderUserQuery, schemaHidAmicoSetConfiguration, schemaHidAmicoSiteIdParams, schemaHidAmicoSync, schemaHidAmicoUserCardIdParams, schemaHidAmicoUserCardParams, schemaHidAmicoUserImageParams, schemaHidAmicoUserImageUploadQuery, schemaHidAmicoUserPin, schemaHidAmicoUserPinParams, schemaHidAmicoVisitorImageParams, schemaHidAmicoVisitorImageUploadQuery, schemaHidAmicoVisitorQr, schemaHidPermissionCandidateQuery, schemaHidPermissionScopeQuery, schemaHidSipAccountRequest, schemaIncidentReport, schemaListNotification, schemaMultipleDocumentManagement, schemaNfcPatrolLog, schemaNfcPatrolRoute, schemaNfcPatrolTag, schemaNfcPatrolTagUpdateData, schemaNotification, schemaNotificationPreference, schemaNotificationPreferenceOff, schemaOccurrenceBook, schemaOccurrenceEntry, schemaOccurrenceSubject, schemaOnlineForm, schemaOvernightParkingApprovalHours, schemaOvernightParkingRequest, schemaPatrolLog, schemaPatrolQuestion, schemaPatrolRoute, schemaPerson, schemaPlate, schemaPlatformTerms, schemaPost, schemaPostFavorite, schemaServiceProvider, schemaServiceProviderBilling, schemaSignNfcPatrolLog, schemaSiteCamera, schemaSiteFacility, schemaSiteFacilityBooking, schemaStatementOfAccount, schemaSubcategoryPreloved, schemaUnitBilling, schemaUpdateBidPreloved, schemaUpdateBuildingLevel, schemaUpdateBulletinBoard, schemaUpdateBulletinVideo, schemaUpdateCategoryPreloved, schemaUpdateChatPreloved, schemaUpdateDocumentManagement, schemaUpdateEntryPassSettings, schemaUpdateEventManagement, schemaUpdateFolderManagement, schemaUpdateFormEntry, schemaUpdateGuestManagement, schemaUpdateHidAmicoIdentity, schemaUpdateHidAmicoReader, schemaUpdateHidSitePermissions, schemaUpdateIncidentReport, schemaUpdateNotification, schemaUpdateNotificationPreference, schemaUpdateOccurrenceBook, schemaUpdateOccurrenceEntry, schemaUpdateOccurrenceSubject, schemaUpdateOnlineForm, schemaUpdateOptions, schemaUpdateOvernightParkingRequest, schemaUpdatePatrolLog, schemaUpdatePatrolQuestion, schemaUpdatePatrolRoute, schemaUpdatePerson, schemaUpdatePost, schemaUpdatePostFavorite, schemaUpdateServiceProviderBilling, schemaUpdateSiteBillingConfiguration, schemaUpdateSiteBillingItem, schemaUpdateSiteCamera, schemaUpdateSiteFacility, schemaUpdateSiteFacilityBooking, schemaUpdateSiteUnitBilling, schemaUpdateStatementOfAccount, schemaUpdateSubcategoryPreloved, schemaUpdateVisTrans, schemaVehicleTransaction, schemaVisitorTransaction, schemeCamera, schemeLogCamera, serviceProviderInviteLabel, sessionSchema, setIO, shiftSchema, siteSchema, site_people_namespace_collection, snapshotEndpoint, snapshotRefusalReason, stringifyHidJson, subscriptionPlanSchema, updateRemarksStatusEod, updateRemarksisAcknowledged, updateSiteSchema, useAccessManagementController, useAddressRepo, useAttendanceController, useAttendanceRepository, useAttendanceSettingsController, useAttendanceSettingsRepository, useAttendanceSettingsService, useAuthController, useAuthControllerV2, useAuthService, useAuthServiceV2, useBidPrelovedController, useBidPrelovedRepo, useBidPrelovedService, useBuildingController, useBuildingLevelController, useBuildingLevelRepo, useBuildingLevelService, useBuildingRepo, useBuildingService, useBuildingUnitController, useBuildingUnitRepo, useBuildingUnitService, useBulletinBoardController, useBulletinBoardRepo, useBulletinBoardService, useBulletinVideoController, useBulletinVideoRepo, useBulletinVideoService, useCameraViewController, useCameraViewService, useCategoryPrelovedController, useCategoryPrelovedRepo, useChannelPrelovedController, useChannelPrelovedRepo, useChatController, useChatPrelovedController, useChatPrelovedRepo, useChatPrelovedService, useChatRepo, useConsoleAuditController, useConsoleAuditRepo, useCounterModel, useCounterRepo, useCustomerController, useCustomerRepo, useCustomerSiteController, useCustomerSiteRepo, useCustomerSiteService, useDahuaService, useDashboardController, useDashboardRepo, useDocumentManagementController, useDocumentManagementRepo, useDocumentManagementService, useEntryPassSettingsController, useEntryPassSettingsRepo, useEventManagementController, useEventManagementRepo, useEventManagementService, useFeedbackController, useFeedbackRepo, useFeedbackService, useFileController, useFileRepo, useFileService, useFormEntryController, useFormEntryRepo, useGuestManagementController, useGuestManagementRepo, useGuestManagementService, useHidAmicoController, useHidAmicoRepo, useHidAmicoService, useHrmLabsAttendanceCtrl, useHrmLabsAttendanceSrvc, useIncidentReportController, useIncidentReportRepo, useIncidentReportService, useInvoiceController, useInvoiceModel, useInvoiceRepo, useManpowerDesignationCtrl, useManpowerDesignationRepo, useManpowerMonitoringCtrl, useManpowerMonitoringRepo, useManpowerMonitoringSrvc, useManpowerRemarkCtrl, useManpowerRemarksRepo, useManpowerSitesCtrl, useManpowerSitesRepo, useManpowerSitesSrvc, useMemberController, useMemberRepo, useMemberService, useNewDashboardController, useNewDashboardRepo, useNfcPatrolLogController, useNfcPatrolLogRepo, useNfcPatrolLogService, useNfcPatrolRouteController, useNfcPatrolRouteRepo, useNfcPatrolRouteService, useNfcPatrolSettingsController, useNfcPatrolSettingsRepository, useNfcPatrolSettingsService, useNfcPatrolTagController, useNfcPatrolTagRepo, useNfcPatrolTagService, useNotificationController, useNotificationPreferenceController, useNotificationPreferenceRepo, useNotificationPreferenceService, useNotificationRepo, useOccurrenceBookController, useOccurrenceBookRepo, useOccurrenceBookService, useOccurrenceEntryController, useOccurrenceEntryRepo, useOccurrenceEntryService, useOccurrenceSubjectController, useOccurrenceSubjectRepo, useOccurrenceSubjectService, useOnlineFormController, useOnlineFormRepo, useOrgController, useOrgControllerV2, useOrgRepo, useOvernightParkingController, useOvernightParkingRepo, useOvernightParkingRequestController, useOvernightParkingRequestRepo, useOvernightParkingRequestService, usePatrolLogController, usePatrolLogRepo, usePatrolLogService, usePatrolQuestionController, usePatrolQuestionRepo, usePatrolRouteController, usePatrolRouteRepo, usePersonController, usePersonRepo, usePlatformTermsController, usePlatformTermsRepo, usePlatformTermsService, usePostFavoriteController, usePostFavoriteRepo, usePostFavoriteService, usePostPrelovedController, usePostPrelovedRepo, usePriceController, usePriceModel, usePriceRepo, usePromoCodeController, usePromoCodeRepo, useRedDotPaymentController, useRedDotPaymentRepo, useRedDotPaymentSvc, useRobotController, useRobotRepo, useRobotService, useRoleController, useRoleControllerV2, useRoleRepo, useRoleRepoV2, useRoleServiceV2, useServiceProviderBillingController, useServiceProviderBillingRepo, useServiceProviderBillingService, useServiceProviderController, useServiceProviderInviteController, useServiceProviderInviteService, useServiceProviderRepo, useSessionRepo, useSiteBillingConfigurationController, useSiteBillingConfigurationRepo, useSiteBillingItemController, useSiteBillingItemRepo, useSiteCameraController, useSiteCameraRepo, useSiteCameraService, useSiteController, useSiteFacilityBookingController, useSiteFacilityBookingRepo, useSiteFacilityBookingService, useSiteFacilityController, useSiteFacilityRepo, useSiteFacilityService, useSiteRepo, useSiteService, useSiteUnitBillingController, useSiteUnitBillingRepo, useSiteUnitBillingService, useStatementOfAccountController, useStatementOfAccountRepo, useSubcategoryPrelovedController, useSubcategoryPrelovedRepo, useSubscriptionController, useSubscriptionPlanController, useSubscriptionPlanRepo, useSubscriptionRepo, useSubscriptionService, useUserController, useUserControllerV2, useUserRepo, useUserRepoV2, useUserService, useUserServiceV2, useVehicleController, useVehicleRepo, useVehicleService, useVerificationController, useVerificationControllerV2, useVerificationRepo, useVerificationRepoV2, useVerificationService, useVerificationServiceV2, useVisitorTransactionController, useVisitorTransactionRepo, useVisitorTransactionService, useWorkOrderController, useWorkOrderRepo, useWorkOrderService, userSchema, vehicleSchema, vehicles_namespace_collection, visitorPersonRepo, visitorPersonService, visitorType, visitors_namespace_collection, wallConfig, workOrderSchema, work_orders2_namespace_collection, work_orders_namespace_collection };
|
package/dist/index.js
CHANGED
|
@@ -5971,6 +5971,7 @@ __export(src_exports, {
|
|
|
5971
5971
|
MCustomer: () => MCustomer,
|
|
5972
5972
|
MCustomerSite: () => MCustomerSite,
|
|
5973
5973
|
MDocumentManagement: () => MDocumentManagement,
|
|
5974
|
+
MEMBER_TYPES: () => MEMBER_TYPES,
|
|
5974
5975
|
MEntryPassSettings: () => MEntryPassSettings,
|
|
5975
5976
|
MEventManagement: () => MEventManagement,
|
|
5976
5977
|
MFeedback: () => MFeedback,
|
|
@@ -6045,6 +6046,7 @@ __export(src_exports, {
|
|
|
6045
6046
|
OvernightParkingRequestStatus: () => OvernightParkingRequestStatus,
|
|
6046
6047
|
PATROL_CCTV_CAMERA_FILTER: () => PATROL_CCTV_CAMERA_FILTER,
|
|
6047
6048
|
PERSON_TYPES: () => PERSON_TYPES,
|
|
6049
|
+
PLATFORM_STAFF_MEMBER_TYPE: () => PLATFORM_STAFF_MEMBER_TYPE,
|
|
6048
6050
|
PROPERTY_MANAGEMENT_MEMBER_TYPES: () => PROPERTY_MANAGEMENT_MEMBER_TYPES,
|
|
6049
6051
|
PStatus: () => PStatus,
|
|
6050
6052
|
PTZ_ALLOWED_ACTIONS: () => PTZ_ALLOWED_ACTIONS,
|
|
@@ -9590,13 +9592,32 @@ var import_node_server_utils13 = require("@7365admin1/node-server-utils");
|
|
|
9590
9592
|
var import_node_server_utils12 = require("@7365admin1/node-server-utils");
|
|
9591
9593
|
var import_joi7 = __toESM(require("joi"));
|
|
9592
9594
|
var import_mongodb11 = require("mongodb");
|
|
9595
|
+
var PLATFORM_STAFF_MEMBER_TYPE = "admin";
|
|
9596
|
+
var MEMBER_TYPES = [
|
|
9597
|
+
PLATFORM_STAFF_MEMBER_TYPE,
|
|
9598
|
+
"organization",
|
|
9599
|
+
"resident",
|
|
9600
|
+
...Object.values(AppServiceType)
|
|
9601
|
+
];
|
|
9593
9602
|
function MMember(value) {
|
|
9594
9603
|
const schema2 = import_joi7.default.object({
|
|
9595
9604
|
_id: import_joi7.default.string().hex().optional().allow("", null),
|
|
9596
9605
|
name: import_joi7.default.string().required(),
|
|
9597
9606
|
email: import_joi7.default.string().email().optional().allow("", null),
|
|
9598
9607
|
user: import_joi7.default.string().hex().required(),
|
|
9599
|
-
type
|
|
9608
|
+
// TRANSITIONAL — the second branch is a 24-character hex id, not a type.
|
|
9609
|
+
// `web-app-org pages/org/[organization]/invitations/invite.vue:122` and
|
|
9610
|
+
// `web-app-hygiene pages/[org]/[site]/invitations/invite.vue:135` send the
|
|
9611
|
+
// ORGANISATION ID as the invitation's `app`, so accepting one of those
|
|
9612
|
+
// invitations writes an org id into this field. That is a defect in those
|
|
9613
|
+
// two screens, but it is live: rejecting it here would 400 every user
|
|
9614
|
+
// accepting an invitation from either screen. Delete the alternation once
|
|
9615
|
+
// both send a real membership type. It cannot be used to escalate — "admin"
|
|
9616
|
+
// is not 24 hex characters, so the allow-list still decides that.
|
|
9617
|
+
type: import_joi7.default.alternatives().try(
|
|
9618
|
+
import_joi7.default.string().valid(...MEMBER_TYPES),
|
|
9619
|
+
import_joi7.default.string().hex().length(24)
|
|
9620
|
+
).required(),
|
|
9600
9621
|
role: import_joi7.default.string().hex().optional().allow("", null),
|
|
9601
9622
|
org: import_joi7.default.string().hex().optional().allow("", null),
|
|
9602
9623
|
orgName: import_joi7.default.string().optional().allow("", null),
|
|
@@ -18765,6 +18786,13 @@ var import_node_server_utils46 = require("@7365admin1/node-server-utils");
|
|
|
18765
18786
|
|
|
18766
18787
|
// src/services/member.service.ts
|
|
18767
18788
|
var import_node_server_utils45 = require("@7365admin1/node-server-utils");
|
|
18789
|
+
async function requireStaffCaller(callerId4, what) {
|
|
18790
|
+
if (!await isSuperAdmin(callerId4)) {
|
|
18791
|
+
throw new import_node_server_utils45.UnauthorizedError(
|
|
18792
|
+
`Only Seven365 staff can ${what}.`
|
|
18793
|
+
);
|
|
18794
|
+
}
|
|
18795
|
+
}
|
|
18768
18796
|
function useMemberService() {
|
|
18769
18797
|
const {
|
|
18770
18798
|
add: addMember,
|
|
@@ -18778,7 +18806,7 @@ function useMemberService() {
|
|
|
18778
18806
|
const { getUserByEmail, updateDefaultOrgByEmail, getUserById } = useUserRepo();
|
|
18779
18807
|
const { getById: getOrgById } = useOrgRepo();
|
|
18780
18808
|
const { getSiteById } = useSiteRepo();
|
|
18781
|
-
const { getOwnerRolesByTypeOrg } = useRoleRepo();
|
|
18809
|
+
const { getOwnerRolesByTypeOrg, getRoleById } = useRoleRepo();
|
|
18782
18810
|
async function createMember(id) {
|
|
18783
18811
|
const session = import_node_server_utils45.useAtlas.getClient()?.startSession();
|
|
18784
18812
|
session?.startTransaction();
|
|
@@ -18846,8 +18874,16 @@ function useMemberService() {
|
|
|
18846
18874
|
app,
|
|
18847
18875
|
siteId,
|
|
18848
18876
|
siteName,
|
|
18849
|
-
onboardingRequired
|
|
18877
|
+
onboardingRequired,
|
|
18878
|
+
callerId: callerId4
|
|
18850
18879
|
}) {
|
|
18880
|
+
if (app === PLATFORM_STAFF_MEMBER_TYPE) {
|
|
18881
|
+
await requireStaffCaller(callerId4, "create a Seven365 staff membership");
|
|
18882
|
+
}
|
|
18883
|
+
const targetRole = roleId ? await getRoleById(roleId) : null;
|
|
18884
|
+
if (targetRole?.type === PLATFORM_STAFF_MEMBER_TYPE) {
|
|
18885
|
+
await requireStaffCaller(callerId4, "assign a Seven365 staff role");
|
|
18886
|
+
}
|
|
18851
18887
|
const session = import_node_server_utils45.useAtlas.getClient()?.startSession();
|
|
18852
18888
|
session?.startTransaction();
|
|
18853
18889
|
try {
|
|
@@ -18898,7 +18934,11 @@ function useMemberService() {
|
|
|
18898
18934
|
session?.endSession();
|
|
18899
18935
|
}
|
|
18900
18936
|
}
|
|
18901
|
-
async function updateRoleById(id, role, type, org) {
|
|
18937
|
+
async function updateRoleById(id, role, type, org, callerId4) {
|
|
18938
|
+
const newRole = await getRoleById(role);
|
|
18939
|
+
if (newRole?.type === PLATFORM_STAFF_MEMBER_TYPE) {
|
|
18940
|
+
await requireStaffCaller(callerId4, "assign a Seven365 staff role");
|
|
18941
|
+
}
|
|
18902
18942
|
const owner = await getOwnerRolesByTypeOrg(type, org);
|
|
18903
18943
|
if (!owner.length) {
|
|
18904
18944
|
throw new import_node_server_utils45.BadRequestError("No owner role found.");
|
|
@@ -19192,7 +19232,7 @@ function useMemberController() {
|
|
|
19192
19232
|
const type = req.params.type;
|
|
19193
19233
|
const org = req.params.org;
|
|
19194
19234
|
try {
|
|
19195
|
-
await _updateRoleById(_id, role, type, org);
|
|
19235
|
+
await _updateRoleById(_id, role, type, org, callerId(req));
|
|
19196
19236
|
res.json({ message: "Successfully updated member role." });
|
|
19197
19237
|
return;
|
|
19198
19238
|
} catch (error2) {
|
|
@@ -19219,7 +19259,7 @@ function useMemberController() {
|
|
|
19219
19259
|
}
|
|
19220
19260
|
const { userId, orgId, roleId, app, siteId, siteName, onboardingRequired } = req.body;
|
|
19221
19261
|
try {
|
|
19222
|
-
const data = await _createMemberDirect({ userId, orgId, roleId, app, siteId, siteName, onboardingRequired });
|
|
19262
|
+
const data = await _createMemberDirect({ userId, orgId, roleId, app, siteId, siteName, onboardingRequired, callerId: callerId(req) });
|
|
19223
19263
|
res.status(201).json(data);
|
|
19224
19264
|
return;
|
|
19225
19265
|
} catch (error2) {
|
|
@@ -79053,6 +79093,9 @@ function useVerificationControllerV2() {
|
|
|
79053
79093
|
}
|
|
79054
79094
|
const { email, app, role, name, org, siteId, siteName } = value;
|
|
79055
79095
|
try {
|
|
79096
|
+
if (app === PLATFORM_STAFF_MEMBER_TYPE) {
|
|
79097
|
+
await requirePlatformStaff(req);
|
|
79098
|
+
}
|
|
79056
79099
|
await _createUserInvite({
|
|
79057
79100
|
email,
|
|
79058
79101
|
metadata: {
|
|
@@ -85868,6 +85911,7 @@ function useNotificationPreferenceController() {
|
|
|
85868
85911
|
MCustomer,
|
|
85869
85912
|
MCustomerSite,
|
|
85870
85913
|
MDocumentManagement,
|
|
85914
|
+
MEMBER_TYPES,
|
|
85871
85915
|
MEntryPassSettings,
|
|
85872
85916
|
MEventManagement,
|
|
85873
85917
|
MFeedback,
|
|
@@ -85942,6 +85986,7 @@ function useNotificationPreferenceController() {
|
|
|
85942
85986
|
OvernightParkingRequestStatus,
|
|
85943
85987
|
PATROL_CCTV_CAMERA_FILTER,
|
|
85944
85988
|
PERSON_TYPES,
|
|
85989
|
+
PLATFORM_STAFF_MEMBER_TYPE,
|
|
85945
85990
|
PROPERTY_MANAGEMENT_MEMBER_TYPES,
|
|
85946
85991
|
PStatus,
|
|
85947
85992
|
PTZ_ALLOWED_ACTIONS,
|