@polar-sh/sdk 0.31.0 → 0.32.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 (125) hide show
  1. package/README.md +40 -7
  2. package/bin/mcp-server.js +61 -10
  3. package/bin/mcp-server.js.map +12 -10
  4. package/dist/commonjs/lib/config.d.ts +3 -3
  5. package/dist/commonjs/lib/config.js +3 -3
  6. package/dist/commonjs/lib/security.d.ts +4 -3
  7. package/dist/commonjs/lib/security.d.ts.map +1 -1
  8. package/dist/commonjs/lib/security.js +6 -1
  9. package/dist/commonjs/lib/security.js.map +1 -1
  10. package/dist/commonjs/mcp-server/extensions.d.ts +2 -0
  11. package/dist/commonjs/mcp-server/extensions.d.ts.map +1 -1
  12. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  13. package/dist/commonjs/mcp-server/prompts.d.ts +26 -0
  14. package/dist/commonjs/mcp-server/prompts.d.ts.map +1 -0
  15. package/dist/commonjs/mcp-server/prompts.js +47 -0
  16. package/dist/commonjs/mcp-server/prompts.js.map +1 -0
  17. package/dist/commonjs/mcp-server/resources.d.ts.map +1 -1
  18. package/dist/commonjs/mcp-server/resources.js +1 -0
  19. package/dist/commonjs/mcp-server/resources.js.map +1 -1
  20. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  21. package/dist/commonjs/mcp-server/server.js +4 -2
  22. package/dist/commonjs/mcp-server/server.js.map +1 -1
  23. package/dist/commonjs/mcp-server/tools.d.ts.map +1 -1
  24. package/dist/commonjs/mcp-server/tools.js +1 -0
  25. package/dist/commonjs/mcp-server/tools.js.map +1 -1
  26. package/dist/commonjs/models/components/customerorder.d.ts +8 -0
  27. package/dist/commonjs/models/components/customerorder.d.ts.map +1 -1
  28. package/dist/commonjs/models/components/customerorder.js +5 -0
  29. package/dist/commonjs/models/components/customerorder.js.map +1 -1
  30. package/dist/commonjs/models/components/order.d.ts +7 -1
  31. package/dist/commonjs/models/components/order.d.ts.map +1 -1
  32. package/dist/commonjs/models/components/order.js +5 -2
  33. package/dist/commonjs/models/components/order.js.map +1 -1
  34. package/dist/commonjs/models/components/orderstatus.d.ts +34 -0
  35. package/dist/commonjs/models/components/orderstatus.d.ts.map +1 -0
  36. package/dist/commonjs/models/components/orderstatus.js +53 -0
  37. package/dist/commonjs/models/components/orderstatus.js.map +1 -0
  38. package/dist/commonjs/models/components/refundcreate.d.ts +3 -0
  39. package/dist/commonjs/models/components/refundcreate.d.ts.map +1 -1
  40. package/dist/commonjs/models/components/refundcreate.js.map +1 -1
  41. package/dist/commonjs/models/components/webhookordercreatedpayload.d.ts +3 -1
  42. package/dist/commonjs/models/components/webhookordercreatedpayload.d.ts.map +1 -1
  43. package/dist/commonjs/models/components/webhookordercreatedpayload.js.map +1 -1
  44. package/dist/commonjs/models/components/webhookorderpaidpayload.d.ts +41 -0
  45. package/dist/commonjs/models/components/webhookorderpaidpayload.d.ts.map +1 -0
  46. package/dist/commonjs/models/components/webhookorderpaidpayload.js +62 -0
  47. package/dist/commonjs/models/components/webhookorderpaidpayload.js.map +1 -0
  48. package/dist/commonjs/models/components/webhookorderupdatedpayload.d.ts +44 -0
  49. package/dist/commonjs/models/components/webhookorderupdatedpayload.d.ts.map +1 -0
  50. package/dist/commonjs/models/components/webhookorderupdatedpayload.js +62 -0
  51. package/dist/commonjs/models/components/webhookorderupdatedpayload.js.map +1 -0
  52. package/dist/commonjs/webhooks.d.ts +1 -1
  53. package/dist/commonjs/webhooks.d.ts.map +1 -1
  54. package/dist/commonjs/webhooks.js +6 -0
  55. package/dist/commonjs/webhooks.js.map +1 -1
  56. package/dist/esm/lib/config.d.ts +3 -3
  57. package/dist/esm/lib/config.js +3 -3
  58. package/dist/esm/lib/security.d.ts +4 -3
  59. package/dist/esm/lib/security.d.ts.map +1 -1
  60. package/dist/esm/lib/security.js +6 -1
  61. package/dist/esm/lib/security.js.map +1 -1
  62. package/dist/esm/mcp-server/extensions.d.ts +2 -0
  63. package/dist/esm/mcp-server/extensions.d.ts.map +1 -1
  64. package/dist/esm/mcp-server/mcp-server.js +1 -1
  65. package/dist/esm/mcp-server/prompts.d.ts +26 -0
  66. package/dist/esm/mcp-server/prompts.d.ts.map +1 -0
  67. package/dist/esm/mcp-server/prompts.js +43 -0
  68. package/dist/esm/mcp-server/prompts.js.map +1 -0
  69. package/dist/esm/mcp-server/resources.d.ts.map +1 -1
  70. package/dist/esm/mcp-server/resources.js +1 -0
  71. package/dist/esm/mcp-server/resources.js.map +1 -1
  72. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  73. package/dist/esm/mcp-server/server.js +4 -2
  74. package/dist/esm/mcp-server/server.js.map +1 -1
  75. package/dist/esm/mcp-server/tools.d.ts.map +1 -1
  76. package/dist/esm/mcp-server/tools.js +1 -0
  77. package/dist/esm/mcp-server/tools.js.map +1 -1
  78. package/dist/esm/models/components/customerorder.d.ts +8 -0
  79. package/dist/esm/models/components/customerorder.d.ts.map +1 -1
  80. package/dist/esm/models/components/customerorder.js +5 -0
  81. package/dist/esm/models/components/customerorder.js.map +1 -1
  82. package/dist/esm/models/components/order.d.ts +7 -1
  83. package/dist/esm/models/components/order.d.ts.map +1 -1
  84. package/dist/esm/models/components/order.js +5 -2
  85. package/dist/esm/models/components/order.js.map +1 -1
  86. package/dist/esm/models/components/orderstatus.d.ts +34 -0
  87. package/dist/esm/models/components/orderstatus.d.ts.map +1 -0
  88. package/dist/esm/models/components/orderstatus.js +27 -0
  89. package/dist/esm/models/components/orderstatus.js.map +1 -0
  90. package/dist/esm/models/components/refundcreate.d.ts +3 -0
  91. package/dist/esm/models/components/refundcreate.d.ts.map +1 -1
  92. package/dist/esm/models/components/refundcreate.js.map +1 -1
  93. package/dist/esm/models/components/webhookordercreatedpayload.d.ts +3 -1
  94. package/dist/esm/models/components/webhookordercreatedpayload.d.ts.map +1 -1
  95. package/dist/esm/models/components/webhookordercreatedpayload.js.map +1 -1
  96. package/dist/esm/models/components/webhookorderpaidpayload.d.ts +41 -0
  97. package/dist/esm/models/components/webhookorderpaidpayload.d.ts.map +1 -0
  98. package/dist/esm/models/components/webhookorderpaidpayload.js +34 -0
  99. package/dist/esm/models/components/webhookorderpaidpayload.js.map +1 -0
  100. package/dist/esm/models/components/webhookorderupdatedpayload.d.ts +44 -0
  101. package/dist/esm/models/components/webhookorderupdatedpayload.d.ts.map +1 -0
  102. package/dist/esm/models/components/webhookorderupdatedpayload.js +34 -0
  103. package/dist/esm/models/components/webhookorderupdatedpayload.js.map +1 -0
  104. package/dist/esm/webhooks.d.ts +1 -1
  105. package/dist/esm/webhooks.d.ts.map +1 -1
  106. package/dist/esm/webhooks.js +6 -0
  107. package/dist/esm/webhooks.js.map +1 -1
  108. package/jsr.json +1 -1
  109. package/package.json +1 -1
  110. package/src/lib/config.ts +3 -3
  111. package/src/lib/security.ts +11 -3
  112. package/src/mcp-server/extensions.ts +4 -0
  113. package/src/mcp-server/mcp-server.ts +1 -1
  114. package/src/mcp-server/prompts.ts +110 -0
  115. package/src/mcp-server/resources.ts +1 -0
  116. package/src/mcp-server/server.ts +4 -2
  117. package/src/mcp-server/tools.ts +1 -0
  118. package/src/models/components/customerorder.ts +16 -0
  119. package/src/models/components/order.ts +15 -3
  120. package/src/models/components/orderstatus.ts +33 -0
  121. package/src/models/components/refundcreate.ts +3 -0
  122. package/src/models/components/webhookordercreatedpayload.ts +3 -1
  123. package/src/models/components/webhookorderpaidpayload.ts +85 -0
  124. package/src/models/components/webhookorderupdatedpayload.ts +88 -0
  125. package/src/webhooks.ts +6 -0
