payload-reserve 1.3.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -4
- package/dist/collections/Reservations.js +47 -2
- package/dist/collections/Reservations.js.map +1 -1
- package/dist/collections/Resources.d.ts +16 -0
- package/dist/collections/Resources.js +35 -10
- package/dist/collections/Resources.js.map +1 -1
- package/dist/collections/Schedules.js +34 -0
- package/dist/collections/Schedules.js.map +1 -1
- package/dist/collections/Services.js +34 -1
- package/dist/collections/Services.js.map +1 -1
- package/dist/components/AvailabilityTimeField/AvailabilityTimeField.module.css +7 -0
- package/dist/components/AvailabilityTimeField/index.d.ts +2 -0
- package/dist/components/AvailabilityTimeField/index.js +109 -0
- package/dist/components/AvailabilityTimeField/index.js.map +1 -0
- package/dist/components/CalendarView/CalendarView.module.css +114 -0
- package/dist/components/CalendarView/LaneTimelineView.d.ts +12 -0
- package/dist/components/CalendarView/LaneTimelineView.js +116 -0
- package/dist/components/CalendarView/LaneTimelineView.js.map +1 -0
- package/dist/components/CalendarView/index.js +224 -22
- package/dist/components/CalendarView/index.js.map +1 -1
- package/dist/components/CalendarView/useResourceAvailability.d.ts +9 -0
- package/dist/components/CalendarView/useResourceAvailability.js +40 -0
- package/dist/components/CalendarView/useResourceAvailability.js.map +1 -0
- package/dist/defaults.d.ts +3 -0
- package/dist/defaults.js +53 -0
- package/dist/defaults.js.map +1 -1
- package/dist/endpoints/cancelBooking.js +34 -21
- package/dist/endpoints/cancelBooking.js.map +1 -1
- package/dist/endpoints/checkAvailability.js +16 -1
- package/dist/endpoints/checkAvailability.js.map +1 -1
- package/dist/endpoints/createBooking.js +4 -1
- package/dist/endpoints/createBooking.js.map +1 -1
- package/dist/endpoints/customerSearch.js +24 -5
- package/dist/endpoints/customerSearch.js.map +1 -1
- package/dist/endpoints/getSlots.js +16 -1
- package/dist/endpoints/getSlots.js.map +1 -1
- package/dist/endpoints/resourceAvailability.d.ts +43 -0
- package/dist/endpoints/resourceAvailability.js +214 -0
- package/dist/endpoints/resourceAvailability.js.map +1 -0
- package/dist/exports/client.d.ts +1 -0
- package/dist/exports/client.js +1 -0
- package/dist/exports/client.js.map +1 -1
- package/dist/hooks/reservations/calculateEndTime.js +21 -1
- package/dist/hooks/reservations/calculateEndTime.js.map +1 -1
- package/dist/hooks/reservations/expandRequiredResources.d.ts +9 -0
- package/dist/hooks/reservations/expandRequiredResources.js +81 -0
- package/dist/hooks/reservations/expandRequiredResources.js.map +1 -0
- package/dist/hooks/reservations/validateGuestBooking.d.ts +3 -0
- package/dist/hooks/reservations/validateGuestBooking.js +93 -0
- package/dist/hooks/reservations/validateGuestBooking.js.map +1 -0
- package/dist/hooks/reservations/validateStatusTransition.js +4 -2
- package/dist/hooks/reservations/validateStatusTransition.js.map +1 -1
- package/dist/hooks/users/provisionStaffResource.d.ts +15 -0
- package/dist/hooks/users/provisionStaffResource.js +88 -0
- package/dist/hooks/users/provisionStaffResource.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin.js +28 -3
- package/dist/plugin.js.map +1 -1
- package/dist/services/AvailabilityService.d.ts +7 -6
- package/dist/services/AvailabilityService.js +86 -60
- package/dist/services/AvailabilityService.js.map +1 -1
- package/dist/translations/ar.json +156 -0
- package/dist/translations/de.json +156 -0
- package/dist/translations/en.json +32 -1
- package/dist/translations/es.json +156 -0
- package/dist/translations/fa.json +156 -0
- package/dist/translations/fr.json +156 -0
- package/dist/translations/hi.json +156 -0
- package/dist/translations/id.json +156 -0
- package/dist/translations/index.js +44 -0
- package/dist/translations/index.js.map +1 -1
- package/dist/translations/pl.json +156 -0
- package/dist/translations/ru.json +156 -0
- package/dist/translations/tr.json +156 -0
- package/dist/translations/zh.json +156 -0
- package/dist/types.d.ts +46 -0
- package/dist/types.js.map +1 -1
- package/dist/utilities/computeSlotStates.d.ts +39 -0
- package/dist/utilities/computeSlotStates.js +49 -0
- package/dist/utilities/computeSlotStates.js.map +1 -0
- package/dist/utilities/guestBooking.d.ts +10 -0
- package/dist/utilities/guestBooking.js +16 -0
- package/dist/utilities/guestBooking.js.map +1 -0
- package/dist/utilities/resolveRequiredResources.d.ts +8 -0
- package/dist/utilities/resolveRequiredResources.js +27 -0
- package/dist/utilities/resolveRequiredResources.js.map +1 -0
- package/dist/utilities/resolveReservationItems.d.ts +3 -2
- package/dist/utilities/resolveReservationItems.js +19 -6
- package/dist/utilities/resolveReservationItems.js.map +1 -1
- package/dist/utilities/scheduleUtils.d.ts +3 -0
- package/dist/utilities/scheduleUtils.js +5 -3
- package/dist/utilities/scheduleUtils.js.map +1 -1
- package/dist/utilities/selectOptions.d.ts +8 -0
- package/dist/utilities/selectOptions.js +11 -0
- package/dist/utilities/selectOptions.js.map +1 -0
- package/dist/utilities/slotUtils.d.ts +19 -0
- package/dist/utilities/slotUtils.js +28 -0
- package/dist/utilities/slotUtils.js.map +1 -1
- package/dist/utilities/userRoles.d.ts +20 -0
- package/dist/utilities/userRoles.js +32 -0
- package/dist/utilities/userRoles.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { roleMatches } from '../hooks/users/provisionStaffResource.js';
|
|
2
|
+
/**
|
|
3
|
+
* Roles considered privileged (staff/admin) — the union of `resourceOwnerMode`
|
|
4
|
+
* admin roles and `staffProvisioning` staff roles. Empty when neither is set.
|
|
5
|
+
*/ export function privilegedRoles(config) {
|
|
6
|
+
return [
|
|
7
|
+
...config.resourceOwnerMode?.adminRoles ?? [],
|
|
8
|
+
...config.staffProvisioning?.staffRoles ?? []
|
|
9
|
+
];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* True if the request user is staff/admin (i.e. NOT a customer).
|
|
13
|
+
*
|
|
14
|
+
* Two-collection model (default): anyone whose collection differs from
|
|
15
|
+
* `slugs.customers` is staff/admin — the original behaviour, unchanged.
|
|
16
|
+
*
|
|
17
|
+
* Single-collection model (`userCollection` set, so `slugs.customers` IS the
|
|
18
|
+
* auth collection): collection can't distinguish staff from customers, so fall
|
|
19
|
+
* back to the user's role against `privilegedRoles`. With no privileged roles
|
|
20
|
+
* configured this returns false (safe — treats everyone as a customer).
|
|
21
|
+
*/ export function isPrivilegedUser(user, config) {
|
|
22
|
+
if (!user) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (user.collection !== config.slugs.customers) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
const roleField = config.staffProvisioning?.roleField ?? 'role';
|
|
29
|
+
return roleMatches(user[roleField], privilegedRoles(config));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=userRoles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/userRoles.ts"],"sourcesContent":["import type { ResolvedReservationPluginConfig } from '../types.js'\n\nimport { roleMatches } from '../hooks/users/provisionStaffResource.js'\n\n/**\n * Roles considered privileged (staff/admin) — the union of `resourceOwnerMode`\n * admin roles and `staffProvisioning` staff roles. Empty when neither is set.\n */\nexport function privilegedRoles(config: ResolvedReservationPluginConfig): string[] {\n return [\n ...(config.resourceOwnerMode?.adminRoles ?? []),\n ...(config.staffProvisioning?.staffRoles ?? []),\n ]\n}\n\n/**\n * True if the request user is staff/admin (i.e. NOT a customer).\n *\n * Two-collection model (default): anyone whose collection differs from\n * `slugs.customers` is staff/admin — the original behaviour, unchanged.\n *\n * Single-collection model (`userCollection` set, so `slugs.customers` IS the\n * auth collection): collection can't distinguish staff from customers, so fall\n * back to the user's role against `privilegedRoles`. With no privileged roles\n * configured this returns false (safe — treats everyone as a customer).\n */\nexport function isPrivilegedUser(\n user: ({ collection?: string } & Record<string, unknown>) | null | undefined,\n config: ResolvedReservationPluginConfig,\n): boolean {\n if (!user) { return false }\n if (user.collection !== config.slugs.customers) { return true }\n const roleField = config.staffProvisioning?.roleField ?? 'role'\n return roleMatches(user[roleField], privilegedRoles(config))\n}\n"],"names":["roleMatches","privilegedRoles","config","resourceOwnerMode","adminRoles","staffProvisioning","staffRoles","isPrivilegedUser","user","collection","slugs","customers","roleField"],"mappings":"AAEA,SAASA,WAAW,QAAQ,2CAA0C;AAEtE;;;CAGC,GACD,OAAO,SAASC,gBAAgBC,MAAuC;IACrE,OAAO;WACDA,OAAOC,iBAAiB,EAAEC,cAAc,EAAE;WAC1CF,OAAOG,iBAAiB,EAAEC,cAAc,EAAE;KAC/C;AACH;AAEA;;;;;;;;;;CAUC,GACD,OAAO,SAASC,iBACdC,IAA4E,EAC5EN,MAAuC;IAEvC,IAAI,CAACM,MAAM;QAAE,OAAO;IAAM;IAC1B,IAAIA,KAAKC,UAAU,KAAKP,OAAOQ,KAAK,CAACC,SAAS,EAAE;QAAE,OAAO;IAAK;IAC9D,MAAMC,YAAYV,OAAOG,iBAAiB,EAAEO,aAAa;IACzD,OAAOZ,YAAYQ,IAAI,CAACI,UAAU,EAAEX,gBAAgBC;AACtD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload-reserve",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "A Payload CMS 3.x plugin for reservation and booking management with conflict detection, status workflows, and calendar UI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"payload",
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
],
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@changesets/cli": "^2.30.0",
|
|
50
|
+
"@elghaied/payload-plugin-sms": "^0.3.0",
|
|
50
51
|
"@eslint/eslintrc": "^3.2.0",
|
|
51
52
|
"@payloadcms/db-mongodb": "3.79.0",
|
|
52
53
|
"@payloadcms/db-postgres": "3.79.0",
|