@logto/cloud 0.2.5-ab8a489 → 0.2.5-af943a1

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 (2) hide show
  1. package/lib/routes/index.d.ts +910 -119
  2. package/package.json +11 -10
@@ -3,21 +3,27 @@
3
3
  import { Json, JsonObject, RequestContext } from '@withtyped/server';
4
4
  import { InferModelType } from '@withtyped/server/model';
5
5
 
6
- export type WithAuthContext<Context = RequestContext> = Context & {
7
- auth: {
8
- /** The ID of the authenticated subject (`sub`). */
9
- id: string;
10
- /** The scopes that the subject has (`scope`). */
11
- scopes: string[];
12
- };
13
- };
14
- declare enum VerificationCodeType {
15
- SignIn = "SignIn",
16
- Register = "Register",
17
- ForgotPassword = "ForgotPassword",
18
- Generic = "Generic",
19
- /** @deprecated Use `Generic` type template for sending test sms/email use case */
20
- Test = "Test"
6
+ declare const availableReportableUsageKeys: readonly [
7
+ "tokenLimit",
8
+ "machineToMachineLimit",
9
+ "resourcesLimit",
10
+ "enterpriseSsoLimit",
11
+ "hooksLimit",
12
+ "tenantMembersLimit",
13
+ "mfaEnabled",
14
+ "organizationsEnabled",
15
+ "organizationsLimit",
16
+ "securityFeaturesEnabled",
17
+ "userRolesLimit",
18
+ "machineToMachineRolesLimit",
19
+ "thirdPartyApplicationsLimit",
20
+ "samlApplicationsLimit"
21
+ ];
22
+ export type ReportableUsageKey = (typeof availableReportableUsageKeys)[number];
23
+ export type RealtimeReportableUsageKey = Exclude<ReportableUsageKey, "tokenLimit">;
24
+ declare enum LogtoSkuType {
25
+ Basic = "Basic",
26
+ AddOn = "AddOn"
21
27
  }
22
28
  declare enum TemplateType {
23
29
  /** The template for sending verification code when user is signing in. */
@@ -29,7 +35,15 @@ declare enum TemplateType {
29
35
  /** The template for sending organization invitation. */
30
36
  OrganizationInvitation = "OrganizationInvitation",
31
37
  /** The template for generic usage. */
32
- Generic = "Generic"
38
+ Generic = "Generic",
39
+ /** The template for validating user permission for sensitive operations. */
40
+ UserPermissionValidation = "UserPermissionValidation",
41
+ /** The template for binding a new identifier to an existing account. */
42
+ BindNewIdentifier = "BindNewIdentifier",
43
+ /** The template for sending MFA verification code. */
44
+ MfaVerification = "MfaVerification",
45
+ /** The template for binding MFA verification. */
46
+ BindMfa = "BindMfa"
33
47
  }
34
48
  declare enum OrganizationInvitationStatus {
35
49
  Pending = "Pending",
@@ -37,6 +51,16 @@ declare enum OrganizationInvitationStatus {
37
51
  Expired = "Expired",
38
52
  Revoked = "Revoked"
39
53
  }
54
+ /** The scopes (permissions) defined by the organization template. */
55
+ export type OrganizationScope = {
56
+ tenantId: string;
57
+ /** The globally unique identifier of the organization scope. */
58
+ id: string;
59
+ /** The organization scope's name, unique within the organization template. */
60
+ name: string;
61
+ /** A brief description of the organization scope. */
62
+ description: string | null;
63
+ };
40
64
  declare enum LogtoJwtTokenKeyType {
41
65
  AccessToken = "access-token",
42
66
  ClientCredentials = "client-credentials"
@@ -72,11 +96,51 @@ declare const Affiliates: import("@withtyped/server/lib/model/index.js").default
72
96
  id: string;
73
97
  }, "id" | "createdAt", "id" | "createdAt">;
74
98
  export type Affiliate = InferModelType<typeof Affiliates>;
99
+ declare const publicRegionNames: readonly [
100
+ "EU",
101
+ "US",
102
+ "AU",
103
+ "JP"
104
+ ];
105
+ /** The type of region names for the public cloud. */
106
+ export type PublicRegionName = (typeof publicRegionNames)[number];
107
+ declare enum DatabaseRegionAccessRole {
108
+ /** Instance administrator - can manage collaborators and create tenants */
109
+ Admin = "admin",
110
+ /** Collaborator user - can only create tenants in the instance */
111
+ Collaborator = "collaborator"
112
+ }
113
+ declare const Regions: import("@withtyped/server/lib/model/index.js").default<"regions", {
114
+ createdAt: Date;
115
+ name: string;
116
+ isPrivate: boolean;
117
+ displayName: string;
118
+ country: string;
119
+ dbUrl: string;
120
+ redisUrl: string | null;
121
+ tags: TenantTag[];
122
+ }, "createdAt" | "tags" | "isPrivate", "createdAt">;
123
+ export type Region = InferModelType<typeof Regions>;
75
124
  export type AffiliateData = Affiliate & {
76
125
  properties: Array<Pick<AffiliateProperty, "type" | "value">>;
77
126
  };
127
+ export type RegionResponse = Pick<Region, "name" | "displayName" | "country" | "isPrivate" | "tags"> & {
128
+ /**
129
+ * @deprecated Temporary field for backward compatibility, will be removed in the future.
130
+ */
131
+ id: string;
132
+ };
133
+ export type WithAuthContext<Context = RequestContext> = Context & {
134
+ auth: {
135
+ /** The ID of the authenticated subject (`sub`). */
136
+ id: string;
137
+ /** The scopes that the subject has (`scope`). */
138
+ scopes: string[];
139
+ };
140
+ };
78
141
  declare const router: import("@withtyped/server").Router<RequestContext, WithAuthContext<Omit<import("@withtyped/server").BaseContext & {
79
142
  request: {
143
+ id?: string | undefined;
80
144
  method?: import("@withtyped/server").RequestMethod | undefined;
81
145
  headers: import("http").IncomingHttpHeaders;
82
146
  url: URL;
@@ -84,6 +148,7 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
84
148
  };
85
149
  }, "request"> & {
86
150
  request: Record<string, unknown> & {
151
+ id?: string | undefined;
87
152
  method?: import("@withtyped/server").RequestMethod | undefined;
88
153
  headers: import("http").IncomingHttpHeaders;
89
154
  url: URL;
@@ -92,16 +157,20 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
92
157
  body?: Json | undefined;
93
158
  bodyRaw?: Buffer | undefined;
94
159
  };
95
- }>, import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").BaseRoutes, import("@withtyped/server").RoutesWithPrefix<{
160
+ }>, import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").MergeRoutes<import("@withtyped/server").BaseRoutes, import("@withtyped/server").RoutesWithPrefix<{
96
161
  patch: {
97
162
  "/tenants/:tenantId": import("@withtyped/server").PathGuard<"/:tenantId", unknown, {
98
163
  name?: string | undefined;
99
164
  }, {
100
165
  id: string;
101
166
  name: string;
167
+ createdAt: Date;
168
+ quota: {
169
+ mauLimit: number | null;
170
+ tokenLimit: number | null;
171
+ };
102
172
  usage: {
103
173
  activeUsers: number;
104
- cost: number;
105
174
  tokenUsage: number;
106
175
  };
107
176
  indicator: string;
@@ -112,11 +181,21 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
112
181
  planId: string;
113
182
  currentPeriodStart: Date;
114
183
  currentPeriodEnd: Date;
184
+ isEnterprisePlan: boolean;
185
+ id?: string | undefined;
186
+ upcomingInvoice?: {
187
+ subtotal: number;
188
+ subtotalExcludingTax: number | null;
189
+ total: number;
190
+ totalExcludingTax: number | null;
191
+ } | null | undefined;
115
192
  };
193
+ regionName: string;
194
+ tag: TenantTag;
116
195
  openInvoices: {
117
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
118
196
  id: string;
119
197
  createdAt: Date;
198
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
120
199
  updatedAt: Date;
121
200
  customerId: string | null;
122
201
  billingReason: string | null;
@@ -124,11 +203,16 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
124
203
  periodEnd: Date;
125
204
  amountDue: number;
126
205
  amountPaid: number;
206
+ basicSkuId: string | null;
127
207
  subscriptionId: string | null;
128
208
  hostedInvoiceUrl: string | null;
129
209
  invoicePdf: string | null;
210
+ collectionMethod: "charge_automatically" | "send_invoice" | null;
211
+ dueDate: Date | null;
130
212
  }[];
131
- tag: TenantTag;
213
+ featureFlags?: {
214
+ isMultipleCustomDomainsEnabled?: boolean | undefined;
215
+ } | undefined;
132
216
  }>;
133
217
  };
134
218
  options: {};
@@ -136,9 +220,13 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
136
220
  "/tenants": import("@withtyped/server").PathGuard<"/", unknown, unknown, {
137
221
  id: string;
138
222
  name: string;
223
+ createdAt: Date;
224
+ quota: {
225
+ mauLimit: number | null;
226
+ tokenLimit: number | null;
227
+ };
139
228
  usage: {
140
229
  activeUsers: number;
141
- cost: number;
142
230
  tokenUsage: number;
143
231
  };
144
232
  indicator: string;
@@ -149,11 +237,21 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
149
237
  planId: string;
150
238
  currentPeriodStart: Date;
151
239
  currentPeriodEnd: Date;
240
+ isEnterprisePlan: boolean;
241
+ id?: string | undefined;
242
+ upcomingInvoice?: {
243
+ subtotal: number;
244
+ subtotalExcludingTax: number | null;
245
+ total: number;
246
+ totalExcludingTax: number | null;
247
+ } | null | undefined;
152
248
  };
249
+ regionName: string;
250
+ tag: TenantTag;
153
251
  openInvoices: {
154
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
155
252
  id: string;
156
253
  createdAt: Date;
254
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
157
255
  updatedAt: Date;
158
256
  customerId: string | null;
159
257
  billingReason: string | null;
@@ -161,23 +259,34 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
161
259
  periodEnd: Date;
162
260
  amountDue: number;
163
261
  amountPaid: number;
262
+ basicSkuId: string | null;
164
263
  subscriptionId: string | null;
165
264
  hostedInvoiceUrl: string | null;
166
265
  invoicePdf: string | null;
266
+ collectionMethod: "charge_automatically" | "send_invoice" | null;
267
+ dueDate: Date | null;
167
268
  }[];
168
- tag: TenantTag;
269
+ featureFlags?: {
270
+ isMultipleCustomDomainsEnabled?: boolean | undefined;
271
+ } | undefined;
169
272
  }[]>;
