dub 0.63.7 → 0.64.0

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 (142) hide show
  1. package/README.md +9 -9
  2. package/bin/mcp-server.js +311 -383
  3. package/bin/mcp-server.js.map +22 -23
  4. package/dist/commonjs/lib/config.d.ts +3 -3
  5. package/dist/commonjs/lib/config.js +3 -3
  6. package/dist/commonjs/mcp-server/cli/start/command.d.ts.map +1 -1
  7. package/dist/commonjs/mcp-server/cli/start/command.js +0 -12
  8. package/dist/commonjs/mcp-server/cli/start/command.js.map +1 -1
  9. package/dist/commonjs/mcp-server/cli/start/impl.d.ts +0 -2
  10. package/dist/commonjs/mcp-server/cli/start/impl.d.ts.map +1 -1
  11. package/dist/commonjs/mcp-server/cli/start/impl.js +0 -2
  12. package/dist/commonjs/mcp-server/cli/start/impl.js.map +1 -1
  13. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  14. package/dist/commonjs/mcp-server/server.js +1 -1
  15. package/dist/commonjs/models/errors/badrequest.d.ts.map +1 -1
  16. package/dist/commonjs/models/errors/badrequest.js +2 -1
  17. package/dist/commonjs/models/errors/badrequest.js.map +1 -1
  18. package/dist/commonjs/models/errors/conflict.d.ts.map +1 -1
  19. package/dist/commonjs/models/errors/conflict.js +2 -1
  20. package/dist/commonjs/models/errors/conflict.js.map +1 -1
  21. package/dist/commonjs/models/errors/forbidden.d.ts.map +1 -1
  22. package/dist/commonjs/models/errors/forbidden.js +2 -1
  23. package/dist/commonjs/models/errors/forbidden.js.map +1 -1
  24. package/dist/commonjs/models/errors/internalservererror.d.ts.map +1 -1
  25. package/dist/commonjs/models/errors/internalservererror.js +2 -1
  26. package/dist/commonjs/models/errors/internalservererror.js.map +1 -1
  27. package/dist/commonjs/models/errors/inviteexpired.d.ts.map +1 -1
  28. package/dist/commonjs/models/errors/inviteexpired.js +2 -1
  29. package/dist/commonjs/models/errors/inviteexpired.js.map +1 -1
  30. package/dist/commonjs/models/errors/notfound.d.ts.map +1 -1
  31. package/dist/commonjs/models/errors/notfound.js +2 -1
  32. package/dist/commonjs/models/errors/notfound.js.map +1 -1
  33. package/dist/commonjs/models/errors/ratelimitexceeded.d.ts.map +1 -1
  34. package/dist/commonjs/models/errors/ratelimitexceeded.js +2 -1
  35. package/dist/commonjs/models/errors/ratelimitexceeded.js.map +1 -1
  36. package/dist/commonjs/models/errors/sdkerror.d.ts.map +1 -1
  37. package/dist/commonjs/models/errors/sdkerror.js +8 -2
  38. package/dist/commonjs/models/errors/sdkerror.js.map +1 -1
  39. package/dist/commonjs/models/errors/unauthorized.d.ts.map +1 -1
  40. package/dist/commonjs/models/errors/unauthorized.js +2 -1
  41. package/dist/commonjs/models/errors/unauthorized.js.map +1 -1
  42. package/dist/commonjs/models/errors/unprocessableentity.d.ts.map +1 -1
  43. package/dist/commonjs/models/errors/unprocessableentity.js +2 -1
  44. package/dist/commonjs/models/errors/unprocessableentity.js.map +1 -1
  45. package/dist/commonjs/models/operations/createcustomer.d.ts +2 -0
  46. package/dist/commonjs/models/operations/createcustomer.d.ts.map +1 -1
  47. package/dist/commonjs/models/operations/createcustomer.js +2 -0
  48. package/dist/commonjs/models/operations/createcustomer.js.map +1 -1
  49. package/dist/commonjs/models/operations/getcustomer.d.ts +2 -0
  50. package/dist/commonjs/models/operations/getcustomer.d.ts.map +1 -1
  51. package/dist/commonjs/models/operations/getcustomer.js +2 -0
  52. package/dist/commonjs/models/operations/getcustomer.js.map +1 -1
  53. package/dist/commonjs/models/operations/getcustomers.d.ts +2 -0
  54. package/dist/commonjs/models/operations/getcustomers.d.ts.map +1 -1
  55. package/dist/commonjs/models/operations/getcustomers.js +2 -0
  56. package/dist/commonjs/models/operations/getcustomers.js.map +1 -1
  57. package/dist/commonjs/models/operations/updatecustomer.d.ts +2 -0
  58. package/dist/commonjs/models/operations/updatecustomer.d.ts.map +1 -1
  59. package/dist/commonjs/models/operations/updatecustomer.js +2 -0
  60. package/dist/commonjs/models/operations/updatecustomer.js.map +1 -1
  61. package/dist/esm/lib/config.d.ts +3 -3
  62. package/dist/esm/lib/config.js +3 -3
  63. package/dist/esm/mcp-server/cli/start/command.d.ts.map +1 -1
  64. package/dist/esm/mcp-server/cli/start/command.js +0 -12
  65. package/dist/esm/mcp-server/cli/start/command.js.map +1 -1
  66. package/dist/esm/mcp-server/cli/start/impl.d.ts +0 -2
  67. package/dist/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
  68. package/dist/esm/mcp-server/cli/start/impl.js +0 -2
  69. package/dist/esm/mcp-server/cli/start/impl.js.map +1 -1
  70. package/dist/esm/mcp-server/mcp-server.js +1 -1
  71. package/dist/esm/mcp-server/server.js +1 -1
  72. package/dist/esm/models/errors/badrequest.d.ts.map +1 -1
  73. package/dist/esm/models/errors/badrequest.js +2 -1
  74. package/dist/esm/models/errors/badrequest.js.map +1 -1
  75. package/dist/esm/models/errors/conflict.d.ts.map +1 -1
  76. package/dist/esm/models/errors/conflict.js +2 -1
  77. package/dist/esm/models/errors/conflict.js.map +1 -1
  78. package/dist/esm/models/errors/forbidden.d.ts.map +1 -1
  79. package/dist/esm/models/errors/forbidden.js +2 -1
  80. package/dist/esm/models/errors/forbidden.js.map +1 -1
  81. package/dist/esm/models/errors/internalservererror.d.ts.map +1 -1
  82. package/dist/esm/models/errors/internalservererror.js +2 -1
  83. package/dist/esm/models/errors/internalservererror.js.map +1 -1
  84. package/dist/esm/models/errors/inviteexpired.d.ts.map +1 -1
  85. package/dist/esm/models/errors/inviteexpired.js +2 -1
  86. package/dist/esm/models/errors/inviteexpired.js.map +1 -1
  87. package/dist/esm/models/errors/notfound.d.ts.map +1 -1
  88. package/dist/esm/models/errors/notfound.js +2 -1
  89. package/dist/esm/models/errors/notfound.js.map +1 -1
  90. package/dist/esm/models/errors/ratelimitexceeded.d.ts.map +1 -1
  91. package/dist/esm/models/errors/ratelimitexceeded.js +2 -1
  92. package/dist/esm/models/errors/ratelimitexceeded.js.map +1 -1
  93. package/dist/esm/models/errors/sdkerror.d.ts.map +1 -1
  94. package/dist/esm/models/errors/sdkerror.js +8 -2
  95. package/dist/esm/models/errors/sdkerror.js.map +1 -1
  96. package/dist/esm/models/errors/unauthorized.d.ts.map +1 -1
  97. package/dist/esm/models/errors/unauthorized.js +2 -1
  98. package/dist/esm/models/errors/unauthorized.js.map +1 -1
  99. package/dist/esm/models/errors/unprocessableentity.d.ts.map +1 -1
  100. package/dist/esm/models/errors/unprocessableentity.js +2 -1
  101. package/dist/esm/models/errors/unprocessableentity.js.map +1 -1
  102. package/dist/esm/models/operations/createcustomer.d.ts +2 -0
  103. package/dist/esm/models/operations/createcustomer.d.ts.map +1 -1
  104. package/dist/esm/models/operations/createcustomer.js +2 -0
  105. package/dist/esm/models/operations/createcustomer.js.map +1 -1
  106. package/dist/esm/models/operations/getcustomer.d.ts +2 -0
  107. package/dist/esm/models/operations/getcustomer.d.ts.map +1 -1
  108. package/dist/esm/models/operations/getcustomer.js +2 -0
  109. package/dist/esm/models/operations/getcustomer.js.map +1 -1
  110. package/dist/esm/models/operations/getcustomers.d.ts +2 -0
  111. package/dist/esm/models/operations/getcustomers.d.ts.map +1 -1
  112. package/dist/esm/models/operations/getcustomers.js +2 -0
  113. package/dist/esm/models/operations/getcustomers.js.map +1 -1
  114. package/dist/esm/models/operations/updatecustomer.d.ts +2 -0
  115. package/dist/esm/models/operations/updatecustomer.d.ts.map +1 -1
  116. package/dist/esm/models/operations/updatecustomer.js +2 -0
  117. package/dist/esm/models/operations/updatecustomer.js.map +1 -1
  118. package/examples/README.md +26 -0
  119. package/examples/linksCreate.example.ts +24 -0
  120. package/examples/package-lock.json +629 -0
  121. package/examples/package.json +18 -0
  122. package/jsr.json +1 -1
  123. package/package.json +3 -3
  124. package/src/lib/config.ts +3 -3
  125. package/src/mcp-server/cli/start/command.ts +0 -13
  126. package/src/mcp-server/cli/start/impl.ts +0 -4
  127. package/src/mcp-server/mcp-server.ts +1 -1
  128. package/src/mcp-server/server.ts +1 -1
  129. package/src/models/errors/badrequest.ts +2 -1
  130. package/src/models/errors/conflict.ts +2 -1
  131. package/src/models/errors/forbidden.ts +2 -1
  132. package/src/models/errors/internalservererror.ts +2 -1
  133. package/src/models/errors/inviteexpired.ts +2 -1
  134. package/src/models/errors/notfound.ts +2 -1
  135. package/src/models/errors/ratelimitexceeded.ts +2 -1
  136. package/src/models/errors/sdkerror.ts +8 -2
  137. package/src/models/errors/unauthorized.ts +2 -1
  138. package/src/models/errors/unprocessableentity.ts +2 -1
  139. package/src/models/operations/createcustomer.ts +4 -0
  140. package/src/models/operations/getcustomer.ts +4 -0
  141. package/src/models/operations/getcustomers.ts +4 -0
  142. package/src/models/operations/updatecustomer.ts +4 -0
