@logto/cloud 0.2.5-a21a38a → 0.2.5-ab8a489

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 +150 -99
  2. package/package.json +5 -10
@@ -37,6 +37,10 @@ declare enum OrganizationInvitationStatus {
37
37
  Expired = "Expired",
38
38
  Revoked = "Revoked"
39
39
  }
40
+ declare enum LogtoJwtTokenKeyType {
41
+ AccessToken = "access-token",
42
+ ClientCredentials = "client-credentials"
43
+ }
40
44
  /**
41
45
  * The simplified organization role entity that is returned in the `roles` field
42
46
  * of the organization.
@@ -52,8 +56,8 @@ declare enum TenantTag {
52
56
  declare enum TenantRole {
53
57
  /** Admin of the tenant, who has all permissions. */
54
58
  Admin = "admin",
55
- /** Member of the tenant, who has permissions to operate the tenant data, but not the tenant settings. */
56
- Member = "member"
59
+ /** Collaborator of the tenant, who has permissions to operate the tenant data, but not the tenant settings. */
60
+ Collaborator = "collaborator"
57
61
  }
58
62
  declare const AffiliateProperties: import("@withtyped/server/lib/model/index.js").default<"affiliate_properties", {
59
63
  createdAt: Date;
@@ -63,10 +67,10 @@ declare const AffiliateProperties: import("@withtyped/server/lib/model/index.js"
63
67
  }, "createdAt", "createdAt">;
64
68
  export type AffiliateProperty = InferModelType<typeof AffiliateProperties>;
65
69
  declare const Affiliates: import("@withtyped/server/lib/model/index.js").default<"affiliates", {
66
- id: string;
67
- createdAt: Date;
68
70
  name: string;
69
- }, "createdAt" | "id", "createdAt" | "id">;
71
+ createdAt: Date;
72
+ id: string;
73
+ }, "id" | "createdAt", "id" | "createdAt">;
70
74
  export type Affiliate = InferModelType<typeof Affiliates>;
71
75
  export type AffiliateData = Affiliate & {
72
76
  properties: Array<Pick<AffiliateProperty, "type" | "value">>;
@@ -88,8 +92,7 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
88
92
  body?: Json | undefined;
89
93
  bodyRaw?: Buffer | undefined;
90
94
  };
91
- }>, 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<{
92
- options: {};
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<{
93
96
  patch: {
94
97
  "/tenants/:tenantId": import("@withtyped/server").PathGuard<"/:tenantId", unknown, {
95
98
  name?: string | undefined;
@@ -110,11 +113,10 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
110
113
  currentPeriodStart: Date;
111
114
  currentPeriodEnd: Date;
112
115
  };
113
- tag: TenantTag;
114
116
  openInvoices: {
115
117
  status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
116
- createdAt: Date;
117
118
  id: string;
119
+ createdAt: Date;
118
120
  updatedAt: Date;
119
121
  customerId: string | null;
120
122
  billingReason: string | null;
@@ -126,8 +128,10 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
126
128
  hostedInvoiceUrl: string | null;
127
129
  invoicePdf: string | null;
128
130
  }[];
131
+ tag: TenantTag;
129
132
  }>;
130
133
  };
134
+ options: {};
131
135
  get: {
132
136
  "/tenants": import("@withtyped/server").PathGuard<"/", unknown, unknown, {
133
137
  id: string;
@@ -146,11 +150,10 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
146
150
  currentPeriodStart: Date;
147
151
  currentPeriodEnd: Date;
148
152
  };
149
- tag: TenantTag;
150
153
  openInvoices: {
151
154
  status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
152
- createdAt: Date;
153
155
  id: string;
156
+ createdAt: Date;
154
157
  updatedAt: Date;
155
158
  customerId: string | null;
156
159
  billingReason: string | null;
@@ -162,6 +165,7 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
162
165
  hostedInvoiceUrl: string | null;
163
166
  invoicePdf: string | null;
164
167
  }[];
168
+ tag: TenantTag;
165
169
  }[]>;
166
170
  };
167
171
  post: {
@@ -185,11 +189,10 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
185
189
  currentPeriodStart: Date;
186
190
  currentPeriodEnd: Date;
187
191
  };
