@flexprice/mcp-server 2.0.12 → 2.0.14

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 (64) hide show
  1. package/bin/mcp-server.js +219 -127
  2. package/bin/mcp-server.js.map +16 -15
  3. package/bun.lock +17 -17
  4. package/esm/lib/config.d.ts +3 -3
  5. package/esm/lib/config.js +3 -3
  6. package/esm/lib/config.js.map +1 -1
  7. package/esm/lib/security.d.ts +1 -1
  8. package/esm/lib/security.d.ts.map +1 -1
  9. package/esm/lib/security.js +19 -8
  10. package/esm/lib/security.js.map +1 -1
  11. package/esm/mcp-server/mcp-server.js +1 -1
  12. package/esm/mcp-server/server.js +1 -1
  13. package/esm/models/addonassociationentitytype.d.ts +1 -1
  14. package/esm/models/dtocreatecustomerrequest.d.ts +0 -2
  15. package/esm/models/dtocreatecustomerrequest.d.ts.map +1 -1
  16. package/esm/models/dtocreatecustomerrequest.js +0 -3
  17. package/esm/models/dtocreatecustomerrequest.js.map +1 -1
  18. package/esm/models/dtocustomerresponse.d.ts +2 -0
  19. package/esm/models/dtocustomerresponse.d.ts.map +1 -1
  20. package/esm/models/dtocustomerresponse.js +3 -0
  21. package/esm/models/dtocustomerresponse.js.map +1 -1
  22. package/esm/models/dtoentitlementsourceentitytype.d.ts +1 -1
  23. package/esm/models/dtoentityintegrationmappingresponse.d.ts +19 -0
  24. package/esm/models/dtoentityintegrationmappingresponse.d.ts.map +1 -0
  25. package/esm/models/dtoentityintegrationmappingresponse.js +21 -0
  26. package/esm/models/dtoentityintegrationmappingresponse.js.map +1 -0
  27. package/esm/models/dtoinvoiceresponse.d.ts +1 -0
  28. package/esm/models/dtoinvoiceresponse.d.ts.map +1 -1
  29. package/esm/models/dtoinvoiceresponse.js +1 -0
  30. package/esm/models/dtoinvoiceresponse.js.map +1 -1
  31. package/esm/models/dtoupdatecustomerrequest.d.ts +0 -2
  32. package/esm/models/dtoupdatecustomerrequest.d.ts.map +1 -1
  33. package/esm/models/dtoupdatecustomerrequest.js +0 -3
  34. package/esm/models/dtoupdatecustomerrequest.js.map +1 -1
  35. package/esm/models/groupentitytype.d.ts +1 -1
  36. package/esm/models/integrationentitytype.d.ts +28 -0
  37. package/esm/models/integrationentitytype.d.ts.map +1 -0
  38. package/esm/models/integrationentitytype.js +29 -0
  39. package/esm/models/integrationentitytype.js.map +1 -0
  40. package/esm/models/invoicestatus.d.ts +2 -0
  41. package/esm/models/invoicestatus.d.ts.map +1 -1
  42. package/esm/models/invoicestatus.js +2 -0
  43. package/esm/models/invoicestatus.js.map +1 -1
  44. package/esm/models/subscriptionlineitementitytype.d.ts +1 -1
  45. package/esm/models/taxrateentitytype.d.ts +1 -1
  46. package/esm/tsconfig.tsbuildinfo +1 -1
  47. package/manifest.json +1 -1
  48. package/package.json +1 -1
  49. package/src/lib/config.ts +3 -3
  50. package/src/lib/security.ts +14 -2
  51. package/src/mcp-server/mcp-server.ts +1 -1
  52. package/src/mcp-server/server.ts +1 -1
  53. package/src/models/dtocreatecustomerrequest.ts +0 -9
  54. package/src/models/dtocustomerresponse.ts +7 -0
  55. package/src/models/dtoentityintegrationmappingresponse.ts +42 -0
  56. package/src/models/dtoinvoiceresponse.ts +4 -0
  57. package/src/models/dtoupdatecustomerrequest.ts +0 -9
  58. package/src/models/integrationentitytype.ts +33 -0
  59. package/src/models/invoicestatus.ts +2 -0
  60. package/esm/models/dtointegrationentitymapping.d.ts +0 -28
  61. package/esm/models/dtointegrationentitymapping.d.ts.map +0 -1
  62. package/esm/models/dtointegrationentitymapping.js +0 -22
  63. package/esm/models/dtointegrationentitymapping.js.map +0 -1
  64. package/src/models/dtointegrationentitymapping.ts +0 -41
