@logto/cloud 0.2.5-20fd0a2 → 0.2.5-299028a

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 +479 -284
  2. package/package.json +7 -6
@@ -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",
@@ -69,22 +83,6 @@ declare enum TenantRole {
69
83
  /** Collaborator of the tenant, who has permissions to operate the tenant data, but not the tenant settings. */
70
84
  Collaborator = "collaborator"
71
85
  }
72
- declare const availableReportableUsageKeys: readonly [
73
- "tokenLimit",
74
- "machineToMachineLimit",
75
- "resourcesLimit",
76
- "enterpriseSsoLimit",
77
- "hooksLimit",
78
- "tenantMembersLimit",
79
- "mfaEnabled",
80
- "organizationsEnabled"
81
- ];
82
- export type ReportableUsageKey = (typeof availableReportableUsageKeys)[number];
83
- export type RealtimeReportableUsageKey = Exclude<ReportableUsageKey, "tokenLimit">;
84
- declare enum LogtoSkuType {
85
- Basic = "Basic",
86
- AddOn = "AddOn"
87
- }
88
86
  declare const AffiliateProperties: import("@withtyped/server/lib/model/index.js").default<"affiliate_properties", {
89
87
  createdAt: Date;
90
88
  affiliateId: string;
@@ -98,10 +96,53 @@ declare const Affiliates: import("@withtyped/server/lib/model/index.js").default
98
96
  id: string;
99
97
  }, "id" | "createdAt", "id" | "createdAt">;
100
98
  export type Affiliate = InferModelType<typeof Affiliates>;
101
- declare enum RegionName {
102
- EU = "EU",
103
- US = "US"
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"
104
112
  }
113
+ /**
114
+ * Data structure representing a Logto Cloud region.
115
+ */
116
+ export type Region = {
117
+ /**
118
+ * The unique identifier for the region.
119
+ */
120
+ id: string;
121
+ /**
122
+ * A human-readable name for the region.
123
+ */
124
+ name: string;
125
+ /**
126
+ * The country where the region is located.
127
+ */
128
+ country: string;
129
+ /**
130
+ * Indicates whether the region is private.
131
+ */
132
+ isPrivate: boolean;
133
+ /**
134
+ * Tenant tags available for selection when creating tenants in this region.
135
+ */
136
+ tags: TenantTag[];
137
+ };
138
+ export type WithAuthContext<Context = RequestContext> = Context & {
139
+ auth: {
140
+ /** The ID of the authenticated subject (`sub`). */
141
+ id: string;
142
+ /** The scopes that the subject has (`scope`). */
143
+ scopes: string[];
144
+ };
145
+ };
105
146
  export type AffiliateData = Affiliate & {
106
147
  properties: Array<Pick<AffiliateProperty, "type" | "value">>;
107
148
  };
@@ -124,18 +165,18 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
124
165
  body?: Json | undefined;
125
166
  bodyRaw?: Buffer | undefined;
126
167
  };
127
- }>, 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<{
168
+ }>, 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<{
128
169
  patch: {
129
170
  "/tenants/:tenantId": import("@withtyped/server").PathGuard<"/:tenantId", unknown, {
130
171
  name?: string | undefined;
131
172
  }, {
132
173
  id: string;
133
174
  name: string;
175
+ createdAt: Date;
134
176
  quota: {
135
177
  mauLimit: number | null;
136
178
  tokenLimit: number | null;
137
179
  };
138
- createdAt: Date;
139
180
  usage: {
140
181
  activeUsers: number;
141
182
  tokenUsage: number;
@@ -156,14 +197,13 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
156
197
  total: number;
157
198
  totalExcludingTax: number | null;
158
199
  } | null | undefined;
159
- isAddOnAvailable?: boolean | undefined;
160
200
  };
161
- regionName: RegionName;
201
+ regionName: string;
162
202
  tag: TenantTag;
163
203
  openInvoices: {
164
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
165
204
  id: string;
166
205
  createdAt: Date;
206
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
167
207
  updatedAt: Date;
168
208
  customerId: string | null;
169
209
  billingReason: string | null;
@@ -171,10 +211,14 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
171
211
  periodEnd: Date;
172
212
  amountDue: number;
173
213
  amountPaid: number;
214
+ basicSkuId: string | null;
174
215
  subscriptionId: string | null;
175
216
  hostedInvoiceUrl: string | null;
176
217
  invoicePdf: string | null;
177
218
  }[];
219
+ featureFlags?: {
220
+ isMultipleCustomDomainsEnabled?: boolean | undefined;
221
+ } | undefined;
178
222
  }>;
179
223
  };
180
224
  options: {};
@@ -182,11 +226,11 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
182
226
  "/tenants": import("@withtyped/server").PathGuard<"/", unknown, unknown, {
183
227
  id: string;
184
228
  name: string;
229
+ createdAt: Date;
185
230
  quota: {
186
231
  mauLimit: number | null;
187
232
  tokenLimit: number | null;
188
233
  };
189
- createdAt: Date;
190
234
  usage: {
191
235
  activeUsers: number;
192
236
  tokenUsage: number;
@@ -207,14 +251,13 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
207
251
  total: number;
208
252
  totalExcludingTax: number | null;
209
253
  } | null | undefined;
210
- isAddOnAvailable?: boolean | undefined;
211
254
  };
212
- regionName: RegionName;
255
+ regionName: string;
213
256
  tag: TenantTag;
214
257
  openInvoices: {
215
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
216
258
  id: string;
217
259
  createdAt: Date;
260
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
218
261
  updatedAt: Date;
219
262
  customerId: string | null;
220
263
  billingReason: string | null;
@@ -222,25 +265,30 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
222
265
  periodEnd: Date;
223
266
  amountDue: number;
224
267
  amountPaid: number;
268
+ basicSkuId: string | null;
225
269
  subscriptionId: string | null;
226
270
  hostedInvoiceUrl: string | null;
227
271
  invoicePdf: string | null;
228
272
  }[];
273
+ featureFlags?: {
274
+ isMultipleCustomDomainsEnabled?: boolean | undefined;
275
+ } | undefined;
229
276
  }[]>;
230
277
  };