package/README.md CHANGED
@@ -83,7 +83,7 @@ yarn add @polar-sh/sdk zod
83
83
  This SDK is also an installable MCP server where the various SDK methods are
84
84
  exposed as tools that can be invoked by AI applications.
85
85
 
86
- > Node.js v20 or greater is required to run the MCP server.
86
+ > Node.js v20 or greater is required to run the MCP server from npm.
87
87
 
88
88
  <details>
89
89
  <summary>Claude installation steps</summary>
@@ -111,17 +111,50 @@ Add the following server definition to your `claude_desktop_config.json` file:
111
111
  <details>
112
112
  <summary>Cursor installation steps</summary>
113
113
 
114
- Go to `Cursor Settings > Features > MCP Servers > Add new MCP server` and use the following settings:
114
+ Create a `.cursor/mcp.json` file in your project root with the following content:
115
115
 
116
- - Name: Polar
117
- - Type: `command`
118
- - Command:
119
- ```sh
120
- npx -y --package @polar-sh/sdk -- mcp start --access-token ...
116
+ ```json
117
+ {
118
+ "mcpServers": {
119
+ "Polar": {
120
+ "command": "npx",
121
+ "args": [
122
+ "-y", "--package", "@polar-sh/sdk",
123
+ "--",
124
+ "mcp", "start",
125
+ "--access-token", "..."
126
+ ]
127
+ }
128
+ }
129
+ }
121
130
  ```
122
131
 
123
132
  </details>
124
133
 
134
+ You can also run MCP servers as a standalone binary with no additional dependencies. You must pull these binaries from available Github releases:
135
+
136
+ ```bash
137
+ curl -L -o mcp-server \
138
+ https://github.com/{org}/{repo}/releases/download/{tag}/mcp-server-bun-darwin-arm64 && \
139
+ chmod +x mcp-server
140
+ ```
141
+
142
+ If the repo is a private repo you must add your Github PAT to download a release `-H "Authorization: Bearer {GITHUB_PAT}"`.
143
+
144
+
145
+ ```json
146
+ {
147
+ "mcpServers": {
148
+ "Todos": {
149
+ "command": "./DOWNLOAD/PATH/mcp-server",
150
+ "args": [
151
+ "start"
152
+ ]
153
+ }
154
+ }
155
+ }
156
+ ```
157
+
125
158
  For a full list of server arguments, run:
126
159
 
127
160
  ```sh
