@stackframe/stack-shared 2.8.12 → 2.8.16

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.
Files changed (162) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/config/format.js +2 -2
  3. package/dist/config/schema.d.mts +32 -32
  4. package/dist/config/schema.d.ts +32 -32
  5. package/dist/config/schema.js +4 -4
  6. package/dist/config/schema.js.map +1 -1
  7. package/dist/crud.js +2 -2
  8. package/dist/esm/config/format.js +2 -2
  9. package/dist/esm/config/schema.js +4 -4
  10. package/dist/esm/config/schema.js.map +1 -1
  11. package/dist/esm/crud.js +2 -2
  12. package/dist/esm/helpers/password.js +1 -1
  13. package/dist/esm/helpers/production-mode.js +2 -2
  14. package/dist/esm/hooks/use-async-callback.js +1 -1
  15. package/dist/esm/hooks/use-async-external-store.js +1 -1
  16. package/dist/esm/hooks/use-hash.js +1 -1
  17. package/dist/esm/hooks/use-strict-memo.js +1 -1
  18. package/dist/esm/index.js +4 -4
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/interface/{adminInterface.js → admin-interface.js} +3 -3
  21. package/dist/esm/interface/admin-interface.js.map +1 -0
  22. package/dist/esm/interface/{clientInterface.js → client-interface.js} +50 -856
  23. package/dist/esm/interface/client-interface.js.map +1 -0
  24. package/dist/esm/interface/crud/contact-channels.js +2 -2
  25. package/dist/esm/interface/crud/current-user.js +4 -4
  26. package/dist/esm/interface/crud/email-templates.js +2 -2
  27. package/dist/esm/interface/crud/emails.js +3 -3
  28. package/dist/esm/interface/crud/internal-api-keys.js +2 -2
  29. package/dist/esm/interface/crud/oauth.js +2 -2
  30. package/dist/esm/interface/crud/project-api-keys.js +3 -3
  31. package/dist/esm/interface/crud/project-permissions.js +3 -3
  32. package/dist/esm/interface/crud/projects.js +3 -3
  33. package/dist/esm/interface/crud/sessions.js +3 -3
  34. package/dist/esm/interface/crud/svix-token.js +2 -2
  35. package/dist/esm/interface/crud/team-invitation-details.js +3 -3
  36. package/dist/esm/interface/crud/team-invitation.js +3 -3
  37. package/dist/esm/interface/crud/team-member-profiles.js +4 -4
  38. package/dist/esm/interface/crud/team-memberships.js +2 -2
  39. package/dist/esm/interface/crud/team-permissions.js +3 -3
  40. package/dist/esm/interface/crud/teams.js +3 -3
  41. package/dist/esm/interface/crud/users.js +3 -3
  42. package/dist/esm/interface/{serverInterface.js → server-interface.js} +8 -8
  43. package/dist/esm/interface/server-interface.js.map +1 -0
  44. package/dist/esm/interface/webhooks.js +4 -4
  45. package/dist/esm/known-errors.js +3 -3
  46. package/dist/esm/schema-fields.js +11 -11
  47. package/dist/esm/schema-fields.js.map +1 -1
  48. package/dist/esm/sessions.js +2 -2
  49. package/dist/esm/utils/api-keys.js +3 -3
  50. package/dist/esm/utils/arrays.js +1 -1
  51. package/dist/esm/utils/bytes.js +4 -27
  52. package/dist/esm/utils/bytes.js.map +1 -1
  53. package/dist/esm/utils/caches.js +4 -4
  54. package/dist/esm/utils/crypto.js +3 -3
  55. package/dist/esm/utils/dates.js +1 -1
  56. package/dist/esm/utils/env.js +2 -2
  57. package/dist/esm/utils/errors.js +3 -3
  58. package/dist/esm/utils/geo.js +1 -1
  59. package/dist/esm/utils/hashes.js +1 -1
  60. package/dist/esm/utils/html.js +1 -1
  61. package/dist/esm/utils/http.js +1 -1
  62. package/dist/esm/utils/json.js +1 -1
  63. package/dist/esm/utils/jwt.js +4 -4
  64. package/dist/esm/utils/maps.js +1 -1
  65. package/dist/esm/utils/node-http.js +1 -1
  66. package/dist/esm/utils/objects.js +3 -3
  67. package/dist/esm/utils/promises.js +5 -5
  68. package/dist/esm/utils/proxies.js +1 -1
  69. package/dist/esm/utils/react.js +3 -3
  70. package/dist/esm/utils/results.js +2 -2
  71. package/dist/esm/utils/stores.js +4 -4
  72. package/dist/esm/utils/strings.js +6 -3
  73. package/dist/esm/utils/strings.js.map +1 -1
  74. package/dist/esm/utils/strings.nicify.test.js +1 -1
  75. package/dist/esm/utils/unicode.js +1 -1
  76. package/dist/esm/utils/urls.js +2 -2
  77. package/dist/esm/utils/uuids.js +1 -1
  78. package/dist/helpers/password.js +1 -1
  79. package/dist/helpers/production-mode.js +2 -2
  80. package/dist/hooks/use-async-callback.js +1 -1
  81. package/dist/hooks/use-async-external-store.js +1 -1
  82. package/dist/hooks/use-hash.js +1 -1
  83. package/dist/hooks/use-strict-memo.js +1 -1
  84. package/dist/index.d.mts +3 -3
  85. package/dist/index.d.ts +3 -3
  86. package/dist/index.js +7 -7
  87. package/dist/index.js.map +1 -1
  88. package/dist/interface/{adminInterface.d.mts → admin-interface.d.mts} +2 -2
  89. package/dist/interface/{adminInterface.d.ts → admin-interface.d.ts} +2 -2
  90. package/dist/interface/{adminInterface.js → admin-interface.js} +7 -7
  91. package/dist/interface/admin-interface.js.map +1 -0
  92. package/dist/interface/{clientInterface.d.mts → client-interface.d.mts} +5 -0
  93. package/dist/interface/{clientInterface.d.ts → client-interface.d.ts} +5 -0
  94. package/dist/interface/{clientInterface.js → client-interface.js} +63 -861
  95. package/dist/interface/client-interface.js.map +1 -0
  96. package/dist/interface/crud/contact-channels.js +2 -2
  97. package/dist/interface/crud/current-user.js +4 -4
  98. package/dist/interface/crud/email-templates.js +2 -2
  99. package/dist/interface/crud/emails.js +3 -3
  100. package/dist/interface/crud/internal-api-keys.js +2 -2
  101. package/dist/interface/crud/oauth.js +2 -2
  102. package/dist/interface/crud/project-api-keys.d.mts +2 -2
  103. package/dist/interface/crud/project-api-keys.d.ts +2 -2
  104. package/dist/interface/crud/project-api-keys.js +3 -3
  105. package/dist/interface/crud/project-permissions.js +3 -3
  106. package/dist/interface/crud/projects.d.mts +7 -7
  107. package/dist/interface/crud/projects.d.ts +7 -7
  108. package/dist/interface/crud/projects.js +3 -3
  109. package/dist/interface/crud/sessions.js +3 -3
  110. package/dist/interface/crud/svix-token.js +2 -2
  111. package/dist/interface/crud/team-invitation-details.js +3 -3
  112. package/dist/interface/crud/team-invitation.js +3 -3
  113. package/dist/interface/crud/team-member-profiles.js +4 -4
  114. package/dist/interface/crud/team-memberships.js +2 -2
  115. package/dist/interface/crud/team-permissions.js +3 -3
  116. package/dist/interface/crud/teams.js +3 -3
  117. package/dist/interface/crud/users.js +3 -3
  118. package/dist/interface/{serverInterface.d.mts → server-interface.d.mts} +1 -1
  119. package/dist/interface/{serverInterface.d.ts → server-interface.d.ts} +1 -1
  120. package/dist/interface/{serverInterface.js → server-interface.js} +12 -12
  121. package/dist/interface/server-interface.js.map +1 -0
  122. package/dist/interface/webhooks.js +4 -4
  123. package/dist/known-errors.js +3 -3
  124. package/dist/schema-fields.js +11 -11
  125. package/dist/schema-fields.js.map +1 -1
  126. package/dist/sessions.js +2 -2
  127. package/dist/utils/api-keys.js +3 -3
  128. package/dist/utils/arrays.js +1 -1
  129. package/dist/utils/bytes.js +4 -27
  130. package/dist/utils/bytes.js.map +1 -1
  131. package/dist/utils/caches.js +4 -4
  132. package/dist/utils/crypto.js +3 -3
  133. package/dist/utils/dates.js +1 -1
  134. package/dist/utils/env.js +2 -2
  135. package/dist/utils/errors.js +3 -3
  136. package/dist/utils/geo.js +1 -1
  137. package/dist/utils/hashes.js +1 -1
  138. package/dist/utils/html.js +1 -1
  139. package/dist/utils/http.js +1 -1
  140. package/dist/utils/json.js +1 -1
  141. package/dist/utils/jwt.js +4 -4
  142. package/dist/utils/maps.js +1 -1
  143. package/dist/utils/node-http.js +1 -1
  144. package/dist/utils/objects.js +3 -3
  145. package/dist/utils/promises.js +5 -5
  146. package/dist/utils/proxies.js +1 -1
  147. package/dist/utils/react.js +3 -3
  148. package/dist/utils/results.js +2 -2
  149. package/dist/utils/stores.js +4 -4
  150. package/dist/utils/strings.js +6 -3
  151. package/dist/utils/strings.js.map +1 -1
  152. package/dist/utils/strings.nicify.test.js +1 -1
  153. package/dist/utils/unicode.js +1 -1
  154. package/dist/utils/urls.js +2 -2
  155. package/dist/utils/uuids.js +1 -1
  156. package/package.json +1 -1
  157. package/dist/esm/interface/adminInterface.js.map +0 -1
  158. package/dist/esm/interface/clientInterface.js.map +0 -1
  159. package/dist/esm/interface/serverInterface.js.map +0 -1
  160. package/dist/interface/adminInterface.js.map +0 -1
  161. package/dist/interface/clientInterface.js.map +0 -1
  162. package/dist/interface/serverInterface.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @stackframe/stack-shared