231
278
  post: {
232
279
  "/tenants": import("@withtyped/server").PathGuard<"/", unknown, {
280
+ id?: string | undefined;
233
281
  name?: string | undefined;
282
+ regionName?: string | undefined;
234
283
  tag?: TenantTag | undefined;
235
- regionName?: RegionName | undefined;
236
284
  }, {
237
285
  id: string;
238
286
  name: string;
287
+ createdAt: Date;
239
288
  quota: {
240
289
  mauLimit: number | null;
241
290
  tokenLimit: number | null;
242
291
  };
243
- createdAt: Date;
244
292
  usage: {
245
293
  activeUsers: number;
246
294
  tokenUsage: number;
@@ -261,14 +309,13 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
261
309
  total: number;
262
310
  totalExcludingTax: number | null;
263
311
  } | null | undefined;
264
- isAddOnAvailable?: boolean | undefined;
265
312
  };
266
- regionName: RegionName;
313
+ regionName: string;
267
314
  tag: TenantTag;
268
315
  openInvoices: {
269
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
270
316
  id: string;
271
317
  createdAt: Date;
318
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
272
319
  updatedAt: Date;
273
320
  customerId: string | null;
274
321
  billingReason: string | null;
@@ -276,11 +323,25 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
276
323
  periodEnd: Date;
277
324
  amountDue: number;
278
325
  amountPaid: number;
326
+ basicSkuId: string | null;
279
327
  subscriptionId: string | null;
280
328
  hostedInvoiceUrl: string | null;
281
329
  invoicePdf: string | null;
282
330
  }[];
331
+ featureFlags?: {
332
+ isMultipleCustomDomainsEnabled?: boolean | undefined;
333
+ } | undefined;
283
334
  }>;
335
+ } & {
336
+ "/tenants/subscriptions/plan": import("@withtyped/server").PathGuard<"/subscriptions/plan", unknown, {
337
+ planId: string;
338
+ tenantIds: string[];
339
+ }, {
340
+ tenantId: string;
341
+ success: boolean;
342
+ error?: string | undefined;
343
+ updatedLineItems?: unknown[] | undefined;
344
+ }[]>;
284
345
  };
285
346
  put: {};