170
273
  };
171
274
  post: {
172
275
  "/tenants": import("@withtyped/server").PathGuard<"/", unknown, {
276
+ id?: string | undefined;
173
277
  name?: string | undefined;
278
+ regionName?: string | undefined;
174
279
  tag?: TenantTag | undefined;
175
280
  }, {
176
281
  id: string;
177
282
  name: string;
283
+ createdAt: Date;
284
+ quota: {
285
+ mauLimit: number | null;
286
+ tokenLimit: number | null;
287
+ };
178
288
  usage: {
179
289
  activeUsers: number;
180
- cost: number;
181
290
  tokenUsage: number;
182
291
  };
183
292
  indicator: string;
@@ -188,11 +297,21 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
188
297
  planId: string;
189
298
  currentPeriodStart: Date;
190
299
  currentPeriodEnd: Date;
300
+ isEnterprisePlan: boolean;
301
+ id?: string | undefined;
302
+ upcomingInvoice?: {
303
+ subtotal: number;
304
+ subtotalExcludingTax: number | null;
305
+ total: number;
306
+ totalExcludingTax: number | null;
307
+ } | null | undefined;
191
308
  };
309
+ regionName: string;
310
+ tag: TenantTag;
192
311
  openInvoices: {
193
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
194
312
  id: string;
195
313
  createdAt: Date;
314
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
196
315
  updatedAt: Date;
197
316
  customerId: string | null;
198
317
  billingReason: string | null;
@@ -200,12 +319,27 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
200
319
  periodEnd: Date;
201
320
  amountDue: number;
202
321
  amountPaid: number;
322
+ basicSkuId: string | null;
203
323
  subscriptionId: string | null;
204
324
  hostedInvoiceUrl: string | null;
205
325
  invoicePdf: string | null;
326
+ collectionMethod: "charge_automatically" | "send_invoice" | null;
327
+ dueDate: Date | null;
206
328
  }[];
207
- tag: TenantTag;
329
+ featureFlags?: {
330
+ isMultipleCustomDomainsEnabled?: boolean | undefined;
331
+ } | undefined;
208
332
  }>;
333
+ } & {
334
+ "/tenants/subscriptions/plan": import("@withtyped/server").PathGuard<"/subscriptions/plan", unknown, {
335
+ planId: string;
336
+ tenantIds: string[];
337
+ }, {
338
+ tenantId: string;
339
+ success: boolean;
340
+ error?: string | undefined;
341
+ updatedLineItems?: unknown[] | undefined;
342
+ }[]>;
209
343
  };
210
344
  put: {};
