@stackframe/stack-shared 2.8.56 → 2.8.59
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/dist/apps/apps-config.d.mts +6 -0
- package/dist/apps/apps-config.d.ts +6 -0
- package/dist/apps/apps-config.js +6 -0
- package/dist/apps/apps-config.js.map +1 -1
- package/dist/config/migrate-catalogs-to-product-lines.d.mts +12 -0
- package/dist/config/migrate-catalogs-to-product-lines.d.ts +12 -0
- package/dist/config/migrate-catalogs-to-product-lines.js +211 -0
- package/dist/config/migrate-catalogs-to-product-lines.js.map +1 -0
- package/dist/config/schema-fuzzer.test.js +20 -6
- package/dist/config/schema-fuzzer.test.js.map +1 -1
- package/dist/config/schema.d.mts +296 -224
- package/dist/config/schema.d.ts +296 -224
- package/dist/config/schema.js +46 -8
- package/dist/config/schema.js.map +1 -1
- package/dist/esm/apps/apps-config.js +6 -0
- package/dist/esm/apps/apps-config.js.map +1 -1
- package/dist/esm/config/migrate-catalogs-to-product-lines.js +186 -0
- package/dist/esm/config/migrate-catalogs-to-product-lines.js.map +1 -0
- package/dist/esm/config/schema-fuzzer.test.js +20 -6
- package/dist/esm/config/schema-fuzzer.test.js.map +1 -1
- package/dist/esm/config/schema.js +47 -9
- package/dist/esm/config/schema.js.map +1 -1
- package/dist/esm/interface/admin-interface.js +49 -1
- package/dist/esm/interface/admin-interface.js.map +1 -1
- package/dist/esm/interface/client-interface.js +124 -25
- package/dist/esm/interface/client-interface.js.map +1 -1
- package/dist/esm/interface/crud/current-user.js +5 -2
- package/dist/esm/interface/crud/current-user.js.map +1 -1
- package/dist/esm/interface/crud/email-outbox.js +204 -0
- package/dist/esm/interface/crud/email-outbox.js.map +1 -0
- package/dist/esm/interface/crud/emails.js +0 -2
- package/dist/esm/interface/crud/emails.js.map +1 -1
- package/dist/esm/interface/crud/products.js +12 -1
- package/dist/esm/interface/crud/products.js.map +1 -1
- package/dist/esm/interface/crud/projects.js +3 -1
- package/dist/esm/interface/crud/projects.js.map +1 -1
- package/dist/esm/interface/crud/users.js +9 -2
- package/dist/esm/interface/crud/users.js.map +1 -1
- package/dist/esm/interface/server-interface.js +54 -0
- package/dist/esm/interface/server-interface.js.map +1 -1
- package/dist/esm/known-errors.js +69 -1
- package/dist/esm/known-errors.js.map +1 -1
- package/dist/esm/schema-fields.js +27 -3
- package/dist/esm/schema-fields.js.map +1 -1
- package/dist/esm/sessions.js +72 -8
- package/dist/esm/sessions.js.map +1 -1
- package/dist/esm/utils/env.js +13 -2
- package/dist/esm/utils/env.js.map +1 -1
- package/dist/esm/utils/esbuild.js +50 -21
- package/dist/esm/utils/esbuild.js.map +1 -1
- package/dist/esm/utils/globals.js +12 -0
- package/dist/esm/utils/globals.js.map +1 -1
- package/dist/esm/utils/paginated-lists.js +153 -23
- package/dist/esm/utils/paginated-lists.js.map +1 -1
- package/dist/esm/utils/paginated-lists.test.js +842 -0
- package/dist/esm/utils/paginated-lists.test.js.map +1 -0
- package/dist/esm/utils/proxies.js +28 -1
- package/dist/esm/utils/proxies.js.map +1 -1
- package/dist/esm/utils/react.js +7 -3
- package/dist/esm/utils/react.js.map +1 -1
- package/dist/esm/utils/results.js.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/interface/admin-interface.d.mts +26 -3
- package/dist/interface/admin-interface.d.ts +26 -3
- package/dist/interface/admin-interface.js +49 -1
- package/dist/interface/admin-interface.js.map +1 -1
- package/dist/interface/client-interface.d.mts +36 -0
- package/dist/interface/client-interface.d.ts +36 -0
- package/dist/interface/client-interface.js +124 -25
- package/dist/interface/client-interface.js.map +1 -1
- package/dist/interface/crud/current-user.d.mts +23 -6
- package/dist/interface/crud/current-user.d.ts +23 -6
- package/dist/interface/crud/current-user.js +5 -2
- package/dist/interface/crud/current-user.js.map +1 -1
- package/dist/interface/crud/email-outbox.d.mts +1075 -0
- package/dist/interface/crud/email-outbox.d.ts +1075 -0
- package/dist/interface/crud/email-outbox.js +241 -0
- package/dist/interface/crud/email-outbox.js.map +1 -0
- package/dist/interface/crud/emails.d.mts +0 -34
- package/dist/interface/crud/emails.d.ts +0 -34
- package/dist/interface/crud/emails.js +0 -2
- package/dist/interface/crud/emails.js.map +1 -1
- package/dist/interface/crud/products.d.mts +77 -0
- package/dist/interface/crud/products.d.ts +77 -0
- package/dist/interface/crud/products.js +12 -1
- package/dist/interface/crud/products.js.map +1 -1
- package/dist/interface/crud/project-api-keys.d.mts +1 -1
- package/dist/interface/crud/project-api-keys.d.ts +1 -1
- package/dist/interface/crud/projects.d.mts +70 -66
- package/dist/interface/crud/projects.d.ts +70 -66
- package/dist/interface/crud/projects.js +3 -1
- package/dist/interface/crud/projects.js.map +1 -1
- package/dist/interface/crud/team-member-profiles.d.mts +28 -12
- package/dist/interface/crud/team-member-profiles.d.ts +28 -12
- package/dist/interface/crud/users.d.mts +38 -6
- package/dist/interface/crud/users.d.ts +38 -6
- package/dist/interface/crud/users.js +9 -2
- package/dist/interface/crud/users.js.map +1 -1
- package/dist/interface/server-interface.d.mts +52 -0
- package/dist/interface/server-interface.d.ts +52 -0
- package/dist/interface/server-interface.js +54 -0
- package/dist/interface/server-interface.js.map +1 -1
- package/dist/interface/webhooks.d.mts +18 -2
- package/dist/interface/webhooks.d.ts +18 -2
- package/dist/known-errors.d.mts +20 -1
- package/dist/known-errors.d.ts +20 -1
- package/dist/known-errors.js +69 -1
- package/dist/known-errors.js.map +1 -1
- package/dist/schema-fields.d.mts +38 -5
- package/dist/schema-fields.d.ts +38 -5
- package/dist/schema-fields.js +33 -3
- package/dist/schema-fields.js.map +1 -1
- package/dist/sessions.d.mts +35 -4
- package/dist/sessions.d.ts +35 -4
- package/dist/sessions.js +72 -8
- package/dist/sessions.js.map +1 -1
- package/dist/utils/env.d.mts +2 -1
- package/dist/utils/env.d.ts +2 -1
- package/dist/utils/env.js +13 -1
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/esbuild.js +49 -20
- package/dist/utils/esbuild.js.map +1 -1
- package/dist/utils/globals.d.mts +6 -1
- package/dist/utils/globals.d.ts +6 -1
- package/dist/utils/globals.js +13 -0
- package/dist/utils/globals.js.map +1 -1
- package/dist/utils/paginated-lists.d.mts +269 -12
- package/dist/utils/paginated-lists.d.ts +269 -12
- package/dist/utils/paginated-lists.js +153 -23
- package/dist/utils/paginated-lists.js.map +1 -1
- package/dist/utils/paginated-lists.test.d.mts +2 -0
- package/dist/utils/paginated-lists.test.d.ts +2 -0
- package/dist/utils/paginated-lists.test.js +844 -0
- package/dist/utils/paginated-lists.test.js.map +1 -0
- package/dist/utils/proxies.d.mts +8 -1
- package/dist/utils/proxies.d.ts +8 -1
- package/dist/utils/proxies.js +30 -2
- package/dist/utils/proxies.js.map +1 -1
- package/dist/utils/react.d.mts +1 -1
- package/dist/utils/react.d.ts +1 -1
- package/dist/utils/react.js +7 -3
- package/dist/utils/react.js.map +1 -1
- package/dist/utils/results.d.mts +5 -5
- package/dist/utils/results.d.ts +5 -5
- package/dist/utils/results.js.map +1 -1
- package/package.json +5 -4
- package/CHANGELOG.md +0 -1354
- package/dist/esm/interface/crud/config.js +0 -40
- package/dist/esm/interface/crud/config.js.map +0 -1
- package/dist/interface/crud/config.d.mts +0 -49
- package/dist/interface/crud/config.d.ts +0 -49
- package/dist/interface/crud/config.js +0 -79
- package/dist/interface/crud/config.js.map +0 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
// src/interface/crud/email-outbox.ts
|
|
2
|
+
import { createCrud } from "../../crud.js";
|
|
3
|
+
import * as fieldSchema from "../../schema-fields.js";
|
|
4
|
+
var recipientUserPrimaryEmailSchema = fieldSchema.yupObject({
|
|
5
|
+
type: fieldSchema.yupString().oneOf(["user-primary-email"]).defined(),
|
|
6
|
+
user_id: fieldSchema.yupString().defined()
|
|
7
|
+
}).defined();
|
|
8
|
+
var recipientUserCustomEmailsSchema = fieldSchema.yupObject({
|
|
9
|
+
type: fieldSchema.yupString().oneOf(["user-custom-emails"]).defined(),
|
|
10
|
+
user_id: fieldSchema.yupString().defined(),
|
|
11
|
+
emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined()
|
|
12
|
+
}).defined();
|
|
13
|
+
var recipientCustomEmailsSchema = fieldSchema.yupObject({
|
|
14
|
+
type: fieldSchema.yupString().oneOf(["custom-emails"]).defined(),
|
|
15
|
+
emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined()
|
|
16
|
+
}).defined();
|
|
17
|
+
var recipientSchema = fieldSchema.yupUnion(
|
|
18
|
+
recipientUserPrimaryEmailSchema,
|
|
19
|
+
recipientUserCustomEmailsSchema,
|
|
20
|
+
recipientCustomEmailsSchema
|
|
21
|
+
);
|
|
22
|
+
var emailOutboxBaseSchema = fieldSchema.yupObject({
|
|
23
|
+
id: fieldSchema.yupString().defined(),
|
|
24
|
+
created_at_millis: fieldSchema.yupNumber().defined(),
|
|
25
|
+
updated_at_millis: fieldSchema.yupNumber().defined(),
|
|
26
|
+
tsx_source: fieldSchema.yupString().defined(),
|
|
27
|
+
theme_id: fieldSchema.yupString().nullable().defined(),
|
|
28
|
+
to: recipientSchema.defined(),
|
|
29
|
+
variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),
|
|
30
|
+
skip_deliverability_check: fieldSchema.yupBoolean().defined(),
|
|
31
|
+
scheduled_at_millis: fieldSchema.yupNumber().defined(),
|
|
32
|
+
status: fieldSchema.yupString().defined(),
|
|
33
|
+
simple_status: fieldSchema.yupString().defined(),
|
|
34
|
+
// These fields are overridden because we use concat to build the final schema for each state
|
|
35
|
+
is_paused: fieldSchema.yupBoolean().oneOf([false]).defined(),
|
|
36
|
+
has_rendered: fieldSchema.yupBoolean().oneOf([false]).defined(),
|
|
37
|
+
has_delivered: fieldSchema.yupBoolean().oneOf([false]).defined()
|
|
38
|
+
}).defined();
|
|
39
|
+
var renderedFieldsSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({
|
|
40
|
+
started_rendering_at_millis: fieldSchema.yupNumber().defined(),
|
|
41
|
+
rendered_at_millis: fieldSchema.yupNumber().defined(),
|
|
42
|
+
subject: fieldSchema.yupString().defined(),
|
|
43
|
+
html: fieldSchema.yupString().nullable().defined(),
|
|
44
|
+
text: fieldSchema.yupString().nullable().defined(),
|
|
45
|
+
is_transactional: fieldSchema.yupBoolean().defined(),
|
|
46
|
+
is_high_priority: fieldSchema.yupBoolean().defined(),
|
|
47
|
+
notification_category_id: fieldSchema.yupString().nullable().defined(),
|
|
48
|
+
has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
49
|
+
}).defined());
|
|
50
|
+
var startedSendingFieldsSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({
|
|
51
|
+
started_sending_at_millis: fieldSchema.yupNumber().defined()
|
|
52
|
+
}).defined());
|
|
53
|
+
var finishedDeliveringFieldsSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({
|
|
54
|
+
delivered_at_millis: fieldSchema.yupNumber().defined(),
|
|
55
|
+
has_delivered: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
56
|
+
}).defined());
|
|
57
|
+
var pausedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({
|
|
58
|
+
status: fieldSchema.yupString().oneOf(["paused"]).defined(),
|
|
59
|
+
simple_status: fieldSchema.yupString().oneOf(["in-progress"]).defined(),
|
|
60
|
+
is_paused: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
61
|
+
}).defined());
|
|
62
|
+
var preparingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({
|
|
63
|
+
status: fieldSchema.yupString().oneOf(["preparing"]).defined(),
|
|
64
|
+
simple_status: fieldSchema.yupString().oneOf(["in-progress"]).defined()
|
|
65
|
+
}).defined());
|
|
66
|
+
var renderingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({
|
|
67
|
+
status: fieldSchema.yupString().oneOf(["rendering"]).defined(),
|
|
68
|
+
simple_status: fieldSchema.yupString().oneOf(["in-progress"]).defined(),
|
|
69
|
+
started_rendering_at_millis: fieldSchema.yupNumber().defined()
|
|
70
|
+
}).defined());
|
|
71
|
+
var renderErrorStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({
|
|
72
|
+
status: fieldSchema.yupString().oneOf(["render-error"]).defined(),
|
|
73
|
+
simple_status: fieldSchema.yupString().oneOf(["error"]).defined(),
|
|
74
|
+
started_rendering_at_millis: fieldSchema.yupNumber().defined(),
|
|
75
|
+
rendered_at_millis: fieldSchema.yupNumber().defined(),
|
|
76
|
+
render_error: fieldSchema.yupString().defined()
|
|
77
|
+
}).defined());
|
|
78
|
+
var scheduledStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({
|
|
79
|
+
status: fieldSchema.yupString().oneOf(["scheduled"]).defined(),
|
|
80
|
+
simple_status: fieldSchema.yupString().oneOf(["in-progress"]).defined(),
|
|
81
|
+
has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
82
|
+
}).defined());
|
|
83
|
+
var queuedStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({
|
|
84
|
+
status: fieldSchema.yupString().oneOf(["queued"]).defined(),
|
|
85
|
+
simple_status: fieldSchema.yupString().oneOf(["in-progress"]).defined(),
|
|
86
|
+
has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
87
|
+
}).defined());
|
|
88
|
+
var sendingStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({
|
|
89
|
+
status: fieldSchema.yupString().oneOf(["sending"]).defined(),
|
|
90
|
+
simple_status: fieldSchema.yupString().oneOf(["in-progress"]).defined()
|
|
91
|
+
}).defined());
|
|
92
|
+
var serverErrorStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({
|
|
93
|
+
status: fieldSchema.yupString().oneOf(["server-error"]).defined(),
|
|
94
|
+
simple_status: fieldSchema.yupString().oneOf(["error"]).defined(),
|
|
95
|
+
error_at_millis: fieldSchema.yupNumber().defined(),
|
|
96
|
+
server_error: fieldSchema.yupString().defined()
|
|
97
|
+
}).defined());
|
|
98
|
+
var skippedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({
|
|
99
|
+
status: fieldSchema.yupString().oneOf(["skipped"]).defined(),
|
|
100
|
+
simple_status: fieldSchema.yupString().oneOf(["ok"]).defined(),
|
|
101
|
+
skipped_at_millis: fieldSchema.yupNumber().defined(),
|
|
102
|
+
skipped_reason: fieldSchema.yupString().defined(),
|
|
103
|
+
skipped_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),
|
|
104
|
+
// Override has_rendered to allow both true and false since email can be skipped at any time
|
|
105
|
+
has_rendered: fieldSchema.yupBoolean().defined(),
|
|
106
|
+
// These fields may or may not be present depending on when the email was skipped
|
|
107
|
+
started_rendering_at_millis: fieldSchema.yupNumber().optional(),
|
|
108
|
+
rendered_at_millis: fieldSchema.yupNumber().optional(),
|
|
109
|
+
subject: fieldSchema.yupString().optional(),
|
|
110
|
+
html: fieldSchema.yupString().nullable().optional(),
|
|
111
|
+
text: fieldSchema.yupString().nullable().optional(),
|
|
112
|
+
is_transactional: fieldSchema.yupBoolean().optional(),
|
|
113
|
+
is_high_priority: fieldSchema.yupBoolean().optional(),
|
|
114
|
+
notification_category_id: fieldSchema.yupString().nullable().optional(),
|
|
115
|
+
started_sending_at_millis: fieldSchema.yupNumber().optional()
|
|
116
|
+
}).defined());
|
|
117
|
+
var bouncedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({
|
|
118
|
+
status: fieldSchema.yupString().oneOf(["bounced"]).defined(),
|
|
119
|
+
simple_status: fieldSchema.yupString().oneOf(["error"]).defined(),
|
|
120
|
+
bounced_at_millis: fieldSchema.yupNumber().defined()
|
|
121
|
+
}).defined());
|
|
122
|
+
var deliveryDelayedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({
|
|
123
|
+
status: fieldSchema.yupString().oneOf(["delivery-delayed"]).defined(),
|
|
124
|
+
simple_status: fieldSchema.yupString().oneOf(["ok"]).defined(),
|
|
125
|
+
delivery_delayed_at_millis: fieldSchema.yupNumber().defined()
|
|
126
|
+
}).defined());
|
|
127
|
+
var sentStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({
|
|
128
|
+
status: fieldSchema.yupString().oneOf(["sent"]).defined(),
|
|
129
|
+
simple_status: fieldSchema.yupString().oneOf(["ok"]).defined(),
|
|
130
|
+
// Whether this email's provider supports delivery tracking (opens, clicks, etc.)
|
|
131
|
+
can_have_delivery_info: fieldSchema.yupBoolean().defined()
|
|
132
|
+
}).defined());
|
|
133
|
+
var openedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({
|
|
134
|
+
status: fieldSchema.yupString().oneOf(["opened"]).defined(),
|
|
135
|
+
simple_status: fieldSchema.yupString().oneOf(["ok"]).defined(),
|
|
136
|
+
opened_at_millis: fieldSchema.yupNumber().defined(),
|
|
137
|
+
can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
138
|
+
}).defined());
|
|
139
|
+
var clickedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({
|
|
140
|
+
status: fieldSchema.yupString().oneOf(["clicked"]).defined(),
|
|
141
|
+
simple_status: fieldSchema.yupString().oneOf(["ok"]).defined(),
|
|
142
|
+
clicked_at_millis: fieldSchema.yupNumber().defined(),
|
|
143
|
+
can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
144
|
+
}).defined());
|
|
145
|
+
var markedAsSpamStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({
|
|
146
|
+
status: fieldSchema.yupString().oneOf(["marked-as-spam"]).defined(),
|
|
147
|
+
simple_status: fieldSchema.yupString().oneOf(["ok"]).defined(),
|
|
148
|
+
marked_as_spam_at_millis: fieldSchema.yupNumber().defined(),
|
|
149
|
+
can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined()
|
|
150
|
+
}).defined());
|
|
151
|
+
var emailOutboxReadSchema = fieldSchema.yupUnion(
|
|
152
|
+
pausedStatusSchema,
|
|
153
|
+
preparingStatusSchema,
|
|
154
|
+
renderingStatusSchema,
|
|
155
|
+
renderErrorStatusSchema,
|
|
156
|
+
scheduledStatusSchema,
|
|
157
|
+
queuedStatusSchema,
|
|
158
|
+
sendingStatusSchema,
|
|
159
|
+
serverErrorStatusSchema,
|
|
160
|
+
skippedStatusSchema,
|
|
161
|
+
bouncedStatusSchema,
|
|
162
|
+
deliveryDelayedStatusSchema,
|
|
163
|
+
sentStatusSchema,
|
|
164
|
+
openedStatusSchema,
|
|
165
|
+
clickedStatusSchema,
|
|
166
|
+
markedAsSpamStatusSchema
|
|
167
|
+
);
|
|
168
|
+
var emailOutboxUpdateSchema = fieldSchema.yupObject({
|
|
169
|
+
tsx_source: fieldSchema.yupString().optional(),
|
|
170
|
+
theme_id: fieldSchema.yupString().nullable().optional(),
|
|
171
|
+
to: recipientSchema.optional(),
|
|
172
|
+
variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).optional(),
|
|
173
|
+
skip_deliverability_check: fieldSchema.yupBoolean().optional(),
|
|
174
|
+
scheduled_at_millis: fieldSchema.yupNumber().optional(),
|
|
175
|
+
is_paused: fieldSchema.yupBoolean().optional(),
|
|
176
|
+
cancel: fieldSchema.yupBoolean().oneOf([true]).optional()
|
|
177
|
+
}).defined();
|
|
178
|
+
var emailOutboxCrud = createCrud({
|
|
179
|
+
serverReadSchema: emailOutboxReadSchema,
|
|
180
|
+
serverUpdateSchema: emailOutboxUpdateSchema,
|
|
181
|
+
docs: {
|
|
182
|
+
serverRead: {
|
|
183
|
+
tags: ["Emails"],
|
|
184
|
+
summary: "Get email outbox entry",
|
|
185
|
+
description: "Gets a single email from the outbox by ID."
|
|
186
|
+
},
|
|
187
|
+
serverUpdate: {
|
|
188
|
+
tags: ["Emails"],
|
|
189
|
+
summary: "Update email outbox entry",
|
|
190
|
+
description: "Updates an email in the outbox. Can be used to edit email content, pause/resume, or cancel emails. Only emails in editable states (`paused`, `preparing`, `rendering`, `render-error`, `scheduled`, `queued`, `server-error`) can be modified."
|
|
191
|
+
},
|
|
192
|
+
serverList: {
|
|
193
|
+
tags: ["Emails"],
|
|
194
|
+
summary: "List email outbox",
|
|
195
|
+
description: "Lists all emails in the outbox with optional filtering by status or simple_status."
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
export {
|
|
200
|
+
emailOutboxCrud,
|
|
201
|
+
emailOutboxReadSchema,
|
|
202
|
+
emailOutboxUpdateSchema
|
|
203
|
+
};
|
|
204
|
+
//# sourceMappingURL=email-outbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/interface/crud/email-outbox.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\n\n\n// Recipient types\nconst recipientUserPrimaryEmailSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"user-primary-email\"]).defined(),\n user_id: fieldSchema.yupString().defined(),\n}).defined();\n\nconst recipientUserCustomEmailsSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"user-custom-emails\"]).defined(),\n user_id: fieldSchema.yupString().defined(),\n emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined(),\n}).defined();\n\nconst recipientCustomEmailsSchema = fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf([\"custom-emails\"]).defined(),\n emails: fieldSchema.yupArray(fieldSchema.yupString().defined()).defined(),\n}).defined();\n\nconst recipientSchema = fieldSchema.yupUnion(\n recipientUserPrimaryEmailSchema,\n recipientUserCustomEmailsSchema,\n recipientCustomEmailsSchema\n);\n\n\n// =============================== BASE FIELDS ===============================\n\n// Base fields present on all emails\nconst emailOutboxBaseSchema = fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n created_at_millis: fieldSchema.yupNumber().defined(),\n updated_at_millis: fieldSchema.yupNumber().defined(),\n tsx_source: fieldSchema.yupString().defined(),\n theme_id: fieldSchema.yupString().nullable().defined(),\n to: recipientSchema.defined(),\n variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n skip_deliverability_check: fieldSchema.yupBoolean().defined(),\n scheduled_at_millis: fieldSchema.yupNumber().defined(),\n\n status: fieldSchema.yupString().defined(),\n simple_status: fieldSchema.yupString().defined(),\n\n // These fields are overridden because we use concat to build the final schema for each state\n is_paused: fieldSchema.yupBoolean().oneOf([false]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([false]).defined(),\n has_delivered: fieldSchema.yupBoolean().oneOf([false]).defined(),\n}).defined();\n\n// Rendered output fields\nconst renderedFieldsSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n rendered_at_millis: fieldSchema.yupNumber().defined(),\n subject: fieldSchema.yupString().defined(),\n html: fieldSchema.yupString().nullable().defined(),\n text: fieldSchema.yupString().nullable().defined(),\n is_transactional: fieldSchema.yupBoolean().defined(),\n is_high_priority: fieldSchema.yupBoolean().defined(),\n notification_category_id: fieldSchema.yupString().nullable().defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst startedSendingFieldsSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n started_sending_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\n// Finished delivering tracking fields\nconst finishedDeliveringFieldsSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n delivered_at_millis: fieldSchema.yupNumber().defined(),\n has_delivered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\n\n// =============================== STATUS-SPECIFIC SCHEMAS ===============================\n\nconst pausedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"paused\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n is_paused: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst preparingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"preparing\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n}).defined());\n\nconst renderingStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"rendering\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst renderErrorStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"render-error\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n started_rendering_at_millis: fieldSchema.yupNumber().defined(),\n rendered_at_millis: fieldSchema.yupNumber().defined(),\n render_error: fieldSchema.yupString().defined(),\n}).defined());\n\nconst scheduledStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"scheduled\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst queuedStatusSchema = renderedFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"queued\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n has_rendered: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst sendingStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"sending\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"in-progress\"]).defined(),\n}).defined());\n\nconst serverErrorStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"server-error\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n error_at_millis: fieldSchema.yupNumber().defined(),\n server_error: fieldSchema.yupString().defined(),\n}).defined());\n\n// SKIPPED can happen at any time in the lifecycle (like PAUSED)\n// An email can be skipped before rendering (has_rendered: false) or after rendering (has_rendered: true)\n// e.g., user deleted after the email was rendered but before it was sent\nconst skippedStatusSchema = emailOutboxBaseSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"skipped\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n skipped_at_millis: fieldSchema.yupNumber().defined(),\n skipped_reason: fieldSchema.yupString().defined(),\n skipped_details: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).defined(),\n // Override has_rendered to allow both true and false since email can be skipped at any time\n has_rendered: fieldSchema.yupBoolean().defined(),\n // These fields may or may not be present depending on when the email was skipped\n started_rendering_at_millis: fieldSchema.yupNumber().optional(),\n rendered_at_millis: fieldSchema.yupNumber().optional(),\n subject: fieldSchema.yupString().optional(),\n html: fieldSchema.yupString().nullable().optional(),\n text: fieldSchema.yupString().nullable().optional(),\n is_transactional: fieldSchema.yupBoolean().optional(),\n is_high_priority: fieldSchema.yupBoolean().optional(),\n notification_category_id: fieldSchema.yupString().nullable().optional(),\n started_sending_at_millis: fieldSchema.yupNumber().optional(),\n}).defined());\n\nconst bouncedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"bounced\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"error\"]).defined(),\n bounced_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst deliveryDelayedStatusSchema = startedSendingFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"delivery-delayed\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n delivery_delayed_at_millis: fieldSchema.yupNumber().defined(),\n}).defined());\n\nconst sentStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"sent\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n // Whether this email's provider supports delivery tracking (opens, clicks, etc.)\n can_have_delivery_info: fieldSchema.yupBoolean().defined(),\n}).defined());\n\nconst openedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"opened\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n opened_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst clickedStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"clicked\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n clicked_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\nconst markedAsSpamStatusSchema = finishedDeliveringFieldsSchema.concat(fieldSchema.yupObject({\n status: fieldSchema.yupString().oneOf([\"marked-as-spam\"]).defined(),\n simple_status: fieldSchema.yupString().oneOf([\"ok\"]).defined(),\n marked_as_spam_at_millis: fieldSchema.yupNumber().defined(),\n can_have_delivery_info: fieldSchema.yupBoolean().oneOf([true]).defined(),\n}).defined());\n\n// Combined read schema using union\nexport const emailOutboxReadSchema = fieldSchema.yupUnion(\n pausedStatusSchema,\n preparingStatusSchema,\n renderingStatusSchema,\n renderErrorStatusSchema,\n scheduledStatusSchema,\n queuedStatusSchema,\n sendingStatusSchema,\n serverErrorStatusSchema,\n skippedStatusSchema,\n bouncedStatusSchema,\n deliveryDelayedStatusSchema,\n sentStatusSchema,\n openedStatusSchema,\n clickedStatusSchema,\n markedAsSpamStatusSchema\n);\n\n// Update schema for PATCH endpoint\nexport const emailOutboxUpdateSchema = fieldSchema.yupObject({\n tsx_source: fieldSchema.yupString().optional(),\n theme_id: fieldSchema.yupString().nullable().optional(),\n to: recipientSchema.optional(),\n variables: fieldSchema.yupRecord(fieldSchema.yupString(), fieldSchema.jsonSchema).optional(),\n skip_deliverability_check: fieldSchema.yupBoolean().optional(),\n scheduled_at_millis: fieldSchema.yupNumber().optional(),\n is_paused: fieldSchema.yupBoolean().optional(),\n cancel: fieldSchema.yupBoolean().oneOf([true]).optional(),\n}).defined();\n\nexport const emailOutboxCrud = createCrud({\n serverReadSchema: emailOutboxReadSchema,\n serverUpdateSchema: emailOutboxUpdateSchema,\n docs: {\n serverRead: {\n tags: [\"Emails\"],\n summary: \"Get email outbox entry\",\n description: \"Gets a single email from the outbox by ID.\",\n },\n serverUpdate: {\n tags: [\"Emails\"],\n summary: \"Update email outbox entry\",\n description: \"Updates an email in the outbox. Can be used to edit email content, pause/resume, or cancel emails. Only emails in editable states (`paused`, `preparing`, `rendering`, `render-error`, `scheduled`, `queued`, `server-error`) can be modified.\",\n },\n serverList: {\n tags: [\"Emails\"],\n summary: \"List email outbox\",\n description: \"Lists all emails in the outbox with optional filtering by status or simple_status.\",\n },\n },\n});\n\nexport type EmailOutboxCrud = CrudTypeOf<typeof emailOutboxCrud>;\n\n"],"mappings":"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","names":[]}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
// src/interface/crud/emails.ts
|
|
2
2
|
import { createCrud } from "../../crud.js";
|
|
3
3
|
import * as fieldSchema from "../../schema-fields.js";
|
|
4
|
-
import { emailConfigWithoutPasswordSchema } from "./projects.js";
|
|
5
4
|
var sentEmailReadSchema = fieldSchema.yupObject({
|
|
6
5
|
id: fieldSchema.yupString().defined(),
|
|
7
6
|
subject: fieldSchema.yupString().defined(),
|
|
8
7
|
sent_at_millis: fieldSchema.yupNumber().defined(),
|
|
9
8
|
to: fieldSchema.yupArray(fieldSchema.yupString().defined()),
|
|
10
|
-
sender_config: emailConfigWithoutPasswordSchema.defined(),
|
|
11
9
|
error: fieldSchema.yupMixed().nullable().optional()
|
|
12
10
|
}).defined();
|
|
13
11
|
var internalEmailsCrud = createCrud({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/interface/crud/emails.ts"],"sourcesContent":["import { createCrud, CrudTypeOf } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\
|
|
1
|
+
{"version":3,"sources":["../../../../src/interface/crud/emails.ts"],"sourcesContent":["import { createCrud, CrudTypeOf } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\n\n\nexport const sentEmailReadSchema = fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n subject: fieldSchema.yupString().defined(),\n sent_at_millis: fieldSchema.yupNumber().defined(),\n to: fieldSchema.yupArray(fieldSchema.yupString().defined()),\n error: fieldSchema.yupMixed().nullable().optional(),\n}).defined();\n\nexport const internalEmailsCrud = createCrud({\n adminReadSchema: sentEmailReadSchema,\n docs: {\n adminList: {\n hidden: true,\n },\n },\n});\n\nexport type InternalEmailsCrud = CrudTypeOf<typeof internalEmailsCrud>;\n"],"mappings":";AAAA,SAAS,kBAA8B;AACvC,YAAY,iBAAiB;AAGtB,IAAM,sBAAkC,sBAAU;AAAA,EACvD,IAAgB,sBAAU,EAAE,QAAQ;AAAA,EACpC,SAAqB,sBAAU,EAAE,QAAQ;AAAA,EACzC,gBAA4B,sBAAU,EAAE,QAAQ;AAAA,EAChD,IAAgB,qBAAqB,sBAAU,EAAE,QAAQ,CAAC;AAAA,EAC1D,OAAmB,qBAAS,EAAE,SAAS,EAAE,SAAS;AACpD,CAAC,EAAE,QAAQ;AAEJ,IAAM,qBAAqB,WAAW;AAAA,EAC3C,iBAAiB;AAAA,EACjB,MAAM;AAAA,IACJ,WAAW;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
// src/interface/crud/products.ts
|
|
2
2
|
import { inlineProductSchema, yupArray, yupBoolean, yupNumber, yupObject, yupString } from "../../schema-fields.js";
|
|
3
|
+
var customerProductSwitchOptionSchema = yupObject({
|
|
4
|
+
product_id: yupString().defined(),
|
|
5
|
+
product: inlineProductSchema.defined()
|
|
6
|
+
}).defined();
|
|
3
7
|
var customerProductReadSchema = yupObject({
|
|
4
8
|
id: yupString().nullable().defined(),
|
|
5
9
|
quantity: yupNumber().defined(),
|
|
6
|
-
product: inlineProductSchema.defined()
|
|
10
|
+
product: inlineProductSchema.defined(),
|
|
11
|
+
type: yupString().oneOf(["one_time", "subscription"]).defined(),
|
|
12
|
+
subscription: yupObject({
|
|
13
|
+
current_period_end: yupString().nullable().defined(),
|
|
14
|
+
cancel_at_period_end: yupBoolean().defined(),
|
|
15
|
+
is_cancelable: yupBoolean().defined()
|
|
16
|
+
}).nullable().defined(),
|
|
17
|
+
switch_options: yupArray(customerProductSwitchOptionSchema).optional()
|
|
7
18
|
}).defined();
|
|
8
19
|
var customerProductsListResponseSchema = yupObject({
|
|
9
20
|
items: yupArray(customerProductReadSchema).defined(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/interface/crud/products.ts"],"sourcesContent":["import type * as yup from \"yup\";\nimport { inlineProductSchema, yupArray, yupBoolean, yupNumber, yupObject, yupString } from \"../../schema-fields\";\n\nexport const customerProductReadSchema = yupObject({\n id: yupString().nullable().defined(),\n quantity: yupNumber().defined(),\n product: inlineProductSchema.defined(),\n}).defined();\n\nexport type CustomerProductRead = yup.InferType<typeof customerProductReadSchema>;\n\nexport const customerProductsListResponseSchema = yupObject({\n items: yupArray(customerProductReadSchema).defined(),\n is_paginated: yupBoolean().oneOf([true]).defined(),\n pagination: yupObject({\n next_cursor: yupString().nullable().defined(),\n }).defined(),\n}).defined();\n\nexport type CustomerProductsListResponse = yup.InferType<typeof customerProductsListResponseSchema>;\n\nexport type ListCustomerProductsOptions = {\n customer_type: \"user\" | \"team\" | \"custom\",\n customer_id: string,\n cursor?: string,\n limit?: number,\n};\n"],"mappings":";AACA,SAAS,qBAAqB,UAAU,YAAY,WAAW,WAAW,iBAAiB;
|
|
1
|
+
{"version":3,"sources":["../../../../src/interface/crud/products.ts"],"sourcesContent":["import type * as yup from \"yup\";\nimport { inlineProductSchema, yupArray, yupBoolean, yupNumber, yupObject, yupString } from \"../../schema-fields\";\n\nconst customerProductSwitchOptionSchema = yupObject({\n product_id: yupString().defined(),\n product: inlineProductSchema.defined(),\n}).defined();\n\nexport const customerProductReadSchema = yupObject({\n id: yupString().nullable().defined(),\n quantity: yupNumber().defined(),\n product: inlineProductSchema.defined(),\n type: yupString().oneOf([\"one_time\", \"subscription\"]).defined(),\n subscription: yupObject({\n current_period_end: yupString().nullable().defined(),\n cancel_at_period_end: yupBoolean().defined(),\n is_cancelable: yupBoolean().defined(),\n }).nullable().defined(),\n switch_options: yupArray(customerProductSwitchOptionSchema).optional(),\n}).defined();\n\nexport type CustomerProductRead = yup.InferType<typeof customerProductReadSchema>;\n\nexport const customerProductsListResponseSchema = yupObject({\n items: yupArray(customerProductReadSchema).defined(),\n is_paginated: yupBoolean().oneOf([true]).defined(),\n pagination: yupObject({\n next_cursor: yupString().nullable().defined(),\n }).defined(),\n}).defined();\n\nexport type CustomerProductsListResponse = yup.InferType<typeof customerProductsListResponseSchema>;\n\nexport type ListCustomerProductsOptions = {\n customer_type: \"user\" | \"team\" | \"custom\",\n customer_id: string,\n cursor?: string,\n limit?: number,\n};\n"],"mappings":";AACA,SAAS,qBAAqB,UAAU,YAAY,WAAW,WAAW,iBAAiB;AAE3F,IAAM,oCAAoC,UAAU;AAAA,EAClD,YAAY,UAAU,EAAE,QAAQ;AAAA,EAChC,SAAS,oBAAoB,QAAQ;AACvC,CAAC,EAAE,QAAQ;AAEJ,IAAM,4BAA4B,UAAU;AAAA,EACjD,IAAI,UAAU,EAAE,SAAS,EAAE,QAAQ;AAAA,EACnC,UAAU,UAAU,EAAE,QAAQ;AAAA,EAC9B,SAAS,oBAAoB,QAAQ;AAAA,EACrC,MAAM,UAAU,EAAE,MAAM,CAAC,YAAY,cAAc,CAAC,EAAE,QAAQ;AAAA,EAC9D,cAAc,UAAU;AAAA,IACtB,oBAAoB,UAAU,EAAE,SAAS,EAAE,QAAQ;AAAA,IACnD,sBAAsB,WAAW,EAAE,QAAQ;AAAA,IAC3C,eAAe,WAAW,EAAE,QAAQ;AAAA,EACtC,CAAC,EAAE,SAAS,EAAE,QAAQ;AAAA,EACtB,gBAAgB,SAAS,iCAAiC,EAAE,SAAS;AACvE,CAAC,EAAE,QAAQ;AAIJ,IAAM,qCAAqC,UAAU;AAAA,EAC1D,OAAO,SAAS,yBAAyB,EAAE,QAAQ;AAAA,EACnD,cAAc,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ;AAAA,EACjD,YAAY,UAAU;AAAA,IACpB,aAAa,UAAU,EAAE,SAAS,EAAE,QAAQ;AAAA,EAC9C,CAAC,EAAE,QAAQ;AACb,CAAC,EAAE,QAAQ;","names":[]}
|
|
@@ -110,6 +110,7 @@ var projectsCrudAdminUpdateSchema = yupObject({
|
|
|
110
110
|
logo_dark_mode_url: schemaFields.projectLogoDarkModeUrlSchema.nullable().optional(),
|
|
111
111
|
logo_full_dark_mode_url: schemaFields.projectLogoFullDarkModeUrlSchema.nullable().optional(),
|
|
112
112
|
is_production_mode: schemaFields.projectIsProductionModeSchema.optional(),
|
|
113
|
+
/** @deprecated */
|
|
113
114
|
config: yupObject({
|
|
114
115
|
sign_up_enabled: schemaFields.projectSignUpEnabledSchema.optional(),
|
|
115
116
|
credential_enabled: schemaFields.projectCredentialEnabledSchema.optional(),
|
|
@@ -128,7 +129,8 @@ var projectsCrudAdminUpdateSchema = yupObject({
|
|
|
128
129
|
team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),
|
|
129
130
|
team_member_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),
|
|
130
131
|
user_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),
|
|
131
|
-
oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.optional()
|
|
132
|
+
oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.optional(),
|
|
133
|
+
require_email_verification: schemaFields.yupBoolean().optional()
|
|
132
134
|
}).optional().default(void 0)
|
|
133
135
|
}).defined();
|
|
134
136
|
var projectsCrudAdminCreateSchema = projectsCrudAdminUpdateSchema.concat(yupObject({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/interface/crud/projects.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as schemaFields from \"../../schema-fields\";\nimport { yupArray, yupObject, yupString } from \"../../schema-fields\";\n\nconst teamPermissionSchema = yupObject({\n id: yupString().defined(),\n}).defined();\n\nconst oauthProviderReadSchema = yupObject({\n provider_config_id: schemaFields.yupString().defined(),\n id: schemaFields.oauthIdSchema.defined(),\n type: schemaFields.oauthTypeSchema.defined(),\n client_id: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientIdSchema,\n { type: 'standard' },\n ),\n client_secret: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientSecretSchema,\n { type: 'standard' },\n ),\n\n // extra params\n facebook_config_id: schemaFields.oauthFacebookConfigIdSchema.optional(),\n microsoft_tenant_id: schemaFields.oauthMicrosoftTenantIdSchema.optional(),\n});\n\nconst oauthProviderWriteSchema = oauthProviderReadSchema.omit(['provider_config_id']);\n\nconst enabledOAuthProviderSchema = yupObject({\n id: schemaFields.oauthIdSchema.defined(),\n});\n\nexport const emailConfigSchema = yupObject({\n type: schemaFields.emailTypeSchema.defined(),\n host: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailHostSchema, {\n type: 'standard',\n }),\n port: schemaFields.yupDefinedWhen(schemaFields.emailPortSchema, {\n type: 'standard',\n }),\n username: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailUsernameSchema, {\n type: 'standard',\n }),\n password: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailPasswordSchema, {\n type: 'standard',\n }),\n sender_name: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderNameSchema, {\n type: 'standard',\n }),\n sender_email: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderEmailSchema, {\n type: 'standard',\n }),\n});\n\nexport const emailConfigWithoutPasswordSchema = emailConfigSchema.pick(['type', 'host', 'port', 'username', 'sender_name', 'sender_email']);\n\nconst domainSchema = yupObject({\n domain: schemaFields.urlSchema.defined()\n .matches(/^https?:\\/\\//, 'URL must start with http:// or https://')\n .meta({ openapiField: { description: 'URL. Must start with http:// or https://', exampleValue: 'https://example.com' } }),\n handler_path: schemaFields.handlerPathSchema.defined(),\n});\n\nexport const projectsCrudAdminReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n description: schemaFields.projectDescriptionSchema.nonNullable().defined(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n logo_full_url: schemaFields.projectLogoFullUrlSchema.nullable().optional(),\n logo_dark_mode_url: schemaFields.projectLogoDarkModeUrlSchema.nullable().optional(),\n logo_full_dark_mode_url: schemaFields.projectLogoFullDarkModeUrlSchema.nullable().optional(),\n created_at_millis: schemaFields.projectCreatedAtMillisSchema.defined(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.defined(),\n owner_team_id: schemaFields.yupString().nullable().defined(),\n /** @deprecated */\n config: yupObject({\n allow_localhost: schemaFields.projectAllowLocalhostSchema.defined(),\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n // TODO: remove this\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n oauth_providers: yupArray(oauthProviderReadSchema.defined()).defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n email_config: emailConfigSchema.defined(),\n email_theme: schemaFields.emailThemeSchema.defined(),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.defined(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\nexport const projectsCrudClientReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\n\nexport const projectsCrudAdminUpdateSchema = yupObject({\n display_name: schemaFields.projectDisplayNameSchema.optional(),\n description: schemaFields.projectDescriptionSchema.optional(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n logo_full_url: schemaFields.projectLogoFullUrlSchema.nullable().optional(),\n logo_dark_mode_url: schemaFields.projectLogoDarkModeUrlSchema.nullable().optional(),\n logo_full_dark_mode_url: schemaFields.projectLogoFullDarkModeUrlSchema.nullable().optional(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.optional(),\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.optional(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.optional(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.optional(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.optional(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.optional(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.optional(),\n allow_localhost: schemaFields.projectAllowLocalhostSchema.optional(),\n allow_user_api_keys: schemaFields.yupBoolean().optional(),\n allow_team_api_keys: schemaFields.yupBoolean().optional(),\n email_config: emailConfigSchema.optional().default(undefined),\n email_theme: schemaFields.emailThemeSchema.optional(),\n domains: yupArray(domainSchema.defined()).optional().default(undefined),\n oauth_providers: yupArray(oauthProviderWriteSchema.defined()).optional().default(undefined),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.optional(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.optional(),\n }).optional().default(undefined),\n}).defined();\n\nexport const projectsCrudAdminCreateSchema = projectsCrudAdminUpdateSchema.concat(yupObject({\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n owner_team_id: schemaFields.yupString().uuid().defined(),\n}).defined());\n\nexport const projectsCrudAdminDeleteSchema = schemaFields.yupMixed();\n\nexport const clientProjectsCrud = createCrud({\n clientReadSchema: projectsCrudClientReadSchema,\n docs: {\n clientRead: {\n summary: 'Get the current project',\n description: 'Get the current project information including display name, OAuth providers and authentication methods. Useful for displaying the available login options to the user.',\n tags: ['Projects'],\n },\n },\n});\nexport type ClientProjectsCrud = CrudTypeOf<typeof clientProjectsCrud>;\n\nexport const projectsCrud = createCrud({\n adminReadSchema: projectsCrudAdminReadSchema,\n adminUpdateSchema: projectsCrudAdminUpdateSchema,\n adminDeleteSchema: projectsCrudAdminDeleteSchema,\n docs: {\n adminRead: {\n summary: 'Get the current project',\n description: 'Get the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n hidden: true,\n },\n adminUpdate: {\n summary: 'Update the current project',\n description: 'Update the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n hidden: true,\n },\n adminDelete: {\n summary: 'Delete the current project',\n description: 'Delete the current project and all associated data (including users, teams, API keys, project configs, etc.). Be careful, this action is irreversible.',\n tags: ['Projects'],\n hidden: true,\n },\n },\n});\nexport type ProjectsCrud = CrudTypeOf<typeof projectsCrud>;\n\nexport const adminUserProjectsCrud = createCrud({\n clientReadSchema: projectsCrudAdminReadSchema,\n clientCreateSchema: projectsCrudAdminCreateSchema,\n docs: {\n clientList: {\n hidden: true,\n },\n clientCreate: {\n hidden: true,\n },\n },\n});\nexport type AdminUserProjectsCrud = CrudTypeOf<typeof adminUserProjectsCrud>;\n"],"mappings":"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","names":["yupString"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/interface/crud/projects.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as schemaFields from \"../../schema-fields\";\nimport { yupArray, yupObject, yupString } from \"../../schema-fields\";\n\nconst teamPermissionSchema = yupObject({\n id: yupString().defined(),\n}).defined();\n\nconst oauthProviderReadSchema = yupObject({\n provider_config_id: schemaFields.yupString().defined(),\n id: schemaFields.oauthIdSchema.defined(),\n type: schemaFields.oauthTypeSchema.defined(),\n client_id: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientIdSchema,\n { type: 'standard' },\n ),\n client_secret: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientSecretSchema,\n { type: 'standard' },\n ),\n\n // extra params\n facebook_config_id: schemaFields.oauthFacebookConfigIdSchema.optional(),\n microsoft_tenant_id: schemaFields.oauthMicrosoftTenantIdSchema.optional(),\n});\n\nconst oauthProviderWriteSchema = oauthProviderReadSchema.omit(['provider_config_id']);\n\nconst enabledOAuthProviderSchema = yupObject({\n id: schemaFields.oauthIdSchema.defined(),\n});\n\nexport const emailConfigSchema = yupObject({\n type: schemaFields.emailTypeSchema.defined(),\n host: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailHostSchema, {\n type: 'standard',\n }),\n port: schemaFields.yupDefinedWhen(schemaFields.emailPortSchema, {\n type: 'standard',\n }),\n username: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailUsernameSchema, {\n type: 'standard',\n }),\n password: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailPasswordSchema, {\n type: 'standard',\n }),\n sender_name: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderNameSchema, {\n type: 'standard',\n }),\n sender_email: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderEmailSchema, {\n type: 'standard',\n }),\n});\n\nexport const emailConfigWithoutPasswordSchema = emailConfigSchema.pick(['type', 'host', 'port', 'username', 'sender_name', 'sender_email']);\n\nconst domainSchema = yupObject({\n domain: schemaFields.urlSchema.defined()\n .matches(/^https?:\\/\\//, 'URL must start with http:// or https://')\n .meta({ openapiField: { description: 'URL. Must start with http:// or https://', exampleValue: 'https://example.com' } }),\n handler_path: schemaFields.handlerPathSchema.defined(),\n});\n\nexport const projectsCrudAdminReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n description: schemaFields.projectDescriptionSchema.nonNullable().defined(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n logo_full_url: schemaFields.projectLogoFullUrlSchema.nullable().optional(),\n logo_dark_mode_url: schemaFields.projectLogoDarkModeUrlSchema.nullable().optional(),\n logo_full_dark_mode_url: schemaFields.projectLogoFullDarkModeUrlSchema.nullable().optional(),\n created_at_millis: schemaFields.projectCreatedAtMillisSchema.defined(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.defined(),\n owner_team_id: schemaFields.yupString().nullable().defined(),\n /** @deprecated */\n config: yupObject({\n allow_localhost: schemaFields.projectAllowLocalhostSchema.defined(),\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n // TODO: remove this\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n oauth_providers: yupArray(oauthProviderReadSchema.defined()).defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n email_config: emailConfigSchema.defined(),\n email_theme: schemaFields.emailThemeSchema.defined(),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.defined(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\nexport const projectsCrudClientReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\n\nexport const projectsCrudAdminUpdateSchema = yupObject({\n display_name: schemaFields.projectDisplayNameSchema.optional(),\n description: schemaFields.projectDescriptionSchema.optional(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n logo_full_url: schemaFields.projectLogoFullUrlSchema.nullable().optional(),\n logo_dark_mode_url: schemaFields.projectLogoDarkModeUrlSchema.nullable().optional(),\n logo_full_dark_mode_url: schemaFields.projectLogoFullDarkModeUrlSchema.nullable().optional(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.optional(),\n /** @deprecated */\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.optional(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.optional(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.optional(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.optional(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.optional(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.optional(),\n allow_localhost: schemaFields.projectAllowLocalhostSchema.optional(),\n allow_user_api_keys: schemaFields.yupBoolean().optional(),\n allow_team_api_keys: schemaFields.yupBoolean().optional(),\n email_config: emailConfigSchema.optional().default(undefined),\n email_theme: schemaFields.emailThemeSchema.optional(),\n domains: yupArray(domainSchema.defined()).optional().default(undefined),\n oauth_providers: yupArray(oauthProviderWriteSchema.defined()).optional().default(undefined),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.optional(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.optional(),\n require_email_verification: schemaFields.yupBoolean().optional(),\n }).optional().default(undefined),\n}).defined();\n\nexport const projectsCrudAdminCreateSchema = projectsCrudAdminUpdateSchema.concat(yupObject({\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n owner_team_id: schemaFields.yupString().uuid().defined(),\n}).defined());\n\nexport const projectsCrudAdminDeleteSchema = schemaFields.yupMixed();\n\nexport const clientProjectsCrud = createCrud({\n clientReadSchema: projectsCrudClientReadSchema,\n docs: {\n clientRead: {\n summary: 'Get the current project',\n description: 'Get the current project information including display name, OAuth providers and authentication methods. Useful for displaying the available login options to the user.',\n tags: ['Projects'],\n },\n },\n});\nexport type ClientProjectsCrud = CrudTypeOf<typeof clientProjectsCrud>;\n\nexport const projectsCrud = createCrud({\n adminReadSchema: projectsCrudAdminReadSchema,\n adminUpdateSchema: projectsCrudAdminUpdateSchema,\n adminDeleteSchema: projectsCrudAdminDeleteSchema,\n docs: {\n adminRead: {\n summary: 'Get the current project',\n description: 'Get the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n hidden: true,\n },\n adminUpdate: {\n summary: 'Update the current project',\n description: 'Update the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n hidden: true,\n },\n adminDelete: {\n summary: 'Delete the current project',\n description: 'Delete the current project and all associated data (including users, teams, API keys, project configs, etc.). Be careful, this action is irreversible.',\n tags: ['Projects'],\n hidden: true,\n },\n },\n});\nexport type ProjectsCrud = CrudTypeOf<typeof projectsCrud>;\n\nexport const adminUserProjectsCrud = createCrud({\n clientReadSchema: projectsCrudAdminReadSchema,\n clientCreateSchema: projectsCrudAdminCreateSchema,\n docs: {\n clientList: {\n hidden: true,\n },\n clientCreate: {\n hidden: true,\n },\n },\n});\nexport type AdminUserProjectsCrud = CrudTypeOf<typeof adminUserProjectsCrud>;\n"],"mappings":"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","names":["yupString"]}
|
|
@@ -37,6 +37,10 @@ var usersCrudServerReadSchema = fieldSchema.yupObject({
|
|
|
37
37
|
server_metadata: fieldSchema.userServerMetadataSchema,
|
|
38
38
|
last_active_at_millis: fieldSchema.userLastActiveAtMillisSchema.nonNullable().defined(),
|
|
39
39
|
is_anonymous: fieldSchema.yupBoolean().defined(),
|
|
40
|
+
is_restricted: fieldSchema.yupBoolean().defined().meta({ openapiField: { description: "Whether the user is in restricted state (has signed up but not completed onboarding requirements)", exampleValue: false } }),
|
|
41
|
+
restricted_reason: fieldSchema.yupObject({
|
|
42
|
+
type: fieldSchema.yupString().oneOf(fieldSchema.restrictedReasonTypes).defined()
|
|
43
|
+
}).nullable().defined().meta({ openapiField: { description: 'The reason why the user is restricted (e.g., type: "email_not_verified" or "anonymous"), null if not restricted', exampleValue: null } }),
|
|
40
44
|
oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({
|
|
41
45
|
id: fieldSchema.yupString().defined(),
|
|
42
46
|
account_id: fieldSchema.yupString().defined(),
|
|
@@ -50,7 +54,10 @@ var usersCrudServerReadSchema = fieldSchema.yupObject({
|
|
|
50
54
|
* @deprecated
|
|
51
55
|
*/
|
|
52
56
|
requires_totp_mfa: fieldSchema.yupBoolean().defined().meta({ openapiField: { hidden: true, description: "Whether the user is required to use TOTP MFA to sign in", exampleValue: false } })
|
|
53
|
-
}).defined()
|
|
57
|
+
}).defined().test("restricted_reason_iff_restricted", "restricted_reason must be present if and only if is_restricted is true", function(value) {
|
|
58
|
+
if (value == null) return true;
|
|
59
|
+
return value.is_restricted === !!value.restricted_reason;
|
|
60
|
+
});
|
|
54
61
|
var usersCrudServerCreateSchema = usersCrudServerUpdateSchema.omit(["selected_team_id"]).concat(fieldSchema.yupObject({
|
|
55
62
|
oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({
|
|
56
63
|
id: fieldSchema.yupString().defined(),
|
|
@@ -89,7 +96,7 @@ var usersCrud = createCrud({
|
|
|
89
96
|
serverList: {
|
|
90
97
|
tags: ["Users"],
|
|
91
98
|
summary: "List users",
|
|
92
|
-
description: "Lists all the users in the project.
|
|
99
|
+
description: "Lists all the users in the project. By default, only fully onboarded users are returned. Restricted users (those who haven't completed onboarding requirements like email verification) are included if `include_restricted` is set to `true`. Anonymous users are included if `include_anonymous` is set to `true` (which also includes restricted users)."
|
|
93
100
|
}
|
|
94
101
|
}
|
|
95
102
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/interface/crud/users.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\nimport { WebhookEvent } from \"../webhooks\";\nimport { teamsCrudServerReadSchema } from \"./teams\";\n\nexport const usersCrudServerUpdateSchema = fieldSchema.yupObject({\n display_name: fieldSchema.userDisplayNameSchema.optional(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().optional(),\n client_metadata: fieldSchema.userClientMetadataSchema.optional(),\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema.optional(),\n server_metadata: fieldSchema.userServerMetadataSchema.optional(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().optional().nonEmpty(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.optional(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.optional(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.optional(),\n password: fieldSchema.userPasswordMutationSchema.optional(),\n password_hash: fieldSchema.userPasswordHashMutationSchema.optional(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledMutationSchema.optional(),\n totp_secret_base64: fieldSchema.userTotpSecretMutationSchema.optional(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().optional(),\n is_anonymous: fieldSchema.yupBoolean().oneOf([false]).optional(),\n}).defined();\n\nexport const usersCrudServerReadSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().defined(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.defined(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.defined(),\n display_name: fieldSchema.userDisplayNameSchema.nullable().defined(),\n selected_team: teamsCrudServerReadSchema.nullable().defined(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().defined(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().defined(),\n signed_up_at_millis: fieldSchema.signedUpAtMillisSchema.defined(),\n has_password: fieldSchema.userHasPasswordSchema.defined(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n client_metadata: fieldSchema.userClientMetadataSchema,\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema,\n server_metadata: fieldSchema.userServerMetadataSchema,\n last_active_at_millis: fieldSchema.userLastActiveAtMillisSchema.nonNullable().defined(),\n is_anonymous: fieldSchema.yupBoolean().defined(),\n\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable(),\n }).defined()).defined().meta({ openapiField: { hidden: true } }),\n\n /**\n * @deprecated\n */\n auth_with_email: fieldSchema.yupBoolean().defined().meta({ openapiField: { hidden: true, description: 'Whether the user can authenticate with their primary e-mail. If set to true, the user can log-in with credentials and/or magic link, if enabled in the project settings.', exampleValue: true } }),\n /**\n * @deprecated\n */\n requires_totp_mfa: fieldSchema.yupBoolean().defined().meta({ openapiField: { hidden: true, description: 'Whether the user is required to use TOTP MFA to sign in', exampleValue: false } }),\n}).defined();\n\nexport const usersCrudServerCreateSchema = usersCrudServerUpdateSchema.omit(['selected_team_id']).concat(fieldSchema.yupObject({\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable().defined().default(null),\n }).defined()).optional().meta({ openapiField: { hidden: true } }),\n is_anonymous: fieldSchema.yupBoolean().optional(),\n}).defined());\n\nexport const usersCrudServerDeleteSchema = fieldSchema.yupMixed();\n\nexport const usersCrud = createCrud({\n serverReadSchema: usersCrudServerReadSchema,\n serverUpdateSchema: usersCrudServerUpdateSchema,\n serverCreateSchema: usersCrudServerCreateSchema,\n serverDeleteSchema: usersCrudServerDeleteSchema,\n docs: {\n serverCreate: {\n tags: [\"Users\"],\n summary: 'Create user',\n description: 'Creates a new user. E-mail authentication is always enabled, and no password is set, meaning the only way to authenticate the newly created user is through magic link.',\n },\n serverRead: {\n tags: [\"Users\"],\n summary: 'Get user',\n description: 'Gets a user by user ID.',\n },\n serverUpdate: {\n tags: [\"Users\"],\n summary: 'Update user',\n description: 'Updates a user. Only the values provided will be updated.',\n },\n serverDelete: {\n tags: [\"Users\"],\n summary: 'Delete user',\n description: 'Deletes a user. Use this with caution.',\n },\n serverList: {\n tags: [\"Users\"],\n summary: 'List users',\n description: 'Lists all the users in the project. Anonymous users are only included if the `include_anonymous` query parameter is set to `true`.',\n },\n },\n});\nexport type UsersCrud = CrudTypeOf<typeof usersCrud>;\n\nexport const userCreatedWebhookEvent = {\n type: \"user.created\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Created\",\n description: \"This event is triggered when a user is created.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nexport const userUpdatedWebhookEvent = {\n type: \"user.updated\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Updated\",\n description: \"This event is triggered when a user is updated.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nconst webhookUserDeletedSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n teams: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n })).defined(),\n}).defined();\n\nexport const userDeletedWebhookEvent = {\n type: \"user.deleted\",\n schema: webhookUserDeletedSchema,\n metadata: {\n summary: \"User Deleted\",\n description: \"This event is triggered when a user is deleted.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof webhookUserDeletedSchema>;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/interface/crud/users.ts"],"sourcesContent":["import * as yup from \"yup\";\nimport { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as fieldSchema from \"../../schema-fields\";\nimport { WebhookEvent } from \"../webhooks\";\nimport { teamsCrudServerReadSchema } from \"./teams\";\n\nexport const usersCrudServerUpdateSchema = fieldSchema.yupObject({\n display_name: fieldSchema.userDisplayNameSchema.optional(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().optional(),\n client_metadata: fieldSchema.userClientMetadataSchema.optional(),\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema.optional(),\n server_metadata: fieldSchema.userServerMetadataSchema.optional(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().optional().nonEmpty(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.optional(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.optional(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.optional(),\n password: fieldSchema.userPasswordMutationSchema.optional(),\n password_hash: fieldSchema.userPasswordHashMutationSchema.optional(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledMutationSchema.optional(),\n totp_secret_base64: fieldSchema.userTotpSecretMutationSchema.optional(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().optional(),\n is_anonymous: fieldSchema.yupBoolean().oneOf([false]).optional(),\n}).defined();\n\nexport const usersCrudServerReadSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n primary_email: fieldSchema.primaryEmailSchema.nullable().defined(),\n primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.defined(),\n primary_email_auth_enabled: fieldSchema.primaryEmailAuthEnabledSchema.defined(),\n display_name: fieldSchema.userDisplayNameSchema.nullable().defined(),\n selected_team: teamsCrudServerReadSchema.nullable().defined(),\n selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().defined(),\n profile_image_url: fieldSchema.profileImageUrlSchema.nullable().defined(),\n signed_up_at_millis: fieldSchema.signedUpAtMillisSchema.defined(),\n has_password: fieldSchema.userHasPasswordSchema.defined(),\n otp_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n passkey_auth_enabled: fieldSchema.userOtpAuthEnabledSchema.defined(),\n client_metadata: fieldSchema.userClientMetadataSchema,\n client_read_only_metadata: fieldSchema.userClientReadOnlyMetadataSchema,\n server_metadata: fieldSchema.userServerMetadataSchema,\n last_active_at_millis: fieldSchema.userLastActiveAtMillisSchema.nonNullable().defined(),\n is_anonymous: fieldSchema.yupBoolean().defined(),\n is_restricted: fieldSchema.yupBoolean().defined().meta({ openapiField: { description: 'Whether the user is in restricted state (has signed up but not completed onboarding requirements)', exampleValue: false } }),\n restricted_reason: fieldSchema.yupObject({\n type: fieldSchema.yupString().oneOf(fieldSchema.restrictedReasonTypes).defined(),\n }).nullable().defined().meta({ openapiField: { description: 'The reason why the user is restricted (e.g., type: \"email_not_verified\" or \"anonymous\"), null if not restricted', exampleValue: null } }),\n\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable(),\n }).defined()).defined().meta({ openapiField: { hidden: true } }),\n\n /**\n * @deprecated\n */\n auth_with_email: fieldSchema.yupBoolean().defined().meta({ openapiField: { hidden: true, description: 'Whether the user can authenticate with their primary e-mail. If set to true, the user can log-in with credentials and/or magic link, if enabled in the project settings.', exampleValue: true } }),\n /**\n * @deprecated\n */\n requires_totp_mfa: fieldSchema.yupBoolean().defined().meta({ openapiField: { hidden: true, description: 'Whether the user is required to use TOTP MFA to sign in', exampleValue: false } }),\n}).defined().test(\"restricted_reason_iff_restricted\", \"restricted_reason must be present if and only if is_restricted is true\", function(this: yup.TestContext<any>, value: any) {\n if (value == null) return true;\n return value.is_restricted === !!value.restricted_reason;\n});\n\nexport const usersCrudServerCreateSchema = usersCrudServerUpdateSchema.omit(['selected_team_id']).concat(fieldSchema.yupObject({\n oauth_providers: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n account_id: fieldSchema.yupString().defined(),\n email: fieldSchema.yupString().nullable().defined().default(null),\n }).defined()).optional().meta({ openapiField: { hidden: true } }),\n is_anonymous: fieldSchema.yupBoolean().optional(),\n}).defined());\n\nexport const usersCrudServerDeleteSchema = fieldSchema.yupMixed();\n\nexport const usersCrud = createCrud({\n serverReadSchema: usersCrudServerReadSchema,\n serverUpdateSchema: usersCrudServerUpdateSchema,\n serverCreateSchema: usersCrudServerCreateSchema,\n serverDeleteSchema: usersCrudServerDeleteSchema,\n docs: {\n serverCreate: {\n tags: [\"Users\"],\n summary: 'Create user',\n description: 'Creates a new user. E-mail authentication is always enabled, and no password is set, meaning the only way to authenticate the newly created user is through magic link.',\n },\n serverRead: {\n tags: [\"Users\"],\n summary: 'Get user',\n description: 'Gets a user by user ID.',\n },\n serverUpdate: {\n tags: [\"Users\"],\n summary: 'Update user',\n description: 'Updates a user. Only the values provided will be updated.',\n },\n serverDelete: {\n tags: [\"Users\"],\n summary: 'Delete user',\n description: 'Deletes a user. Use this with caution.',\n },\n serverList: {\n tags: [\"Users\"],\n summary: 'List users',\n description: 'Lists all the users in the project. By default, only fully onboarded users are returned. Restricted users (those who haven\\'t completed onboarding requirements like email verification) are included if `include_restricted` is set to `true`. Anonymous users are included if `include_anonymous` is set to `true` (which also includes restricted users).',\n },\n },\n});\nexport type UsersCrud = CrudTypeOf<typeof usersCrud>;\n\nexport const userCreatedWebhookEvent = {\n type: \"user.created\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Created\",\n description: \"This event is triggered when a user is created.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nexport const userUpdatedWebhookEvent = {\n type: \"user.updated\",\n schema: usersCrud.server.readSchema,\n metadata: {\n summary: \"User Updated\",\n description: \"This event is triggered when a user is updated.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof usersCrud.server.readSchema>;\n\nconst webhookUserDeletedSchema = fieldSchema.yupObject({\n id: fieldSchema.userIdSchema.defined(),\n teams: fieldSchema.yupArray(fieldSchema.yupObject({\n id: fieldSchema.yupString().defined(),\n })).defined(),\n}).defined();\n\nexport const userDeletedWebhookEvent = {\n type: \"user.deleted\",\n schema: webhookUserDeletedSchema,\n metadata: {\n summary: \"User Deleted\",\n description: \"This event is triggered when a user is deleted.\",\n tags: [\"Users\"],\n },\n} satisfies WebhookEvent<typeof webhookUserDeletedSchema>;\n"],"mappings":";AACA,SAAqB,kBAAkB;AACvC,YAAY,iBAAiB;AAE7B,SAAS,iCAAiC;AAEnC,IAAM,8BAA0C,sBAAU;AAAA,EAC/D,cAA0B,kCAAsB,SAAS;AAAA,EACzD,mBAA+B,kCAAsB,SAAS,EAAE,SAAS;AAAA,EACzE,iBAA6B,qCAAyB,SAAS;AAAA,EAC/D,2BAAuC,6CAAiC,SAAS;AAAA,EACjF,iBAA6B,qCAAyB,SAAS;AAAA,EAC/D,eAA2B,+BAAmB,SAAS,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7E,wBAAoC,uCAA2B,SAAS;AAAA,EACxE,4BAAwC,0CAA8B,SAAS;AAAA,EAC/E,sBAAkC,qCAAyB,SAAS;AAAA,EACpE,UAAsB,uCAA2B,SAAS;AAAA,EAC1D,eAA2B,2CAA+B,SAAS;AAAA,EACnE,kBAA8B,6CAAiC,SAAS;AAAA,EACxE,oBAAgC,yCAA6B,SAAS;AAAA,EACtE,kBAA8B,iCAAqB,SAAS,EAAE,SAAS;AAAA,EACvE,cAA0B,uBAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS;AACjE,CAAC,EAAE,QAAQ;AAEJ,IAAM,4BAAwC,sBAAU;AAAA,EAC7D,IAAgB,yBAAa,QAAQ;AAAA,EACrC,eAA2B,+BAAmB,SAAS,EAAE,QAAQ;AAAA,EACjE,wBAAoC,uCAA2B,QAAQ;AAAA,EACvE,4BAAwC,0CAA8B,QAAQ;AAAA,EAC9E,cAA0B,kCAAsB,SAAS,EAAE,QAAQ;AAAA,EACnE,eAAe,0BAA0B,SAAS,EAAE,QAAQ;AAAA,EAC5D,kBAA8B,iCAAqB,SAAS,EAAE,QAAQ;AAAA,EACtE,mBAA+B,kCAAsB,SAAS,EAAE,QAAQ;AAAA,EACxE,qBAAiC,mCAAuB,QAAQ;AAAA,EAChE,cAA0B,kCAAsB,QAAQ;AAAA,EACxD,kBAA8B,qCAAyB,QAAQ;AAAA,EAC/D,sBAAkC,qCAAyB,QAAQ;AAAA,EACnE,iBAA6B;AAAA,EAC7B,2BAAuC;AAAA,EACvC,iBAA6B;AAAA,EAC7B,uBAAmC,yCAA6B,YAAY,EAAE,QAAQ;AAAA,EACtF,cAA0B,uBAAW,EAAE,QAAQ;AAAA,EAC/C,eAA2B,uBAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,qGAAqG,cAAc,MAAM,EAAE,CAAC;AAAA,EAClN,mBAA+B,sBAAU;AAAA,IACvC,MAAkB,sBAAU,EAAE,MAAkB,iCAAqB,EAAE,QAAQ;AAAA,EACjF,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,mHAAmH,cAAc,KAAK,EAAE,CAAC;AAAA,EAErM,iBAA6B,qBAAqB,sBAAU;AAAA,IAC1D,IAAgB,sBAAU,EAAE,QAAQ;AAAA,IACpC,YAAwB,sBAAU,EAAE,QAAQ;AAAA,IAC5C,OAAmB,sBAAU,EAAE,SAAS;AAAA,EAC1C,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,KAAK,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA,EAK/D,iBAA6B,uBAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,MAAM,aAAa,4KAA4K,cAAc,KAAK,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA,EAIxS,mBAA+B,uBAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,MAAM,aAAa,2DAA2D,cAAc,MAAM,EAAE,CAAC;AAC5L,CAAC,EAAE,QAAQ,EAAE,KAAK,oCAAoC,0EAA0E,SAAqC,OAAY;AAC/K,MAAI,SAAS,KAAM,QAAO;AAC1B,SAAO,MAAM,kBAAkB,CAAC,CAAC,MAAM;AACzC,CAAC;AAEM,IAAM,8BAA8B,4BAA4B,KAAK,CAAC,kBAAkB,CAAC,EAAE,OAAmB,sBAAU;AAAA,EAC7H,iBAA6B,qBAAqB,sBAAU;AAAA,IAC1D,IAAgB,sBAAU,EAAE,QAAQ;AAAA,IACpC,YAAwB,sBAAU,EAAE,QAAQ;AAAA,IAC5C,OAAmB,sBAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAClE,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,KAAK,EAAE,CAAC;AAAA,EAChE,cAA0B,uBAAW,EAAE,SAAS;AAClD,CAAC,EAAE,QAAQ,CAAC;AAEL,IAAM,8BAA0C,qBAAS;AAEzD,IAAM,YAAY,WAAW;AAAA,EAClC,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,MAAM;AAAA,IACJ,cAAc;AAAA,MACZ,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,OAAO;AAAA,MACd,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,EACF;AACF,CAAC;AAGM,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ,UAAU,OAAO;AAAA,EACzB,UAAU;AAAA,IACR,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM,CAAC,OAAO;AAAA,EAChB;AACF;AAEO,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ,UAAU,OAAO;AAAA,EACzB,UAAU;AAAA,IACR,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM,CAAC,OAAO;AAAA,EAChB;AACF;AAEA,IAAM,2BAAuC,sBAAU;AAAA,EACrD,IAAgB,yBAAa,QAAQ;AAAA,EACrC,OAAmB,qBAAqB,sBAAU;AAAA,IAChD,IAAgB,sBAAU,EAAE,QAAQ;AAAA,EACtC,CAAC,CAAC,EAAE,QAAQ;AACd,CAAC,EAAE,QAAQ;AAEJ,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM,CAAC,OAAO;AAAA,EAChB;AACF;","names":[]}
|
|
@@ -28,6 +28,44 @@ var StackServerInterface = class extends StackClientInterface {
|
|
|
28
28
|
requestType
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
|
+
async getCustomerBilling(customerType, customerId, session) {
|
|
32
|
+
const response = await this.sendServerRequest(
|
|
33
|
+
urlString`/payments/billing/${customerType}/${customerId}`,
|
|
34
|
+
{},
|
|
35
|
+
session
|
|
36
|
+
);
|
|
37
|
+
return await response.json();
|
|
38
|
+
}
|
|
39
|
+
async createCustomerPaymentMethodSetupIntent(customerType, customerId, session) {
|
|
40
|
+
const response = await this.sendServerRequest(
|
|
41
|
+
urlString`/payments/payment-method/${customerType}/${customerId}/setup-intent`,
|
|
42
|
+
{
|
|
43
|
+
method: "POST",
|
|
44
|
+
headers: {
|
|
45
|
+
"content-type": "application/json"
|
|
46
|
+
},
|
|
47
|
+
body: JSON.stringify({})
|
|
48
|
+
},
|
|
49
|
+
session
|
|
50
|
+
);
|
|
51
|
+
return await response.json();
|
|
52
|
+
}
|
|
53
|
+
async setDefaultCustomerPaymentMethodFromSetupIntent(customerType, customerId, setupIntentId, session) {
|
|
54
|
+
const response = await this.sendServerRequest(
|
|
55
|
+
urlString`/payments/payment-method/${customerType}/${customerId}/set-default`,
|
|
56
|
+
{
|
|
57
|
+
method: "POST",
|
|
58
|
+
headers: {
|
|
59
|
+
"content-type": "application/json"
|
|
60
|
+
},
|
|
61
|
+
body: JSON.stringify({
|
|
62
|
+
setup_intent_id: setupIntentId
|
|
63
|
+
})
|
|
64
|
+
},
|
|
65
|
+
session
|
|
66
|
+
);
|
|
67
|
+
return await response.json();
|
|
68
|
+
}
|
|
31
69
|
async sendServerRequestAndCatchKnownError(path, requestOptions, tokenStoreOrNull, errorsToCatch) {
|
|
32
70
|
try {
|
|
33
71
|
return Result.ok(await this.sendServerRequest(path, requestOptions, tokenStoreOrNull));
|
|
@@ -157,6 +195,9 @@ var StackServerInterface = class extends StackClientInterface {
|
|
|
157
195
|
...options.query ? {
|
|
158
196
|
query: options.query
|
|
159
197
|
} : {},
|
|
198
|
+
...options.includeRestricted ? {
|
|
199
|
+
include_restricted: "true"
|
|
200
|
+
} : {},
|
|
160
201
|
...options.includeAnonymous ? {
|
|
161
202
|
include_anonymous: "true"
|
|
162
203
|
} : {}
|
|
@@ -610,6 +651,19 @@ var StackServerInterface = class extends StackClientInterface {
|
|
|
610
651
|
);
|
|
611
652
|
return Result.ok(void 0);
|
|
612
653
|
}
|
|
654
|
+
async getEmailDeliveryInfo() {
|
|
655
|
+
const res = await this.sendServerRequest(
|
|
656
|
+
"/emails/delivery-info",
|
|
657
|
+
{
|
|
658
|
+
method: "GET",
|
|
659
|
+
headers: {
|
|
660
|
+
"Content-Type": "application/json"
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
null
|
|
664
|
+
);
|
|
665
|
+
return await res.json();
|
|
666
|
+
}
|
|
613
667
|
async updateItemQuantity(options, data) {
|
|
614
668
|
let customerType;
|
|
615
669
|
let customerId;
|