286
347
  delete: {
@@ -294,6 +355,33 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
294
355
  get: {
295
356
  "/tenants/my/subscription": import("@withtyped/server").PathGuard<"/my/subscription", unknown, unknown, {
296
357
  status: "incomplete" | "incomplete_expired" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" | "paused";
358
+ quota: {
359
+ auditLogsRetentionDays: number | null;
360
+ mauLimit: number | null;
361
+ applicationsLimit: number | null;
362
+ thirdPartyApplicationsLimit: number | null;
363
+ scopesPerResourceLimit: number | null;
364
+ socialConnectorsLimit: number | null;
365
+ userRolesLimit: number | null;
366
+ machineToMachineRolesLimit: number | null;
367
+ scopesPerRoleLimit: number | null;
368
+ hooksLimit: number | null;
369
+ customJwtEnabled: boolean;
370
+ subjectTokenEnabled: boolean;
371
+ bringYourUiEnabled: boolean;
372
+ collectUserProfileEnabled: boolean;
373
+ tokenLimit: number | null;
374
+ machineToMachineLimit: number | null;
375
+ resourcesLimit: number | null;
376
+ enterpriseSsoLimit: number | null;
377
+ tenantMembersLimit: number | null;
378
+ mfaEnabled: boolean;
379
+ organizationsEnabled: boolean;
380
+ organizationsLimit: number | null;
381
+ securityFeaturesEnabled: boolean;
382
+ idpInitiatedSsoEnabled: boolean;
383
+ samlApplicationsLimit: number | null;
384
+ };
297
385
  planId: string;
298
386
  currentPeriodStart: Date;
299
387
  currentPeriodEnd: Date;
@@ -305,107 +393,106 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
305
393
  total: number;
306
394
  totalExcludingTax: number | null;
307
395
  } | null | undefined;
308
- isAddOnAvailable?: boolean | undefined;
309
- }>;
310
- } & {
311
- "/tenants/my/subscription/quota": import("@withtyped/server").PathGuard<"/my/subscription/quota", unknown, unknown, {
312
- mauLimit: number | null;
313
- tokenLimit: number | null;
314
- applicationsLimit: number | null;
315
- machineToMachineLimit: number | null;
316
- resourcesLimit: number | null;
317
- scopesPerResourceLimit: number | null;
318
- socialConnectorsLimit: number | null;
319
- machineToMachineRolesLimit: number | null;
320
- scopesPerRoleLimit: number | null;
321
- hooksLimit: number | null;
322
- auditLogsRetentionDays: number | null;
323
- mfaEnabled: boolean;
324
- organizationsEnabled: boolean;
325
- thirdPartyApplicationsLimit: number | null;
326
- tenantMembersLimit: number | null;
327
- customJwtEnabled: boolean;
328
- subjectTokenEnabled: boolean;
329
- bringYourUiEnabled: boolean;
330
- userRolesLimit: number | null;
331
- enterpriseSsoLimit: number | null;
332
- }>;
333
- } & {
334
- "/tenants/my/subscription/usage": import("@withtyped/server").PathGuard<"/my/subscription/usage", unknown, unknown, {
335
- applicationsLimit: number;
336
- machineToMachineLimit: number;
337
- resourcesLimit: number;
338
- scopesPerResourceLimit: number;
339
- socialConnectorsLimit: number;
340
- machineToMachineRolesLimit: number;
341
- scopesPerRoleLimit: number;
342
- hooksLimit: number;
343
- mfaEnabled: boolean;
344
- organizationsEnabled: boolean;
345
- thirdPartyApplicationsLimit: number;
346
- tenantMembersLimit: number;
347
- customJwtEnabled: boolean;
348
- subjectTokenEnabled: boolean;
349
- bringYourUiEnabled: boolean;
350
- userRolesLimit: number;
351
- enterpriseSsoLimit: number;
352
396
  }>;
353
- } & {
354
- "/tenants/my/subscription/usage/:entityName/scopes": import("@withtyped/server").PathGuard<"/my/subscription/usage/:entityName/scopes", {
355
- entityId?: string | undefined;
356
- }, unknown, Record<string, number>>;
357
397
  } & {
358
398
  "/tenants/my/subscription-usage": import("@withtyped/server").PathGuard<"/my/subscription-usage", unknown, unknown, {
359
399
  usage: {
360
400
  applicationsLimit: number;
361
- machineToMachineLimit: number;
362
- resourcesLimit: number;
401
+ thirdPartyApplicationsLimit: number;
363
402
  scopesPerResourceLimit: number;
364
403
  socialConnectorsLimit: number;
404
+ userRolesLimit: number;
365
405
  machineToMachineRolesLimit: number;
366
406
  scopesPerRoleLimit: number;
367
407
  hooksLimit: number;
368
- mfaEnabled: boolean;
369
- organizationsEnabled: boolean;
370
- thirdPartyApplicationsLimit: number;
371
- tenantMembersLimit: number;
372
408
  customJwtEnabled: boolean;
373
409
  subjectTokenEnabled: boolean;
374
410
  bringYourUiEnabled: boolean;
375
- userRolesLimit: number;
411
+ collectUserProfileEnabled: boolean;
412
+ machineToMachineLimit: number;
413
+ resourcesLimit: number;
376
414
  enterpriseSsoLimit: number;
415
+ tenantMembersLimit: number;
416
+ mfaEnabled: boolean;
417
+ organizationsEnabled: boolean;
418
+ organizationsLimit: number;
419
+ securityFeaturesEnabled: boolean;
420
+ idpInitiatedSsoEnabled: boolean;
421
+ samlApplicationsLimit: number;
377
422
  };
378
423
  resources: Record<string, number>;
379
424
  roles: Record<string, number>;
380
425
  quota: {
426
+ auditLogsRetentionDays: number | null;
381
427
  mauLimit: number | null;
382
- tokenLimit: number | null;
383
428
  applicationsLimit: number | null;
384
- machineToMachineLimit: number | null;
385
- resourcesLimit: number | null;
429
+ thirdPartyApplicationsLimit: number | null;
386
430
  scopesPerResourceLimit: number | null;
387
431
  socialConnectorsLimit: number | null;
432
+ userRolesLimit: number | null;
388
433
  machineToMachineRolesLimit: number | null;
389
434
  scopesPerRoleLimit: number | null;
390
435
  hooksLimit: number | null;
391
- auditLogsRetentionDays: number | null;
436
+ customJwtEnabled: boolean;
437
+ subjectTokenEnabled: boolean;
438
+ bringYourUiEnabled: boolean;
439
+ collectUserProfileEnabled: boolean;
440
+ tokenLimit: number | null;
441
+ machineToMachineLimit: number | null;
442
+ resourcesLimit: number | null;
443
+ enterpriseSsoLimit: number | null;
444
+ tenantMembersLimit: number | null;
392
445
  mfaEnabled: boolean;
393
446
  organizationsEnabled: boolean;
447
+ organizationsLimit: number | null;
448
+ securityFeaturesEnabled: boolean;
449
+ idpInitiatedSsoEnabled: boolean;
450
+ samlApplicationsLimit: number | null;
451
+ };
452
+ basicQuota: {
453
+ auditLogsRetentionDays: number | null;
454
+ mauLimit: number | null;
455
+ applicationsLimit: number | null;
394
456
  thirdPartyApplicationsLimit: number | null;
395
- tenantMembersLimit: number | null;
457
+ scopesPerResourceLimit: number | null;
458
+ socialConnectorsLimit: number | null;
459
+ userRolesLimit: number | null;
460
+ machineToMachineRolesLimit: number | null;
461
+ scopesPerRoleLimit: number | null;
462
+ hooksLimit: number | null;
396
463
  customJwtEnabled: boolean;
397
464
  subjectTokenEnabled: boolean;
398
465
  bringYourUiEnabled: boolean;
399
- userRolesLimit: number | null;
466
+ collectUserProfileEnabled: boolean;
467
+ tokenLimit: number | null;
468
+ machineToMachineLimit: number | null;
469
+ resourcesLimit: number | null;
400
470
  enterpriseSsoLimit: number | null;
471
+ tenantMembersLimit: number | null;
472
+ mfaEnabled: boolean;
473
+ organizationsEnabled: boolean;
474
+ organizationsLimit: number | null;
475
+ securityFeaturesEnabled: boolean;
476
+ idpInitiatedSsoEnabled: boolean;
477
+ samlApplicationsLimit: number | null;
401
478
  };
402
479
  }>;
403
- } & {
404
- "/tenants/my/subscription/periodic-usage": import("@withtyped/server").PathGuard<"/my/subscription/periodic-usage", unknown, unknown, {
405
- mauLimit: number;
406
- tokenLimit: number;
480
+ };
481
+ post: {
482
+ "/tenants/my/subscription/item-updates": import("@withtyped/server").PathGuard<"/my/subscription/item-updates", unknown, {
483
+ usageKey: RealtimeReportableUsageKey;
484
+ }, {
485
+ message: string;
407
486
  }>;
408
- } & {
487
+ };
488
+ put: {};
489
+ delete: {};
490
+ copy: {};
491
+ head: {};
492
+ }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
493
+ patch: {};
494
+ options: {};
495
+ get: {
409
496
  "/tenants/:tenantId/subscription": import("@withtyped/server").PathGuard<"/:tenantId/subscription", unknown, unknown, {
410
497
  status: "incomplete" | "incomplete_expired" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" | "paused";
411
498
  planId: string;
@@ -419,99 +506,88 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
419
506
  total: number;
420
507
  totalExcludingTax: number | null;
421
508
  } | null | undefined;
422
- isAddOnAvailable?: boolean | undefined;
423
- }>;
424
- } & {
425
- "/tenants/:tenantId/subscription/quota": import("@withtyped/server").PathGuard<"/:tenantId/subscription/quota", unknown, unknown, {
426
- mauLimit: number | null;
427
- tokenLimit: number | null;
428
- applicationsLimit: number | null;
429
- machineToMachineLimit: number | null;
430
- resourcesLimit: number | null;
431
- scopesPerResourceLimit: number | null;
432
- socialConnectorsLimit: number | null;
433
- machineToMachineRolesLimit: number | null;
434
- scopesPerRoleLimit: number | null;
435
- hooksLimit: number | null;
436
- auditLogsRetentionDays: number | null;
437
- mfaEnabled: boolean;
438
- organizationsEnabled: boolean;
439
- thirdPartyApplicationsLimit: number | null;
440
- tenantMembersLimit: number | null;
441
- customJwtEnabled: boolean;
442
- subjectTokenEnabled: boolean;
443
- bringYourUiEnabled: boolean;
444
- userRolesLimit: number | null;
445
- enterpriseSsoLimit: number | null;
446
- }>;
447
- } & {
448
- "/tenants/:tenantId/subscription/usage": import("@withtyped/server").PathGuard<"/:tenantId/subscription/usage", unknown, unknown, {
449
- applicationsLimit: number;
450
- machineToMachineLimit: number;
451
- resourcesLimit: number;
452
- scopesPerResourceLimit: number;
453
- socialConnectorsLimit: number;
454
- machineToMachineRolesLimit: number;
455
- scopesPerRoleLimit: number;
456
- hooksLimit: number;
457
- mfaEnabled: boolean;
458
- organizationsEnabled: boolean;
459
- thirdPartyApplicationsLimit: number;
460
- tenantMembersLimit: number;
461
- customJwtEnabled: boolean;
462
- subjectTokenEnabled: boolean;
463
- bringYourUiEnabled: boolean;
464
- userRolesLimit: number;
465
- enterpriseSsoLimit: number;
466
509
  }>;
467
- } & {
468
- "/tenants/:tenantId/subscription/usage/:entityName/scopes": import("@withtyped/server").PathGuard<"/:tenantId/subscription/usage/:entityName/scopes", {
469
- entityId?: string | undefined;
470
- }, unknown, Record<string, number>>;
471
510
  } & {
472
511
  "/tenants/:tenantId/subscription-usage": import("@withtyped/server").PathGuard<"/:tenantId/subscription-usage", unknown, unknown, {
473
512
  usage: {
474
513
  applicationsLimit: number;
475
- machineToMachineLimit: number;
476
- resourcesLimit: number;
514
+ thirdPartyApplicationsLimit: number;
477
515
  scopesPerResourceLimit: number;
478
516
  socialConnectorsLimit: number;
517
+ userRolesLimit: number;
479
518
  machineToMachineRolesLimit: number;
480
519
  scopesPerRoleLimit: number;
481
520
  hooksLimit: number;
482
- mfaEnabled: boolean;
483
- organizationsEnabled: boolean;
484
- thirdPartyApplicationsLimit: number;
485
- tenantMembersLimit: number;
486
521
  customJwtEnabled: boolean;
487
522
  subjectTokenEnabled: boolean;
488
523
  bringYourUiEnabled: boolean;
489
- userRolesLimit: number;
524
+ collectUserProfileEnabled: boolean;
525
+ machineToMachineLimit: number;
526
+ resourcesLimit: number;
490
527
  enterpriseSsoLimit: number;
528
+ tenantMembersLimit: number;
529
+ mfaEnabled: boolean;
530
+ organizationsEnabled: boolean;
531
+ organizationsLimit: number;
532
+ securityFeaturesEnabled: boolean;
533
+ idpInitiatedSsoEnabled: boolean;
534
+ samlApplicationsLimit: number;
491
535
  };
492
536
  resources: Record<string, number>;
493
537
  roles: Record<string, number>;
494
538
  quota: {
539
+ auditLogsRetentionDays: number | null;
495
540
  mauLimit: number | null;
496
- tokenLimit: number | null;
497
541
  applicationsLimit: number | null;
498
- machineToMachineLimit: number | null;
499
- resourcesLimit: number | null;
542
+ thirdPartyApplicationsLimit: number | null;
500
543
  scopesPerResourceLimit: number | null;
501
544
  socialConnectorsLimit: number | null;
545
+ userRolesLimit: number | null;
502
546
  machineToMachineRolesLimit: number | null;
503
547
  scopesPerRoleLimit: number | null;
504
548
  hooksLimit: number | null;
505
- auditLogsRetentionDays: number | null;
549
+ customJwtEnabled: boolean;
550
+ subjectTokenEnabled: boolean;
551
+ bringYourUiEnabled: boolean;
552
+ collectUserProfileEnabled: boolean;
553
+ tokenLimit: number | null;
554
+ machineToMachineLimit: number | null;
555
+ resourcesLimit: number | null;
556
+ enterpriseSsoLimit: number | null;
557
+ tenantMembersLimit: number | null;
506
558
  mfaEnabled: boolean;
507
559
  organizationsEnabled: boolean;
560
+ organizationsLimit: number | null;
561
+ securityFeaturesEnabled: boolean;
562
+ idpInitiatedSsoEnabled: boolean;
563
+ samlApplicationsLimit: number | null;
564
+ };
565
+ basicQuota: {
566
+ auditLogsRetentionDays: number | null;
567
+ mauLimit: number | null;
568
+ applicationsLimit: number | null;
508
569
  thirdPartyApplicationsLimit: number | null;
509
- tenantMembersLimit: number | null;
570
+ scopesPerResourceLimit: number | null;
571
+ socialConnectorsLimit: number | null;
572
+ userRolesLimit: number | null;
573
+ machineToMachineRolesLimit: number | null;
574
+ scopesPerRoleLimit: number | null;
575
+ hooksLimit: number | null;
510
576
  customJwtEnabled: boolean;
511
577
  subjectTokenEnabled: boolean;
512
578
  bringYourUiEnabled: boolean;
513
- userRolesLimit: number | null;
579
+ collectUserProfileEnabled: boolean;
580
+ tokenLimit: number | null;
581
+ machineToMachineLimit: number | null;
582
+ resourcesLimit: number | null;
514
583
  enterpriseSsoLimit: number | null;
584
+ tenantMembersLimit: number | null;
585
+ mfaEnabled: boolean;
586
+ organizationsEnabled: boolean;
587
+ organizationsLimit: number | null;
588
+ securityFeaturesEnabled: boolean;
589
+ idpInitiatedSsoEnabled: boolean;
590
+ samlApplicationsLimit: number | null;
515
591
  };
516
592
  }>;
517
593
  } & {
@@ -519,12 +595,51 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
519
595
  mauLimit: number;
520
596
  tokenLimit: number;
521
597
  }>;