package/bin/mcp-server.js CHANGED
@@ -5423,7 +5423,7 @@ var init_scopes = __esm(() => {
5423
5423
  });
5424
5424
 
5425
5425
  // node_modules/@hono/node-server/dist/index.mjs
5426
- import { Http2ServerRequest as Http2ServerRequest2 } from "http2";
5426
+ import { Http2ServerRequest as Http2ServerRequest2, constants as h2constants } from "http2";
5427
5427
  import { Http2ServerRequest } from "http2";
5428
5428
  import { Readable } from "stream";
5429
5429
  import crypto2 from "crypto";
@@ -5585,7 +5585,45 @@ var RequestError, toRequestError = (e) => {
5585
5585
  }
5586
5586
  res["content-type"] ??= "text/plain; charset=UTF-8";
5587
5587
  return res;
5588
- }, X_ALREADY_SENT = "x-hono-already-sent", outgoingEnded, handleRequestError = () => new Response(null, {
5588
+ }, X_ALREADY_SENT = "x-hono-already-sent", outgoingEnded, incomingDraining, DRAIN_TIMEOUT_MS = 500, MAX_DRAIN_BYTES, drainIncoming = (incoming) => {
5589
+ const incomingWithDrainState = incoming;
5590
+ if (incoming.destroyed || incomingWithDrainState[incomingDraining]) {
5591
+ return;
5592
+ }
5593
+ incomingWithDrainState[incomingDraining] = true;
5594
+ if (incoming instanceof Http2ServerRequest2) {
5595
+ try {
5596
+ incoming.stream?.close?.(h2constants.NGHTTP2_NO_ERROR);
5597
+ } catch {}
5598
+ return;
5599
+ }
5600
+ let bytesRead = 0;
5601
+ const cleanup = () => {
5602
+ clearTimeout(timer);
5603
+ incoming.off("data", onData);
5604
+ incoming.off("end", cleanup);
5605
+ incoming.off("error", cleanup);
5606
+ };
5607
+ const forceClose = () => {
5608
+ cleanup();
5609
+ const socket = incoming.socket;
5610
+ if (socket && !socket.destroyed) {
5611
+ socket.destroySoon();
5612
+ }
5613
+ };
5614
+ const timer = setTimeout(forceClose, DRAIN_TIMEOUT_MS);
5615
+ timer.unref?.();
5616
+ const onData = (chunk) => {
5617
+ bytesRead += chunk.length;
5618
+ if (bytesRead > MAX_DRAIN_BYTES) {
5619
+ forceClose();
5620
+ }
5621
+ };
5622
+ incoming.on("data", onData);
5623
+ incoming.on("end", cleanup);
5624
+ incoming.on("error", cleanup);
5625
+ incoming.resume();
5626
+ }, handleRequestError = () => new Response(null, {
5589
5627
  status: 400
5590
5628
  }), handleFetchError = (e) => new Response(null, {
5591
5629
  status: e instanceof Error && (e.name === "TimeoutError" || e.constructor.name === "TimeoutError") ? 504 : 500
@@ -5741,14 +5779,18 @@ var RequestError, toRequestError = (e) => {
5741
5779
  setTimeout(() => {
5742
5780
  if (!incomingEnded) {
5743
5781
  setTimeout(() => {
5744
- incoming.destroy();
5745
- outgoing.destroy();
5782
+ drainIncoming(incoming);
5746
5783
  });
5747
5784
  }
5748
5785
  });
5749
5786
  }
5750
5787
  };
5751
5788
  }
5789
+ outgoing.on("finish", () => {
5790
+ if (!incomingEnded) {
5791
+ drainIncoming(incoming);
5792
+ }
5793
+ });
5752
5794
  }