188
- tag: TenantTag;
189
192
  openInvoices: {
190
193
  status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
191
- createdAt: Date;
192
194
  id: string;
195
+ createdAt: Date;
193
196
  updatedAt: Date;
194
197
  customerId: string | null;
195
198
  billingReason: string | null;
@@ -201,6 +204,7 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
201
204
  hostedInvoiceUrl: string | null;
202
205
  invoicePdf: string | null;
203
206
  }[];
207
+ tag: TenantTag;
204
208
  }>;
205
209
  };
206
210
  put: {};
@@ -210,8 +214,8 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
210
214
  copy: {};
211
215
  head: {};
212
216
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
213
- options: {};
214
217
  patch: {};
218
+ options: {};
215
219
  get: {
216
220
  "/tenants/my/subscription": import("@withtyped/server").PathGuard<"/my/subscription", unknown, unknown, {
217
221
  status: "incomplete" | "incomplete_expired" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" | "paused";
@@ -230,8 +234,8 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
230
234
  "/tenants/:tenantId/invoices": import("@withtyped/server").PathGuard<"/:tenantId/invoices", unknown, unknown, {
231
235
  invoices: {
232
236
  status: "void" | "open" | "draft" | "paid" | "uncollectible" | null;
233
- createdAt: Date;
234
237
  id: string;
238
+ createdAt: Date;
235
239
  updatedAt: Date;
236
240
  customerId: string | null;
237
241
  billingReason: string | null;
@@ -270,8 +274,8 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
270
274
  copy: {};
271
275
  head: {};
272
276
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
273
- options: {};
274
277
  patch: {};
278
+ options: {};
275
279
  get: {
276
280
  "/services/mails/usage": import("@withtyped/server").PathGuard<"/mails/usage", {
277
281
  from?: string | undefined;
@@ -286,6 +290,7 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
286
290
  payload: {
287
291
  code?: string | undefined;
288
292
  link?: string | undefined;
293
+ } & Record<string, string> & {
289
294
  senderName?: string | undefined;
290
295
  companyInformation?: string | undefined;
291
296
  appLogo?: string | undefined;
@@ -301,22 +306,48 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
301
306
  payload: {
302
307
  code?: string | undefined;
303
308
  link?: string | undefined;
304
- };
309
+ } & Record<string, string>;
305
310
  };
306
311
  }, unknown>;
312
+ } & {
313
+ "/services/custom-jwt": import("@withtyped/server").PathGuard<"/custom-jwt", unknown, {
314
+ script: string;
315
+ tokenType: LogtoJwtTokenKeyType.AccessToken;
316
+ token: Record<string, Json>;
317
+ context: Record<string, Json>;
318
+ environmentVariables?: Record<string, string> | undefined;
319
+ } | {
320
+ script: string;
321
+ tokenType: LogtoJwtTokenKeyType.ClientCredentials;
322
+ token: Record<string, Json>;
323
+ environmentVariables?: Record<string, string> | undefined;
324
+ }, Record<string, unknown>>;
307
325
  };
308
326
  put: {};
309
327
  delete: {};
310
328
  copy: {};
311
329
  head: {};
312
330
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
313
- options: {};
314
331
  patch: {};
332
+ options: {};
315
333
  get: {
316
334
  "/subscription-plans": import("@withtyped/server").PathGuard<"/", unknown, unknown, {
317
- createdAt: Date;
318
335
  id: string;
336
+ createdAt: Date;
319
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
+ }[];
320
351
  quota: {
321
352
  mauLimit: number | null;
322
353
  tokenLimit: number | null;
@@ -338,20 +369,8 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
338
369
  organizationsEnabled: boolean;
339
370
  ssoEnabled: boolean;
340
371
  thirdPartyApplicationsLimit: number | null;
372
+ tenantMembersLimit: number | null;
341
373
  };
342
- stripeProducts: {
343
- type: "flat" | "tier1" | "tier2" | "tier3";
344
- id: string;
345
- name: string;
346
- price: {
347
- id: string;
348
- unitAmountDecimal: string;
349
- quantity?: 1 | undefined;
350
- unitAmount?: number | null | undefined;
351
- };
352
- description?: string | undefined;
353
- }[];
354
- updatedAt: Date;
355
374
  }[]>;
356
375
  };
357
376
  post: {};
@@ -360,33 +379,16 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
360
379
  copy: {};
361
380
  head: {};
362
381
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
363
- options: {};
364
382
  patch: {};
365
- get: {
366
- "/my/tenant": import("@withtyped/server").PathGuard<"/tenant", unknown, unknown, {
367
- name: string;
368
- id: string;
369
- indicator: string;
370
- isSuspended: boolean;
371
- tag: TenantTag;
372
- }>;
373
- };
374
- post: {};
375
- put: {};
376
- delete: {};
377
- copy: {};
378
- head: {};
379
- }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
380
383
  options: {};
381
- patch: {};
382
384
  get: {
383
385
  "/checkout-session/:id": import("@withtyped/server").PathGuard<"/:id", unknown, unknown, {
384
- status: "open" | "complete" | "expired";
385
- createdAt: Date;
386
386
  id: string;
387
+ createdAt: Date;
387
388
  userId: string;
388
- updatedAt: Date;
389
+ status: "open" | "complete" | "expired";
389
390
  tenantId: string | null;
391
+ updatedAt: Date;
390
392
  planId: string;
391
393
  }>;
392
394
  };
@@ -408,8 +410,8 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
408
410
  copy: {};
409
411
  head: {};
410
412
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
411
- options: {};
412
413
  patch: {};
414
+ options: {};
413
415
  get: {
414
416
  "/affiliates": import("@withtyped/server").PathGuard<"/", unknown, unknown, AffiliateData[]>;
415
417
  };
@@ -417,33 +419,33 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
417
419
  "/affiliates": import("@withtyped/server").PathGuard<"/", unknown, {
418
420
  name: string;
419
421
  }, {
420
- createdAt: Date;
421
422
  id: string;
423
+ createdAt: Date;
422
424
  name: string;
423
425
  }>;
424
426
  } & {
425
427
  "/affiliates/:id/properties": import("@withtyped/server").PathGuard<"/:id/properties", unknown, {
426
- value: string;
427
428
  type: "hostname" | "query";
428
- }, {
429
429
  value: string;
430
- type: "hostname" | "query";
430
+ }, {
431
431
  createdAt: Date;
432
432
  affiliateId: string;
433
+ type: "hostname" | "query";
434
+ value: string;
433
435
  }>;
434
436
  };