598
+ } & {
599
+ "/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", {
600
+ id: string;
601
+ name: string | null;
602
+ createdAt: Date;
603
+ defaultPriceId: string | null;
604
+ unitPrice: number | null;
605
+ type: LogtoSkuType;
606
+ quota: {
607
+ auditLogsRetentionDays?: number | null | undefined;
608
+ mauLimit?: number | null | undefined;
609
+ applicationsLimit?: number | null | undefined;
610
+ thirdPartyApplicationsLimit?: number | null | undefined;
611
+ scopesPerResourceLimit?: number | null | undefined;
612
+ socialConnectorsLimit?: number | null | undefined;
613
+ userRolesLimit?: number | null | undefined;
614
+ machineToMachineRolesLimit?: number | null | undefined;
615
+ scopesPerRoleLimit?: number | null | undefined;
616
+ hooksLimit?: number | null | undefined;
617
+ customJwtEnabled?: boolean | undefined;
618
+ subjectTokenEnabled?: boolean | undefined;
619
+ bringYourUiEnabled?: boolean | undefined;
620
+ collectUserProfileEnabled?: boolean | undefined;
621
+ tokenLimit?: number | null | undefined;
622
+ machineToMachineLimit?: number | null | undefined;
623
+ resourcesLimit?: number | null | undefined;
624
+ enterpriseSsoLimit?: number | null | undefined;
625
+ tenantMembersLimit?: number | null | undefined;
626
+ mfaEnabled?: boolean | undefined;
627
+ organizationsEnabled?: boolean | undefined;
628
+ organizationsLimit?: number | null | undefined;
629
+ securityFeaturesEnabled?: boolean | undefined;
630
+ idpInitiatedSsoEnabled?: boolean | undefined;
631
+ samlApplicationsLimit?: number | null | undefined;
632
+ };
633
+ isDefault: boolean;
634
+ updatedAt: Date;
635
+ productId: string | null;
636
+ }>>>;
522
637
  } & {
523
638
  "/tenants/:tenantId/invoices": import("@withtyped/server").PathGuard<"/:tenantId/invoices", unknown, unknown, {
524
639
  invoices: {
525
- status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
526
640
  id: string;
527
641
  createdAt: Date;
642
+ status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
528
643
  updatedAt: Date;
529
644
  customerId: string | null;
530
645
  billingReason: string | null;
@@ -532,6 +647,7 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
532
647
  periodEnd: Date;
533
648
  amountDue: number;
534
649
  amountPaid: number;
650
+ basicSkuId: string | null;
535
651
  subscriptionId: string | null;
536
652
  hostedInvoiceUrl: string | null;
537
653
  invoicePdf: string | null;
@@ -539,18 +655,53 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
539
655
  skuId?: string | null | undefined;
540
656
  }[];
541
657
  }>;
658
+ } & {
659
+ "/tenants/:tenantId/available-skus": import("@withtyped/server").PathGuard<"/:tenantId/available-skus", {
660
+ type?: LogtoSkuType | undefined;
661
+ }, unknown, {
662
+ id: string;
663
+ name: string | null;
664
+ createdAt: Date;
665
+ defaultPriceId: string | null;
666
+ unitPrice: number | null;
667
+ type: LogtoSkuType;
668
+ quota: {
669
+ auditLogsRetentionDays?: number | null | undefined;
670
+ mauLimit?: number | null | undefined;
671
+ applicationsLimit?: number | null | undefined;
672
+ thirdPartyApplicationsLimit?: number | null | undefined;
673
+ scopesPerResourceLimit?: number | null | undefined;
674
+ socialConnectorsLimit?: number | null | undefined;
675
+ userRolesLimit?: number | null | undefined;
676
+ machineToMachineRolesLimit?: number | null | undefined;
677
+ scopesPerRoleLimit?: number | null | undefined;
678
+ hooksLimit?: number | null | undefined;
679
+ customJwtEnabled?: boolean | undefined;
680
+ subjectTokenEnabled?: boolean | undefined;
681
+ bringYourUiEnabled?: boolean | undefined;
682
+ collectUserProfileEnabled?: boolean | undefined;
683
+ tokenLimit?: number | null | undefined;
684
+ machineToMachineLimit?: number | null | undefined;
685
+ resourcesLimit?: number | null | undefined;
686
+ enterpriseSsoLimit?: number | null | undefined;
687
+ tenantMembersLimit?: number | null | undefined;
688
+ mfaEnabled?: boolean | undefined;
689
+ organizationsEnabled?: boolean | undefined;
690
+ organizationsLimit?: number | null | undefined;
691
+ securityFeaturesEnabled?: boolean | undefined;
692
+ idpInitiatedSsoEnabled?: boolean | undefined;
693
+ samlApplicationsLimit?: number | null | undefined;
694
+ };
695
+ isDefault: boolean;
696
+ updatedAt: Date;
697
+ productId: string | null;
698
+ }[]>;
542
699
  } & {
543
700
  "/tenants/:tenantId/invoices/:invoiceId/hosted-invoice-url": import("@withtyped/server").PathGuard<"/:tenantId/invoices/:invoiceId/hosted-invoice-url", unknown, unknown, {
544
701
  hostedInvoiceUrl: string;
545
702
  }>;
546
703
  };