211
345
  delete: {
@@ -219,23 +353,311 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
219
353
  get: {
220
354
  "/tenants/my/subscription": import("@withtyped/server").PathGuard<"/my/subscription", unknown, unknown, {
221
355
  status: "incomplete" | "incomplete_expired" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" | "paused";
356
+ quota: {
357
+ auditLogsRetentionDays: number | null;
358
+ mauLimit: number | null;
359
+ applicationsLimit: number | null;
360
+ thirdPartyApplicationsLimit: number | null;
361
+ scopesPerResourceLimit: number | null;
362
+ socialConnectorsLimit: number | null;
363
+ userRolesLimit: number | null;
364
+ machineToMachineRolesLimit: number | null;
365
+ scopesPerRoleLimit: number | null;
366
+ hooksLimit: number | null;
367
+ customJwtEnabled: boolean;
368
+ subjectTokenEnabled: boolean;
369
+ bringYourUiEnabled: boolean;
370
+ collectUserProfileEnabled: boolean;
371
+ tokenLimit: number | null;
372
+ machineToMachineLimit: number | null;
373
+ resourcesLimit: number | null;
374
+ enterpriseSsoLimit: number | null;
375
+ tenantMembersLimit: number | null;
376
+ mfaEnabled: boolean;
377
+ organizationsEnabled: boolean;
378
+ organizationsLimit: number | null;
379
+ securityFeaturesEnabled: boolean;
380
+ idpInitiatedSsoEnabled: boolean;
381
+ samlApplicationsLimit: number | null;
382
+ };
222
383
  planId: string;
223
384
  currentPeriodStart: Date;
224
385
  currentPeriodEnd: Date;
386
+ isEnterprisePlan: boolean;
387
+ id?: string | undefined;
388
+ upcomingInvoice?: {
389
+ subtotal: number;
390
+ subtotalExcludingTax: number | null;
391
+ total: number;
392
+ totalExcludingTax: number | null;
393
+ } | null | undefined;
394
+ systemLimit?: {
395
+ applicationsLimit?: number | null | undefined;
396
+ thirdPartyApplicationsLimit?: number | null | undefined;
397
+ scopesPerResourceLimit?: number | null | undefined;
398
+ socialConnectorsLimit?: number | null | undefined;
399
+ userRolesLimit?: number | null | undefined;
400
+ machineToMachineRolesLimit?: number | null | undefined;
401
+ scopesPerRoleLimit?: number | null | undefined;
402
+ hooksLimit?: number | null | undefined;
403
+ machineToMachineLimit?: number | null | undefined;
404
+ resourcesLimit?: number | null | undefined;
405
+ enterpriseSsoLimit?: number | null | undefined;
406
+ tenantMembersLimit?: number | null | undefined;
407
+ organizationsLimit?: number | null | undefined;
408
+ samlApplicationsLimit?: number | null | undefined;
409
+ usersPerOrganizationLimit?: number | null | undefined;
410
+ organizationUserRolesLimit?: number | null | undefined;
411
+ organizationMachineToMachineRolesLimit?: number | null | undefined;
412
+ organizationScopesLimit?: number | null | undefined;
413
+ } | undefined;
225
414
  }>;
226
415
  } & {
416
+ "/tenants/my/subscription-usage": import("@withtyped/server").PathGuard<"/my/subscription-usage", unknown, unknown, {
417
+ usage: {
418
+ applicationsLimit: number;
419
+ thirdPartyApplicationsLimit: number;
420
+ scopesPerResourceLimit: number;
421
+ socialConnectorsLimit: number;
422
+ userRolesLimit: number;
423
+ machineToMachineRolesLimit: number;
424
+ scopesPerRoleLimit: number;
425
+ hooksLimit: number;
426
+ customJwtEnabled: boolean;
427
+ subjectTokenEnabled: boolean;
428
+ bringYourUiEnabled: boolean;
429
+ collectUserProfileEnabled: boolean;
430
+ machineToMachineLimit: number;
431
+ resourcesLimit: number;
432
+ enterpriseSsoLimit: number;
433
+ tenantMembersLimit: number;
434
+ mfaEnabled: boolean;
435
+ organizationsEnabled: boolean;
436
+ organizationsLimit: number;
437
+ securityFeaturesEnabled: boolean;
438
+ idpInitiatedSsoEnabled: boolean;
439
+ samlApplicationsLimit: number;
440
+ };
441
+ resources: Record<string, number>;
442
+ roles: Record<string, number>;
443
+ quota: {
444
+ auditLogsRetentionDays: number | null;
445
+ mauLimit: number | null;
446
+ applicationsLimit: number | null;
447
+ thirdPartyApplicationsLimit: number | null;
448
+ scopesPerResourceLimit: number | null;
449
+ socialConnectorsLimit: number | null;
450
+ userRolesLimit: number | null;
451
+ machineToMachineRolesLimit: number | null;
452
+ scopesPerRoleLimit: number | null;
453
+ hooksLimit: number | null;
454
+ customJwtEnabled: boolean;
455
+ subjectTokenEnabled: boolean;
456
+ bringYourUiEnabled: boolean;
457
+ collectUserProfileEnabled: boolean;
458
+ tokenLimit: number | null;
459
+ machineToMachineLimit: number | null;
460
+ resourcesLimit: number | null;
461
+ enterpriseSsoLimit: number | null;
462
+ tenantMembersLimit: number | null;
463
+ mfaEnabled: boolean;
464
+ organizationsEnabled: boolean;
465
+ organizationsLimit: number | null;
466
+ securityFeaturesEnabled: boolean;
467
+ idpInitiatedSsoEnabled: boolean;
468
+ samlApplicationsLimit: number | null;
469
+ };
470
+ basicQuota: {
471
+ auditLogsRetentionDays: number | null;
472
+ mauLimit: number | null;
473
+ applicationsLimit: number | null;
474
+ thirdPartyApplicationsLimit: number | null;
475
+ scopesPerResourceLimit: number | null;
476
+ socialConnectorsLimit: number | null;
477
+ userRolesLimit: number | null;
478
+ machineToMachineRolesLimit: number | null;
479
+ scopesPerRoleLimit: number | null;
480
+ hooksLimit: number | null;
481
+ customJwtEnabled: boolean;
482
+ subjectTokenEnabled: boolean;
483
+ bringYourUiEnabled: boolean;
484
+ collectUserProfileEnabled: boolean;
485
+ tokenLimit: number | null;
486
+ machineToMachineLimit: number | null;
487
+ resourcesLimit: number | null;
488
+ enterpriseSsoLimit: number | null;
489
+ tenantMembersLimit: number | null;
490
+ mfaEnabled: boolean;
491
+ organizationsEnabled: boolean;
492
+ organizationsLimit: number | null;
493
+ securityFeaturesEnabled: boolean;
494
+ idpInitiatedSsoEnabled: boolean;
495
+ samlApplicationsLimit: number | null;
496
+ };
497
+ }>;
498
+ };
499
+ post: {
500
+ "/tenants/my/subscription/item-updates": import("@withtyped/server").PathGuard<"/my/subscription/item-updates", unknown, {
501
+ usageKey: RealtimeReportableUsageKey;
502
+ }, {
503
+ message: string;
504
+ }>;
505
+ };
506
+ put: {};
507
+ delete: {};
508
+ copy: {};
509
+ head: {};
510
+ }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
511
+ patch: {};
512
+ options: {};
513
+ get: {
227
514
  "/tenants/:tenantId/subscription": import("@withtyped/server").PathGuard<"/:tenantId/subscription", unknown, unknown, {
228
515
  status: "incomplete" | "incomplete_expired" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" | "paused";
229
516
  planId: string;
230
517
  currentPeriodStart: Date;
231
518
  currentPeriodEnd: Date;
519
+ isEnterprisePlan: boolean;
520
+ id?: string | undefined;
521
+ upcomingInvoice?: {
522
+ subtotal: number;
523
+ subtotalExcludingTax: number | null;
524
+ total: number;
525
+ totalExcludingTax: number | null;
526
+ } | null | undefined;
527
+ }>;
528
+ } & {
529
+ "/tenants/:tenantId/subscription-usage": import("@withtyped/server").PathGuard<"/:tenantId/subscription-usage", unknown, unknown, {
530
+ usage: {
531
+ applicationsLimit: number;
532
+ thirdPartyApplicationsLimit: number;
533
+ scopesPerResourceLimit: number;
534
+ socialConnectorsLimit: number;
535
+ userRolesLimit: number;
536
+ machineToMachineRolesLimit: number;
537
+ scopesPerRoleLimit: number;
538
+ hooksLimit: number;
539
+ customJwtEnabled: boolean;
540
+ subjectTokenEnabled: boolean;
541
+ bringYourUiEnabled: boolean;
542
+ collectUserProfileEnabled: boolean;
543
+ machineToMachineLimit: number;
544
+ resourcesLimit: number;
545
+ enterpriseSsoLimit: number;
546
+ tenantMembersLimit: number;
547
+ mfaEnabled: boolean;
548
+ organizationsEnabled: boolean;
549
+ organizationsLimit: number;
550
+ securityFeaturesEnabled: boolean;
551
+ idpInitiatedSsoEnabled: boolean;
552
+ samlApplicationsLimit: number;
553
+ };
554
+ resources: Record<string, number>;
555
+ roles: Record<string, number>;
556
+ quota: {
557
+ auditLogsRetentionDays: number | null;
558
+ mauLimit: number | null;
559
+ applicationsLimit: number | null;
560
+ thirdPartyApplicationsLimit: number | null;
561
+ scopesPerResourceLimit: number | null;
562
+ socialConnectorsLimit: number | null;
563
+ userRolesLimit: number | null;
564
+ machineToMachineRolesLimit: number | null;
565
+ scopesPerRoleLimit: number | null;
566
+ hooksLimit: number | null;
567
+ customJwtEnabled: boolean;
568
+ subjectTokenEnabled: boolean;
569
+ bringYourUiEnabled: boolean;
570
+ collectUserProfileEnabled: boolean;
571
+ tokenLimit: number | null;
572
+ machineToMachineLimit: number | null;
573
+ resourcesLimit: number | null;
574
+ enterpriseSsoLimit: number | null;
575
+ tenantMembersLimit: number | null;
576
+ mfaEnabled: boolean;
577
+ organizationsEnabled: boolean;
578
+ organizationsLimit: number | null;
579
+ securityFeaturesEnabled: boolean;
580
+ idpInitiatedSsoEnabled: boolean;
581
+ samlApplicationsLimit: number | null;
582
+ };
583
+ basicQuota: {
584
+ auditLogsRetentionDays: number | null;
585
+ mauLimit: number | null;
586
+ applicationsLimit: number | null;
587
+ thirdPartyApplicationsLimit: number | null;
588
+ scopesPerResourceLimit: number | null;
589
+ socialConnectorsLimit: number | null;
590
+ userRolesLimit: number | null;
591
+ machineToMachineRolesLimit: number | null;
592
+ scopesPerRoleLimit: number | null;
593
+ hooksLimit: number | null;
594
+ customJwtEnabled: boolean;
595
+ subjectTokenEnabled: boolean;
596
+ bringYourUiEnabled: boolean;
597
+ collectUserProfileEnabled: boolean;
598
+ tokenLimit: number | null;
599
+ machineToMachineLimit: number | null;
600
+ resourcesLimit: number | null;
601
+ enterpriseSsoLimit: number | null;
602
+ tenantMembersLimit: number | null;
603
+ mfaEnabled: boolean;
604
+ organizationsEnabled: boolean;
605
+ organizationsLimit: number | null;
606
+ securityFeaturesEnabled: boolean;
607
+ idpInitiatedSsoEnabled: boolean;
608
+ samlApplicationsLimit: number | null;
609
+ };
232
610
  }>;
611
+ } & {
612
+ "/tenants/:tenantId/subscription/periodic-usage": import("@withtyped/server").PathGuard<"/:tenantId/subscription/periodic-usage", unknown, unknown, {
613
+ mauLimit: number;
614
+ tokenLimit: number;
615
+ }>;
616
+ } & {
617
+ "/tenants/:tenantId/subscription/add-on-skus": import("@withtyped/server").PathGuard<"/:tenantId/subscription/add-on-skus", unknown, unknown, Partial<Record<"tokenLimit" | "machineToMachineLimit" | "resourcesLimit" | "enterpriseSsoLimit" | "hooksLimit" | "tenantMembersLimit" | "mfaEnabled" | "organizationsEnabled" | "organizationsLimit" | "securityFeaturesEnabled" | "userRolesLimit" | "machineToMachineRolesLimit" | "thirdPartyApplicationsLimit" | "samlApplicationsLimit", {
618
+ id: string;
619
+ name: string | null;
620
+ createdAt: Date;
621
+ defaultPriceId: string | null;
622
+ unitPrice: number | null;
623
+ type: LogtoSkuType;
624
+ quota: {
625
+ auditLogsRetentionDays?: number | null | undefined;
626
+ mauLimit?: number | null | undefined;
627
+ applicationsLimit?: number | null | undefined;
628
+ thirdPartyApplicationsLimit?: number | null | undefined;
629
+ scopesPerResourceLimit?: number | null | undefined;
630
+ socialConnectorsLimit?: number | null | undefined;
631
+ userRolesLimit?: number | null | undefined;
632
+ machineToMachineRolesLimit?: number | null | undefined;
633
+ scopesPerRoleLimit?: number | null | undefined;
634
+ hooksLimit?: number | null | undefined;
635
+ customJwtEnabled?: boolean | undefined;
636
+ subjectTokenEnabled?: boolean | undefined;
637
+ bringYourUiEnabled?: boolean | undefined;
638
+ collectUserProfileEnabled?: boolean | undefined;
639
+ tokenLimit?: number | null | undefined;
640
+ machineToMachineLimit?: number | null | undefined;
641
+ resourcesLimit?: number | null | undefined;
642
+ enterpriseSsoLimit?: number | null | undefined;
643
+ tenantMembersLimit?: number | null | undefined;
644
+ mfaEnabled?: boolean | undefined;
645
+ organizationsEnabled?: boolean | undefined;
646
+ organizationsLimit?: number | null | undefined;
647
+ securityFeaturesEnabled?: boolean | undefined;
648
+ idpInitiatedSsoEnabled?: boolean | undefined;
649
+ samlApplicationsLimit?: number | null | undefined;
650
+ };
651
+ isDefault: boolean;
652
+ updatedAt: Date;
653
+ productId: string | null;
654
+ }>>>;
233
655
  } & {
234
656
  "/tenants/:tenantId/invoices": import("@withtyped/server").PathGuard<"/:tenantId/invoices", unknown, unknown, {
235
657
  invoices: {
236
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
237
658
  id: string;
238
659
  createdAt: Date;
660
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
239
661
  updatedAt: Date;
240
662
  customerId: string | null;
241
663
  billingReason: string | null;
@@ -243,22 +665,61 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
243
665
  periodEnd: Date;
244
666
  amountDue: number;
245
667
  amountPaid: number;
668
+ basicSkuId: string | null;
246
669
  subscriptionId: string | null;
247
670
  hostedInvoiceUrl: string | null;
248
671
  invoicePdf: string | null;
672
+ collectionMethod: "charge_automatically" | "send_invoice" | null;
673
+ dueDate: Date | null;
249
674
  planName: string | null;
675
+ skuId?: string | null | undefined;
250
676
  }[];
251
677
  }>;
678
+ } & {
679
+ "/tenants/:tenantId/available-skus": import("@withtyped/server").PathGuard<"/:tenantId/available-skus", {
680
+ type?: LogtoSkuType | undefined;
681
+ }, unknown, {
682
+ id: string;
683
+ name: string | null;
684
+ createdAt: Date;
685
+ defaultPriceId: string | null;
686
+ unitPrice: number | null;
687
+ type: LogtoSkuType;
688
+ quota: {
689
+ auditLogsRetentionDays?: number | null | undefined;
690
+ mauLimit?: number | null | undefined;
691
+ applicationsLimit?: number | null | undefined;
692
+ thirdPartyApplicationsLimit?: number | null | undefined;
693
+ scopesPerResourceLimit?: number | null | undefined;
694
+ socialConnectorsLimit?: number | null | undefined;
695
+ userRolesLimit?: number | null | undefined;
696
+ machineToMachineRolesLimit?: number | null | undefined;
697
+ scopesPerRoleLimit?: number | null | undefined;
698
+ hooksLimit?: number | null | undefined;
699
+ customJwtEnabled?: boolean | undefined;
700
+ subjectTokenEnabled?: boolean | undefined;
701
+ bringYourUiEnabled?: boolean | undefined;
702
+ collectUserProfileEnabled?: boolean | undefined;
703
+ tokenLimit?: number | null | undefined;
704
+ machineToMachineLimit?: number | null | undefined;
705
+ resourcesLimit?: number | null | undefined;
706
+ enterpriseSsoLimit?: number | null | undefined;
707
+ tenantMembersLimit?: number | null | undefined;
708
+ mfaEnabled?: boolean | undefined;
709
+ organizationsEnabled?: boolean | undefined;
710
+ organizationsLimit?: number | null | undefined;
711
+ securityFeaturesEnabled?: boolean | undefined;
712
+ idpInitiatedSsoEnabled?: boolean | undefined;
713
+ samlApplicationsLimit?: number | null | undefined;
714
+ };
715
+ isDefault: boolean;
716
+ updatedAt: Date;
717
+ productId: string | null;
718
+ }[]>;
252
719
  } & {
253
720
  "/tenants/:tenantId/invoices/:invoiceId/hosted-invoice-url": import("@withtyped/server").PathGuard<"/:tenantId/invoices/:invoiceId/hosted-invoice-url", unknown, unknown, {
254
721
  hostedInvoiceUrl: string;
255
722
  }>;
256
- } & {
257
- "/tenants/:tenantId/usage": import("@withtyped/server").PathGuard<"/:tenantId/usage", unknown, unknown, {
258
- activeUsers: number;
259
- cost: number;
260
- tokenUsage: number;
261
- }>;
262
723
  };