5753
5795
  outgoing.on("close", () => {
5754
5796
  const abortController = req[abortControllerKey];
@@ -5763,7 +5805,7 @@ var RequestError, toRequestError = (e) => {
5763
5805
  setTimeout(() => {
5764
5806
  if (!incomingEnded) {
5765
5807
  setTimeout(() => {
5766
- incoming.destroy();
5808
+ drainIncoming(incoming);
5767
5809
  });
5768
5810
  }
5769
5811
  });
@@ -5939,6 +5981,8 @@ var init_dist = __esm(() => {
5939
5981
  global.crypto = crypto2;
5940
5982
  }
5941
5983
  outgoingEnded = Symbol("outgoingEnded");
5984
+ incomingDraining = Symbol("incomingDraining");
5985
+ MAX_DRAIN_BYTES = 64 * 1024 * 1024;
5942
5986
  });
5943
5987
 
5944
5988
  // node_modules/zod/v4/classic/index.js
@@ -26960,17 +27004,8 @@ var require_dist = __commonJS((exports) => {
26960
27004
  var NOOP_VALUE = (value) => value;
26961
27005
  var ID_START = /^[$_\p{ID_Start}]$/u;
26962
27006
  var ID_CONTINUE = /^[$\u200c\u200d\p{ID_Continue}]$/u;
26963
- var SIMPLE_TOKENS = {
26964
- "{": "{",
26965
- "}": "}",
26966
- "(": "(",
26967
- ")": ")",
26968
- "[": "[",
26969
- "]": "]",
26970
- "+": "+",
26971
- "?": "?",
26972
- "!": "!"
26973
- };
27007
+ var ID = /^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;
27008
+ var SIMPLE_TOKENS = "{}()[]+?!";
26974
27009
  function escapeText(str) {
26975
27010
  return str.replace(/[{}()\[\]+?!:*\\]/g, "\\$&");
26976
27011
  }
@@ -27011,8 +27046,8 @@ var require_dist = __commonJS((exports) => {
27011
27046
  } while (ID_CONTINUE.test(chars[index]));
27012
27047
  } else if (chars[index] === '"') {
27013
27048
  let quoteStart = index;
27014
- while (index++ < chars.length) {
27015
- if (chars[index] === '"') {
27049
+ while (index < chars.length) {
27050
+ if (chars[++index] === '"') {
27016
27051
  index++;
27017
27052
  quoteStart = 0;
27018
27053
  break;
@@ -27031,18 +27066,17 @@ var require_dist = __commonJS((exports) => {
27031
27066
  return value;
27032
27067
  }
27033
27068
  while (index < chars.length) {
27034
- const value = chars[index];
27035
- const type = SIMPLE_TOKENS[value];
27036
- if (type) {
27037
- tokens.push({ type, index: index++, value });
27069
+ const value = chars[index++];
27070
+ if (SIMPLE_TOKENS.includes(value)) {
27071
+ tokens.push({ type: value, index, value });
27038
27072
  } else if (value === "\\") {
27039
- tokens.push({ type: "escape", index: index++, value: chars[index++] });
27073
+ tokens.push({ type: "escape", index, value: chars[index++] });
27040
27074
  } else if (value === ":") {
27041
- tokens.push({ type: "param", index: index++, value: name() });
27075
+ tokens.push({ type: "param", index, value: name() });
27042
27076
  } else if (value === "*") {
27043
- tokens.push({ type: "wildcard", index: index++, value: name() });
27077
+ tokens.push({ type: "wildcard", index, value: name() });
27044
27078
  } else {
27045
- tokens.push({ type: "char", index: index++, value });
27079
+ tokens.push({ type: "char", index, value });
27046
27080
  }
27047
27081
  }
27048
27082
  tokens.push({ type: "end", index, value: "" });
@@ -27179,106 +27213,129 @@ var require_dist = __commonJS((exports) => {
27179
27213
  function pathToRegexp(path, options = {}) {
27180
27214
  const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options;
27181
27215
  const keys = [];
27182
- const flags = sensitive ? "" : "i";
27183
27216
  const sources = [];
27184
- for (const input of pathsToArray(path, [])) {
27185
- const data = typeof input === "object" ? input : parse5(input, options);
27186
- for (const tokens of flatten(data.tokens, 0, [])) {
27187
- sources.push(toRegExpSource(tokens, delimiter, keys, data.originalPath));
27217
+ const paths = [path];
27218
+ let combinations = 0;
27219
+ while (paths.length) {
27220
+ const path2 = paths.shift();
27221
+ if (Array.isArray(path2)) {
27222
+ paths.push(...path2);
27223
+ continue;
27188
27224
  }
27225
+ const data = typeof path2 === "object" ? path2 : parse5(path2, options);
27226
+ flatten(data.tokens, 0, [], (tokens) => {
27227
+ if (combinations++ >= 256) {
27228
+ throw new PathError("Too many path combinations", data.originalPath);
27229
+ }
27230
+ sources.push(toRegExpSource(tokens, delimiter, keys, data.originalPath));
27231
+ });
27189
27232
  }
27190
27233
  let pattern = `^(?:${sources.join("|")})`;
27191
27234
  if (trailing)
27192
- pattern += `(?:${escape2(delimiter)}$)?`;
27193
- pattern += end ? "$" : `(?=${escape2(delimiter)}|$)`;
27194
- const regexp = new RegExp(pattern, flags);
27195
- return { regexp, keys };
27196
- }
27197
- function pathsToArray(paths, init) {
27198
- if (Array.isArray(paths)) {
27199
- for (const p of paths)
27200
- pathsToArray(p, init);
27201
- } else {
27202
- init.push(paths);
27203
- }
27204
- return init;
27235
+ pattern += "(?:" + escape2(delimiter) + "$)?";
27236
+ pattern += end ? "$" : "(?=" + escape2(delimiter) + "|$)";
27237
+ return { regexp: new RegExp(pattern, sensitive ? "" : "i"), keys };
27205
27238
  }
27206
- function* flatten(tokens, index, init) {
27207
- if (index === tokens.length) {
27208
- return yield init;
27209
- }
27210
- const token = tokens[index];
27211
- if (token.type === "group") {
27212
- for (const seq of flatten(token.tokens, 0, init.slice())) {
27213
- yield* flatten(tokens, index + 1, seq);
27239
+ function flatten(tokens, index, result, callback) {
27240
+ while (index < tokens.length) {
27241
+ const token = tokens[index++];
27242
+ if (token.type === "group") {
27243
+ flatten(token.tokens, 0, result.slice(), (seq) => flatten(tokens, index, seq, callback));
27244
+ continue;
27214
27245
  }
27215
- } else {
27216
- init.push(token);
27246
+ result.push(token);
27217
27247
  }
27218
- yield* flatten(tokens, index + 1, init);
27248
+ callback(result);
27219
27249
  }
27220
27250
  function toRegExpSource(tokens, delimiter, keys, originalPath) {
27221
27251
  let result = "";
27222
27252
  let backtrack = "";
27223
- let isSafeSegmentParam = true;
27224
- for (const token of tokens) {
27253
+ let wildcardBacktrack = "";
27254
+ let prevCaptureType = 0;
27255
+ let hasSegmentCapture = 0;
27256
+ let index = 0;
27257
+ function hasInSegment(index2, type) {
27258
+ while (index2 < tokens.length) {
27259
+ const token = tokens[index2++];
27260
+ if (token.type === type)
27261
+ return true;
27262
+ if (token.type === "text") {
27263
+ if (token.value.includes(delimiter))
27264
+ break;
27265
+ }
27266
+ }
27267
+ return false;
27268
+ }
27269
+ function peekText(index2) {
27270
+ let result2 = "";
27271
+ while (index2 < tokens.length) {
27272
+ const token = tokens[index2++];
27273
+ if (token.type !== "text")
27274
+ break;
27275
+ result2 += token.value;
27276
+ }
27277
+ return result2;
27278
+ }
27279
+ while (index < tokens.length) {
27280
+ const token = tokens[index++];
27225
27281
  if (token.type === "text") {
27226
27282
  result += escape2(token.value);
27227
27283
  backtrack += token.value;
27228
- isSafeSegmentParam || (isSafeSegmentParam = token.value.includes(delimiter));
27284
+ if (prevCaptureType === 2)
27285
+ wildcardBacktrack += token.value;
27286
+ if (token.value.includes(delimiter))
27287
+ hasSegmentCapture = 0;
27229
27288
  continue;
27230
27289
  }
27231
27290
  if (token.type === "param" || token.type === "wildcard") {
27232
- if (!isSafeSegmentParam && !backtrack) {
27291
+ if (prevCaptureType && !backtrack) {
27233
27292
  throw new PathError(`Missing text before "${token.name}" ${token.type}`, originalPath);
27234
27293
  }
27235
27294
  if (token.type === "param") {
27236
- result += `(${negate(delimiter, isSafeSegmentParam ? "" : backtrack)}+)`;
27295
+ result += hasSegmentCapture & 2 ? `(${negate(delimiter, backtrack)}+)` : hasInSegment(index, "wildcard") ? `(${negate(delimiter, peekText(index))}+)` : hasSegmentCapture & 1 ? `(${negate(delimiter, backtrack)}+|${escape2(backtrack)})` : `(${negate(delimiter, "")}+)`;
27296
+ hasSegmentCapture |= prevCaptureType = 1;
27237
27297
  } else {
27238
- result += `([\\s\\S]+)`;
27298
+ result += hasSegmentCapture & 2 ? `(${negate(backtrack, "")}+)` : wildcardBacktrack ? `(${negate(wildcardBacktrack, "")}+|${negate(delimiter, "")}+)` : `([^]+)`;
27299
+ wildcardBacktrack = "";
27300
+ hasSegmentCapture |= prevCaptureType = 2;
27239
27301
  }
27240
27302
  keys.push(token);
27241
27303
  backtrack = "";
27242
- isSafeSegmentParam = false;
27243
27304
  continue;
27244
27305
  }
27306
+ throw new TypeError(`Unknown token type: ${token.type}`);
27245
27307
  }
27246
27308
  return result;
27247
27309
  }
27248
- function negate(delimiter, backtrack) {
27249
- if (backtrack.length < 2) {
27250
- if (delimiter.length < 2)
27251
- return `[^${escape2(delimiter + backtrack)}]`;
27252
- return `(?:(?!${escape2(delimiter)})[^${escape2(backtrack)}])`;
27253
- }
27254
- if (delimiter.length < 2) {
27255
- return `(?:(?!${escape2(backtrack)})[^${escape2(delimiter)}])`;
27256
- }
27257
- return `(?:(?!${escape2(backtrack)}|${escape2(delimiter)})[\\s\\S])`;
27258
- }
27259
- function stringifyTokens(tokens) {
27310
+ function negate(a, b) {
27311
+ if (b.length > a.length)
27312
+ return negate(b, a);
27313
+ if (a === b)
27314
+ b = "";
27315
+ if (b.length > 1)
27316
+ return `(?:(?!${escape2(a)}|${escape2(b)})[^])`;
27317
+ if (a.length > 1)
27318
+ return `(?:(?!${escape2(a)})[^${escape2(b)}])`;
27319
+ return `[^${escape2(a + b)}]`;
27320
+ }
27321
+ function stringifyTokens(tokens, index) {
27260
27322
  let value = "";
27261
- let i = 0;
27262
- function name(value2) {
27263
- const isSafe = isNameSafe(value2) && isNextNameSafe(tokens[i]);
27264
- return isSafe ? value2 : JSON.stringify(value2);
27265
- }
27266
- while (i < tokens.length) {
27267
- const token = tokens[i++];
27323
+ while (index < tokens.length) {
27324
+ const token = tokens[index++];
27268
27325
  if (token.type === "text") {
27269
27326
  value += escapeText(token.value);
27270
27327
  continue;
27271
27328
  }
27272
27329
  if (token.type === "group") {
27273
- value += `{${stringifyTokens(token.tokens)}}`;
27330
+ value += "{" + stringifyTokens(token.tokens, 0) + "}";
27274
27331
  continue;
27275
27332
  }
27276
27333
  if (token.type === "param") {
27277
- value += `:${name(token.name)}`;
27334
+ value += ":" + stringifyName(token.name, tokens[index]);
27278
27335
  continue;
27279
27336
  }
27280
27337
  if (token.type === "wildcard") {
27281
- value += `*${name(token.name)}`;
27338
+ value += "*" + stringifyName(token.name, tokens[index]);
27282
27339
  continue;
27283
27340
  }
27284
27341
  throw new TypeError(`Unknown token type: ${token.type}`);
@@ -27286,16 +27343,15 @@ var require_dist = __commonJS((exports) => {
27286
27343
  return value;
27287
27344
  }
27288
27345
  function stringify(data) {
27289
- return stringifyTokens(data.tokens);
27290
- }
27291
- function isNameSafe(name) {
27292
- const [first, ...rest] = name;
27293
- return ID_START.test(first) && rest.every((char) => ID_CONTINUE.test(char));
27346
+ return stringifyTokens(data.tokens, 0);
27294
27347
  }
27295
- function isNextNameSafe(token) {
27296
- if (token && token.type === "text")
27297
- return !ID_CONTINUE.test(token.value[0]);
27298
- return true;
27348
+ function stringifyName(name, next) {
27349
+ if (!ID.test(name))
27350
+ return JSON.stringify(name);
27351
+ if ((next === null || next === undefined ? undefined : next.type) === "text" && ID_CONTINUE.test(next.value[0])) {
27352
+ return JSON.stringify(name);
27353
+ }
27354
+ return name;
27299
27355
  }
27300
27356
  });
27301
27357
 
@@ -50445,9 +50501,9 @@ var init_config = __esm(() => {
50445
50501
  SDK_METADATA = {
50446
50502
  language: "typescript",
50447
50503
  openapiDocVersion: "1.0",
50448
- sdkVersion: "2.0.12",
50449
- genVersion: "2.869.23",
50450
- userAgent: "speakeasy-sdk/mcp-typescript 2.0.12 2.869.23 1.0 @flexprice/mcp-server"
50504
+ sdkVersion: "2.0.14",
50505
+ genVersion: "2.879.1",
50506
+ userAgent: "speakeasy-sdk/mcp-typescript 2.0.14 2.879.1 1.0 @flexprice/mcp-server"
50451
50507
  };
50452
50508
  });
50453
50509
 
@@ -51793,14 +51849,25 @@ function applyBearer(state, spec) {
51793
51849
  state.headers[spec.fieldName] = value;
51794
51850
  }
51795
51851
  }
51796
- function resolveGlobalSecurity(security) {
51797
- return resolveSecurity([
51798
- {
51799
- fieldName: "x-api-key",
51800
- type: "apiKey:header",
51801
- value: security?.ApiKeyAuth
51802
- }
51803
- ]);
51852
+ function resolveGlobalSecurity(security, allowedFields) {
51853
+ let inputs = [
51854
+ [
51855
+ {
51856
+ fieldName: "x-api-key",
51857
+ type: "apiKey:header",
51858
+ value: security?.ApiKeyAuth
51859
+ }
51860
+ ]
51861
+ ];
51862
+ if (allowedFields) {
51863
+ inputs = allowedFields.map((i) => {
51864
+ if (i < 0 || i >= inputs.length) {
51865
+ throw new RangeError(`invalid allowedFields index ${i}`);
51866
+ }
51867
+ return inputs[i];
51868
+ });
51869
+ }
51870
+ return resolveSecurity(...inputs);
51804
51871
  }
51805
51872
  async function extractSecurity(sec) {
51806
51873
  if (sec == null) {
@@ -51826,21 +51893,6 @@ var init_security = __esm(() => {
51826
51893
  };
51827
51894
  });
51828
51895
 
51829
- // src/models/dtointegrationentitymapping.ts
51830
- var Provider$zodSchema, DtoIntegrationEntityMapping$zodSchema;
51831
- var init_dtointegrationentitymapping = __esm(() => {
51832
- init_zod();
51833
- Provider$zodSchema = _enum([
51834
- "stripe",
51835
- "razorpay",
51836
- "paypal"
51837
- ]).describe('provider is the integration provider name (e.g., "stripe", "razorpay")');
51838
- DtoIntegrationEntityMapping$zodSchema = object({
51839
- id: string2().describe("id is the external entity ID from the provider"),
51840
- provider: Provider$zodSchema.describe('provider is the integration provider name (e.g., "stripe", "razorpay")')
51841
- }).describe("Integration entity mapping for external provider systems");
51842
- });
51843
-
51844
51896
  // src/models/dtotaxrateoverride.ts
51845
51897
  var DtoTaxRateOverride$zodSchema;
51846
51898
  var init_dtotaxrateoverride = __esm(() => {
@@ -51858,7 +51910,6 @@ var init_dtotaxrateoverride = __esm(() => {
51858
51910
  var DtoCreateCustomerRequest$zodSchema;
51859
51911
  var init_dtocreatecustomerrequest = __esm(() => {
51860
51912
  init_zod();
51861
- init_dtointegrationentitymapping();
51862
51913
  init_dtotaxrateoverride();
51863
51914
  DtoCreateCustomerRequest$zodSchema = object({
51864
51915
  address_city: string2().optional().describe("address_city is the city name with maximum 100 characters"),
@@ -51869,7 +51920,6 @@ var init_dtocreatecustomerrequest = __esm(() => {
51869
51920
  address_state: string2().optional().describe("address_state is the state, province, or region name with maximum 100 characters"),
51870
51921
  email: string2().optional().describe("email is the customer's email address and must be a valid email format if provided"),
51871
51922
  external_id: string2().describe("external_id is the unique identifier from your system to reference this customer (required)"),
51872
- integration_entity_mapping: array(DtoIntegrationEntityMapping$zodSchema).optional().describe("integration_entity_mapping contains provider integration mappings for this customer"),
51873
51923
  metadata: record(string2(), string2()).optional().describe("metadata contains additional key-value pairs for storing extra information"),
51874
51924
  name: string2().optional().describe("name is the full name or company name of the customer"),
51875
51925
  parent_customer_external_id: string2().optional().describe(`Deprecated: See ParentCustomerID.
@@ -52143,6 +52193,24 @@ Use when removing a customer (e.g. GDPR or churn). Returns 204 No Content on suc
52143
52193
  };
52144
52194
  });
52145
52195
 
52196
+ // src/models/integrationentitytype.ts
52197
+ var IntegrationEntityType$zodSchema;
52198
+ var init_integrationentitytype = __esm(() => {
52199
+ init_zod();
52200
+ IntegrationEntityType$zodSchema = _enum([
52201
+ "customer",
52202
+ "plan",
52203
+ "invoice",
52204
+ "subscription",
52205
+ "payment",
52206
+ "credit_note",
52207
+ "addon",
52208
+ "item",
52209
+ "item_price",
52210
+ "price"
52211
+ ]);
52212
+ });
52213
+
52146
52214
  // src/models/status.ts
52147
52215
  var Status$zodSchema;
52148
52216
  var init_status = __esm(() => {
@@ -52154,10 +52222,33 @@ var init_status = __esm(() => {
52154
52222
  ]);
52155
52223
  });
52156
52224
 
52225
+ // src/models/dtoentityintegrationmappingresponse.ts
52226
+ var DtoEntityIntegrationMappingResponse$zodSchema;
52227
+ var init_dtoentityintegrationmappingresponse = __esm(() => {
52228
+ init_zod();
52229
+ init_integrationentitytype();
52230
+ init_status();
52231
+ DtoEntityIntegrationMappingResponse$zodSchema = object({
52232
+ created_at: string2().optional(),
52233
+ created_by: string2().optional(),
52234
+ entity_id: string2().optional(),
52235
+ entity_type: IntegrationEntityType$zodSchema.optional(),
52236
+ environment_id: string2().optional(),
52237
+ id: string2().optional(),
52238
+ provider_entity_id: string2().optional(),
52239
+ provider_type: string2().optional(),
52240
+ status: Status$zodSchema.optional(),
52241
+ tenant_id: string2().optional(),
52242
+ updated_at: string2().optional(),
52243
+ updated_by: string2().optional()
52244
+ });
52245
+ });
52246
+
52157
52247
  // src/models/dtocustomerresponse.ts
52158
52248
  var DtoCustomerResponse$zodSchema;
52159
52249
  var init_dtocustomerresponse = __esm(() => {
52160
52250
  init_zod();
52251
+ init_dtoentityintegrationmappingresponse();
52161
52252
  init_status();
52162
52253
  DtoCustomerResponse$zodSchema = object({
52163
52254
  address_city: string2().optional().describe("AddressCity is the city of the customer's address"),
@@ -52172,6 +52263,7 @@ var init_dtocustomerresponse = __esm(() => {
52172
52263
  environment_id: string2().optional().describe("EnvironmentID is the environment identifier for the customer"),
52173
52264
  external_id: string2().optional().describe("ExternalID is the external identifier for the customer"),
52174
52265
  id: string2().optional().describe("ID is the unique identifier for the customer"),
52266
+ integrations: array(DtoEntityIntegrationMappingResponse$zodSchema).optional(),
52175
52267
  metadata: record(string2(), string2()).optional().describe("Metadata"),
52176
52268
  name: string2().optional().describe("Name is the name of the customer"),
52177
52269
  parent_customer: lazy(() => DtoCustomerResponse$zodSchema).optional().describe("Customer response object containing all customer information"),
@@ -53526,7 +53618,6 @@ Use when listing or searching customers (e.g. admin CRM or reporting). Returns a
53526
53618
  var DtoUpdateCustomerRequest$zodSchema;
53527
53619
  var init_dtoupdatecustomerrequest = __esm(() => {
53528
53620
  init_zod();
53529
- init_dtointegrationentitymapping();
53530
53621
  DtoUpdateCustomerRequest$zodSchema = object({
53531
53622
  address_city: string2().optional().describe("address_city is the updated city name with maximum 100 characters"),
53532
53623
  address_country: string2().optional().describe("address_country is the updated two-letter ISO 3166-1 alpha-2 country code"),
@@ -53536,7 +53627,6 @@ var init_dtoupdatecustomerrequest = __esm(() => {
53536
53627
  address_state: string2().optional().describe("address_state is the updated state, province, or region name with maximum 100 characters"),
53537
53628
  email: string2().optional().describe("email is the updated email address and must be a valid email format if provided"),
53538
53629
  external_id: string2().optional().describe("external_id is the updated external identifier for the customer"),
53539
- integration_entity_mapping: array(DtoIntegrationEntityMapping$zodSchema).optional().describe("integration_entity_mapping contains provider integration mappings for this customer"),
53540
53630
  metadata: record(string2(), string2()).optional().describe("metadata contains updated key-value pairs that will replace existing metadata"),
53541
53631
  name: string2().optional().describe("name is the updated name or company name for the customer"),
53542
53632
  parent_customer_external_id: string2().optional().describe(`Deprecated: See ParentCustomerID.
@@ -55499,7 +55589,8 @@ var init_invoicestatus = __esm(() => {
55499
55589
  InvoiceStatus$zodSchema = _enum([
55500
55590
  "DRAFT",
55501
55591
  "FINALIZED",
55502
- "VOIDED"
55592
+ "VOIDED",
55593
+ "SKIPPED"
55503
55594
  ]);
55504
55595
  });
55505
55596
 
@@ -56751,6 +56842,7 @@ These are non-cash reductions applied to the invoice (e.g. goodwill credit, bill
56751
56842
  invoice_pdf_url: string2().optional().describe("invoice_pdf_url is the URL where customers can download the PDF version of this invoice"),
56752
56843
  invoice_status: InvoiceStatus$zodSchema.optional(),
56753
56844
  invoice_type: InvoiceType$zodSchema.optional(),
56845
+ last_computed_at: string2().optional().describe("last_computed_at is the timestamp when this invoice was last computed by ComputeInvoice"),
56754
56846
  line_items: array(DtoInvoiceLineItemResponse$zodSchema).optional().describe("line_items contains the individual items that make up this invoice (overrides embedded field)"),
56755
56847
  metadata: record(string2(), string2()).optional(),
56756
56848
  overpaid_amount: string2().optional().describe("overpaid_amount is the amount overpaid if payment_status is OVERPAID (amount_paid - total)"),
@@ -64231,7 +64323,7 @@ Use when changing a subscription line item (e.g. quantity or price). Implemented
64231
64323
  function createMCPServer(deps) {
64232
64324
  const server = new McpServer({
64233
64325
  name: "Flexprice",
64234
- version: "2.0.12"
64326
+ version: "2.0.14"
64235
64327
  });
64236
64328
  const getClient = deps.getSDK || (() => new FlexpriceCore({
64237
64329
  security: deps.security,
@@ -68370,7 +68462,7 @@ var routes = buildRouteMap({
68370
68462
  var app = buildApplication(routes, {
68371
68463
  name: "mcp",
68372
68464
  versionInfo: {
68373
- currentVersion: "2.0.12"
68465
+ currentVersion: "2.0.14"
68374
68466
  }
68375
68467
  });
68376
68468
  run(app, process4.argv.slice(2), buildContext(process4));
@@ -68378,5 +68470,5 @@ export {
68378
68470
  app
68379
68471
  };
68380
68472
 
68381
- //# debugId=890F6D70DC5AE33C64756E2164756E21
68473
+ //# debugId=2887626B11DDECC564756E2164756E21
68382
68474
  //# sourceMappingURL=mcp-server.js.map