547
704
  post: {
548
- "/tenants/my/subscription/item-updates": import("@withtyped/server").PathGuard<"/my/subscription/item-updates", unknown, {
549
- usageKey: RealtimeReportableUsageKey;
550
- }, {
551
- message: string;
552
- }>;
553
- } & {
554
705
  "/tenants/:tenantId/stripe-customer-portal": import("@withtyped/server").PathGuard<"/:tenantId/stripe-customer-portal", unknown, {
555
706
  callbackUrl?: string | undefined;
556
707
  }, {
@@ -576,11 +727,15 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
576
727
  post: {
577
728
  "/services/mails": import("@withtyped/server").PathGuard<"/mails", unknown, {
578
729
  data: {
579
- type: TemplateType | VerificationCodeType;
730
+ type: TemplateType;
580
731
  payload: {
581
- code?: string | undefined;
582
732
  link?: string | undefined;
583
- } & Record<string, string> & {
733
+ code?: string | undefined;
734
+ locale?: string | undefined;
735
+ uiLocales?: string | undefined;
736
+ } & {
737
+ [k: string]: unknown;
738
+ } & {
584
739
  senderName?: string | undefined;
585
740
  companyInformation?: string | undefined;
586
741
  appLogo?: string | undefined;
@@ -591,27 +746,31 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
591
746
  } & {
592
747
  "/services/send-sms": import("@withtyped/server").PathGuard<"/send-sms", unknown, {
593
748
  data: {
594
- type: TemplateType | VerificationCodeType;
749
+ type: TemplateType;
595
750
  to: string;
596
751
  payload: {
597
752
  code?: string | undefined;
598
753
  link?: string | undefined;
599
- } & Record<string, string>;
754
+ locale?: string | undefined;
755
+ uiLocales?: string | undefined;
756
+ } & {
757
+ [k: string]: unknown;
758
+ };
600
759
  };
601
760
  }, unknown>;
602
761
  } & {
603
762
  "/services/custom-jwt": import("@withtyped/server").PathGuard<"/custom-jwt", {
604
763
  isTest?: string | undefined;
605
764
  }, {
765
+ token: Record<string, Json>;
606
766
  context: Record<string, Json>;
607
- script: string;
608
767
  tokenType: LogtoJwtTokenKeyType.AccessToken;
609
- token: Record<string, Json>;
768
+ script: string;
610
769
  environmentVariables?: Record<string, string> | undefined;
611
770
  } | {
612
- script: string;
613
- tokenType: LogtoJwtTokenKeyType.ClientCredentials;
614
771
  token: Record<string, Json>;
772
+ tokenType: LogtoJwtTokenKeyType.ClientCredentials;
773
+ script: string;
615
774
  environmentVariables?: Record<string, string> | undefined;
616
775
  }, Record<string, unknown>>;
617
776
  };
@@ -632,60 +791,6 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
632
791
  };
633
792
  copy: {};
634
793
  head: {};
635
- }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
636
- patch: {};
637
- options: {};
638
- get: {
639
- "/subscription-plans": import("@withtyped/server").PathGuard<"/", unknown, unknown, {
640
- id: string;
641
- createdAt: Date;
642
- name: string;
643
- updatedAt: Date;
644
- quota: {
645
- mauLimit: number | null;
646
- tokenLimit: number | null;
647
- applicationsLimit: number | null;
648
- machineToMachineLimit: number | null;
649
- resourcesLimit: number | null;
650
- scopesPerResourceLimit: number | null;
651
- customDomainEnabled: boolean;
652
- omniSignInEnabled: boolean;
653
- builtInEmailConnectorEnabled: boolean;
654
- socialConnectorsLimit: number | null;
655
- standardConnectorsLimit: number | null;
656
- rolesLimit: number | null;
657
- machineToMachineRolesLimit: number | null;
658
- scopesPerRoleLimit: number | null;
659
- hooksLimit: number | null;
660
- auditLogsRetentionDays: number | null;
661
- mfaEnabled: boolean;
662
- organizationsEnabled: boolean;
663
- ssoEnabled: boolean;
664
- thirdPartyApplicationsLimit: number | null;
665
- tenantMembersLimit: number | null;
666
- customJwtEnabled: boolean;
667
- subjectTokenEnabled: boolean;
668
- bringYourUiEnabled: boolean;
669
- };
670
- stripeProducts: {
671
- type: "flat" | "tier1" | "tier2" | "tier3";
672
- id: string;
673
- name: string;
674
- price: {
675
- id: string;
676
- unitAmountDecimal: string;
677
- quantity?: 1 | undefined;
678
- unitAmount?: number | null | undefined;
679
- };
680
- description?: string | undefined;
681
- }[];
682
- }[]>;
683
- };
684
- post: {};
685
- put: {};
686
- delete: {};
687
- copy: {};
688
- head: {};
689
794
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
690
795
  patch: {};
691
796
  options: {};
@@ -693,34 +798,42 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
693
798
  "/skus": import("@withtyped/server").PathGuard<"/", {
694
799
  type?: LogtoSkuType | undefined;
695
800
  }, unknown, {
696
- type: LogtoSkuType;
697
801
  id: string;
698
802
  name: string | null;
803
+ createdAt: Date;
804
+ defaultPriceId: string | null;
805
+ unitPrice: number | null;
806
+ type: LogtoSkuType;
699
807
  quota: {
808
+ auditLogsRetentionDays?: number | null | undefined;
700
809
  mauLimit?: number | null | undefined;
701
- tokenLimit?: number | null | undefined;
702
810
  applicationsLimit?: number | null | undefined;
703
- machineToMachineLimit?: number | null | undefined;
704
- resourcesLimit?: number | null | undefined;
811
+ thirdPartyApplicationsLimit?: number | null | undefined;
705
812
  scopesPerResourceLimit?: number | null | undefined;
706
813
  socialConnectorsLimit?: number | null | undefined;
814
+ userRolesLimit?: number | null | undefined;
707
815
  machineToMachineRolesLimit?: number | null | undefined;
708
816
  scopesPerRoleLimit?: number | null | undefined;
709
817
  hooksLimit?: number | null | undefined;
710
- auditLogsRetentionDays?: number | null | undefined;
711
- mfaEnabled?: boolean | undefined;
712
- organizationsEnabled?: boolean | undefined;
713
- thirdPartyApplicationsLimit?: number | null | undefined;
714
- tenantMembersLimit?: number | null | undefined;
715
818
  customJwtEnabled?: boolean | undefined;
716
819
  subjectTokenEnabled?: boolean | undefined;
717
820
  bringYourUiEnabled?: boolean | undefined;
718
- userRolesLimit?: number | null | undefined;
821
+ collectUserProfileEnabled?: boolean | undefined;
822
+ tokenLimit?: number | null | undefined;
823
+ machineToMachineLimit?: number | null | undefined;
824
+ resourcesLimit?: number | null | undefined;
719
825
  enterpriseSsoLimit?: number | null | undefined;
826
+ tenantMembersLimit?: number | null | undefined;
827
+ mfaEnabled?: boolean | undefined;
828
+ organizationsEnabled?: boolean | undefined;
829
+ organizationsLimit?: number | null | undefined;
830
+ securityFeaturesEnabled?: boolean | undefined;
831
+ idpInitiatedSsoEnabled?: boolean | undefined;
832
+ samlApplicationsLimit?: number | null | undefined;
720
833
  };
721
- createdAt: Date;
834
+ isDefault: boolean;
722
835
  updatedAt: Date;
723
- unitPrice: number | null;
836
+ productId: string | null;
724
837
  }[]>;
725
838
  };
726
839
  post: {
@@ -735,69 +848,97 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
735
848
  tenantMembersLimit?: number | null | undefined;
736
849
  mfaEnabled?: boolean | undefined;
737
850
  organizationsEnabled?: boolean | undefined;
851
+ organizationsLimit?: number | null | undefined;
852
+ securityFeaturesEnabled?: boolean | undefined;
853
+ userRolesLimit?: number | null | undefined;
854
+ machineToMachineRolesLimit?: number | null | undefined;
855
+ thirdPartyApplicationsLimit?: number | null | undefined;
856
+ samlApplicationsLimit?: number | null | undefined;
857
+ auditLogsRetentionDays?: number | null | undefined;
738
858
  mauLimit?: number | null | undefined;
739
859
  applicationsLimit?: number | null | undefined;
740
860
  scopesPerResourceLimit?: number | null | undefined;
741
861
  socialConnectorsLimit?: number | null | undefined;
742
- machineToMachineRolesLimit?: number | null | undefined;
743
862
  scopesPerRoleLimit?: number | null | undefined;
744
- auditLogsRetentionDays?: number | null | undefined;
745
- thirdPartyApplicationsLimit?: number | null | undefined;
746
863
  customJwtEnabled?: boolean | undefined;
747
864
  subjectTokenEnabled?: boolean | undefined;
748
865
  bringYourUiEnabled?: boolean | undefined;
749
- userRolesLimit?: number | null | undefined;
866
+ collectUserProfileEnabled?: boolean | undefined;
867
+ idpInitiatedSsoEnabled?: boolean | undefined;
750
868
  };
869
+ isDefault?: boolean | undefined;
751
870
  } | {
752
871
  type: LogtoSkuType.Basic;
753
872
  quota: {
873
+ auditLogsRetentionDays: number | null;
754
874
  mauLimit: number | null;
755
- tokenLimit: number | null;
756
875
  applicationsLimit: number | null;
757
- machineToMachineLimit: number | null;
758
- resourcesLimit: number | null;
876
+ thirdPartyApplicationsLimit: number | null;
759
877
  scopesPerResourceLimit: number | null;
760
878
  socialConnectorsLimit: number | null;
879
+ userRolesLimit: number | null;
761
880
  machineToMachineRolesLimit: number | null;
762
881
  scopesPerRoleLimit: number | null;
763
882
  hooksLimit: number | null;
764
- auditLogsRetentionDays: number | null;
765
- mfaEnabled: boolean;
766
- organizationsEnabled: boolean;
767
- thirdPartyApplicationsLimit: number | null;
768
- tenantMembersLimit: number | null;
769
883
  customJwtEnabled: boolean;
770
884
  subjectTokenEnabled: boolean;
771
885
  bringYourUiEnabled: boolean;
772
- userRolesLimit: number | null;
886
+ collectUserProfileEnabled: boolean;
887
+ tokenLimit: number | null;
888
+ machineToMachineLimit: number | null;
889
+ resourcesLimit: number | null;
773
890
  enterpriseSsoLimit: number | null;
891
+ tenantMembersLimit: number | null;
892
+ mfaEnabled: boolean;
893
+ organizationsEnabled: boolean;
894
+ organizationsLimit: number | null;
895
+ securityFeaturesEnabled: boolean;
896
+ idpInitiatedSsoEnabled: boolean;
897
+ samlApplicationsLimit: number | null;
898
+ };
899
+ addOnRelations: {
900
+ tokenLimit?: string | undefined;
901
+ machineToMachineLimit?: string | undefined;
902
+ resourcesLimit?: string | undefined;
903
+ enterpriseSsoLimit?: string | undefined;
904
+ tenantMembersLimit?: string | undefined;
905
+ mfaEnabled?: string | undefined;
906
+ organizationsLimit?: string | undefined;
907
+ securityFeaturesEnabled?: string | undefined;
774
908
  };
909
+ isDefault?: boolean | undefined;
775
910
  }, {
776
911
  id: string;
777
912
  createdAt: Date;
778
913
  type: LogtoSkuType;
914
+ isDefault: boolean;
779
915
  updatedAt: Date;
780
916
  quota: {
917
+ auditLogsRetentionDays?: number | null | undefined;
781
918
  mauLimit?: number | null | undefined;
782
- tokenLimit?: number | null | undefined;
783
919
  applicationsLimit?: number | null | undefined;
784
- machineToMachineLimit?: number | null | undefined;
785
- resourcesLimit?: number | null | undefined;
920
+ thirdPartyApplicationsLimit?: number | null | undefined;
786
921
  scopesPerResourceLimit?: number | null | undefined;
787
922
  socialConnectorsLimit?: number | null | undefined;
923
+ userRolesLimit?: number | null | undefined;
788
924
  machineToMachineRolesLimit?: number | null | undefined;
789
925
  scopesPerRoleLimit?: number | null | undefined;
790
926
  hooksLimit?: number | null | undefined;
791
- auditLogsRetentionDays?: number | null | undefined;
792
- mfaEnabled?: boolean | undefined;
793
- organizationsEnabled?: boolean | undefined;
794
- thirdPartyApplicationsLimit?: number | null | undefined;
795
- tenantMembersLimit?: number | null | undefined;
796
927
  customJwtEnabled?: boolean | undefined;
797
928
  subjectTokenEnabled?: boolean | undefined;
798
929
  bringYourUiEnabled?: boolean | undefined;
799
- userRolesLimit?: number | null | undefined;
930
+ collectUserProfileEnabled?: boolean | undefined;
931
+ tokenLimit?: number | null | undefined;
932
+ machineToMachineLimit?: number | null | undefined;
933
+ resourcesLimit?: number | null | undefined;
800
934
  enterpriseSsoLimit?: number | null | undefined;
935
+ tenantMembersLimit?: number | null | undefined;
936
+ mfaEnabled?: boolean | undefined;
937
+ organizationsEnabled?: boolean | undefined;
938
+ organizationsLimit?: number | null | undefined;
939
+ securityFeaturesEnabled?: boolean | undefined;
940
+ idpInitiatedSsoEnabled?: boolean | undefined;
941
+ samlApplicationsLimit?: number | null | undefined;
801
942
  };
802
943
  }>;