263
724
  post: {
264
725
  "/tenants/:tenantId/stripe-customer-portal": import("@withtyped/server").PathGuard<"/:tenantId/stripe-customer-portal", unknown, {
@@ -286,11 +747,15 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
286
747
  post: {
287
748
  "/services/mails": import("@withtyped/server").PathGuard<"/mails", unknown, {
288
749
  data: {
289
- type: TemplateType | VerificationCodeType;
750
+ type: TemplateType;
290
751
  payload: {
291
- code?: string | undefined;
292
752
  link?: string | undefined;
293
- } & Record<string, string> & {
753
+ code?: string | undefined;
754
+ locale?: string | undefined;
755
+ uiLocales?: string | undefined;
756
+ } & {
757
+ [k: string]: unknown;
758
+ } & {
294
759
  senderName?: string | undefined;
295
760
  companyInformation?: string | undefined;
296
761
  appLogo?: string | undefined;
@@ -301,81 +766,187 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
301
766
  } & {
302
767
  "/services/send-sms": import("@withtyped/server").PathGuard<"/send-sms", unknown, {
303
768
  data: {
304
- type: TemplateType | VerificationCodeType;
769
+ type: TemplateType;
305
770
  to: string;
306
771
  payload: {
307
772
  code?: string | undefined;
308
773
  link?: string | undefined;
309
- } & Record<string, string>;
774
+ locale?: string | undefined;
775
+ uiLocales?: string | undefined;
776
+ } & {
777
+ [k: string]: unknown;
778
+ };
310
779
  };
311
780
  }, unknown>;
312
781
  } & {
313
- "/services/custom-jwt": import("@withtyped/server").PathGuard<"/custom-jwt", unknown, {
314
- script: string;
315
- tokenType: LogtoJwtTokenKeyType.AccessToken;
782
+ "/services/custom-jwt": import("@withtyped/server").PathGuard<"/custom-jwt", {
783
+ isTest?: string | undefined;
784
+ }, {
316
785
  token: Record<string, Json>;
317
786
  context: Record<string, Json>;
787
+ tokenType: LogtoJwtTokenKeyType.AccessToken;
788
+ script: string;
318
789
  environmentVariables?: Record<string, string> | undefined;
319
790
  } | {
320
- script: string;
321
- tokenType: LogtoJwtTokenKeyType.ClientCredentials;
322
791
  token: Record<string, Json>;
792
+ tokenType: LogtoJwtTokenKeyType.ClientCredentials;
793
+ script: string;
323
794
  environmentVariables?: Record<string, string> | undefined;
324
795
  }, Record<string, unknown>>;
325
796
  };
326
- put: {};
327
- delete: {};
797
+ put: {
798
+ "/services/custom-jwt/worker": import("@withtyped/server").PathGuard<"/custom-jwt/worker", unknown, {
799
+ "jwt.accessToken"?: {
800
+ production?: string | undefined;
801
+ test?: string | undefined;
802
+ } | undefined;
803
+ "jwt.clientCredentials"?: {
804
+ production?: string | undefined;
805
+ test?: string | undefined;
806
+ } | undefined;
807
+ }, unknown>;
808
+ };
809
+ delete: {
810
+ "/services/custom-jwt/worker": import("@withtyped/server").PathGuard<"/custom-jwt/worker", unknown, unknown, unknown>;
811
+ };
328
812
  copy: {};
329
813
  head: {};
330
814
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
331
815
  patch: {};
332
816
  options: {};
333
817
  get: {
334
- "/subscription-plans": import("@withtyped/server").PathGuard<"/", unknown, unknown, {
818
+ "/skus": import("@withtyped/server").PathGuard<"/", {
819
+ type?: LogtoSkuType | undefined;
820
+ }, unknown, {
335
821
  id: string;
822
+ name: string | null;
336
823
  createdAt: Date;
337
- name: string;
338
- updatedAt: Date;
339
- stripeProducts: {
340
- type: "flat" | "tier1" | "tier2" | "tier3";
341
- id: string;
342
- name: string;
343
- price: {
344
- id: string;
345
- unitAmountDecimal: string;
346
- quantity?: 1 | undefined;
347
- unitAmount?: number | null | undefined;
348
- };
349
- description?: string | undefined;
350
- }[];
824
+ defaultPriceId: string | null;
825
+ unitPrice: number | null;
826
+ type: LogtoSkuType;
351
827
  quota: {
352
- mauLimit: number | null;
353
- tokenLimit: number | null;
354
- applicationsLimit: number | null;
355
- machineToMachineLimit: number | null;
356
- resourcesLimit: number | null;
357
- scopesPerResourceLimit: number | null;
358
- customDomainEnabled: boolean;
359
- omniSignInEnabled: boolean;
360
- builtInEmailConnectorEnabled: boolean;
361
- socialConnectorsLimit: number | null;
362
- standardConnectorsLimit: number | null;
363
- rolesLimit: number | null;
364
- machineToMachineRolesLimit: number | null;
365
- scopesPerRoleLimit: number | null;
366
- hooksLimit: number | null;
367
- auditLogsRetentionDays: number | null;
368
- mfaEnabled: boolean;
369
- organizationsEnabled: boolean;
370
- ssoEnabled: boolean;
371
- thirdPartyApplicationsLimit: number | null;
372
- tenantMembersLimit: number | null;
828
+ auditLogsRetentionDays?: number | null | undefined;
829
+ mauLimit?: number | null | undefined;
830
+ applicationsLimit?: number | null | undefined;
831
+ thirdPartyApplicationsLimit?: number | null | undefined;
832
+ scopesPerResourceLimit?: number | null | undefined;
833
+ socialConnectorsLimit?: number | null | undefined;
834
+ userRolesLimit?: number | null | undefined;
835
+ machineToMachineRolesLimit?: number | null | undefined;
836
+ scopesPerRoleLimit?: number | null | undefined;
837
+ hooksLimit?: number | null | undefined;
838
+ customJwtEnabled?: boolean | undefined;
839
+ subjectTokenEnabled?: boolean | undefined;
840
+ bringYourUiEnabled?: boolean | undefined;
841
+ collectUserProfileEnabled?: boolean | undefined;
842
+ tokenLimit?: number | null | undefined;
843
+ machineToMachineLimit?: number | null | undefined;
844
+ resourcesLimit?: number | null | undefined;
845
+ enterpriseSsoLimit?: number | null | undefined;
846
+ tenantMembersLimit?: number | null | undefined;
847
+ mfaEnabled?: boolean | undefined;
848
+ organizationsEnabled?: boolean | undefined;
849
+ organizationsLimit?: number | null | undefined;
850
+ securityFeaturesEnabled?: boolean | undefined;
851
+ idpInitiatedSsoEnabled?: boolean | undefined;
852
+ samlApplicationsLimit?: number | null | undefined;
373
853
  };
854
+ isDefault: boolean;
855
+ updatedAt: Date;
856
+ productId: string | null;
374
857
  }[]>;
375
858
  };
376
- post: {};
859
+ post: {
860
+ "/skus": import("@withtyped/server").PathGuard<"/", unknown, {
861
+ type: LogtoSkuType;
862
+ quota: {
863
+ tokenLimit?: number | null | undefined;
864
+ machineToMachineLimit?: number | null | undefined;
865
+ resourcesLimit?: number | null | undefined;
866
+ enterpriseSsoLimit?: number | null | undefined;
867
+ hooksLimit?: number | null | undefined;
868
+ tenantMembersLimit?: number | null | undefined;
869
+ mfaEnabled?: boolean | undefined;
870
+ organizationsEnabled?: boolean | undefined;
871
+ organizationsLimit?: number | null | undefined;
872
+ securityFeaturesEnabled?: boolean | undefined;
873
+ userRolesLimit?: number | null | undefined;
874
+ machineToMachineRolesLimit?: number | null | undefined;
875
+ thirdPartyApplicationsLimit?: number | null | undefined;
876
+ samlApplicationsLimit?: number | null | undefined;
877
+ auditLogsRetentionDays?: number | null | undefined;
878
+ mauLimit?: number | null | undefined;
879
+ applicationsLimit?: number | null | undefined;
880
+ scopesPerResourceLimit?: number | null | undefined;
881
+ socialConnectorsLimit?: number | null | undefined;
882
+ scopesPerRoleLimit?: number | null | undefined;
883
+ customJwtEnabled?: boolean | undefined;
884
+ subjectTokenEnabled?: boolean | undefined;
885
+ bringYourUiEnabled?: boolean | undefined;
886
+ collectUserProfileEnabled?: boolean | undefined;
887
+ idpInitiatedSsoEnabled?: boolean | undefined;
888
+ };
889
+ id?: string | undefined;
890
+ isDefault?: boolean | undefined;
891
+ }, {
892
+ id: string;
893
+ createdAt: Date;
894
+ type: LogtoSkuType;
895
+ isDefault: boolean;
896
+ updatedAt: Date;
897
+ quota: {
898
+ auditLogsRetentionDays?: number | null | undefined;
899
+ mauLimit?: number | null | undefined;
900
+ applicationsLimit?: number | null | undefined;
901
+ thirdPartyApplicationsLimit?: number | null | undefined;
902
+ scopesPerResourceLimit?: number | null | undefined;
903
+ socialConnectorsLimit?: number | null | undefined;
904
+ userRolesLimit?: number | null | undefined;
905
+ machineToMachineRolesLimit?: number | null | undefined;
906
+ scopesPerRoleLimit?: number | null | undefined;
907
+ hooksLimit?: number | null | undefined;
908
+ customJwtEnabled?: boolean | undefined;
909
+ subjectTokenEnabled?: boolean | undefined;
910
+ bringYourUiEnabled?: boolean | undefined;
911
+ collectUserProfileEnabled?: boolean | undefined;
912
+ tokenLimit?: number | null | undefined;
913
+ machineToMachineLimit?: number | null | undefined;
914
+ resourcesLimit?: number | null | undefined;
915
+ enterpriseSsoLimit?: number | null | undefined;
916
+ tenantMembersLimit?: number | null | undefined;
917
+ mfaEnabled?: boolean | undefined;
918
+ organizationsEnabled?: boolean | undefined;
919
+ organizationsLimit?: number | null | undefined;
920
+ securityFeaturesEnabled?: boolean | undefined;
921
+ idpInitiatedSsoEnabled?: boolean | undefined;
922
+ samlApplicationsLimit?: number | null | undefined;
923
+ };
924
+ }>;
925
+ } & {
926
+ "/skus/:skuId/products": import("@withtyped/server").PathGuard<"/:skuId/products", {
927
+ isOneTime?: string | undefined;
928
+ }, {
929
+ name: string;
930
+ unitPrice: number;
931
+ }, {
932
+ productId: string;
933
+ }>;
934
+ } & {
935
+ "/skus/:basicSkuId/usage-add-on-relations": import("@withtyped/server").PathGuard<"/:basicSkuId/usage-add-on-relations", unknown, {
936
+ usageKey: "tokenLimit" | "machineToMachineLimit" | "resourcesLimit" | "enterpriseSsoLimit" | "hooksLimit" | "tenantMembersLimit" | "mfaEnabled" | "organizationsEnabled" | "organizationsLimit" | "securityFeaturesEnabled" | "userRolesLimit" | "machineToMachineRolesLimit" | "thirdPartyApplicationsLimit" | "samlApplicationsLimit";
937
+ addOnSkuId: string;
938
+ }, {
939
+ basicSkuId: string;
940
+ usageKey: "tokenLimit" | "machineToMachineLimit" | "resourcesLimit" | "enterpriseSsoLimit" | "hooksLimit" | "tenantMembersLimit" | "mfaEnabled" | "organizationsEnabled" | "organizationsLimit" | "securityFeaturesEnabled" | "userRolesLimit" | "machineToMachineRolesLimit" | "thirdPartyApplicationsLimit" | "samlApplicationsLimit";
941
+ addOnSkuId: string;
942
+ }>;
943
+ };
377
944
  put: {};
378
- delete: {};
945
+ delete: {
946
+ "/skus/:skuId": import("@withtyped/server").PathGuard<"/:skuId", unknown, unknown, unknown>;
947
+ } & {
948
+ "/skus/:basicSkuId/usage-add-on-relations/:usageKey": import("@withtyped/server").PathGuard<"/:basicSkuId/usage-add-on-relations/:usageKey", unknown, unknown, unknown>;
949
+ };
379
950
  copy: {};
380
951
  head: {};
381
952
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
@@ -389,17 +960,19 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
389
960
  status: "open" | "complete" | "expired";
390
961
  tenantId: string | null;
391
962
  updatedAt: Date;
392
- planId: string;
963
+ skuId: string | null;
964
+ planId: string | null;
393
965
  }>;
394
966
  };
395
967
  post: {
396
968
  "/checkout-session": import("@withtyped/server").PathGuard<"/", unknown, {
397
- planId: string;
398
969
  successCallbackUrl: string;
399
970
  tenantId?: string | undefined;
400
- cancelCallbackUrl?: string | undefined;
401
- tenantTag?: TenantTag | undefined;
971
+ skuId?: string | undefined;
402
972
  tenantName?: string | undefined;
973
+ tenantTag?: TenantTag | undefined;
974
+ tenantRegionName?: string | undefined;
975
+ cancelCallbackUrl?: string | undefined;
403
976
  }, {
404
977
  sessionId: string;
405
978
  redirectUri?: string | null | undefined;
@@ -490,8 +1063,8 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
490
1063
  expiresAt: number;
491
1064
  organizationRoles: OrganizationRoleEntity[];
492
1065
  } & {
493
- tenantTag: TenantTag;
494
1066
  tenantName: string;
1067
+ tenantTag: TenantTag;
495
1068
  })[]>;
496
1069
  } & {
497
1070
  "/invitations/:invitationId": import("@withtyped/server").PathGuard<"/:invitationId", unknown, unknown, {
@@ -513,9 +1086,242 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
513
1086
  delete: {};
514
1087
  copy: {};
515
1088
  head: {};
1089
+ }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
1090
+ patch: {};
1091
+ options: {};
1092
+ get: {
1093
+ "/me/regions": import("@withtyped/server").PathGuard<"/regions", unknown, unknown, {
1094
+ regions: {
1095
+ id: string;
1096
+ name: string;
1097
+ country: string;
1098
+ displayName: string;
1099
+ tags: TenantTag[];
1100
+ isPrivate: boolean;
1101
+ }[];
1102
+ }>;
1103
+ };
1104
+ post: {};
1105
+ put: {};
1106
+ delete: {
1107
+ "/me": import("@withtyped/server").PathGuard<"/", unknown, unknown, unknown>;
1108
+ };
1109
+ copy: {};
1110
+ head: {};
1111
+ }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
1112
+ patch: {
1113
+ "/system-limits/:id": import("@withtyped/server").PathGuard<"/:id", unknown, {
1114
+ limits: {
1115
+ machineToMachineLimit?: number | null | undefined;
1116
+ resourcesLimit?: number | null | undefined;
1117
+ enterpriseSsoLimit?: number | null | undefined;
1118
+ hooksLimit?: number | null | undefined;
1119
+ tenantMembersLimit?: number | null | undefined;
1120
+ organizationsLimit?: number | null | undefined;
1121
+ userRolesLimit?: number | null | undefined;
1122
+ machineToMachineRolesLimit?: number | null | undefined;
1123
+ thirdPartyApplicationsLimit?: number | null | undefined;
1124
+ samlApplicationsLimit?: number | null | undefined;
1125
+ applicationsLimit?: number | null | undefined;
1126
+ scopesPerResourceLimit?: number | null | undefined;
1127
+ socialConnectorsLimit?: number | null | undefined;
1128
+ scopesPerRoleLimit?: number | null | undefined;
1129
+ usersPerOrganizationLimit?: number | null | undefined;
1130
+ organizationUserRolesLimit?: number | null | undefined;
1131
+ organizationMachineToMachineRolesLimit?: number | null | undefined;
1132
+ organizationScopesLimit?: number | null | undefined;
1133
+ };
1134
+ }, {
1135
+ id: string;
1136
+ createdAt: Date;
1137
+ updatedAt: Date;
1138
+ limits: {
1139
+ applicationsLimit?: number | null | undefined;
1140
+ thirdPartyApplicationsLimit?: number | null | undefined;
1141
+ scopesPerResourceLimit?: number | null | undefined;
1142
+ socialConnectorsLimit?: number | null | undefined;
1143
+ userRolesLimit?: number | null | undefined;
1144
+ machineToMachineRolesLimit?: number | null | undefined;
1145
+ scopesPerRoleLimit?: number | null | undefined;
1146
+ hooksLimit?: number | null | undefined;
1147
+ machineToMachineLimit?: number | null | undefined;
1148
+ resourcesLimit?: number | null | undefined;
1149
+ enterpriseSsoLimit?: number | null | undefined;
1150
+ tenantMembersLimit?: number | null | undefined;
1151
+ organizationsLimit?: number | null | undefined;
1152
+ samlApplicationsLimit?: number | null | undefined;
1153
+ usersPerOrganizationLimit?: number | null | undefined;
1154
+ organizationUserRolesLimit?: number | null | undefined;
1155
+ organizationMachineToMachineRolesLimit?: number | null | undefined;
1156
+ organizationScopesLimit?: number | null | undefined;
1157
+ };
1158
+ }>;
1159
+ };
1160
+ options: {};
1161
+ get: {
1162
+ "/system-limits": import("@withtyped/server").PathGuard<"/", {
1163
+ basicSkuId?: string | undefined;
1164
+ }, unknown, {
1165
+ id: string;
1166
+ createdAt: Date;
1167
+ updatedAt: Date;
1168
+ limits: {
1169
+ applicationsLimit?: number | null | undefined;
1170
+ thirdPartyApplicationsLimit?: number | null | undefined;
1171
+ scopesPerResourceLimit?: number | null | undefined;
1172
+ socialConnectorsLimit?: number | null | undefined;
1173
+ userRolesLimit?: number | null | undefined;
1174
+ machineToMachineRolesLimit?: number | null | undefined;
1175
+ scopesPerRoleLimit?: number | null | undefined;
1176
+ hooksLimit?: number | null | undefined;
1177
+ machineToMachineLimit?: number | null | undefined;
1178
+ resourcesLimit?: number | null | undefined;
1179
+ enterpriseSsoLimit?: number | null | undefined;
1180
+ tenantMembersLimit?: number | null | undefined;
1181
+ organizationsLimit?: number | null | undefined;
1182
+ samlApplicationsLimit?: number | null | undefined;
1183
+ usersPerOrganizationLimit?: number | null | undefined;
1184
+ organizationUserRolesLimit?: number | null | undefined;
1185
+ organizationMachineToMachineRolesLimit?: number | null | undefined;
1186
+ organizationScopesLimit?: number | null | undefined;
1187
+ };
1188
+ basicSkuIds: string[];
1189
+ }[]>;
1190
+ } & {
1191
+ "/system-limits/:id": import("@withtyped/server").PathGuard<"/:id", unknown, unknown, {
1192
+ id: string;
1193
+ createdAt: Date;
1194
+ updatedAt: Date;
1195
+ limits: {
1196
+ applicationsLimit?: number | null | undefined;
1197
+ thirdPartyApplicationsLimit?: number | null | undefined;
1198
+ scopesPerResourceLimit?: number | null | undefined;
1199
+ socialConnectorsLimit?: number | null | undefined;
1200
+ userRolesLimit?: number | null | undefined;
1201
+ machineToMachineRolesLimit?: number | null | undefined;
1202
+ scopesPerRoleLimit?: number | null | undefined;
1203
+ hooksLimit?: number | null | undefined;
1204
+ machineToMachineLimit?: number | null | undefined;
1205
+ resourcesLimit?: number | null | undefined;
1206
+ enterpriseSsoLimit?: number | null | undefined;
1207
+ tenantMembersLimit?: number | null | undefined;
1208
+ organizationsLimit?: number | null | undefined;
1209
+ samlApplicationsLimit?: number | null | undefined;
1210
+ usersPerOrganizationLimit?: number | null | undefined;
1211
+ organizationUserRolesLimit?: number | null | undefined;
1212
+ organizationMachineToMachineRolesLimit?: number | null | undefined;
1213
+ organizationScopesLimit?: number | null | undefined;
1214
+ };
1215
+ basicSkuIds: string[];
1216
+ }>;
1217
+ };
1218
+ post: {
1219
+ "/system-limits": import("@withtyped/server").PathGuard<"/", unknown, {
1220
+ limits: {
1221
+ machineToMachineLimit?: number | null | undefined;
1222
+ resourcesLimit?: number | null | undefined;
1223
+ enterpriseSsoLimit?: number | null | undefined;
1224
+ hooksLimit?: number | null | undefined;
1225
+ tenantMembersLimit?: number | null | undefined;
1226
+ organizationsLimit?: number | null | undefined;
1227
+ userRolesLimit?: number | null | undefined;
1228
+ machineToMachineRolesLimit?: number | null | undefined;
1229
+ thirdPartyApplicationsLimit?: number | null | undefined;
1230
+ samlApplicationsLimit?: number | null | undefined;
1231
+ applicationsLimit?: number | null | undefined;
1232
+ scopesPerResourceLimit?: number | null | undefined;
1233
+ socialConnectorsLimit?: number | null | undefined;
1234
+ scopesPerRoleLimit?: number | null | undefined;
1235
+ usersPerOrganizationLimit?: number | null | undefined;
1236
+ organizationUserRolesLimit?: number | null | undefined;
1237
+ organizationMachineToMachineRolesLimit?: number | null | undefined;
1238
+ organizationScopesLimit?: number | null | undefined;
1239
+ };
1240
+ id?: string | undefined;
1241
+ }, {
1242
+ id: string;
1243
+ createdAt: Date;
1244
+ updatedAt: Date;
1245
+ limits: {
1246
+ applicationsLimit?: number | null | undefined;
1247
+ thirdPartyApplicationsLimit?: number | null | undefined;
1248
+ scopesPerResourceLimit?: number | null | undefined;
1249
+ socialConnectorsLimit?: number | null | undefined;
1250
+ userRolesLimit?: number | null | undefined;
1251
+ machineToMachineRolesLimit?: number | null | undefined;
1252
+ scopesPerRoleLimit?: number | null | undefined;
1253
+ hooksLimit?: number | null | undefined;
1254
+ machineToMachineLimit?: number | null | undefined;
1255
+ resourcesLimit?: number | null | undefined;
1256
+ enterpriseSsoLimit?: number | null | undefined;
1257
+ tenantMembersLimit?: number | null | undefined;
1258
+ organizationsLimit?: number | null | undefined;
1259
+ samlApplicationsLimit?: number | null | undefined;
1260
+ usersPerOrganizationLimit?: number | null | undefined;
1261
+ organizationUserRolesLimit?: number | null | undefined;
1262
+ organizationMachineToMachineRolesLimit?: number | null | undefined;
1263
+ organizationScopesLimit?: number | null | undefined;
1264
+ };
1265
+ }>;
1266
+ } & {
1267
+ "/system-limits/:systemLimitId/basic-sku-relations": import("@withtyped/server").PathGuard<"/:systemLimitId/basic-sku-relations", unknown, {
1268
+ basicSkuIds: string[];
1269
+ }, {
1270
+ relations: {
1271
+ createdAt: Date;
1272
+ updatedAt: Date;
1273
+ basicSkuId: string;
1274
+ systemLimitId: string;
1275
+ }[];
1276
+ }>;
1277
+ };
1278
+ put: {};
1279
+ delete: {
1280
+ "/system-limits/:id": import("@withtyped/server").PathGuard<"/:id", unknown, unknown, unknown>;
1281
+ } & {
1282
+ "/system-limits/:systemLimitId/basic-sku-relations": import("@withtyped/server").PathGuard<"/:systemLimitId/basic-sku-relations", unknown, {
1283
+ basicSkuIds: string[];
1284
+ }, unknown>;
1285
+ };
1286
+ copy: {};
1287
+ head: {};
1288
+ }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
1289
+ patch: {
1290
+ "/regions/:regionName/users/:userId": import("@withtyped/server").PathGuard<"/:regionName/users/:userId", unknown, {
1291
+ role: DatabaseRegionAccessRole;
1292
+ }, {
1293
+ role: DatabaseRegionAccessRole;
1294
+ userId: string;
1295
+ }>;
1296
+ };
1297
+ options: {};
1298
+ get: {
1299
+ "/regions/:regionName/users": import("@withtyped/server").PathGuard<"/:regionName/users", unknown, unknown, {
1300
+ users: {
1301
+ role: DatabaseRegionAccessRole;
1302
+ userId: string;
1303
+ }[];
1304
+ }>;
1305
+ };
1306
+ post: {
1307
+ "/regions/:regionName/users": import("@withtyped/server").PathGuard<"/:regionName/users", unknown, {
1308
+ role: DatabaseRegionAccessRole;
1309
+ userId: string;
1310
+ }, {
1311
+ role: DatabaseRegionAccessRole;
1312
+ userId: string;
1313
+ }>;
1314
+ };
1315
+ put: {};
1316
+ delete: {
1317
+ "/regions/:regionName/users/:userId": import("@withtyped/server").PathGuard<"/:regionName/users/:userId", unknown, unknown, unknown>;
1318
+ };
1319
+ copy: {};
1320
+ head: {};
516
1321
  }, "/api">>, "/api">;
517
1322
  export declare const tenantAuthRouter: import("@withtyped/server").Router<RequestContext, import("@withtyped/server").WithBodyContext<import("@withtyped/server").BaseContext & {
518
1323
  request: {
1324
+ id?: string | undefined;
519
1325
  method?: import("@withtyped/server").RequestMethod | undefined;
520
1326
  headers: import("http").IncomingHttpHeaders;
521
1327
  url: URL;
@@ -550,6 +1356,8 @@ export declare const tenantAuthRouter: import("@withtyped/server").Router<Reques
550
1356
  avatar: string | null;
551
1357
  organizationRoles: OrganizationRoleEntity[];
552
1358
  }[]>;
1359
+ } & {
1360
+ "/:tenantId/members/:userId/scopes": import("@withtyped/server").PathGuard<"/:tenantId/members/:userId/scopes", unknown, unknown, OrganizationScope[]>;
553
1361
  } & {
554
1362
  "/:tenantId/invitations": import("@withtyped/server").PathGuard<"/:tenantId/invitations", unknown, unknown, ({
555
1363
  id: string;
@@ -569,7 +1377,7 @@ export declare const tenantAuthRouter: import("@withtyped/server").Router<Reques
569
1377
  };
570
1378
  post: {
571
1379
  "/:tenantId/invitations": import("@withtyped/server").PathGuard<"/:tenantId/invitations", unknown, {
572
- invitee: string;
1380
+ invitee: string | string[];
573
1381
  roleName: TenantRole;
574
1382
  expiresAt?: number | undefined;
575
1383
  }, {
@@ -584,7 +1392,19 @@ export declare const tenantAuthRouter: import("@withtyped/server").Router<Reques
584
1392
  organizationId: string;
585
1393
  expiresAt: number;
586
1394
  organizationRoles: OrganizationRoleEntity[];
587
- }>;
1395
+ } | {
1396
+ id: string;
1397
+ createdAt: number;
1398
+ status: OrganizationInvitationStatus;
1399
+ tenantId: string;
1400
+ updatedAt: number;
1401
+ inviterId: string | null;
1402
+ invitee: string;
1403
+ acceptedUserId: string | null;
1404
+ organizationId: string;
1405
+ expiresAt: number;
1406
+ organizationRoles: OrganizationRoleEntity[];
1407
+ }[]>;
588
1408
  } & {
589
1409
  "/:tenantId/invitations/:invitationId/message": import("@withtyped/server").PathGuard<"/:tenantId/invitations/:invitationId/message", unknown, unknown, unknown>;
590
1410
  };
@@ -601,35 +1421,6 @@ export declare const tenantAuthRouter: import("@withtyped/server").Router<Reques
601
1421
  copy: {};
602
1422
  head: {};
603
1423
  }, "/api/tenants">>, "/api/tenants">;
604
- export declare const functionsRouter: import("@withtyped/server").Router<RequestContext, WithAuthContext<Omit<import("@withtyped/server").BaseContext & {
605
- request: {
606
- method?: import("@withtyped/server").RequestMethod | undefined;
607
- headers: import("http").IncomingHttpHeaders;
608
- url: URL;
609
- body?: unknown;
610
- };
611
- }, "request"> & {
612
- request: Record<string, unknown> & {
613
- method?: import("@withtyped/server").RequestMethod | undefined;
614
- headers: import("http").IncomingHttpHeaders;
615
- url: URL;
616
- body?: unknown;
617
- } & {
618
- body?: Json | undefined;
619
- bodyRaw?: Buffer | undefined;
620
- };
621
- }>, import("@withtyped/server").MergeRoutes<import("@withtyped/server").BaseRoutes, import("@withtyped/server").RoutesWithPrefix<{
622
- patch: {};
623
- options: {};
624
- get: {};
625
- post: {
626
- "/database-alteration": import("@withtyped/server").PathGuard<"/database-alteration", unknown, Json, unknown>;
627
- };
628
- put: {};
629
- delete: {};
630
- copy: {};
631
- head: {};
632
- }, "/functions">>, "/functions">;
633
1424
 
634
1425
  export {
635
1426
  router as default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logto/cloud",
3
- "version": "0.2.5-ab8a489",
3
+ "version": "0.2.5-af943a1",
4
4
  "description": "Logto Cloud service.",
5
5
  "main": "build/index.js",
6
6
  "author": "Silverhand Inc. <contact@silverhand.io>",
@@ -16,24 +16,24 @@
16
16
  "#src/*": "./build/*"
17
17
  },
18
18
  "devDependencies": {
19
- "@silverhand/eslint-config": "5.0.0",
20
- "@silverhand/ts-config": "5.0.0",
19
+ "@silverhand/eslint-config": "6.0.1",
20
+ "@silverhand/ts-config": "6.0.0",
21
21
  "@types/accepts": "^1.3.5",
22
22
  "@types/http-proxy": "^1.17.9",
23
23
  "@types/mime-types": "^2.1.1",
24
- "@types/node": "^20.0.0",
24
+ "@types/node": "^22.14.0",
25
25
  "@types/yargs": "^17.0.24",
26
26
  "dts-bundle-generator": "^9.3.1",
27
- "eslint": "^8.44.0",
27
+ "eslint": "^8.57.0",
28
28
  "lint-staged": "^15.0.0",
29
29
  "nodemon": "^3.0.0",
30
30
  "prettier": "^3.0.0",
31
31
  "typescript": "^5.3.3",
32
- "vite-tsconfig-paths": "^4.3.1",
33
- "vitest": "^1.0.0"
32
+ "vite-tsconfig-paths": "^5.0.0",
33
+ "vitest": "^3.1.1"
34
34
  },
35
35
  "engines": {
36
- "node": "^20.9.0"
36
+ "node": "^22.14.0"
37
37
  },
38
38
  "eslintConfig": {
39
39
  "extends": "@silverhand",
@@ -49,8 +49,8 @@
49
49
  "access": "public"
50
50
  },
51
51
  "dependencies": {
52
- "@silverhand/essentials": "^2.9.0",
53
- "@withtyped/server": "^0.13.3"
52
+ "@silverhand/essentials": "^2.9.2",
53
+ "@withtyped/server": "^0.14.0"
54
54
  },
55
55
  "scripts": {
56
56
  "precommit": "lint-staged",
@@ -63,6 +63,7 @@
63
63
  "start": "NODE_ENV=production node .",
64
64
  "test": "vitest && pnpm build:lib && pnpm test:types",
65
65
  "test:types": "tsc -p tsconfig.test.types.json",
66
+ "test:only": "vitest",
66
67
  "cli": "node ./build/cli/index.js"
67
68
  }
68
69
  }