@go-labs-sg/rsvp 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -85,6 +85,30 @@ The installed command uses the same portable Bun launcher as the other Go Labs C
85
85
 
86
86
  Global administrators can update another account's global role from the web user manager or with `rsvp user role update --allow-state-change --target <user-id> --payload '{"userId":"<user-id>","role":"admin"}'`. Administrators cannot remove their own global admin role.
87
87
 
88
+ ## Participant waitlist offers
89
+
90
+ ```sh
91
+ rsvp waitlist mine --ack-sensitive-data --payload '{"eventSlug":"event-slug","formSlug":"form-slug"}'
92
+ rsvp waitlist offer respond --allow-state-change --target 11111111-1111-4111-8111-111111111111 --payload '{"eventSlug":"event-slug","formSlug":"form-slug","action":"DECLINE","expectedRegistrationVersion":3,"idempotencyKey":"11111111-1111-4111-8111-111111111111"}'
93
+ ```
94
+
95
+ `formSlug` is optional. Both commands forward typed JSON to the shared participant
96
+ tRPC handlers; there is no CLI-specific selection or cancellation logic. `mine`
97
+ returns the unique active registration, or `registration: null` when only history
98
+ remains, with the existing time-zone field. `offer respond` accepts `ACCEPT` or
99
+ `DECLINE` and retains its payment/registration ID/version/status JSON output.
100
+ Obtain the expected version from `mine` and generate a fresh UUID for a new action;
101
+ reuse the exact same payload/key only when retrying that action. Keep the existing
102
+ sensitive-data acknowledgement and state-change/target guards.
103
+
104
+ Decline closes the live offer and releases active ownership, credentials and
105
+ remaining reservations atomically, while preserving response/audit history. An
106
+ identical retry remains a read-only receipt replay even after cancellation or a
107
+ fresh registration; changed payloads using the same key conflict. Historical rows
108
+ are never used as a current offer. Registration-again recovery still requires the
109
+ existing organizer archive/unarchive policy, not automatic readmission or restore.
110
+ No command, payload schema, effect guard, provider action or data repair is added.
111
+
88
112
  ## Personal seating drafts
89
113
 
90
114
  `event seating draft get`, `save`, `preview`, and `publish` use the same server-owned
@@ -1109,6 +1133,24 @@ Confirmation and seat-change emails send from the server default
1109
1133
  `rsvp event email sender-domains`. Invalid local parts, a missing half of the
1110
1134
  pair or an unverified domain are rejected.
1111
1135
 
1136
+ ### Pending check-in details
1137
+
1138
+ While the check-in QR release is pending (scheduled or hidden), confirmation
1139
+ and resent confirmation emails show a "Check-in details" section with the
1140
+ release message and each attendee's name and type. Set
1141
+ `"showPendingCheckInDetails": false` in `registrationEmail` to omit that section
1142
+ when the event's own email copy already explains when QR codes arrive. Omitting
1143
+ the key, or setting `true`, keeps the section. After release the email shows
1144
+ check-in details, reference codes and attached QR codes as usual, whatever the
1145
+ setting. Seat-change emails have no check-in section and are unaffected.
1146
+
1147
+ ```sh
1148
+ rsvp event setup step update \
1149
+ --allow-state-change \
1150
+ --target evt_123 \
1151
+ --payload '{"organizationId":"org_123","eventId":"evt_123","version":7,"section":"REGISTRATION_RULES","registrationEmail":{"layout":"GROUPED","showPendingCheckInDetails":false}}'
1152
+ ```
1153
+
1112
1154
  `registrationEmail` replaces the whole presentation object, so read the current
1113
1155
  event first and resend every key you want to keep. Reply-to and support email
1114
1156
  are unchanged. If a saved domain is later unverified in Resend, those emails
package/dist/index.js CHANGED
@@ -10130,7 +10130,8 @@ var registrationEmailPresentationSchema = strictObject({
10130
10130
  seatingDisclaimer: string2().trim().min(1).max(2000).optional(),
10131
10131
  useResubmissionFooter: boolean2().default(false),
10132
10132
  supportEmail: email2().optional(),
10133
- showLuckyDrawId: boolean2().optional()
10133
+ showLuckyDrawId: boolean2().optional(),
10134
+ showPendingCheckInDetails: boolean2().optional()
10134
10135
  }).superRefine((value, ctx) => {
10135
10136
  if (Boolean(value.senderLocalPart) !== Boolean(value.senderDomain))
10136
10137
  ctx.addIssue({
@@ -12567,7 +12568,7 @@ Object.assign(commands, {
12567
12568
  "event mine list": payloadCommand((api, input) => api.event.listMyEvents.query(input), "List the caller's events (--payload JSON)."),
12568
12569
  "event reminder list": payloadCommand((api, input) => api.event.listReminderSegments.query(input), "List reminder segments (--payload JSON).", ["sensitive-data"]),
12569
12570
  "event rsvp submit": payloadCommand((api, input) => api.event.submitRsvp.mutate(input), "Submit the caller's registration (--payload JSON).", ["sensitive-data", "state-change"]),
12570
- "event setup step update": payloadCommand((api, input) => api.event.updateSetupStep.mutate(input), "Update one revision-checked event setup step (--payload JSON). REGISTRATION_RULES accepts registrationEmail presentation (including senderName and a senderLocalPart+senderDomain address on a verified Resend sending domain), registrationMasterList output-key ordering/omissions and includeAttendanceSheets, and seatChangeNotification automatic/includeTablemates/includeFloorPlanImage policy (tablemate names default off; floor-plan image defaults on); omitted settings are preserved.", ["state-change"]),
12571
+ "event setup step update": payloadCommand((api, input) => api.event.updateSetupStep.mutate(input), "Update one revision-checked event setup step (--payload JSON). REGISTRATION_RULES accepts registrationEmail presentation (including senderName, a senderLocalPart+senderDomain address on a verified Resend sending domain, and showPendingCheckInDetails: false to omit the confirmation email's Check-in details section until the check-in QR release; released QR emails are unaffected), registrationMasterList output-key ordering/omissions and includeAttendanceSheets, and seatChangeNotification automatic/includeTablemates/includeFloorPlanImage policy (tablemate names default off; floor-plan image defaults on); omitted settings are preserved.", ["state-change"]),
12571
12572
  "event page update": payloadCommand((api, input) => api.event.updateSetupStep.mutate({
12572
12573
  ...input,
12573
12574
  section: "DETAILS_PAGE"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@go-labs-sg/rsvp",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "RSVP CLI for authorized event operations.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",