803
944
  } & {
@@ -809,10 +950,22 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
809
950
  }, {
810
951
  productId: string;
811
952
  }>;
953
+ } & {
954
+ "/skus/basic-sku-usage-add-on-relations": import("@withtyped/server").PathGuard<"/basic-sku-usage-add-on-relations", unknown, {
955
+ basicSkuId: string;
956
+ usageKey: "tokenLimit" | "machineToMachineLimit" | "resourcesLimit" | "enterpriseSsoLimit" | "hooksLimit" | "tenantMembersLimit" | "mfaEnabled" | "organizationsEnabled" | "organizationsLimit" | "securityFeaturesEnabled" | "userRolesLimit" | "machineToMachineRolesLimit" | "thirdPartyApplicationsLimit" | "samlApplicationsLimit";
957
+ addOnSkuId: string;
958
+ }, {
959
+ basicSkuId: string;
960
+ usageKey: "tokenLimit" | "machineToMachineLimit" | "resourcesLimit" | "enterpriseSsoLimit" | "hooksLimit" | "tenantMembersLimit" | "mfaEnabled" | "organizationsEnabled" | "organizationsLimit" | "securityFeaturesEnabled" | "userRolesLimit" | "machineToMachineRolesLimit" | "thirdPartyApplicationsLimit" | "samlApplicationsLimit";
961
+ addOnSkuId: string;
962
+ }>;
812
963
  };