2
2
 
3
+ ## 2.8.16
4
+
5
+ ### Patch Changes
6
+
7
+ - Various changes
8
+
9
+ ## 2.8.15
10
+
11
+ ## 2.8.14
12
+
13
+ ### Patch Changes
14
+
15
+ - Various changes
16
+
17
+ ## 2.8.13
18
+
19
+ ### Patch Changes
20
+
21
+ - Various changes
22
+
3
23
  ## 2.8.12
4
24
 
5
25
  ### Patch Changes
@@ -28,8 +28,8 @@ __export(format_exports, {
28
28
  override: () => override
29
29
  });
30
30
  module.exports = __toCommonJS(format_exports);
31
- var import_errors = require("../utils/errors");
32
- var import_objects = require("../utils/objects");
31
+ var import_errors = require("../utils/errors.js");
32
+ var import_objects = require("../utils/objects.js");
33
33
  function isValidConfig(c) {
34
34
  return getInvalidConfigReason(c) === void 0;
35
35
  }
@@ -13,7 +13,7 @@ declare const branchConfigSchema: yup.ObjectSchema<{} & {
13
13
  rbac: {
14
14
  permissions?: Record<string, {
15
15
  description?: string | undefined;
16
- scope?: "project" | "team" | undefined;
16
+ scope?: "team" | "project" | undefined;
17
17
  containedPermissionIds?: Record<string, true | undefined> | undefined;
18
18
  } | undefined> | undefined;
19
19
  defaultPermissions?: {
@@ -31,18 +31,18 @@ declare const branchConfigSchema: yup.ObjectSchema<{} & {
31
31
  } | undefined;
32
32
  apiKeys: {
33
33
  enabled?: {
34
- team?: boolean | undefined;
35
34
  user?: boolean | undefined;
35
+ team?: boolean | undefined;
36
36
  } | undefined;
37
37
  } | undefined;
38
38
  domains: {
39
39
  allowLocalhost?: boolean | undefined;
40
40
  } | undefined;
41
41
  auth: {
42
- allowSignUp?: boolean | undefined;
43
42
  password?: {
44
43
  allowSignIn?: boolean | undefined;
45
44
  } | undefined;
45
+ allowSignUp?: boolean | undefined;
46
46
  otp?: {
47
47
  allowSignIn?: boolean | undefined;
48
48
  } | undefined;
@@ -52,8 +52,8 @@ declare const branchConfigSchema: yup.ObjectSchema<{} & {
52
52
  oauth?: {
53
53
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
54
54
  providers?: Record<string, {
55
- allowSignIn?: boolean | undefined;
56
55
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
56
+ allowSignIn?: boolean | undefined;
57
57
  allowConnectedAccounts?: boolean | undefined;
58
58
  }> | undefined;
59
59
  } | undefined;
@@ -106,7 +106,7 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
106
106
  rbac: {
107
107
  permissions?: Record<string, {
108
108
  description?: string | undefined;
109
- scope?: "project" | "team" | undefined;
109
+ scope?: "team" | "project" | undefined;
110
110
  containedPermissionIds?: Record<string, true | undefined> | undefined;
111
111
  } | undefined> | undefined;
112
112
  defaultPermissions?: {
@@ -124,8 +124,8 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
124
124
  } | undefined;
125
125
  apiKeys: {
126
126
  enabled?: {
127
- team?: boolean | undefined;
128
127
  user?: boolean | undefined;
128
+ team?: boolean | undefined;
129
129
  } | undefined;
130
130
  } | undefined;
131
131
  domains: (Omit<{
@@ -137,10 +137,10 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
137
137
  }> | undefined;
138
138
  }) | undefined;
139
139
  auth: (Omit<{
140
- allowSignUp?: boolean | undefined;
141
140
  password?: {
142
141
  allowSignIn?: boolean | undefined;
143
142
  } | undefined;
143
+ allowSignUp?: boolean | undefined;
144
144
  otp?: {
145
145
  allowSignIn?: boolean | undefined;
146
146
  } | undefined;
@@ -150,8 +150,8 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
150
150
  oauth?: {
151
151
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
152
152
  providers?: Record<string, {
153
- allowSignIn?: boolean | undefined;
154
153
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
154
+ allowSignIn?: boolean | undefined;
155
155
  allowConnectedAccounts?: boolean | undefined;
156
156
  }> | undefined;
157
157
  } | undefined;
@@ -159,18 +159,18 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
159
159
  oauth?: (Omit<{
160
160
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
161
161
  providers?: Record<string, {
162
- allowSignIn?: boolean | undefined;
163
162
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
163
+ allowSignIn?: boolean | undefined;
164
164
  allowConnectedAccounts?: boolean | undefined;
165
165
  }> | undefined;
166
166
  }, never> & {
167
167
  providers?: Record<string, {
168
- allowSignIn?: boolean | undefined;
169
168
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
170
- allowConnectedAccounts?: boolean | undefined;
171
- isShared?: boolean | undefined;
172
169
  clientId?: string | undefined;
173
170
  clientSecret?: string | undefined;
171
+ allowSignIn?: boolean | undefined;
172
+ allowConnectedAccounts?: boolean | undefined;
173
+ isShared?: boolean | undefined;
174
174
  facebookConfigId?: string | undefined;
175
175
  microsoftTenantId?: string | undefined;
176
176
  }> | undefined;
@@ -178,21 +178,21 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
178
178
  }) | undefined;
179
179
  emails: Omit<{}, never> & {
180
180
  server: {
181
- password?: string | undefined;
182
- isShared?: boolean | undefined;
183
181
  host?: string | undefined;
184
182
  port?: number | undefined;
185
183
  username?: string | undefined;
184
+ password?: string | undefined;
185
+ isShared?: boolean | undefined;
186
186
  senderName?: string | undefined;
187
187
  senderEmail?: string | undefined;
188
188
  };
189
189
  };
190
190
  } & {
191
191
  auth: (Omit<{
192
- allowSignUp?: boolean | undefined;
193
192
  password?: {
194
193
  allowSignIn?: boolean | undefined;
195
194
  } | undefined;
195
+ allowSignUp?: boolean | undefined;
196
196
  otp?: {
197
197
  allowSignIn?: boolean | undefined;
198
198
  } | undefined;
@@ -202,8 +202,8 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
202
202
  oauth?: {
203
203
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
204
204
  providers?: Record<string, {
205
- allowSignIn?: boolean | undefined;
206
205
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
206
+ allowSignIn?: boolean | undefined;
207
207
  allowConnectedAccounts?: boolean | undefined;
208
208
  }> | undefined;
209
209
  } | undefined;
@@ -211,18 +211,18 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
211
211
  oauth?: (Omit<{
212
212
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
213
213
  providers?: Record<string, {
214
- allowSignIn?: boolean | undefined;
215
214
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
215
+ allowSignIn?: boolean | undefined;
216
216
  allowConnectedAccounts?: boolean | undefined;
217
217
  }> | undefined;
218
218
  }, never> & {
219
219
  providers?: Record<string, {
220
- allowSignIn?: boolean | undefined;
221
220
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
222
- allowConnectedAccounts?: boolean | undefined;
223
- isShared?: boolean | undefined;
224
221
  clientId?: string | undefined;
225
222
  clientSecret?: string | undefined;
223
+ allowSignIn?: boolean | undefined;
224
+ allowConnectedAccounts?: boolean | undefined;
225
+ isShared?: boolean | undefined;
226
226
  facebookConfigId?: string | undefined;
227
227
  microsoftTenantId?: string | undefined;
228
228
  }> | undefined;
@@ -230,11 +230,11 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
230
230
  }) | undefined;
231
231
  emails: Omit<{}, never> & {
232
232
  server: {
233
- password?: string | undefined;
234
- isShared?: boolean | undefined;
235
233
  host?: string | undefined;
236
234
  port?: number | undefined;
237
235
  username?: string | undefined;
236
+ password?: string | undefined;
237
+ isShared?: boolean | undefined;
238
238
  senderName?: string | undefined;
239
239
  senderEmail?: string | undefined;
240
240
  };
@@ -403,7 +403,7 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
403
403
  rbac: {
404
404
  permissions?: Record<string, {
405
405
  description?: string | undefined;
406
- scope?: "project" | "team" | undefined;
406
+ scope?: "team" | "project" | undefined;
407
407
  containedPermissionIds?: Record<string, true | undefined> | undefined;
408
408
  } | undefined> | undefined;
409
409
  defaultPermissions?: {
@@ -421,8 +421,8 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
421
421
  } | undefined;
422
422
  apiKeys: {
423
423
  enabled?: {
424
- team?: boolean | undefined;
425
424
  user?: boolean | undefined;
425
+ team?: boolean | undefined;
426
426
  } | undefined;
427
427
  } | undefined;
428
428
  domains: (Omit<{
@@ -434,10 +434,10 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
434
434
  }> | undefined;
435
435
  }) | undefined;
436
436
  auth: (Omit<{
437
- allowSignUp?: boolean | undefined;
438
437
  password?: {
439
438
  allowSignIn?: boolean | undefined;
440
439
  } | undefined;
440
+ allowSignUp?: boolean | undefined;
441
441
  otp?: {
442
442
  allowSignIn?: boolean | undefined;
443
443
  } | undefined;
@@ -447,8 +447,8 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
447
447
  oauth?: {
448
448
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
449
449
  providers?: Record<string, {
450
- allowSignIn?: boolean | undefined;
451
450
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
451
+ allowSignIn?: boolean | undefined;
452
452
  allowConnectedAccounts?: boolean | undefined;
453
453
  }> | undefined;
454
454
  } | undefined;
@@ -456,18 +456,18 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
456
456
  oauth?: (Omit<{
457
457
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
458
458
  providers?: Record<string, {
459
- allowSignIn?: boolean | undefined;
460
459
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
460
+ allowSignIn?: boolean | undefined;
461
461
  allowConnectedAccounts?: boolean | undefined;
462
462
  }> | undefined;
463
463
  }, never> & {
464
464
  providers?: Record<string, {
465
- allowSignIn?: boolean | undefined;
466
465
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
467
- allowConnectedAccounts?: boolean | undefined;
468
- isShared?: boolean | undefined;
469
466
  clientId?: string | undefined;
470
467
  clientSecret?: string | undefined;
468
+ allowSignIn?: boolean | undefined;
469
+ allowConnectedAccounts?: boolean | undefined;
470
+ isShared?: boolean | undefined;
471
471
  facebookConfigId?: string | undefined;
472
472
  microsoftTenantId?: string | undefined;
473
473
  }> | undefined;
@@ -475,11 +475,11 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
475
475
  }) | undefined;
476
476
  emails: Omit<{}, never> & {
477
477
  server: {
478
- password?: string | undefined;
479
- isShared?: boolean | undefined;
480
478
  host?: string | undefined;
481
479
  port?: number | undefined;
482
480
  username?: string | undefined;
481
+ password?: string | undefined;
482
+ isShared?: boolean | undefined;
483
483
  senderName?: string | undefined;
484
484
  senderEmail?: string | undefined;
485
485
  };
@@ -13,7 +13,7 @@ declare const branchConfigSchema: yup.ObjectSchema<{} & {
13
13
  rbac: {
14
14
  permissions?: Record<string, {
15
15
  description?: string | undefined;
16
- scope?: "project" | "team" | undefined;
16
+ scope?: "team" | "project" | undefined;
17
17
  containedPermissionIds?: Record<string, true | undefined> | undefined;
18
18
  } | undefined> | undefined;
19
19
  defaultPermissions?: {
@@ -31,18 +31,18 @@ declare const branchConfigSchema: yup.ObjectSchema<{} & {
31
31
  } | undefined;
32
32
  apiKeys: {
33
33
  enabled?: {
34
- team?: boolean | undefined;
35
34
  user?: boolean | undefined;
35
+ team?: boolean | undefined;
36
36
  } | undefined;
37
37
  } | undefined;
38
38
  domains: {
39
39
  allowLocalhost?: boolean | undefined;
40
40
  } | undefined;
41
41
  auth: {
42
- allowSignUp?: boolean | undefined;
43
42
  password?: {
44
43
  allowSignIn?: boolean | undefined;
45
44
  } | undefined;
45
+ allowSignUp?: boolean | undefined;
46
46
  otp?: {
47
47
  allowSignIn?: boolean | undefined;
48
48
  } | undefined;
@@ -52,8 +52,8 @@ declare const branchConfigSchema: yup.ObjectSchema<{} & {
52
52
  oauth?: {
53
53
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
54
54
  providers?: Record<string, {
55
- allowSignIn?: boolean | undefined;
56
55
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
56
+ allowSignIn?: boolean | undefined;
57
57
  allowConnectedAccounts?: boolean | undefined;
58
58
  }> | undefined;
59
59
  } | undefined;
@@ -106,7 +106,7 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
106
106
  rbac: {
107
107
  permissions?: Record<string, {
108
108
  description?: string | undefined;
109
- scope?: "project" | "team" | undefined;
109
+ scope?: "team" | "project" | undefined;
110
110
  containedPermissionIds?: Record<string, true | undefined> | undefined;
111
111
  } | undefined> | undefined;
112
112
  defaultPermissions?: {
@@ -124,8 +124,8 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
124
124
  } | undefined;
125
125
  apiKeys: {
126
126
  enabled?: {
127
- team?: boolean | undefined;
128
127
  user?: boolean | undefined;
128
+ team?: boolean | undefined;
129
129
  } | undefined;
130
130
  } | undefined;
131
131
  domains: (Omit<{
@@ -137,10 +137,10 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
137
137
  }> | undefined;
138
138
  }) | undefined;
139
139
  auth: (Omit<{
140
- allowSignUp?: boolean | undefined;
141
140
  password?: {
142
141
  allowSignIn?: boolean | undefined;
143
142
  } | undefined;
143
+ allowSignUp?: boolean | undefined;
144
144
  otp?: {
145
145
  allowSignIn?: boolean | undefined;
146
146
  } | undefined;
@@ -150,8 +150,8 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
150
150
  oauth?: {
151
151
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
152
152
  providers?: Record<string, {
153
- allowSignIn?: boolean | undefined;
154
153
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
154
+ allowSignIn?: boolean | undefined;
155
155
  allowConnectedAccounts?: boolean | undefined;
156
156
  }> | undefined;
157
157
  } | undefined;
@@ -159,18 +159,18 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
159
159
  oauth?: (Omit<{
160
160
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
161
161
  providers?: Record<string, {
162
- allowSignIn?: boolean | undefined;
163
162
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
163
+ allowSignIn?: boolean | undefined;
164
164
  allowConnectedAccounts?: boolean | undefined;
165
165
  }> | undefined;
166
166
  }, never> & {
167
167
  providers?: Record<string, {
168
- allowSignIn?: boolean | undefined;
169
168
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
170
- allowConnectedAccounts?: boolean | undefined;
171
- isShared?: boolean | undefined;
172
169
  clientId?: string | undefined;
173
170
  clientSecret?: string | undefined;
171
+ allowSignIn?: boolean | undefined;
172
+ allowConnectedAccounts?: boolean | undefined;
173
+ isShared?: boolean | undefined;
174
174
  facebookConfigId?: string | undefined;
175
175
  microsoftTenantId?: string | undefined;
176
176
  }> | undefined;
@@ -178,21 +178,21 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
178
178
  }) | undefined;
179
179
  emails: Omit<{}, never> & {
180
180
  server: {
181
- password?: string | undefined;
182
- isShared?: boolean | undefined;
183
181
  host?: string | undefined;
184
182
  port?: number | undefined;
185
183
  username?: string | undefined;
184
+ password?: string | undefined;
185
+ isShared?: boolean | undefined;
186
186
  senderName?: string | undefined;
187
187
  senderEmail?: string | undefined;
188
188
  };
189
189
  };
190
190
  } & {
191
191
  auth: (Omit<{
192
- allowSignUp?: boolean | undefined;
193
192
  password?: {
194
193
  allowSignIn?: boolean | undefined;
195
194
  } | undefined;
195
+ allowSignUp?: boolean | undefined;
196
196
  otp?: {
197
197
  allowSignIn?: boolean | undefined;
198
198
  } | undefined;
@@ -202,8 +202,8 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
202
202
  oauth?: {
203
203
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
204
204
  providers?: Record<string, {
205
- allowSignIn?: boolean | undefined;
206
205
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
206
+ allowSignIn?: boolean | undefined;
207
207
  allowConnectedAccounts?: boolean | undefined;
208
208
  }> | undefined;
209
209
  } | undefined;
@@ -211,18 +211,18 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
211
211
  oauth?: (Omit<{
212
212
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
213
213
  providers?: Record<string, {
214
- allowSignIn?: boolean | undefined;
215
214
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
215
+ allowSignIn?: boolean | undefined;
216
216
  allowConnectedAccounts?: boolean | undefined;
217
217
  }> | undefined;
218
218
  }, never> & {
219
219
  providers?: Record<string, {
220
- allowSignIn?: boolean | undefined;
221
220
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
222
- allowConnectedAccounts?: boolean | undefined;
223
- isShared?: boolean | undefined;
224
221
  clientId?: string | undefined;
225
222
  clientSecret?: string | undefined;
223
+ allowSignIn?: boolean | undefined;
224
+ allowConnectedAccounts?: boolean | undefined;
225
+ isShared?: boolean | undefined;
226
226
  facebookConfigId?: string | undefined;
227
227
  microsoftTenantId?: string | undefined;
228
228
  }> | undefined;
@@ -230,11 +230,11 @@ declare const environmentConfigSchema: yup.ObjectSchema<{
230
230
  }) | undefined;
231
231
  emails: Omit<{}, never> & {
232
232
  server: {
233
- password?: string | undefined;
234
- isShared?: boolean | undefined;
235
233
  host?: string | undefined;
236
234
  port?: number | undefined;
237
235
  username?: string | undefined;
236
+ password?: string | undefined;
237
+ isShared?: boolean | undefined;
238
238
  senderName?: string | undefined;
239
239
  senderEmail?: string | undefined;
240
240
  };
@@ -403,7 +403,7 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
403
403
  rbac: {
404
404
  permissions?: Record<string, {
405
405
  description?: string | undefined;
406
- scope?: "project" | "team" | undefined;
406
+ scope?: "team" | "project" | undefined;
407
407
  containedPermissionIds?: Record<string, true | undefined> | undefined;
408
408
  } | undefined> | undefined;
409
409
  defaultPermissions?: {
@@ -421,8 +421,8 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
421
421
  } | undefined;
422
422
  apiKeys: {
423
423
  enabled?: {
424
- team?: boolean | undefined;
425
424
  user?: boolean | undefined;
425
+ team?: boolean | undefined;
426
426
  } | undefined;
427
427
  } | undefined;
428
428
  domains: (Omit<{
@@ -434,10 +434,10 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
434
434
  }> | undefined;
435
435
  }) | undefined;
436
436
  auth: (Omit<{
437
- allowSignUp?: boolean | undefined;
438
437
  password?: {
439
438
  allowSignIn?: boolean | undefined;
440
439
  } | undefined;
440
+ allowSignUp?: boolean | undefined;
441
441
  otp?: {
442
442
  allowSignIn?: boolean | undefined;
443
443
  } | undefined;
@@ -447,8 +447,8 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
447
447
  oauth?: {
448
448
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
449
449
  providers?: Record<string, {
450
- allowSignIn?: boolean | undefined;
451
450
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
451
+ allowSignIn?: boolean | undefined;
452
452
  allowConnectedAccounts?: boolean | undefined;
453
453
  }> | undefined;
454
454
  } | undefined;
@@ -456,18 +456,18 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
456
456
  oauth?: (Omit<{
457
457
  accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined;
458
458
  providers?: Record<string, {
459
- allowSignIn?: boolean | undefined;
460
459
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
460
+ allowSignIn?: boolean | undefined;
461
461
  allowConnectedAccounts?: boolean | undefined;
462
462
  }> | undefined;
463
463
  }, never> & {
464
464
  providers?: Record<string, {
465
- allowSignIn?: boolean | undefined;
466
465
  type?: "google" | "github" | "microsoft" | "spotify" | "facebook" | "discord" | "gitlab" | "bitbucket" | "linkedin" | "apple" | "x" | undefined;
467
- allowConnectedAccounts?: boolean | undefined;
468
- isShared?: boolean | undefined;
469
466
  clientId?: string | undefined;
470
467
  clientSecret?: string | undefined;
468
+ allowSignIn?: boolean | undefined;
469
+ allowConnectedAccounts?: boolean | undefined;
470
+ isShared?: boolean | undefined;
471
471
  facebookConfigId?: string | undefined;
472
472
  microsoftTenantId?: string | undefined;
473
473
  }> | undefined;
@@ -475,11 +475,11 @@ declare const organizationConfigSchema: yup.ObjectSchema<{
475
475
  }) | undefined;
476
476
  emails: Omit<{}, never> & {
477
477
  server: {
478
- password?: string | undefined;
479
- isShared?: boolean | undefined;
480
478
  host?: string | undefined;
481
479
  port?: number | undefined;
482
480
  username?: string | undefined;
481
+ password?: string | undefined;
482
+ isShared?: boolean | undefined;
483
483
  senderName?: string | undefined;
484
484
  senderEmail?: string | undefined;
485
485
  };
@@ -42,10 +42,10 @@ __export(schema_exports, {
42
42
  projectConfigSchema: () => projectConfigSchema
43
43
  });
44
44
  module.exports = __toCommonJS(schema_exports);
45
- var schemaFields = __toESM(require("../schema-fields"));
46
- var import_schema_fields = require("../schema-fields");
47
- var import_oauth = require("../utils/oauth");
48
- var import_objects = require("../utils/objects");
45
+ var schemaFields = __toESM(require("../schema-fields.js"));
46
+ var import_schema_fields = require("../schema-fields.js");
47
+ var import_oauth = require("../utils/oauth.js");
48
+ var import_objects = require("../utils/objects.js");
49
49
  var configLevels = ["project", "branch", "environment", "organization"];
50
50
  var permissionRegex = /^\$?[a-z0-9_:]+$/;
51
51
  var customPermissionRegex = /^[a-z0-9_:]+$/;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config/schema.ts"],"sourcesContent":["import * as yup from \"yup\";\nimport * as schemaFields from \"../schema-fields\";\nimport { yupBoolean, yupObject, yupRecord, yupString } from \"../schema-fields\";\nimport { allProviders } from \"../utils/oauth\";\nimport { DeepMerge, DeepPartial, get, has, isObjectLike, mapValues, set } from \"../utils/objects\";\nimport { PrettifyType } from \"../utils/types\";\nimport { Config, NormalizesTo } from \"./format\";\n\n// NOTE: The validation schemas in here are all schematic validators, not sanity-check validators.\n// For more info, see ./README.md\n\n\nexport const configLevels = ['project', 'branch', 'environment', 'organization'] as const;\nexport type ConfigLevel = typeof configLevels[number];\nconst permissionRegex = /^\\$?[a-z0-9_:]+$/;\nconst customPermissionRegex = /^[a-z0-9_:]+$/;\n\n/**\n * All fields that can be overridden at this level.\n */\nexport const projectConfigSchema = yupObject({});\n\n// --- NEW RBAC Schema ---\nconst branchRbacDefaultPermissions = yupRecord(\n yupString().optional().matches(permissionRegex),\n yupBoolean().isTrue().optional(),\n).optional();\n\nconst branchRbacSchema = yupObject({\n permissions: yupRecord(\n yupString().optional().matches(customPermissionRegex),\n yupObject({\n description: yupString().optional(),\n scope: yupString().oneOf(['team', 'project']).optional(),\n containedPermissionIds: yupRecord(\n yupString().optional().matches(permissionRegex),\n yupBoolean().isTrue().optional()\n ).optional(),\n }).optional(),\n ).optional(),\n defaultPermissions: yupObject({\n teamCreator: branchRbacDefaultPermissions,\n teamMember: branchRbacDefaultPermissions,\n signUp: branchRbacDefaultPermissions,\n }).optional(),\n}).optional();\n// --- END NEW RBAC Schema ---\n\n// --- NEW API Keys Schema ---\nconst branchApiKeysSchema = yupObject({\n enabled: yupObject({\n team: yupBoolean().optional(),\n user: yupBoolean().optional(),\n }).optional(),\n}).optional();\n// --- END NEW API Keys Schema ---\n\n\nconst branchAuthSchema = yupObject({\n allowSignUp: yupBoolean().optional(),\n password: yupObject({\n allowSignIn: yupBoolean().optional(),\n }).optional(),\n otp: yupObject({\n allowSignIn: yupBoolean().optional(),\n }).optional(),\n passkey: yupObject({\n allowSignIn: yupBoolean().optional(),\n }).optional(),\n oauth: yupObject({\n accountMergeStrategy: yupString().oneOf(['link_method', 'raise_error', 'allow_duplicates']).optional(),\n providers: yupRecord(\n yupString().optional().matches(permissionRegex),\n yupObject({\n type: yupString().oneOf(allProviders).optional(),\n allowSignIn: yupBoolean().optional(),\n allowConnectedAccounts: yupBoolean().optional(),\n }).defined(),\n ).optional(),\n }).optional(),\n}).optional();\n\nconst branchDomain = yupObject({\n allowLocalhost: yupBoolean().optional(),\n}).optional();\n\nexport const branchConfigSchema = projectConfigSchema.concat(yupObject({\n rbac: branchRbacSchema,\n\n teams: yupObject({\n createPersonalTeamOnSignUp: yupBoolean().optional(),\n allowClientTeamCreation: yupBoolean().optional(),\n }).optional(),\n\n users: yupObject({\n allowClientUserDeletion: yupBoolean().optional(),\n }).optional(),\n\n apiKeys: branchApiKeysSchema,\n\n domains: branchDomain,\n\n auth: branchAuthSchema,\n\n emails: yupObject({}),\n}));\n\n\nexport const environmentConfigSchema = branchConfigSchema.concat(yupObject({\n auth: branchConfigSchema.getNested(\"auth\").concat(yupObject({\n oauth: branchConfigSchema.getNested(\"auth\").getNested(\"oauth\").concat(yupObject({\n providers: yupRecord(\n yupString().optional().matches(permissionRegex),\n yupObject({\n type: yupString().oneOf(allProviders).optional(),\n isShared: yupBoolean().optional(),\n clientId: schemaFields.oauthClientIdSchema.optional(),\n clientSecret: schemaFields.oauthClientSecretSchema.optional(),\n facebookConfigId: schemaFields.oauthFacebookConfigIdSchema.optional(),\n microsoftTenantId: schemaFields.oauthMicrosoftTenantIdSchema.optional(),\n allowSignIn: yupBoolean().optional(),\n allowConnectedAccounts: yupBoolean().optional(),\n }),\n ).optional(),\n }).optional()),\n })),\n\n emails: branchConfigSchema.getNested(\"emails\").concat(yupObject({\n server: yupObject({\n isShared: yupBoolean().optional(),\n host: schemaFields.emailHostSchema.optional().nonEmpty(),\n port: schemaFields.emailPortSchema.optional(),\n username: schemaFields.emailUsernameSchema.optional().nonEmpty(),\n password: schemaFields.emailPasswordSchema.optional().nonEmpty(),\n senderName: schemaFields.emailSenderNameSchema.optional().nonEmpty(),\n senderEmail: schemaFields.emailSenderEmailSchema.optional().nonEmpty(),\n }),\n }).optional()),\n\n domains: branchConfigSchema.getNested(\"domains\").concat(yupObject({\n trustedDomains: yupRecord(\n yupString().uuid().optional(),\n yupObject({\n baseUrl: schemaFields.urlSchema.optional(),\n handlerPath: schemaFields.handlerPathSchema.optional(),\n }),\n ).optional(),\n })),\n}));\n\nexport const organizationConfigSchema = environmentConfigSchema.concat(yupObject({}));\n\n\n// Defaults\n// these are objects that are merged together to form the rendered config (see ./README.md)\n// Wherever an object could be used as a value, a function can instead be used to generate the default values on a per-key basis\nexport const projectConfigDefaults = {} satisfies DeepReplaceAllowFunctionsForObjects<ProjectConfigStrippedNormalizedOverride>;\n\nexport const branchConfigDefaults = {} satisfies DeepReplaceAllowFunctionsForObjects<BranchConfigStrippedNormalizedOverride>;\n\nexport const environmentConfigDefaults = {} satisfies DeepReplaceAllowFunctionsForObjects<EnvironmentConfigStrippedNormalizedOverride>;\n\nexport const organizationConfigDefaults = {\n rbac: {\n permissions: (key: string) => ({}),\n defaultPermissions: {\n teamCreator: {},\n teamMember: {},\n signUp: {},\n },\n },\n\n apiKeys: {\n enabled: {\n team: false,\n user: false,\n },\n },\n\n teams: {\n createPersonalTeamOnSignUp: false,\n allowClientTeamCreation: false,\n },\n\n users: {\n allowClientUserDeletion: false,\n },\n\n domains: {\n allowLocalhost: false,\n trustedDomains: (key: string) => ({\n handlerPath: '/handler',\n }),\n },\n\n auth: {\n allowSignUp: true,\n password: {\n allowSignIn: false,\n },\n otp: {\n allowSignIn: false,\n },\n passkey: {\n allowSignIn: false,\n },\n oauth: {\n accountMergeStrategy: 'link_method',\n providers: (key: string) => ({\n isShared: true,\n allowSignIn: false,\n allowConnectedAccounts: false,\n }),\n },\n },\n\n emails: {\n server: {\n isShared: true,\n },\n },\n} satisfies DeepReplaceAllowFunctionsForObjects<OrganizationConfigStrippedNormalizedOverride>;\n\nexport type DeepReplaceAllowFunctionsForObjects<T> = T extends object ? { [K in keyof T]: DeepReplaceAllowFunctionsForObjects<T[K]> } | ((arg: keyof T) => DeepReplaceAllowFunctionsForObjects<T[keyof T]>) : T;\nexport type DeepReplaceFunctionsWithObjects<T> = T extends (arg: infer K extends string) => infer R ? DeepReplaceFunctionsWithObjects<Record<K, R>> : (T extends object ? { [K in keyof T]: DeepReplaceFunctionsWithObjects<T[K]> } : T);\nexport type ApplyDefaults<D extends object | ((key: string) => unknown), C extends object> = DeepMerge<DeepReplaceFunctionsWithObjects<D>, C>;\nexport function applyDefaults<D extends object | ((key: string) => unknown), C extends object>(defaults: D, config: C): ApplyDefaults<D, C> {\n const res: any = typeof defaults === 'function' ? {} : mapValues(defaults, v => typeof v === 'function' ? {} : (typeof v === 'object' ? applyDefaults(v as any, {}) : v));\n for (const [key, mergeValue] of Object.entries(config)) {\n const baseValue = typeof defaults === 'function' ? defaults(key) : (has(defaults, key as any) ? get(defaults, key as any) : undefined);\n if (baseValue !== undefined) {\n if (isObjectLike(baseValue) && isObjectLike(mergeValue)) {\n set(res, key, applyDefaults(baseValue, mergeValue));\n continue;\n }\n }\n set(res, key, mergeValue);\n }\n return res as any;\n}\nundefined?.test(\"applyDefaults\", ({ expect }) => {\n expect(applyDefaults({ a: 1 }, { a: 2 })).toEqual({ a: 2 });\n expect(applyDefaults({ a: { b: 1 } }, { a: { c: 2 } })).toEqual({ a: { b: 1, c: 2 } });\n expect(applyDefaults((key: string) => ({ b: key }), { a: {} })).toEqual({ a: { b: \"a\" } });\n expect(applyDefaults({ a: (key: string) => ({ b: key }) }, { a: { c: { d: 1 } } })).toEqual({ a: { c: { b: \"c\", d: 1 } } });\n expect(applyDefaults({ a: (key: string) => ({ b: key }) }, {})).toEqual({ a: {} });\n expect(applyDefaults({ a: { b: (key: string) => ({ b: key }) } }, {})).toEqual({ a: { b: {} } });\n});\n\n// Normalized overrides\nexport type ProjectConfigNormalizedOverride = yup.InferType<typeof projectConfigSchema>;\nexport type BranchConfigNormalizedOverride = yup.InferType<typeof branchConfigSchema>;\nexport type EnvironmentConfigNormalizedOverride = yup.InferType<typeof environmentConfigSchema>;\nexport type OrganizationConfigNormalizedOverride = yup.InferType<typeof organizationConfigSchema>;\n\n// Normalized overrides, without the properties that may be overridden still\nexport type ProjectConfigStrippedNormalizedOverride = Omit<ProjectConfigNormalizedOverride,\n | keyof BranchConfigNormalizedOverride\n | keyof EnvironmentConfigNormalizedOverride\n | keyof OrganizationConfigNormalizedOverride\n>;\nexport type BranchConfigStrippedNormalizedOverride = Omit<BranchConfigNormalizedOverride,\n | keyof EnvironmentConfigNormalizedOverride\n | keyof OrganizationConfigNormalizedOverride\n>;\nexport type EnvironmentConfigStrippedNormalizedOverride = Omit<EnvironmentConfigNormalizedOverride,\n | keyof OrganizationConfigNormalizedOverride\n>;\nexport type OrganizationConfigStrippedNormalizedOverride = OrganizationConfigNormalizedOverride;\n\n// Overrides\nexport type ProjectConfigOverride = NormalizesTo<ProjectConfigNormalizedOverride>;\nexport type BranchConfigOverride = NormalizesTo<BranchConfigNormalizedOverride>;\nexport type EnvironmentConfigOverride = NormalizesTo<EnvironmentConfigNormalizedOverride>;\nexport type OrganizationConfigOverride = NormalizesTo<OrganizationConfigNormalizedOverride>;\n\n// Override overrides (used to update the overrides)\nexport type ProjectConfigOverrideOverride = Config & DeepPartial<ProjectConfigOverride>;\nexport type BranchConfigOverrideOverride = Config & DeepPartial<BranchConfigOverride>;\nexport type EnvironmentConfigOverrideOverride = Config & DeepPartial<EnvironmentConfigOverride>;\nexport type OrganizationConfigOverrideOverride = Config & DeepPartial<OrganizationConfigOverride>;\n\n// Incomplete configs\nexport type ProjectIncompleteConfig = ProjectConfigNormalizedOverride;\nexport type BranchIncompleteConfig = ProjectIncompleteConfig & BranchConfigNormalizedOverride;\nexport type EnvironmentIncompleteConfig = BranchIncompleteConfig & EnvironmentConfigNormalizedOverride;\nexport type OrganizationIncompleteConfig = EnvironmentIncompleteConfig & OrganizationConfigNormalizedOverride;\n\n// Rendered configs\nexport type ProjectRenderedConfig = PrettifyType<ApplyDefaults<typeof projectConfigDefaults, ProjectConfigStrippedNormalizedOverride>>;\nexport type BranchRenderedConfig = PrettifyType<ProjectRenderedConfig & ApplyDefaults<typeof branchConfigDefaults, BranchConfigStrippedNormalizedOverride>>;\nexport type EnvironmentRenderedConfig = PrettifyType<BranchRenderedConfig & ApplyDefaults<typeof environmentConfigDefaults, EnvironmentConfigStrippedNormalizedOverride>>;\nexport type OrganizationRenderedConfig = PrettifyType<EnvironmentRenderedConfig & ApplyDefaults<typeof organizationConfigDefaults, OrganizationConfigStrippedNormalizedOverride>>;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/config/schema.ts"],"sourcesContent":["import * as yup from \"yup\";\nimport * as schemaFields from \"../schema-fields\";\nimport { yupBoolean, yupObject, yupRecord, yupString } from \"../schema-fields\";\nimport { allProviders } from \"../utils/oauth\";\nimport { DeepMerge, DeepPartial, get, has, isObjectLike, mapValues, set } from \"../utils/objects\";\nimport { PrettifyType } from \"../utils/types\";\nimport { Config, NormalizesTo } from \"./format\";\n\n// NOTE: The validation schemas in here are all schematic validators, not sanity-check validators.\n// For more info, see ./README.md\n\n\nexport const configLevels = ['project', 'branch', 'environment', 'organization'] as const;\nexport type ConfigLevel = typeof configLevels[number];\nconst permissionRegex = /^\\$?[a-z0-9_:]+$/;\nconst customPermissionRegex = /^[a-z0-9_:]+$/;\n\n/**\n * All fields that can be overridden at this level.\n */\nexport const projectConfigSchema = yupObject({});\n\n// --- NEW RBAC Schema ---\nconst branchRbacDefaultPermissions = yupRecord(\n yupString().optional().matches(permissionRegex),\n yupBoolean().isTrue().optional(),\n).optional();\n\nconst branchRbacSchema = yupObject({\n permissions: yupRecord(\n yupString().optional().matches(customPermissionRegex),\n yupObject({\n description: yupString().optional(),\n scope: yupString().oneOf(['team', 'project']).optional(),\n containedPermissionIds: yupRecord(\n yupString().optional().matches(permissionRegex),\n yupBoolean().isTrue().optional()\n ).optional(),\n }).optional(),\n ).optional(),\n defaultPermissions: yupObject({\n teamCreator: branchRbacDefaultPermissions,\n teamMember: branchRbacDefaultPermissions,\n signUp: branchRbacDefaultPermissions,\n }).optional(),\n}).optional();\n// --- END NEW RBAC Schema ---\n\n// --- NEW API Keys Schema ---\nconst branchApiKeysSchema = yupObject({\n enabled: yupObject({\n team: yupBoolean().optional(),\n user: yupBoolean().optional(),\n }).optional(),\n}).optional();\n// --- END NEW API Keys Schema ---\n\n\nconst branchAuthSchema = yupObject({\n allowSignUp: yupBoolean().optional(),\n password: yupObject({\n allowSignIn: yupBoolean().optional(),\n }).optional(),\n otp: yupObject({\n allowSignIn: yupBoolean().optional(),\n }).optional(),\n passkey: yupObject({\n allowSignIn: yupBoolean().optional(),\n }).optional(),\n oauth: yupObject({\n accountMergeStrategy: yupString().oneOf(['link_method', 'raise_error', 'allow_duplicates']).optional(),\n providers: yupRecord(\n yupString().optional().matches(permissionRegex),\n yupObject({\n type: yupString().oneOf(allProviders).optional(),\n allowSignIn: yupBoolean().optional(),\n allowConnectedAccounts: yupBoolean().optional(),\n }).defined(),\n ).optional(),\n }).optional(),\n}).optional();\n\nconst branchDomain = yupObject({\n allowLocalhost: yupBoolean().optional(),\n}).optional();\n\nexport const branchConfigSchema = projectConfigSchema.concat(yupObject({\n rbac: branchRbacSchema,\n\n teams: yupObject({\n createPersonalTeamOnSignUp: yupBoolean().optional(),\n allowClientTeamCreation: yupBoolean().optional(),\n }).optional(),\n\n users: yupObject({\n allowClientUserDeletion: yupBoolean().optional(),\n }).optional(),\n\n apiKeys: branchApiKeysSchema,\n\n domains: branchDomain,\n\n auth: branchAuthSchema,\n\n emails: yupObject({}),\n}));\n\n\nexport const environmentConfigSchema = branchConfigSchema.concat(yupObject({\n auth: branchConfigSchema.getNested(\"auth\").concat(yupObject({\n oauth: branchConfigSchema.getNested(\"auth\").getNested(\"oauth\").concat(yupObject({\n providers: yupRecord(\n yupString().optional().matches(permissionRegex),\n yupObject({\n type: yupString().oneOf(allProviders).optional(),\n isShared: yupBoolean().optional(),\n clientId: schemaFields.oauthClientIdSchema.optional(),\n clientSecret: schemaFields.oauthClientSecretSchema.optional(),\n facebookConfigId: schemaFields.oauthFacebookConfigIdSchema.optional(),\n microsoftTenantId: schemaFields.oauthMicrosoftTenantIdSchema.optional(),\n allowSignIn: yupBoolean().optional(),\n allowConnectedAccounts: yupBoolean().optional(),\n }),\n ).optional(),\n }).optional()),\n })),\n\n emails: branchConfigSchema.getNested(\"emails\").concat(yupObject({\n server: yupObject({\n isShared: yupBoolean().optional(),\n host: schemaFields.emailHostSchema.optional().nonEmpty(),\n port: schemaFields.emailPortSchema.optional(),\n username: schemaFields.emailUsernameSchema.optional().nonEmpty(),\n password: schemaFields.emailPasswordSchema.optional().nonEmpty(),\n senderName: schemaFields.emailSenderNameSchema.optional().nonEmpty(),\n senderEmail: schemaFields.emailSenderEmailSchema.optional().nonEmpty(),\n }),\n }).optional()),\n\n domains: branchConfigSchema.getNested(\"domains\").concat(yupObject({\n trustedDomains: yupRecord(\n yupString().uuid().optional(),\n yupObject({\n baseUrl: schemaFields.urlSchema.optional(),\n handlerPath: schemaFields.handlerPathSchema.optional(),\n }),\n ).optional(),\n })),\n}));\n\nexport const organizationConfigSchema = environmentConfigSchema.concat(yupObject({}));\n\n\n// Defaults\n// these are objects that are merged together to form the rendered config (see ./README.md)\n// Wherever an object could be used as a value, a function can instead be used to generate the default values on a per-key basis\n// NOTE: These values are the defaults of the schema, NOT the defaults for newly created projects. The values here signify what `null` means for each property. If you want new projects by default to have a certain value set to true, you should update the corresponding function in the backend instead.\nexport const projectConfigDefaults = {} satisfies DeepReplaceAllowFunctionsForObjects<ProjectConfigStrippedNormalizedOverride>;\n\nexport const branchConfigDefaults = {} satisfies DeepReplaceAllowFunctionsForObjects<BranchConfigStrippedNormalizedOverride>;\n\nexport const environmentConfigDefaults = {} satisfies DeepReplaceAllowFunctionsForObjects<EnvironmentConfigStrippedNormalizedOverride>;\n\nexport const organizationConfigDefaults = {\n rbac: {\n permissions: (key: string) => ({}),\n defaultPermissions: {\n teamCreator: {},\n teamMember: {},\n signUp: {},\n },\n },\n\n apiKeys: {\n enabled: {\n team: false,\n user: false,\n },\n },\n\n teams: {\n createPersonalTeamOnSignUp: false,\n allowClientTeamCreation: false,\n },\n\n users: {\n allowClientUserDeletion: false,\n },\n\n domains: {\n allowLocalhost: false,\n trustedDomains: (key: string) => ({\n handlerPath: '/handler',\n }),\n },\n\n auth: {\n allowSignUp: true,\n password: {\n allowSignIn: false,\n },\n otp: {\n allowSignIn: false,\n },\n passkey: {\n allowSignIn: false,\n },\n oauth: {\n accountMergeStrategy: 'link_method',\n providers: (key: string) => ({\n isShared: true,\n allowSignIn: false,\n allowConnectedAccounts: false,\n }),\n },\n },\n\n emails: {\n server: {\n isShared: true,\n },\n },\n} satisfies DeepReplaceAllowFunctionsForObjects<OrganizationConfigStrippedNormalizedOverride>;\n\nexport type DeepReplaceAllowFunctionsForObjects<T> = T extends object ? { [K in keyof T]: DeepReplaceAllowFunctionsForObjects<T[K]> } | ((arg: keyof T) => DeepReplaceAllowFunctionsForObjects<T[keyof T]>) : T;\nexport type DeepReplaceFunctionsWithObjects<T> = T extends (arg: infer K extends string) => infer R ? DeepReplaceFunctionsWithObjects<Record<K, R>> : (T extends object ? { [K in keyof T]: DeepReplaceFunctionsWithObjects<T[K]> } : T);\nexport type ApplyDefaults<D extends object | ((key: string) => unknown), C extends object> = DeepMerge<DeepReplaceFunctionsWithObjects<D>, C>;\nexport function applyDefaults<D extends object | ((key: string) => unknown), C extends object>(defaults: D, config: C): ApplyDefaults<D, C> {\n const res: any = typeof defaults === 'function' ? {} : mapValues(defaults, v => typeof v === 'function' ? {} : (typeof v === 'object' ? applyDefaults(v as any, {}) : v));\n for (const [key, mergeValue] of Object.entries(config)) {\n const baseValue = typeof defaults === 'function' ? defaults(key) : (has(defaults, key as any) ? get(defaults, key as any) : undefined);\n if (baseValue !== undefined) {\n if (isObjectLike(baseValue) && isObjectLike(mergeValue)) {\n set(res, key, applyDefaults(baseValue, mergeValue));\n continue;\n }\n }\n set(res, key, mergeValue);\n }\n return res as any;\n}\nundefined?.test(\"applyDefaults\", ({ expect }) => {\n expect(applyDefaults({ a: 1 }, { a: 2 })).toEqual({ a: 2 });\n expect(applyDefaults({ a: { b: 1 } }, { a: { c: 2 } })).toEqual({ a: { b: 1, c: 2 } });\n expect(applyDefaults((key: string) => ({ b: key }), { a: {} })).toEqual({ a: { b: \"a\" } });\n expect(applyDefaults({ a: (key: string) => ({ b: key }) }, { a: { c: { d: 1 } } })).toEqual({ a: { c: { b: \"c\", d: 1 } } });\n expect(applyDefaults({ a: (key: string) => ({ b: key }) }, {})).toEqual({ a: {} });\n expect(applyDefaults({ a: { b: (key: string) => ({ b: key }) } }, {})).toEqual({ a: { b: {} } });\n});\n\n// Normalized overrides\nexport type ProjectConfigNormalizedOverride = yup.InferType<typeof projectConfigSchema>;\nexport type BranchConfigNormalizedOverride = yup.InferType<typeof branchConfigSchema>;\nexport type EnvironmentConfigNormalizedOverride = yup.InferType<typeof environmentConfigSchema>;\nexport type OrganizationConfigNormalizedOverride = yup.InferType<typeof organizationConfigSchema>;\n\n// Normalized overrides, without the properties that may be overridden still\nexport type ProjectConfigStrippedNormalizedOverride = Omit<ProjectConfigNormalizedOverride,\n | keyof BranchConfigNormalizedOverride\n | keyof EnvironmentConfigNormalizedOverride\n | keyof OrganizationConfigNormalizedOverride\n>;\nexport type BranchConfigStrippedNormalizedOverride = Omit<BranchConfigNormalizedOverride,\n | keyof EnvironmentConfigNormalizedOverride\n | keyof OrganizationConfigNormalizedOverride\n>;\nexport type EnvironmentConfigStrippedNormalizedOverride = Omit<EnvironmentConfigNormalizedOverride,\n | keyof OrganizationConfigNormalizedOverride\n>;\nexport type OrganizationConfigStrippedNormalizedOverride = OrganizationConfigNormalizedOverride;\n\n// Overrides\nexport type ProjectConfigOverride = NormalizesTo<ProjectConfigNormalizedOverride>;\nexport type BranchConfigOverride = NormalizesTo<BranchConfigNormalizedOverride>;\nexport type EnvironmentConfigOverride = NormalizesTo<EnvironmentConfigNormalizedOverride>;\nexport type OrganizationConfigOverride = NormalizesTo<OrganizationConfigNormalizedOverride>;\n\n// Override overrides (used to update the overrides)\nexport type ProjectConfigOverrideOverride = Config & DeepPartial<ProjectConfigOverride>;\nexport type BranchConfigOverrideOverride = Config & DeepPartial<BranchConfigOverride>;\nexport type EnvironmentConfigOverrideOverride = Config & DeepPartial<EnvironmentConfigOverride>;\nexport type OrganizationConfigOverrideOverride = Config & DeepPartial<OrganizationConfigOverride>;\n\n// Incomplete configs\nexport type ProjectIncompleteConfig = ProjectConfigNormalizedOverride;\nexport type BranchIncompleteConfig = ProjectIncompleteConfig & BranchConfigNormalizedOverride;\nexport type EnvironmentIncompleteConfig = BranchIncompleteConfig & EnvironmentConfigNormalizedOverride;\nexport type OrganizationIncompleteConfig = EnvironmentIncompleteConfig & OrganizationConfigNormalizedOverride;\n\n// Rendered configs\nexport type ProjectRenderedConfig = PrettifyType<ApplyDefaults<typeof projectConfigDefaults, ProjectConfigStrippedNormalizedOverride>>;\nexport type BranchRenderedConfig = PrettifyType<ProjectRenderedConfig & ApplyDefaults<typeof branchConfigDefaults, BranchConfigStrippedNormalizedOverride>>;\nexport type EnvironmentRenderedConfig = PrettifyType<BranchRenderedConfig & ApplyDefaults<typeof environmentConfigDefaults, EnvironmentConfigStrippedNormalizedOverride>>;\nexport type OrganizationRenderedConfig = PrettifyType<EnvironmentRenderedConfig & ApplyDefaults<typeof organizationConfigDefaults, OrganizationConfigStrippedNormalizedOverride>>;\n"],"mappings":"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","names":[]}
package/dist/crud.js CHANGED
@@ -23,8 +23,8 @@ __export(crud_exports, {
23
23
  createCrud: () => createCrud
24
24
  });
25
25
  module.exports = __toCommonJS(crud_exports);
26
- var import_schema_fields = require("./schema-fields");
27
- var import_objects = require("./utils/objects");
26
+ var import_schema_fields = require("./schema-fields.js");
27
+ var import_objects = require("./utils/objects.js");
28
28
  function createCrud(options) {
29
29
  const docs = options.docs ?? {};
30
30
  const client = {
@@ -1,6 +1,6 @@
1
1
  // src/config/format.ts
2
- import { StackAssertionError, throwErr } from "../utils/errors";
3
- import { deleteKey, filterUndefined, get, hasAndNotUndefined, set } from "../utils/objects";
2
+ import { StackAssertionError, throwErr } from "../utils/errors.js";
3
+ import { deleteKey, filterUndefined, get, hasAndNotUndefined, set } from "../utils/objects.js";
4
4
  function isValidConfig(c) {
5
5
  return getInvalidConfigReason(c) === void 0;
6
6
  }