@go-labs-sg/rsvp 0.2.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.
@@ -0,0 +1,229 @@
1
+ {
2
+ "organizationId": "replace-with-organization-id",
3
+ "name": "Amgen Dinner & Dance 2026",
4
+ "description": "Reusable RSVP template configuration for the Amgen Dinner & Dance 2026 registration workflow.",
5
+ "configuration": {
6
+ "accessMode": "ROSTER_ONLY",
7
+ "allowedEmailDomains": [],
8
+ "capacityLimit": null,
9
+ "description": "Dinner & Dance registration with invitation-bound Staff ID confirmation and employment-based eligibility.",
10
+ "employeeIdMatchingEnabled": true,
11
+ "fieldDefinitions": [
12
+ {
13
+ "active": true,
14
+ "appliesToAttendeeTypeKey": "employee",
15
+ "description": "The employee's main organizational function.",
16
+ "fieldType": "SINGLE_SELECT",
17
+ "key": "mainFunction",
18
+ "label": "Main Function",
19
+ "options": {
20
+ "choices": [
21
+ { "label": "Admin & Finance & BP", "value": "ADMIN_FINANCE_BP" },
22
+ {
23
+ "label": "ASM1 MFG Biologics - Direct",
24
+ "value": "ASM1_MFG_BIOLOGICS_DIRECT"
25
+ },
26
+ { "label": "MFG Support", "value": "MFG_SUPPORT" },
27
+ { "label": "Supply Chain", "value": "SUPPLY_CHAIN" },
28
+ {
29
+ "label": "Facilities & Engineering",
30
+ "value": "FACILITIES_ENGINEERING"
31
+ },
32
+ { "label": "Technology", "value": "TECHNOLOGY" },
33
+ { "label": "PD", "value": "PD" },
34
+ { "label": "QC", "value": "QC" },
35
+ { "label": "QA", "value": "QA" },
36
+ {
37
+ "label": "ASM2 MFG API - Direct",
38
+ "value": "ASM2_MFG_API_DIRECT"
39
+ },
40
+ { "label": "EHSS", "value": "EHSS" },
41
+ { "label": "HR, Security & RA", "value": "HR_SECURITY_RA" }
42
+ ]
43
+ },
44
+ "required": true,
45
+ "scope": "ATTENDEE",
46
+ "sortOrder": 100
47
+ },
48
+ {
49
+ "active": true,
50
+ "appliesToAttendeeTypeKey": "employee",
51
+ "description": "Shown only for Main Functions that have configured Subfunctions.",
52
+ "fieldType": "SINGLE_SELECT",
53
+ "key": "subfunction",
54
+ "label": "Subfunction",
55
+ "options": {
56
+ "choices": [],
57
+ "visibleWhen": {
58
+ "fieldKey": "mainFunction",
59
+ "values": [
60
+ "ASM1_MFG_BIOLOGICS_DIRECT",
61
+ "FACILITIES_ENGINEERING",
62
+ "SUPPLY_CHAIN",
63
+ "QA",
64
+ "ASM2_MFG_API_DIRECT"
65
+ ]
66
+ },
67
+ "choiceSets": [
68
+ {
69
+ "when": {
70
+ "fieldKey": "mainFunction",
71
+ "values": ["ASM1_MFG_BIOLOGICS_DIRECT"]
72
+ },
73
+ "choices": [
74
+ { "label": "Team A", "value": "TEAM_A" },
75
+ { "label": "Team B", "value": "TEAM_B" },
76
+ { "label": "Team C", "value": "TEAM_C" },
77
+ { "label": "Team D", "value": "TEAM_D" }
78
+ ]
79
+ },
80
+ {
81
+ "when": {
82
+ "fieldKey": "mainFunction",
83
+ "values": ["FACILITIES_ENGINEERING"]
84
+ },
85
+ "choices": [
86
+ { "label": "Team A", "value": "TEAM_A" },
87
+ { "label": "Team B", "value": "TEAM_B" },
88
+ { "label": "Team C", "value": "TEAM_C" },
89
+ { "label": "Team D", "value": "TEAM_D" },
90
+ { "label": "N/A", "value": "NOT_APPLICABLE" }
91
+ ]
92
+ },
93
+ {
94
+ "when": {
95
+ "fieldKey": "mainFunction",
96
+ "values": ["SUPPLY_CHAIN"]
97
+ },
98
+ "choices": [
99
+ { "label": "Team A", "value": "TEAM_A" },
100
+ { "label": "Team B", "value": "TEAM_B" },
101
+ { "label": "Team C", "value": "TEAM_C" },
102
+ { "label": "Team D", "value": "TEAM_D" },
103
+ { "label": "N/A", "value": "NOT_APPLICABLE" }
104
+ ]
105
+ },
106
+ {
107
+ "when": {
108
+ "fieldKey": "mainFunction",
109
+ "values": ["QA"]
110
+ },
111
+ "choices": [
112
+ { "label": "Team A", "value": "TEAM_A" },
113
+ { "label": "Team B", "value": "TEAM_B" },
114
+ { "label": "N/A", "value": "NOT_APPLICABLE" }
115
+ ]
116
+ },
117
+ {
118
+ "when": {
119
+ "fieldKey": "mainFunction",
120
+ "values": ["ASM2_MFG_API_DIRECT"]
121
+ },
122
+ "choices": [
123
+ { "label": "Team 1", "value": "TEAM_1" },
124
+ { "label": "Team 2", "value": "TEAM_2" },
125
+ { "label": "Team 3", "value": "TEAM_3" }
126
+ ]
127
+ }
128
+ ]
129
+ },
130
+ "required": true,
131
+ "scope": "ATTENDEE",
132
+ "sortOrder": 110
133
+ },
134
+ {
135
+ "active": true,
136
+ "appliesToAttendeeTypeKey": "guest",
137
+ "description": "Guest name only, as required by the event workflow.",
138
+ "fieldType": "TEXT",
139
+ "key": "fullName",
140
+ "label": "Guest Name",
141
+ "required": true,
142
+ "scope": "ATTENDEE",
143
+ "sortOrder": 120,
144
+ "validation": { "maxLength": 160 }
145
+ }
146
+ ],
147
+ "guestPolicy": {
148
+ "defaultGuestLimit": 0,
149
+ "enabled": true
150
+ },
151
+ "payment": null,
152
+ "personalEmailPolicy": "ALLOWED",
153
+ "retentionMonths": 24,
154
+ "registrationWorkflow": {
155
+ "formFlow": {
156
+ "responsePosition": "AFTER_DETAILS"
157
+ },
158
+ "identity": {
159
+ "enabled": true,
160
+ "identifier": "EMPLOYEE_ID",
161
+ "identifierLabel": "Staff ID"
162
+ },
163
+ "profile": {
164
+ "confirmationRequired": true,
165
+ "label": "Employment Type",
166
+ "metadataKey": "employmentType",
167
+ "options": [
168
+ {
169
+ "value": "FTE",
170
+ "label": "FTE",
171
+ "guestLimit": 1,
172
+ "capabilities": {
173
+ "dnd": true,
174
+ "doorGift": true,
175
+ "luckyDraw": true,
176
+ "bringGuest": true
177
+ }
178
+ },
179
+ {
180
+ "value": "INTERN",
181
+ "label": "Intern",
182
+ "guestLimit": 0,
183
+ "capabilities": {
184
+ "dnd": true,
185
+ "doorGift": true,
186
+ "luckyDraw": false,
187
+ "bringGuest": false
188
+ }
189
+ }
190
+ ]
191
+ },
192
+ "eligibility": {
193
+ "items": [
194
+ { "key": "dnd", "label": "Eligible for D&D" },
195
+ { "key": "doorGift", "label": "Eligible for Door Gift" },
196
+ { "key": "luckyDraw", "label": "Eligible for Lucky Draw" },
197
+ { "key": "bringGuest", "label": "Can bring a guest" }
198
+ ]
199
+ },
200
+ "declineReasons": {
201
+ "required": true,
202
+ "options": [
203
+ {
204
+ "code": "SHIFT_OR_BUSINESS",
205
+ "label": "On Shift / Business Exigency / Business Trip"
206
+ },
207
+ {
208
+ "code": "PARENTAL_HOSPITALIZATION_OR_NS_LEAVE",
209
+ "label": "Paternity Leave / Maternity Leave / Hospitalization Leave / NS Leave"
210
+ },
211
+ {
212
+ "code": "ANNUAL_FAMILY_CARE_CHILDCARE_OR_ABSENCE_LEAVE",
213
+ "label": "Annual Leave / Family Care Leave / Childcare Leave / Leave of Absence"
214
+ },
215
+ {
216
+ "code": "PERSONAL_REASON",
217
+ "label": "Personal Reason"
218
+ }
219
+ ]
220
+ }
221
+ },
222
+ "seatHoldMinutes": 5,
223
+ "seatingAssignmentMode": "ORGANIZER",
224
+ "seatingMode": "NONE",
225
+ "waitlistEnabled": false,
226
+ "waitlistOfferTtlMinutes": 60,
227
+ "walkInsEnabled": false
228
+ }
229
+ }
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@go-labs-sg/rsvp",
3
+ "version": "0.2.0",
4
+ "description": "RSVP CLI for authorized event operations.",
5
+ "type": "module",
6
+ "exports": {},
7
+ "bin": {
8
+ "rsvp": "./dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "examples",
13
+ "README.md"
14
+ ],
15
+ "dependencies": {
16
+ "@trpc/client": "^11.18.0",
17
+ "dotenv": "^17.4.2",
18
+ "superjson": "^2.2.6"
19
+ },
20
+ "engines": {
21
+ "bun": ">=1.4.0"
22
+ },
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/go-labs-sg/go-labs.git",
29
+ "directory": "packages/rsvp/cli"
30
+ }
31
+ }