@7365admin1/core 3.48.1-staging.167 → 3.48.1-staging.169
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/camera-type-permission-classification.md +46 -0
- package/.changeset/provider-billing-org-scope.md +21 -0
- package/dist/index.d.ts +58 -5
- package/dist/index.js +51 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/test/camera-view.util.test.mjs +47 -3
- package/test/e2e/harness.mjs +19 -0
- package/test/e2e/provider-billing-scope.e2e.test.mjs +360 -0
- package/test/site-camera-type.test.mjs +83 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
"@7365admin1/core": patch
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Classify a camera by its `type` correctly, so an ANPR unit can be switched off.
|
|
6
|
+
|
|
7
|
+
Reported as `.github-private#35486`: a faulty ANPR camera at a client site is
|
|
8
|
+
down in PRODUCTION, and `PATCH /api/site-cameras/id/:id` with
|
|
9
|
+
`status: "inactive"` answers `"You do not have permission to set up cameras on
|
|
10
|
+
this site."` The camera is broken and the person trying to switch it off is
|
|
11
|
+
locked out.
|
|
12
|
+
|
|
13
|
+
The refusal is ours. `cameraManagePermissions` (`camera-view.util.ts`) picked
|
|
14
|
+
between the two Settings panels' permission strings with
|
|
15
|
+
`String(type) === "anpr"`, on the strength of a comment claiming `type` was
|
|
16
|
+
"validated to `ip | anpr` by the model". It was not. `site-camera.model.ts` used
|
|
17
|
+
`Joi.string().allow("ip", "anpr").required()`, and `.allow()` WHITELISTS
|
|
18
|
+
additional values rather than restricting to them. Run against joi 17.13.3 the
|
|
19
|
+
rule accepts `"ANPR"`, `"Anpr"` and `"totally-arbitrary-xyz"` exactly as readily
|
|
20
|
+
as `"anpr"`; only `""`, `undefined`, `null` and non-strings were refused, and
|
|
21
|
+
those by `string().required()`, not by the list. So a stored row could carry a
|
|
22
|
+
spelling the gate could not place, an ANPR unit was classed as CCTV, and the
|
|
23
|
+
write demanded `site-settings:manage-cctv-camera` — which a role provisioned for
|
|
24
|
+
the ANPR panel does not hold.
|
|
25
|
+
|
|
26
|
+
Two changes, and the gate itself is untouched in substance:
|
|
27
|
+
|
|
28
|
+
- The schema is now `Joi.string().trim().lowercase().valid("ip", "anpr")`, so
|
|
29
|
+
nothing outside the pair can be stored again. `.trim().lowercase()` runs
|
|
30
|
+
before the check, so a caller sending `"ANPR"` is normalised rather than newly
|
|
31
|
+
refused; every client in the estate already sends the lower-case pair.
|
|
32
|
+
`MSiteCamera` normalises the value it writes for the same reason.
|
|
33
|
+
- `cameraManagePermissions` compares case- and whitespace-insensitively instead
|
|
34
|
+
of exactly, because the rows already in the collection were written under the
|
|
35
|
+
old rule and `loadForWrite` reads them raw, so the mapper's default never
|
|
36
|
+
reaches them. A `type` that still cannot be placed — absent, or a legacy value
|
|
37
|
+
— now asks for EITHER permission. The two strings are two panels, not two
|
|
38
|
+
privilege levels; neither is the safer guess, and guessing one is what locked
|
|
39
|
+
the correct operator out.
|
|
40
|
+
|
|
41
|
+
A caller must still be entitled to the site AND hold a camera-management
|
|
42
|
+
permission on the membership that granted it, so an unrelated tenant is refused
|
|
43
|
+
exactly as before, and none of the pre-`62e4eb62` behaviour — any signed-in
|
|
44
|
+
account rewriting or hard-deleting any organisation's cameras — returns. No
|
|
45
|
+
caller who could write a camera before is refused now: the unplaceable case is a
|
|
46
|
+
superset of the CCTV string it used to demand.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
"@7365admin1/core": patch
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Scope the service provider billing routes to the organisation
|
|
6
|
+
|
|
7
|
+
`/api/provider-billings` carried `requireAuth` and nothing more on all five
|
|
8
|
+
handlers, and `service-provider-billing.controller.ts` held no authorization
|
|
9
|
+
identifier of any kind. A service provider billing record is what a contractor
|
|
10
|
+
invoices an organisation for, so any signed-in account on the platform could
|
|
11
|
+
read another organisation's invoices, swap the attachments that evidence one,
|
|
12
|
+
flip its status, add an acknowledgement that was never given, or delete it.
|
|
13
|
+
|
|
14
|
+
The scope here is the ORGANISATION, not the estate: every row carries `orgId`
|
|
15
|
+
and no `site`, so the rule is `requireOrgAccess` — Seven365 staff, or a live
|
|
16
|
+
member of that organisation — not `requireSiteReach`.
|
|
17
|
+
|
|
18
|
+
Adds `requireServiceProviderBillingReach`, plus an uncached
|
|
19
|
+
`getRawServiceProviderBillingById` so the check is not decided from a 15-minute
|
|
20
|
+
cache entry (the existing reader is cached and throws `NotFoundError`, which
|
|
21
|
+
would also answer before the guard ran).
|
package/dist/index.d.ts
CHANGED
|
@@ -3190,13 +3190,35 @@ declare const CAMERA_SETUP_PERMISSIONS: string[];
|
|
|
3190
3190
|
* asks the same question the client asked before it drew the button.
|
|
3191
3191
|
*/
|
|
3192
3192
|
declare const CAMERA_ANPR_PERMISSIONS: string[];
|
|
3193
|
+
/**
|
|
3194
|
+
* A `type` we cannot place onto either panel.
|
|
3195
|
+
*
|
|
3196
|
+
* The two strings are two PANELS, not two privilege levels - neither is the
|
|
3197
|
+
* safer guess, and guessing one is exactly what locked the right operator out.
|
|
3198
|
+
* So an unplaceable row asks for either, and the gate keeps its substance: the
|
|
3199
|
+
* caller must still be entitled to the site AND hold a camera-management
|
|
3200
|
+
* permission on the membership that granted it. An unrelated tenant holds
|
|
3201
|
+
* neither string and is refused precisely as before.
|
|
3202
|
+
*/
|
|
3203
|
+
declare const CAMERA_MANAGE_ANY_PERMISSIONS: string[];
|
|
3193
3204
|
/**
|
|
3194
3205
|
* Which of the two a write needs, from the camera's own `type`.
|
|
3195
3206
|
*
|
|
3196
|
-
*
|
|
3197
|
-
*
|
|
3198
|
-
*
|
|
3199
|
-
*
|
|
3207
|
+
* The previous comment here claimed `type` was "validated to `ip | anpr` by the
|
|
3208
|
+
* model", and compared with `String(type) === "anpr"` on the strength of it.
|
|
3209
|
+
* The claim was false. `site-camera.model.ts` used `Joi.string().allow("ip",
|
|
3210
|
+
* "anpr")`, and `.allow()` WHITELISTS additional values rather than restricting
|
|
3211
|
+
* to them - run against joi 17.13.3, that rule passes `"ANPR"`, `"Anpr"` and
|
|
3212
|
+
* `"totally-arbitrary-xyz"` as readily as `"anpr"`. So a stored row could carry
|
|
3213
|
+
* any spelling, an exact comparison classed a genuine ANPR unit as CCTV, and
|
|
3214
|
+
* the write then demanded the CCTV permission that an ANPR operator does not
|
|
3215
|
+
* hold. That is issue #35486: a faulty ANPR camera in production that the
|
|
3216
|
+
* person trying to switch it off was refused permission to touch.
|
|
3217
|
+
*
|
|
3218
|
+
* The schema is now `.valid()`, so nothing new can be stored outside
|
|
3219
|
+
* `ip | anpr`. This function still normalises rather than trusting it, because
|
|
3220
|
+
* the rows already in the collection were written under the old rule and are
|
|
3221
|
+
* read raw by `loadForWrite` - the model's mapper never runs on them.
|
|
3200
3222
|
*/
|
|
3201
3223
|
declare function cameraManagePermissions(type: unknown): Array<string>;
|
|
3202
3224
|
/**
|
|
@@ -5416,6 +5438,7 @@ declare function useServiceProviderBillingRepo(): {
|
|
|
5416
5438
|
pageRange: string;
|
|
5417
5439
|
} | TServiceProviderBilling>;
|
|
5418
5440
|
getSiteServiceProviderBillingById: (_id: string | ObjectId, session?: ClientSession) => Promise<mongodb.WithId<bson.Document> | TServiceProviderBilling>;
|
|
5441
|
+
getRawServiceProviderBillingById: (_id: string | ObjectId) => Promise<mongodb.WithId<bson.Document> | null>;
|
|
5419
5442
|
updateServiceProviderBillingById: (_id: ObjectId | string, value: Partial<TServiceProviderBilling>, session?: ClientSession) => Promise<mongodb.UpdateResult<bson.Document>>;
|
|
5420
5443
|
deleteServiceProviderBillingById: (_id: string | ObjectId) => Promise<number>;
|
|
5421
5444
|
createIndexes: () => Promise<void>;
|
|
@@ -5426,6 +5449,36 @@ declare function useServiceProviderBillingService(): {
|
|
|
5426
5449
|
updateServiceProviderBillingById: (id: string | ObjectId, value: Partial<TServiceProviderBilling>) => Promise<string>;
|
|
5427
5450
|
};
|
|
5428
5451
|
|
|
5452
|
+
/**
|
|
5453
|
+
* Who may see, or change, a service provider's billing records.
|
|
5454
|
+
*
|
|
5455
|
+
* A service provider billing record is what a contractor invoices an
|
|
5456
|
+
* organisation for - the amount, the period, the attachments that evidence it,
|
|
5457
|
+
* and the people who acknowledged it. It is money.
|
|
5458
|
+
*
|
|
5459
|
+
* All five routes on `/api/provider-billings` carried `requireAuth` and nothing
|
|
5460
|
+
* more, and this controller held no authorization identifier of any kind, so
|
|
5461
|
+
* being signed in ANYWHERE on the platform was enough to read another
|
|
5462
|
+
* organisation's invoices, restate one, replace its evidence, or delete it.
|
|
5463
|
+
*
|
|
5464
|
+
* The scope here is the ORGANISATION, not the estate. Every row carries
|
|
5465
|
+
* `orgId` and no `site` - `getAll` is asked for an `org`, and the repository
|
|
5466
|
+
* builds `{ orgId: org, status }`. So the rule is `requireOrgAccess`, the same
|
|
5467
|
+
* one `/api/customer-sites` and `/api/members` already use: Seven365 staff, or
|
|
5468
|
+
* a live member of that organisation. Using `requireSiteReach` here would be
|
|
5469
|
+
* asking the wrong question of the wrong field.
|
|
5470
|
+
*
|
|
5471
|
+
* - `POST /` already REQUIRES `orgId` in the body and `GET /` already REQUIRES
|
|
5472
|
+
* `org` in the query, so the guard checks the organisation the request
|
|
5473
|
+
* already names and no caller's contract changes.
|
|
5474
|
+
* - The three record routes name only a record, so the organisation is read
|
|
5475
|
+
* off the STORED row via `requireServiceProviderBillingReach`, and an
|
|
5476
|
+
* `orgId` in the caller's own body cannot stand in for it.
|
|
5477
|
+
*
|
|
5478
|
+
* `PUT /id/:id` cannot MOVE a record between organisations:
|
|
5479
|
+
* `schemaUpdateServiceProviderBilling` does not accept `orgId` at all, so there
|
|
5480
|
+
* is no destination to check.
|
|
5481
|
+
*/
|
|
5429
5482
|
declare function useServiceProviderBillingController(): {
|
|
5430
5483
|
add: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
5431
5484
|
getAll: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
@@ -11968,4 +12021,4 @@ declare function useNotificationPreferenceController(): {
|
|
|
11968
12021
|
update: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
11969
12022
|
};
|
|
11970
12023
|
|
|
11971
|
-
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, PLATFORM_STAFF_ROLE_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 };
|
|
12024
|
+
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_MANAGE_ANY_PERMISSIONS, 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, PLATFORM_STAFF_ROLE_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
|
@@ -5906,6 +5906,7 @@ __export(src_exports, {
|
|
|
5906
5906
|
CAMERA_ANPR_PERMISSIONS: () => CAMERA_ANPR_PERMISSIONS,
|
|
5907
5907
|
CAMERA_CAPABILITIES: () => CAMERA_CAPABILITIES,
|
|
5908
5908
|
CAMERA_CAPABILITY_REASONS: () => CAMERA_CAPABILITY_REASONS,
|
|
5909
|
+
CAMERA_MANAGE_ANY_PERMISSIONS: () => CAMERA_MANAGE_ANY_PERMISSIONS,
|
|
5909
5910
|
CAMERA_NOT_PATROL_OR_CCTV: () => CAMERA_NOT_PATROL_OR_CCTV,
|
|
5910
5911
|
CAMERA_NO_SUB_STREAM_TTL_SECONDS: () => CAMERA_NO_SUB_STREAM_TTL_SECONDS,
|
|
5911
5912
|
CAMERA_PTZ_PERMISSIONS: () => CAMERA_PTZ_PERMISSIONS,
|
|
@@ -19157,7 +19158,22 @@ var schemaSiteCamera = import_joi20.default.object({
|
|
|
19157
19158
|
then: import_joi20.default.required(),
|
|
19158
19159
|
otherwise: import_joi20.default.optional().allow(null, "")
|
|
19159
19160
|
}),
|
|
19160
|
-
|
|
19161
|
+
/**
|
|
19162
|
+
* `.valid()`, NOT `.allow()`.
|
|
19163
|
+
*
|
|
19164
|
+
* `.allow()` whitelists ADDITIONAL values, it does not restrict to them - run
|
|
19165
|
+
* against joi 17.13.3, `Joi.string().allow("ip","anpr").required()` accepts
|
|
19166
|
+
* `"ANPR"`, `"Anpr"` and any other non-empty string. That let rows reach the
|
|
19167
|
+
* collection with a spelling the permission gate could not place, which is
|
|
19168
|
+
* how a faulty ANPR camera in production became impossible to switch off
|
|
19169
|
+
* (issue #35486).
|
|
19170
|
+
*
|
|
19171
|
+
* `.trim().lowercase()` runs BEFORE the check (joi converts by default), so a
|
|
19172
|
+
* caller sending `"ANPR"` is normalised rather than newly refused - the point
|
|
19173
|
+
* is to stop unplaceable values being stored, not to reject callers that work
|
|
19174
|
+
* today. Every client in the estate already sends the lower-case pair.
|
|
19175
|
+
*/
|
|
19176
|
+
type: import_joi20.default.string().trim().lowercase().valid("ip", "anpr").required(),
|
|
19161
19177
|
category: import_joi20.default.string().allow("standard", "resident", "visitor").required(),
|
|
19162
19178
|
direction: import_joi20.default.string().required().allow("entry", "exit", "both", "none"),
|
|
19163
19179
|
guardPost: import_joi20.default.number().integer().optional(),
|
|
@@ -19186,7 +19202,10 @@ function MSiteCamera(value) {
|
|
|
19186
19202
|
host: value.host ?? "",
|
|
19187
19203
|
username: value.username ?? "",
|
|
19188
19204
|
password: value.password ?? "",
|
|
19189
|
-
|
|
19205
|
+
// Normalised the same way the schema does, so the value STORED is one the
|
|
19206
|
+
// permission gate can place - a mapper that wrote back the raw spelling
|
|
19207
|
+
// would re-create the rows this fix exists for.
|
|
19208
|
+
type: String(value.type ?? "ip" /* IP */).trim().toLowerCase(),
|
|
19190
19209
|
category: value.category ?? "standard",
|
|
19191
19210
|
guardPost: value.guardPost ?? 0,
|
|
19192
19211
|
status: value.status ?? "active",
|
|
@@ -23555,8 +23574,17 @@ function relayForRecorder(recorderHost, recorderPort, devices = cameraDevices())
|
|
|
23555
23574
|
}
|
|
23556
23575
|
var CAMERA_SETUP_PERMISSIONS = ["site-settings:manage-cctv-camera"];
|
|
23557
23576
|
var CAMERA_ANPR_PERMISSIONS = ["site-settings:manage-anpr-camera"];
|
|
23577
|
+
var CAMERA_MANAGE_ANY_PERMISSIONS = [
|
|
23578
|
+
...CAMERA_SETUP_PERMISSIONS,
|
|
23579
|
+
...CAMERA_ANPR_PERMISSIONS
|
|
23580
|
+
];
|
|
23558
23581
|
function cameraManagePermissions(type) {
|
|
23559
|
-
|
|
23582
|
+
const spelling = typeof type === "string" ? type.trim().toLowerCase() : "";
|
|
23583
|
+
if (spelling === CAMERA_TYPE_ANPR)
|
|
23584
|
+
return CAMERA_ANPR_PERMISSIONS;
|
|
23585
|
+
if (spelling === CAMERA_TYPE_IP)
|
|
23586
|
+
return CAMERA_SETUP_PERMISSIONS;
|
|
23587
|
+
return CAMERA_MANAGE_ANY_PERMISSIONS;
|
|
23560
23588
|
}
|
|
23561
23589
|
var CAMERA_TEST_MIN_INTERVAL_SECONDS = 15;
|
|
23562
23590
|
var CAMERA_TEST_ROUND_LIMIT = 4;
|
|
@@ -54303,10 +54331,19 @@ function useServiceProviderBillingRepo() {
|
|
|
54303
54331
|
throw error;
|
|
54304
54332
|
}
|
|
54305
54333
|
}
|
|
54334
|
+
async function getRawServiceProviderBillingById(_id) {
|
|
54335
|
+
try {
|
|
54336
|
+
_id = new import_mongodb98.ObjectId(_id);
|
|
54337
|
+
} catch (error) {
|
|
54338
|
+
throw new import_node_server_utils158.BadRequestError("Invalid service provider billing ID format.");
|
|
54339
|
+
}
|
|
54340
|
+
return await collection.findOne({ _id });
|
|
54341
|
+
}
|
|
54306
54342
|
return {
|
|
54307
54343
|
add,
|
|
54308
54344
|
getAll,
|
|
54309
54345
|
getSiteServiceProviderBillingById,
|
|
54346
|
+
getRawServiceProviderBillingById,
|
|
54310
54347
|
updateServiceProviderBillingById,
|
|
54311
54348
|
deleteServiceProviderBillingById,
|
|
54312
54349
|
createIndexes
|
|
@@ -54365,8 +54402,13 @@ function useServiceProviderBillingController() {
|
|
|
54365
54402
|
const {
|
|
54366
54403
|
getAll: _getAll,
|
|
54367
54404
|
getSiteServiceProviderBillingById: _getServiceProviderBillingById,
|
|
54405
|
+
getRawServiceProviderBillingById: _getRawServiceProviderBillingById,
|
|
54368
54406
|
deleteServiceProviderBillingById: _deleteServiceProviderBillingById
|
|
54369
54407
|
} = useServiceProviderBillingRepo();
|
|
54408
|
+
async function requireServiceProviderBillingReach(req, _id) {
|
|
54409
|
+
const row = await _getRawServiceProviderBillingById(_id);
|
|
54410
|
+
await requireOrgAccess(req, row?.orgId?.toString());
|
|
54411
|
+
}
|
|
54370
54412
|
async function add(req, res, next) {
|
|
54371
54413
|
const payload = { ...req.body };
|
|
54372
54414
|
const { error } = schemaServiceProviderBilling.validate(payload, {
|
|
@@ -54379,6 +54421,7 @@ function useServiceProviderBillingController() {
|
|
|
54379
54421
|
return;
|
|
54380
54422
|
}
|
|
54381
54423
|
try {
|
|
54424
|
+
await requireOrgAccess(req, payload.orgId);
|
|
54382
54425
|
const data = await _add(payload);
|
|
54383
54426
|
res.status(201).json(data);
|
|
54384
54427
|
return;
|
|
@@ -54425,6 +54468,7 @@ function useServiceProviderBillingController() {
|
|
|
54425
54468
|
}
|
|
54426
54469
|
});
|
|
54427
54470
|
try {
|
|
54471
|
+
await requireOrgAccess(req, org);
|
|
54428
54472
|
const data = await _getAll({
|
|
54429
54473
|
search,
|
|
54430
54474
|
page,
|
|
@@ -54451,6 +54495,7 @@ function useServiceProviderBillingController() {
|
|
|
54451
54495
|
return;
|
|
54452
54496
|
}
|
|
54453
54497
|
try {
|
|
54498
|
+
await requireServiceProviderBillingReach(req, _id);
|
|
54454
54499
|
const data = await _getServiceProviderBillingById(_id);
|
|
54455
54500
|
res.status(200).json(data);
|
|
54456
54501
|
return;
|
|
@@ -54473,6 +54518,7 @@ function useServiceProviderBillingController() {
|
|
|
54473
54518
|
return;
|
|
54474
54519
|
}
|
|
54475
54520
|
try {
|
|
54521
|
+
await requireServiceProviderBillingReach(req, _id);
|
|
54476
54522
|
const result = await _updateServiceProviderBillingById(_id, req.body);
|
|
54477
54523
|
res.status(200).json({ message: result });
|
|
54478
54524
|
return;
|
|
@@ -54492,6 +54538,7 @@ function useServiceProviderBillingController() {
|
|
|
54492
54538
|
return;
|
|
54493
54539
|
}
|
|
54494
54540
|
try {
|
|
54541
|
+
await requireServiceProviderBillingReach(req, _id);
|
|
54495
54542
|
await _deleteServiceProviderBillingById(_id);
|
|
54496
54543
|
res.status(200).json({ message: "Successfully deleted service provider billing." });
|
|
54497
54544
|
return;
|
|
@@ -86606,6 +86653,7 @@ function useNotificationPreferenceController() {
|
|
|
86606
86653
|
CAMERA_ANPR_PERMISSIONS,
|
|
86607
86654
|
CAMERA_CAPABILITIES,
|
|
86608
86655
|
CAMERA_CAPABILITY_REASONS,
|
|
86656
|
+
CAMERA_MANAGE_ANY_PERMISSIONS,
|
|
86609
86657
|
CAMERA_NOT_PATROL_OR_CCTV,
|
|
86610
86658
|
CAMERA_NO_SUB_STREAM_TTL_SECONDS,
|
|
86611
86659
|
CAMERA_PTZ_PERMISSIONS,
|