435
437
  put: {};
436
438
  delete: {
437
439
  "/affiliates/:id/properties": import("@withtyped/server").PathGuard<"/:id/properties", unknown, {
438
- value: string;
439
440
  type: "hostname" | "query";
441
+ value: string;
440
442
  }, unknown>;
441
443
  };
442
444
  copy: {};
443
445
  head: {};
444
446
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
445
- options: {};
446
447
  patch: {};
448
+ options: {};
447
449
  get: {};
448
450
  post: {
449
451
  "/affiliate-logs": import("@withtyped/server").PathGuard<"/", unknown, {
@@ -452,8 +454,8 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
452
454
  hostname?: string | undefined;
453
455
  query?: string | undefined;
454
456
  }, {
455
- createdAt: Date;
456
457
  id: string;
458
+ createdAt: Date;
457
459
  affiliateId: string | null;
458
460
  userId: string;
459
461
  createdVia: {
@@ -468,28 +470,44 @@ declare const router: import("@withtyped/server").Router<RequestContext, WithAut
468
470
  copy: {};
469
471
  head: {};
470
472
  }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
471
- options: {};
472
- patch: {};
473
- get: {};
474
- post: {};
475
- put: {};
476
- delete: {
477
- "/logs/expired": import("@withtyped/server").PathGuard<"/expired", {
478
- dryRun?: string | undefined;
479
- }, unknown, {
480
- affectedRows: number;
481
- }>;
482
- };
483
- copy: {};
484
- head: {};
485
- }, "/api">>, import("@withtyped/server").RoutesWithPrefix<{
486
- options: {};
487
473
  patch: {
488
474
  "/invitations/:invitationId/status": import("@withtyped/server").PathGuard<"/:invitationId/status", unknown, {
489
475
  status: OrganizationInvitationStatus.Accepted;
490
476
  }, unknown>;
491
477
  };
492
- get: {};
478
+ options: {};
479
+ get: {
480
+ "/invitations": import("@withtyped/server").PathGuard<"/", unknown, unknown, ({
481
+ id: string;
482
+ createdAt: number;
483
+ status: OrganizationInvitationStatus;
484
+ tenantId: string;
485
+ updatedAt: number;
486
+ inviterId: string | null;
487
+ invitee: string;
488
+ acceptedUserId: string | null;
489
+ organizationId: string;
490
+ expiresAt: number;
491
+ organizationRoles: OrganizationRoleEntity[];
492
+ } & {
493
+ tenantTag: TenantTag;
494
+ tenantName: string;
495
+ })[]>;
496
+ } & {
497
+ "/invitations/:invitationId": import("@withtyped/server").PathGuard<"/:invitationId", unknown, unknown, {
498
+ id: string;
499
+ createdAt: number;
500
+ status: OrganizationInvitationStatus;
501
+ tenantId: string;
502
+ updatedAt: number;
503
+ inviterId: string | null;
504
+ invitee: string;
505
+ acceptedUserId: string | null;
506
+ organizationId: string;
507
+ expiresAt: number;
508
+ organizationRoles: OrganizationRoleEntity[];
509
+ }>;
510
+ };
493
511
  post: {};
494
512
  put: {};
495
513
  delete: {};
@@ -504,64 +522,68 @@ export declare const tenantAuthRouter: import("@withtyped/server").Router<Reques
504
522
  body?: unknown;
505
523
  };
506
524
  }>, import("@withtyped/server").MergeRoutes<import("@withtyped/server").BaseRoutes, import("@withtyped/server").RoutesWithPrefix<{
507
- options: {};
508
525
  patch: {
509
526
  "/:tenantId/invitations/:invitationId/status": import("@withtyped/server").PathGuard<"/:tenantId/invitations/:invitationId/status", unknown, {
510
527
  status: OrganizationInvitationStatus.Revoked;
511
528
  }, {
512
- status: OrganizationInvitationStatus;
513
- createdAt: number;
514
529
  id: string;
515
- updatedAt: number;
530
+ createdAt: number;
531
+ status: OrganizationInvitationStatus;
516
532
  tenantId: string;
517
- organizationId: string;
533
+ updatedAt: number;
518
534
  inviterId: string | null;
519
- expiresAt: number;
520
- organizationRoles: OrganizationRoleEntity[];
521
535
  invitee: string;
522
536
  acceptedUserId: string | null;
537
+ organizationId: string;
538
+ expiresAt: number;
539
+ organizationRoles: OrganizationRoleEntity[];
523
540
  }>;
524
541
  };
542
+ options: {};
525
543
  get: {
526
544
  "/:tenantId/members": import("@withtyped/server").PathGuard<"/:tenantId/members", unknown, unknown, {
527
545
  id: string;
528
546
  name: string | null;
529
547
  username: string | null;
530
548
  primaryEmail: string | null;
549
+ primaryPhone: string | null;
550
+ avatar: string | null;
531
551
  organizationRoles: OrganizationRoleEntity[];
532
552
  }[]>;
533
553
  } & {
534
- "/:tenantId/invitations": import("@withtyped/server").PathGuard<"/:tenantId/invitations", unknown, unknown, {
535
- status: OrganizationInvitationStatus;
536
- createdAt: number;
554
+ "/:tenantId/invitations": import("@withtyped/server").PathGuard<"/:tenantId/invitations", unknown, unknown, ({
537
555
  id: string;
538
- updatedAt: number;
556
+ createdAt: number;
557
+ status: OrganizationInvitationStatus;
539
558
  tenantId: string;
540
- organizationId: string;
559
+ updatedAt: number;
541
560
  inviterId: string | null;
542
- expiresAt: number;
543
- organizationRoles: OrganizationRoleEntity[];
544
561
  invitee: string;
545
562
  acceptedUserId: string | null;
546
- }[]>;
563
+ organizationId: string;
564
+ expiresAt: number;
565
+ organizationRoles: OrganizationRoleEntity[];
566
+ } & {
567
+ inviterName?: string | undefined;
568
+ })[]>;
547
569
  };
548
570
  post: {
549
571
  "/:tenantId/invitations": import("@withtyped/server").PathGuard<"/:tenantId/invitations", unknown, {
550
- roleName: TenantRole;
551
572
  invitee: string;
573
+ roleName: TenantRole;
552
574
  expiresAt?: number | undefined;
553
575
  }, {
554
- status: OrganizationInvitationStatus;
555
- createdAt: number;
556
576
  id: string;
557
- updatedAt: number;
577
+ createdAt: number;
578
+ status: OrganizationInvitationStatus;
558
579
  tenantId: string;
559
- organizationId: string;
580
+ updatedAt: number;
560
581
  inviterId: string | null;
561
- expiresAt: number;
562
- organizationRoles: OrganizationRoleEntity[];
563
582
  invitee: string;
564
583
  acceptedUserId: string | null;
584
+ organizationId: string;
585
+ expiresAt: number;
586
+ organizationRoles: OrganizationRoleEntity[];
565
587
  }>;
566
588
  } & {
567
589
  "/:tenantId/invitations/:invitationId/message": import("@withtyped/server").PathGuard<"/:tenantId/invitations/:invitationId/message", unknown, unknown, unknown>;
@@ -579,6 +601,35 @@ export declare const tenantAuthRouter: import("@withtyped/server").Router<Reques
579
601
  copy: {};
580
602
  head: {};
581
603
  }, "/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">;
582
633
 
583
634
  export {
584
635
  router as default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logto/cloud",
3
- "version": "0.2.5-a21a38a",
3
+ "version": "0.2.5-ab8a489",
4
4
  "description": "Logto Cloud service.",
5
5
  "main": "build/index.js",
6
6
  "author": "Silverhand Inc. <contact@silverhand.io>",
@@ -17,22 +17,20 @@
17
17
  },
18
18
  "devDependencies": {
19
19
  "@silverhand/eslint-config": "5.0.0",
20
- "@silverhand/jest-config": "5.0.0",
21
20
  "@silverhand/ts-config": "5.0.0",
22
21
  "@types/accepts": "^1.3.5",
23
22
  "@types/http-proxy": "^1.17.9",
24
- "@types/jest": "^29.4.0",
25
23
  "@types/mime-types": "^2.1.1",
26
24
  "@types/node": "^20.0.0",
27
25
  "@types/yargs": "^17.0.24",
28
26
  "dts-bundle-generator": "^9.3.1",
29
27
  "eslint": "^8.44.0",
30
- "jest": "^29.5.0",
31
28
  "lint-staged": "^15.0.0",
32
29
  "nodemon": "^3.0.0",
33
- "p-map": "^7.0.1",
34
30
  "prettier": "^3.0.0",
35
- "typescript": "^5.3.3"
31
+ "typescript": "^5.3.3",
32
+ "vite-tsconfig-paths": "^4.3.1",
33
+ "vitest": "^1.0.0"
36
34
  },
37
35
  "engines": {
38
36
  "node": "^20.9.0"
@@ -59,14 +57,11 @@
59
57
  "build": "rm -rf build/ && tsc -p tsconfig.build.json && pnpm build:lib",
60
58
  "//": "It is not used to build the service itself.",
61
59
  "build:lib": "rm -rf lib/ && dts-bundle-generator src/routes/index.ts --project tsconfig.build.lib.json -o lib/routes/index.d.ts",
62
- "build:test": "rm -rf build/ && tsc -p tsconfig.test.json --sourcemap",
63
60
  "lint": "eslint --ext .ts src",
64
61
  "lint:report": "pnpm lint --format json --output-file report.json",
65
62
  "dev": "rm -rf build/ && nodemon",
66
63
  "start": "NODE_ENV=production node .",
67
- "test:only": "NODE_OPTIONS=\"--experimental-vm-modules --max_old_space_size=4096\" jest --logHeapUsage",
68
- "test": "pnpm build:test && pnpm test:only && pnpm build:lib && pnpm test:types",
69
- "test:ci": "pnpm test:only --coverage --silent",
64
+ "test": "vitest && pnpm build:lib && pnpm test:types",
70
65
  "test:types": "tsc -p tsconfig.test.types.json",
71
66
  "cli": "node ./build/cli/index.js"
72
67
  }