@@ -6,7 +6,6 @@ import { buildCommand } from "@stricli/core";
6
6
  import { numberParser } from "@stricli/core";
7
7
  import * as z from "zod";
8
8
  import { consoleLoggerLevels } from "../../console-logger.js";
9
- import { mcpScopes } from "../../scopes.js";
10
9
 
11
10
  export const startCommand = buildCommand({
12
11
  loader: async () => {
@@ -37,18 +36,6 @@ export const startCommand = buildCommand({
37
36
  return z.string().parse(value);
38
37
  },
39
38
  },
40
- ...(mcpScopes.length
41
- ? {
42
- scope: {
43
- kind: "enum",
44
- brief:
45
- "Mount tools/resources that match given scope (repeatable flag)",
46
- values: mcpScopes,
47
- variadic: true,
48
- optional: true,
49
- },
50
- }
51
- : {}),
52
39
  "api-token": {
53
40
  kind: "parsed",
54
41
  brief: "Sets the token auth field for the API",
@@ -11,14 +11,12 @@ import {
11
11
  ConsoleLoggerLevel,
12
12
  createConsoleLogger,
13
13
  } from "../../console-logger.js";
14
- import { MCPScope } from "../../scopes.js";
15
14
  import { createMCPServer } from "../../server.js";
16
15
 
17
16
  interface StartCommandFlags {
18
17
  readonly transport: "stdio" | "sse";
19
18
  readonly port: number;
20
19
  readonly tool?: string[];
21
- readonly scope?: MCPScope[];
22
20
  readonly "api-token"?: string | undefined;
23
21
  readonly "server-url"?: string;
24
22
  readonly "server-index"?: SDKOptions["serverIdx"];
@@ -49,7 +47,6 @@ async function startStdio(flags: StartCommandFlags) {
49
47
  const server = createMCPServer({
50
48
  logger,
51
49
  allowedTools: flags.tool,
52
- scopes: flags.scope,
53
50
  ...{ token: flags["api-token"] ?? "" },
54
51
  serverURL: flags["server-url"],
55
52
  serverIdx: flags["server-index"],
@@ -70,7 +67,6 @@ async function startSSE(flags: StartCommandFlags) {
70
67
  const mcpServer = createMCPServer({
71
68
  logger,
72
69
  allowedTools: flags.tool,
73
- scopes: flags.scope,
74
70
  ...{ token: flags["api-token"] ?? "" },
75
71
  serverURL: flags["server-url"],
76
72
  serverIdx: flags["server-index"],
@@ -19,7 +19,7 @@ const routes = buildRouteMap({
19
19
  export const app = buildApplication(routes, {
20
20
  name: "mcp",
21
21
  versionInfo: {
22
- currentVersion: "0.63.7",
22
+ currentVersion: "0.64.0",
23
23
  },
24
24
  });
25
25
 
@@ -68,7 +68,7 @@ export function createMCPServer(deps: {
68
68
  }) {
69
69
  const server = new McpServer({
70
70
  name: "Dub",
71
- version: "0.63.7",
71
+ version: "0.64.0",
72
72
  });
73
73
 
74
74
  const client = new DubCore({
@@ -56,7 +56,8 @@ export class BadRequest extends DubError {
56
56
  err: BadRequestData,
57
57
  httpMeta: { response: Response; request: Request; body: string },
58
58
  ) {
59
- const message = err.error?.message || "API error occurred";
59
+ const message = err.error?.message
60
+ || `API error occurred: ${JSON.stringify(err)}`;
60
61
  super(message, httpMeta);
61
62
  this.data$ = err;
62
63
  this.error = err.error;
@@ -56,7 +56,8 @@ export class Conflict extends DubError {
56
56
  err: ConflictData,
57
57
  httpMeta: { response: Response; request: Request; body: string },
58
58
  ) {
59
- const message = err.error?.message || "API error occurred";
59
+ const message = err.error?.message
60
+ || `API error occurred: ${JSON.stringify(err)}`;
60
61
  super(message, httpMeta);
61
62
  this.data$ = err;
62
63
  this.error = err.error;
@@ -56,7 +56,8 @@ export class Forbidden extends DubError {
56
56
  err: ForbiddenData,
57
57
  httpMeta: { response: Response; request: Request; body: string },
58
58
  ) {
59
- const message = err.error?.message || "API error occurred";
59
+ const message = err.error?.message
60
+ || `API error occurred: ${JSON.stringify(err)}`;
60
61
  super(message, httpMeta);
61
62
  this.data$ = err;
62
63
  this.error = err.error;
@@ -58,7 +58,8 @@ export class InternalServerError extends DubError {
58
58
  err: InternalServerErrorData,
59
59
  httpMeta: { response: Response; request: Request; body: string },
60
60
  ) {
61
- const message = err.error?.message || "API error occurred";
61
+ const message = err.error?.message
62
+ || `API error occurred: ${JSON.stringify(err)}`;
62
63
  super(message, httpMeta);
63
64
  this.data$ = err;
64
65
  this.error = err.error;
@@ -56,7 +56,8 @@ export class InviteExpired extends DubError {
56
56
  err: InviteExpiredData,
57
57
  httpMeta: { response: Response; request: Request; body: string },
58
58
  ) {
59
- const message = err.error?.message || "API error occurred";
59
+ const message = err.error?.message
60
+ || `API error occurred: ${JSON.stringify(err)}`;
60
61
  super(message, httpMeta);
61
62
  this.data$ = err;
62
63
  this.error = err.error;
@@ -56,7 +56,8 @@ export class NotFound extends DubError {
56
56
  err: NotFoundData,
57
57
  httpMeta: { response: Response; request: Request; body: string },
58
58
  ) {
59
- const message = err.error?.message || "API error occurred";
59
+ const message = err.error?.message
60
+ || `API error occurred: ${JSON.stringify(err)}`;
60
61
  super(message, httpMeta);
61
62
  this.data$ = err;
62
63
  this.error = err.error;
@@ -56,7 +56,8 @@ export class RateLimitExceeded extends DubError {
56
56
  err: RateLimitExceededData,
57
57
  httpMeta: { response: Response; request: Request; body: string },
58
58
  ) {
59
- const message = err.error?.message || "API error occurred";
59
+ const message = err.error?.message
60
+ || `API error occurred: ${JSON.stringify(err)}`;
60
61
  super(message, httpMeta);
61
62
  this.data$ = err;
62
63
  this.error = err.error;
@@ -25,8 +25,14 @@ export class SDKError extends DubError {
25
25
  }`;
26
26
  }
27
27
  const body = httpMeta.body || `""`;
28
- message += body.length > 100 ? "\n" : " ";
29
- message += `Body ${body}`;
28
+ message += body.length > 100 ? "\n" : ". ";
29
+ let bodyDisplay = body;
30
+ if (body.length > 10000) {
31
+ const truncated = body.substring(0, 10000);
32
+ const remaining = body.length - 10000;
33
+ bodyDisplay = `${truncated}...and ${remaining} more chars`;
34
+ }
35
+ message += `Body: ${bodyDisplay}`;
30
36
  message = message.trim();
31
37
  super(message, httpMeta);
32
38
  this.name = "SDKError";
@@ -56,7 +56,8 @@ export class Unauthorized extends DubError {
56
56
  err: UnauthorizedData,
57
57
  httpMeta: { response: Response; request: Request; body: string },
58
58
  ) {
59
- const message = err.error?.message || "API error occurred";
59
+ const message = err.error?.message
60
+ || `API error occurred: ${JSON.stringify(err)}`;
60
61
  super(message, httpMeta);
61
62
  this.data$ = err;
62
63
  this.error = err.error;
@@ -58,7 +58,8 @@ export class UnprocessableEntity extends DubError {
58
58
  err: UnprocessableEntityData,
59
59
  httpMeta: { response: Response; request: Request; body: string },
60
60
  ) {
61
- const message = err.error?.message || "API error occurred";
61
+ const message = err.error?.message
62
+ || `API error occurred: ${JSON.stringify(err)}`;
62
63
  super(message, httpMeta);
63
64
  this.data$ = err;
64
65
  this.error = err.error;
@@ -88,6 +88,7 @@ export type CreateCustomerDiscount = {
88
88
  couponId: string | null;
89
89
  couponTestId: string | null;
90
90
  partnersCount?: number | null | undefined;
91
+ default: boolean;
91
92
  };
92
93
 
93
94
  /**
@@ -366,6 +367,7 @@ export const CreateCustomerDiscount$inboundSchema: z.ZodType<
366
367
  couponId: z.nullable(z.string()),
367
368
  couponTestId: z.nullable(z.string()),
368
369
  partnersCount: z.nullable(z.number()).optional(),
370
+ default: z.boolean(),
369
371
  });
370
372
 
371
373
  /** @internal */
@@ -378,6 +380,7 @@ export type CreateCustomerDiscount$Outbound = {
378
380
  couponId: string | null;
379
381
  couponTestId: string | null;
380
382
  partnersCount?: number | null | undefined;
383
+ default: boolean;
381
384
  };
382
385
 
383
386
  /** @internal */
@@ -394,6 +397,7 @@ export const CreateCustomerDiscount$outboundSchema: z.ZodType<
394
397
  couponId: z.nullable(z.string()),
395
398
  couponTestId: z.nullable(z.string()),
396
399
  partnersCount: z.nullable(z.number()).optional(),
400
+ default: z.boolean(),
397
401
  });
398
402
 
399
403
  /**
@@ -80,6 +80,7 @@ export type GetCustomerDiscount = {
80
80
  couponId: string | null;
81
81
  couponTestId: string | null;
82
82
  partnersCount?: number | null | undefined;
83
+ default: boolean;
83
84
  };
84
85
 
85
86
  /**
@@ -350,6 +351,7 @@ export const GetCustomerDiscount$inboundSchema: z.ZodType<
350
351
  couponId: z.nullable(z.string()),
351
352
  couponTestId: z.nullable(z.string()),
352
353
  partnersCount: z.nullable(z.number()).optional(),
354
+ default: z.boolean(),
353
355
  });
354
356
 
355
357
  /** @internal */
@@ -362,6 +364,7 @@ export type GetCustomerDiscount$Outbound = {
362
364
  couponId: string | null;
363
365
  couponTestId: string | null;
364
366
  partnersCount?: number | null | undefined;
367
+ default: boolean;
365
368
  };
366
369
 
367
370
  /** @internal */
@@ -378,6 +381,7 @@ export const GetCustomerDiscount$outboundSchema: z.ZodType<
378
381
  couponId: z.nullable(z.string()),
379
382
  couponTestId: z.nullable(z.string()),
380
383
  partnersCount: z.nullable(z.number()).optional(),
384
+ default: z.boolean(),
381
385
  });
382
386
 
383
387
  /**
@@ -140,6 +140,7 @@ export type Discount = {
140
140
  couponId: string | null;
141
141
  couponTestId: string | null;
142
142
  partnersCount?: number | null | undefined;
143
+ default: boolean;
143
144
  };
144
145
 
145
146
  export type GetCustomersResponseBody = {
@@ -475,6 +476,7 @@ export const Discount$inboundSchema: z.ZodType<
475
476
  couponId: z.nullable(z.string()),
476
477
  couponTestId: z.nullable(z.string()),
477
478
  partnersCount: z.nullable(z.number()).optional(),
479
+ default: z.boolean(),
478
480
  });
479
481
 
480
482
  /** @internal */
@@ -487,6 +489,7 @@ export type Discount$Outbound = {
487
489
  couponId: string | null;
488
490
  couponTestId: string | null;
489
491
  partnersCount?: number | null | undefined;
492
+ default: boolean;
490
493
  };
491
494
 
492
495
  /** @internal */
@@ -503,6 +506,7 @@ export const Discount$outboundSchema: z.ZodType<
503
506
  couponId: z.nullable(z.string()),
504
507
  couponTestId: z.nullable(z.string()),
505
508
  partnersCount: z.nullable(z.number()).optional(),
509
+ default: z.boolean(),
506
510
  });
507
511
 
508
512
  /**
@@ -101,6 +101,7 @@ export type UpdateCustomerDiscount = {
101
101
  couponId: string | null;
102
102
  couponTestId: string | null;
103
103
  partnersCount?: number | null | undefined;
104
+ default: boolean;
104
105
  };
105
106
 
106
107
  /**
@@ -448,6 +449,7 @@ export const UpdateCustomerDiscount$inboundSchema: z.ZodType<
448
449
  couponId: z.nullable(z.string()),
449
450
  couponTestId: z.nullable(z.string()),
450
451
  partnersCount: z.nullable(z.number()).optional(),
452
+ default: z.boolean(),
451
453
  });
452
454
 
453
455
  /** @internal */
@@ -460,6 +462,7 @@ export type UpdateCustomerDiscount$Outbound = {
460
462
  couponId: string | null;
461
463
  couponTestId: string | null;
462
464
  partnersCount?: number | null | undefined;
465
+ default: boolean;
463
466
  };
464
467
 
465
468
  /** @internal */
@@ -476,6 +479,7 @@ export const UpdateCustomerDiscount$outboundSchema: z.ZodType<
476
479
  couponId: z.nullable(z.string()),
477
480
  couponTestId: z.nullable(z.string()),
478
481
  partnersCount: z.nullable(z.number()).optional(),
482
+ default: z.boolean(),
479
483
  });
480
484
 
481
485
  /**