813
964
  put: {};
814
965
  delete: {
815
966
  "/skus/:skuId": import("@withtyped/server").PathGuard<"/:skuId", unknown, unknown, unknown>;
967
+ } & {
968
+ "/skus/basic-sku-usage-add-on-relations/:basicSkuId/:usageKey": import("@withtyped/server").PathGuard<"/basic-sku-usage-add-on-relations/:basicSkuId/:usageKey", unknown, unknown, unknown>;
816
969
  };
817
970
  copy: {};
818
971
  head: {};
@@ -827,19 +980,18 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
827
980
  status: "open" | "complete" | "expired";
828
981
  tenantId: string | null;
829
982
  updatedAt: Date;
830
- planId: string;
831
983
  skuId: string | null;
984
+ planId: string | null;
832
985
  }>;
833
986
  };
834
987
  post: {
835
988
  "/checkout-session": import("@withtyped/server").PathGuard<"/", unknown, {
836
- planId: string;
837
989
  successCallbackUrl: string;
838
990
  tenantId?: string | undefined;
839
991
  skuId?: string | undefined;
840
992
  tenantName?: string | undefined;
841
993
  tenantTag?: TenantTag | undefined;
842
- tenantRegionName?: RegionName | undefined;
994
+ tenantRegionName?: string | undefined;
843
995
  cancelCallbackUrl?: string | undefined;
844
996
  }, {
845
997
  sessionId: string;
@@ -957,7 +1109,17 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
957
1109
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
958
1110
  patch: {};
959
1111
  options: {};
960
- get: {};
1112
+ get: {
1113
+ "/me/regions": import("@withtyped/server").PathGuard<"/regions", unknown, unknown, {
1114
+ regions: {
1115
+ id: string;
1116
+ name: string;
1117
+ country: string;
1118
+ isPrivate: boolean;
1119
+ tags: TenantTag[];
1120
+ }[];
1121
+ }>;
1122
+ };
961
1123
  post: {};
962
1124
  put: {};
963
1125
  delete: {
@@ -965,6 +1127,39 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
965
1127
  };
966
1128
  copy: {};
967
1129
  head: {};
1130
+ }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
1131
+ patch: {
1132
+ "/regions/:regionName/users/:userId": import("@withtyped/server").PathGuard<"/:regionName/users/:userId", unknown, {
1133
+ role: DatabaseRegionAccessRole;
1134
+ }, {
1135
+ role: DatabaseRegionAccessRole;
1136
+ userId: string;
1137
+ }>;
1138
+ };
1139
+ options: {};
1140
+ get: {
1141
+ "/regions/:regionName/users": import("@withtyped/server").PathGuard<"/:regionName/users", unknown, unknown, {
1142
+ users: {
1143
+ role: DatabaseRegionAccessRole;
1144
+ userId: string;
1145
+ }[];
1146
+ }>;
1147
+ };
1148
+ post: {
1149
+ "/regions/:regionName/users": import("@withtyped/server").PathGuard<"/:regionName/users", unknown, {
1150
+ role: DatabaseRegionAccessRole;
1151
+ userId: string;
1152
+ }, {
1153
+ role: DatabaseRegionAccessRole;
1154
+ userId: string;
1155
+ }>;
1156
+ };
1157
+ put: {};
1158
+ delete: {
1159
+ "/regions/:regionName/users/:userId": import("@withtyped/server").PathGuard<"/:regionName/users/:userId", unknown, unknown, unknown>;
1160
+ };
1161
+ copy: {};
1162
+ head: {};
968
1163
  }, "/api">>, "/api">;
969
1164
  export declare const tenantAuthRouter: import("@withtyped/server").Router<RequestContext, import("@withtyped/server").WithBodyContext<import("@withtyped/server").BaseContext & {
970
1165
  request: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logto/cloud",
3
- "version": "0.2.5-20fd0a2",
3
+ "version": "0.2.5-299028a",
4
4
  "description": "Logto Cloud service.",
5
5
  "main": "build/index.js",
6
6
  "author": "Silverhand Inc. <contact@silverhand.io>",
@@ -21,7 +21,7 @@
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
27
  "eslint": "^8.57.0",
@@ -29,11 +29,11 @@
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": "^2.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,7 +49,7 @@
49
49
  "access": "public"
50
50
  },
51
51
  "dependencies": {
52
- "@silverhand/essentials": "^2.9.1",
52
+ "@silverhand/essentials": "^2.9.2",
53
53
  "@withtyped/server": "^0.14.0"
54
54
  },
55
55
  "scripts": {
@@ -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
  }