package/bin/mcp-server.js CHANGED
@@ -4018,9 +4018,9 @@ var init_config = __esm(() => {
4018
4018
  SDK_METADATA = {
4019
4019
  language: "typescript",
4020
4020
  openapiDocVersion: "0.1.0",
4021
- sdkVersion: "0.31.0",
4022
- genVersion: "2.548.6",
4023
- userAgent: "speakeasy-sdk/typescript 0.31.0 2.548.6 0.1.0 @polar-sh/sdk"
4021
+ sdkVersion: "0.32.0",
4022
+ genVersion: "2.558.2",
4023
+ userAgent: "speakeasy-sdk/typescript 0.32.0 2.558.2 0.1.0 @polar-sh/sdk"
4024
4024
  };
4025
4025
  });
4026
4026
 
@@ -35004,6 +35004,30 @@ var init_core = __esm(() => {
35004
35004
  };
35005
35005
  });
35006
35006
 
35007
+ // src/mcp-server/prompts.ts
35008
+ function createRegisterPrompt(logger, server, sdk, allowedScopes) {
35009
+ return (prompt) => {
35010
+ const scopes = prompt.scopes ?? [];
35011
+ if (!scopes.every((s) => allowedScopes.has(s))) {
35012
+ return;
35013
+ }
35014
+ if (prompt.args) {
35015
+ if (prompt.description) {
35016
+ server.prompt(prompt.name, prompt.description, prompt.args, async (args, ctx) => prompt.prompt(sdk, args, ctx));
35017
+ } else {
35018
+ server.prompt(prompt.name, prompt.args, async (args, ctx) => prompt.prompt(sdk, args, ctx));
35019
+ }
35020
+ } else {
35021
+ if (prompt.description) {
35022
+ server.prompt(prompt.name, prompt.description, async (ctx) => prompt.prompt(sdk, ctx));
35023
+ } else {
35024
+ server.prompt(prompt.name, async (ctx) => prompt.prompt(sdk, ctx));
35025
+ }
35026
+ }
35027
+ logger.debug("Registered prompt", { name: prompt.name });
35028
+ };
35029
+ }
35030
+
35007
35031
  // src/mcp-server/shared.ts
35008
35032
  async function consumeStream(stream) {
35009
35033
  const reader = stream.getReader();
@@ -35449,6 +35473,9 @@ function resolveSecurity(...options) {
35449
35473
  } else if (o.type === "oauth2:password") {
35450
35474
  return typeof o.value === "string" && !!o.value;
35451
35475
  } else if (o.type === "oauth2:client_credentials") {
35476
+ if (typeof o.value == "string") {
35477
+ return !!o.value;
35478
+ }
35452
35479
  return o.value.clientID != null || o.value.clientSecret != null;
35453
35480
  } else if (typeof o.value === "string") {
35454
35481
  return !!o.value;
@@ -35514,7 +35541,9 @@ function applyBearer(state, spec) {
35514
35541
  if (value.slice(0, 7).toLowerCase() !== "bearer ") {
35515
35542
  value = `Bearer ${value}`;
35516
35543
  }
35517
- state.headers[spec.fieldName] = value;
35544
+ if (spec.fieldName !== undefined) {
35545
+ state.headers[spec.fieldName] = value;
35546
+ }
35518
35547
  }
35519
35548
  function resolveGlobalSecurity(security) {
35520
35549
  return resolveSecurity([
@@ -39349,6 +39378,24 @@ var init_orderproduct = __esm(() => {
39349
39378
  })(OrderProduct$ ||= {});
39350
39379
  });
39351
39380
 
39381
+ // src/models/components/orderstatus.ts
39382
+ var OrderStatus, OrderStatus$inboundSchema, OrderStatus$outboundSchema, OrderStatus$;
39383
+ var init_orderstatus = __esm(() => {
39384
+ init_lib();
39385
+ OrderStatus = {
39386
+ Pending: "pending",
39387
+ Paid: "paid",
39388
+ Refunded: "refunded",
39389
+ PartiallyRefunded: "partially_refunded"
39390
+ };
39391
+ OrderStatus$inboundSchema = nativeEnumType(OrderStatus);
39392
+ OrderStatus$outboundSchema = OrderStatus$inboundSchema;
39393
+ ((OrderStatus$) => {
39394
+ OrderStatus$.inboundSchema = OrderStatus$inboundSchema;
39395
+ OrderStatus$.outboundSchema = OrderStatus$outboundSchema;
39396
+ })(OrderStatus$ ||= {});
39397
+ });
39398
+
39352
39399
  // src/models/components/customercancellationreason.ts
39353
39400
  var CustomerCancellationReason, CustomerCancellationReason$inboundSchema, CustomerCancellationReason$outboundSchema, CustomerCancellationReason$;
39354
39401
  var init_customercancellationreason = __esm(() => {
@@ -39772,6 +39819,7 @@ var init_order = __esm(() => {
39772
39819
  init_ordercustomer();
39773
39820
  init_orderitemschema();
39774
39821
  init_orderproduct();
39822
+ init_orderstatus();
39775
39823
  init_ordersubscription();
39776
39824
  init_orderuser();
39777
39825
  init_productprice();
@@ -39836,7 +39884,8 @@ var init_order = __esm(() => {
39836
39884
  booleanType(),
39837
39885
  stringType().datetime({ offset: true }).transform((v2) => new Date(v2))
39838
39886
  ]))).optional(),
39839
- status: stringType(),
39887
+ status: OrderStatus$inboundSchema,
39888
+ paid: booleanType(),
39840
39889
  subtotal_amount: numberType().int(),
39841
39890
  discount_amount: numberType().int(),
39842
39891
  net_amount: numberType().int(),
@@ -39905,7 +39954,8 @@ var init_order = __esm(() => {
39905
39954
  booleanType(),
39906
39955
  dateType().transform((v2) => v2.toISOString())
39907
39956
  ]))).optional(),
39908
- status: stringType(),
39957
+ status: OrderStatus$outboundSchema,
39958
+ paid: booleanType(),
39909
39959
  subtotalAmount: numberType().int(),
39910
39960
  discountAmount: numberType().int(),
39911
39961
  netAmount: numberType().int(),
@@ -44198,7 +44248,7 @@ Update a subscription.
44198
44248
  function createMCPServer(deps) {
44199
44249
  const server = new McpServer({
44200
44250
  name: "Polar",
44201
- version: "0.31.0"
44251
+ version: "0.32.0"
44202
44252
  });
44203
44253
  const client = new PolarCore({
44204
44254
  accessToken: deps.accessToken,
@@ -44210,7 +44260,8 @@ function createMCPServer(deps) {
44210
44260
  const tool = createRegisterTool(deps.logger, server, client, scopes, allowedTools);
44211
44261
  const resource = createRegisterResource(deps.logger, server, client, scopes);
44212
44262
  const resourceTemplate = createRegisterResourceTemplate(deps.logger, server, client, scopes);
44213
- const register = { tool, resource, resourceTemplate };
44263
+ const prompt = createRegisterPrompt(deps.logger, server, client, scopes);
44264
+ const register = { tool, resource, resourceTemplate, prompt };
44214
44265
  tool(tool$subscriptionsList);
44215
44266
  tool(tool$subscriptionsExport);
44216
44267
  tool(tool$subscriptionsGet);
@@ -45459,7 +45510,7 @@ var routes = rn({
45459
45510
  var app = Ve(routes, {
45460
45511
  name: "mcp",
45461
45512
  versionInfo: {
45462
- currentVersion: "0.31.0"
45513
+ currentVersion: "0.32.0"
45463
45514
  }
45464
45515
  });
45465
45516
  _t(app, process3.argv.slice(2), buildContext(process3));
@@ -45467,5 +45518,5 @@ export {
45467
45518
  app
45468
45519
  };
45469
45520
 
45470
- //# debugId=8983B3A39A7C81B464756E2164756E21
45521
+ //# debugId=69367A66FF791C5664756E2164756E21
45471
45522
  //# sourceMappingURL=mcp-server.js.map