@moovio/sdk 26.4.6 → 26.5.1
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.
- package/README.md +30 -2
- package/bin/mcp-server.js +88 -16
- package/bin/mcp-server.js.map +16 -14
- package/hooks/access-token-hook.d.ts +25 -0
- package/hooks/access-token-hook.d.ts.map +1 -0
- package/hooks/access-token-hook.js +60 -0
- package/hooks/access-token-hook.js.map +1 -0
- package/hooks/registration.d.ts.map +1 -1
- package/hooks/registration.js +4 -0
- package/hooks/registration.js.map +1 -1
- package/jsr.json +1 -1
- package/lib/config.d.ts +7 -3
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +3 -3
- package/lib/config.js.map +1 -1
- package/mcp-server/cli/start/command.d.ts.map +1 -1
- package/mcp-server/cli/start/command.js +8 -0
- package/mcp-server/cli/start/command.js.map +1 -1
- package/mcp-server/cli/start/impl.d.ts +1 -0
- package/mcp-server/cli/start/impl.d.ts.map +1 -1
- package/mcp-server/cli/start/impl.js +2 -0
- package/mcp-server/cli/start/impl.js.map +1 -1
- package/mcp-server/mcp-server.js +1 -1
- package/mcp-server/server.d.ts +1 -0
- package/mcp-server/server.d.ts.map +1 -1
- package/mcp-server/server.js +2 -1
- package/mcp-server/server.js.map +1 -1
- package/models/components/index.d.ts +1 -0
- package/models/components/index.d.ts.map +1 -1
- package/models/components/index.js +1 -0
- package/models/components/index.js.map +1 -1
- package/models/components/invoice.d.ts +1 -1
- package/models/components/transferconfig.d.ts +3 -0
- package/models/components/transferconfig.d.ts.map +1 -1
- package/models/components/transferconfig.js +3 -0
- package/models/components/transferconfig.js.map +1 -1
- package/models/components/transfercontrols.d.ts +43 -0
- package/models/components/transfercontrols.d.ts.map +1 -0
- package/models/components/transfercontrols.js +66 -0
- package/models/components/transfercontrols.js.map +1 -0
- package/models/components/updateinvoice.d.ts +6 -6
- package/package.json +1 -1
- package/src/hooks/access-token-hook.ts +73 -0
- package/src/hooks/registration.ts +5 -0
- package/src/lib/config.ts +8 -3
- package/src/mcp-server/cli/start/command.ts +9 -0
- package/src/mcp-server/cli/start/impl.ts +3 -0
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +3 -1
- package/src/models/components/index.ts +1 -0
- package/src/models/components/invoice.ts +1 -1
- package/src/models/components/transferconfig.ts +10 -0
- package/src/models/components/transfercontrols.ts +85 -0
- package/src/models/components/updateinvoice.ts +6 -6
- package/src/types/async.ts +8 -7
- package/test/tests/accessToken.test.ts +86 -0
- package/types/async.d.ts.map +1 -1
- package/types/async.js +8 -7
- package/types/async.js.map +1 -1
package/README.md
CHANGED
|
@@ -95,7 +95,8 @@ Add the following server definition to your `claude_desktop_config.json` file:
|
|
|
95
95
|
"--",
|
|
96
96
|
"mcp", "start",
|
|
97
97
|
"--username", "...",
|
|
98
|
-
"--password", "..."
|
|
98
|
+
"--password", "...",
|
|
99
|
+
"--access-token", "..."
|
|
99
100
|
]
|
|
100
101
|
}
|
|
101
102
|
}
|
|
@@ -119,7 +120,8 @@ Create a `.cursor/mcp.json` file in your project root with the following content
|
|
|
119
120
|
"--",
|
|
120
121
|
"mcp", "start",
|
|
121
122
|
"--username", "...",
|
|
122
|
-
"--password", "..."
|
|
123
|
+
"--password", "...",
|
|
124
|
+
"--access-token", "..."
|
|
123
125
|
]
|
|
124
126
|
}
|
|
125
127
|
}
|
|
@@ -238,6 +240,32 @@ run();
|
|
|
238
240
|
```
|
|
239
241
|
<!-- End Authentication [security] -->
|
|
240
242
|
|
|
243
|
+
Client-side authentication is supported through the `accessToken` parameter. For example:
|
|
244
|
+
```typescript
|
|
245
|
+
import { Moov } from "@moovio/sdk";
|
|
246
|
+
|
|
247
|
+
const moov = new Moov({
|
|
248
|
+
accessToken: "",
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
async function run() {
|
|
252
|
+
const result = await moov.accounts.create({
|
|
253
|
+
accountType: "business",
|
|
254
|
+
profile: {
|
|
255
|
+
business: {
|
|
256
|
+
legalBusinessName: "Whole Body Fitness LLC",
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
console.log(result);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
run();
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
See the [Moov authentication docs](https://docs.moov.io/api/authentication/api-authentication/) for more information.
|
|
268
|
+
|
|
241
269
|
<!-- Start Available Resources and Operations [operations] -->
|
|
242
270
|
## Available Resources and Operations
|
|
243
271
|
|
package/bin/mcp-server.js
CHANGED
|
@@ -52835,6 +52835,36 @@ var init_mcp = __esm(() => {
|
|
|
52835
52835
|
};
|
|
52836
52836
|
});
|
|
52837
52837
|
|
|
52838
|
+
// src/hooks/access-token-hook.ts
|
|
52839
|
+
class AccessTokenHook {
|
|
52840
|
+
sdkInit(opts) {
|
|
52841
|
+
const token = opts.accessToken;
|
|
52842
|
+
const hasToken = typeof token === "string" && token.length > 0;
|
|
52843
|
+
if (hasToken && opts.security != null) {
|
|
52844
|
+
throw new Error("Moov SDK: `accessToken` and `security.username`/`password` cannot " + "both be set. Use `accessToken` for OAuth2 bearer auth " + "(typically client-side) or `security.username`/`password` for " + "HTTP Basic auth with API keys (server-side).");
|
|
52845
|
+
}
|
|
52846
|
+
if (isBrowserLike && opts.security != null) {
|
|
52847
|
+
throw new Error("Moov SDK: HTTP Basic credentials were provided in a browser-like " + "environment. API keys must never be embedded in client-side " + "code. Mint a short-lived OAuth2 access token on your server " + "and pass it via the `accessToken` option instead.");
|
|
52848
|
+
}
|
|
52849
|
+
return opts;
|
|
52850
|
+
}
|
|
52851
|
+
beforeRequest(ctx, request) {
|
|
52852
|
+
const token = ctx.options.accessToken;
|
|
52853
|
+
if (!token || request.headers.has("Authorization")) {
|
|
52854
|
+
return request;
|
|
52855
|
+
}
|
|
52856
|
+
const next = new Request(request);
|
|
52857
|
+
next.headers.set("Authorization", `Bearer ${token}`);
|
|
52858
|
+
return next;
|
|
52859
|
+
}
|
|
52860
|
+
}
|
|
52861
|
+
var gt, webWorkerLike, isBrowserLike;
|
|
52862
|
+
var init_access_token_hook = __esm(() => {
|
|
52863
|
+
gt = typeof globalThis === "undefined" ? null : globalThis;
|
|
52864
|
+
webWorkerLike = typeof gt === "object" && gt != null && "importScripts" in gt && typeof gt["importScripts"] === "function";
|
|
52865
|
+
isBrowserLike = webWorkerLike || typeof navigator !== "undefined" && "serviceWorker" in navigator || typeof window === "object" && typeof window.document !== "undefined";
|
|
52866
|
+
});
|
|
52867
|
+
|
|
52838
52868
|
// src/lib/url.ts
|
|
52839
52869
|
function pathToFunc(pathPattern, options) {
|
|
52840
52870
|
const paramRE = /\{([a-zA-Z0-9_][a-zA-Z0-9_-]*?)\}/g;
|
|
@@ -52879,9 +52909,9 @@ var init_config = __esm(() => {
|
|
|
52879
52909
|
SDK_METADATA = {
|
|
52880
52910
|
language: "typescript",
|
|
52881
52911
|
openapiDocVersion: "v2026.04.00",
|
|
52882
|
-
sdkVersion: "26.
|
|
52883
|
-
genVersion: "2.
|
|
52884
|
-
userAgent: "speakeasy-sdk/typescript 26.
|
|
52912
|
+
sdkVersion: "26.5.1",
|
|
52913
|
+
genVersion: "2.893.0",
|
|
52914
|
+
userAgent: "speakeasy-sdk/typescript 26.5.1 2.893.0 v2026.04.00 @moovio/sdk"
|
|
52885
52915
|
};
|
|
52886
52916
|
});
|
|
52887
52917
|
|
|
@@ -52901,8 +52931,12 @@ var init_moov_version_hook = __esm(() => {
|
|
|
52901
52931
|
function initHooks(hooks) {
|
|
52902
52932
|
const versionHook = new MoovVersionHook;
|
|
52903
52933
|
hooks.registerBeforeRequestHook(versionHook);
|
|
52934
|
+
const accessTokenHook = new AccessTokenHook;
|
|
52935
|
+
hooks.registerSDKInitHook(accessTokenHook);
|
|
52936
|
+
hooks.registerBeforeRequestHook(accessTokenHook);
|
|
52904
52937
|
}
|
|
52905
52938
|
var init_registration = __esm(() => {
|
|
52939
|
+
init_access_token_hook();
|
|
52906
52940
|
init_moov_version_hook();
|
|
52907
52941
|
});
|
|
52908
52942
|
|
|
@@ -53685,7 +53719,7 @@ class ClientSDK {
|
|
|
53685
53719
|
for (const [k2, v2] of userHeaders) {
|
|
53686
53720
|
headers.set(k2, v2);
|
|
53687
53721
|
}
|
|
53688
|
-
if (!
|
|
53722
|
+
if (!isBrowserLike2) {
|
|
53689
53723
|
headers.set(conf.uaHeader ?? "user-agent", conf.userAgent ?? SDK_METADATA.userAgent);
|
|
53690
53724
|
}
|
|
53691
53725
|
const fetchOptions = {
|
|
@@ -53830,7 +53864,7 @@ async function logResponse(logger, res, req) {
|
|
|
53830
53864
|
logger.groupEnd();
|
|
53831
53865
|
logger.groupEnd();
|
|
53832
53866
|
}
|
|
53833
|
-
var
|
|
53867
|
+
var gt2, webWorkerLike2, isBrowserLike2, jsonLikeContentTypeRE, jsonlLikeContentTypeRE;
|
|
53834
53868
|
var init_sdks = __esm(() => {
|
|
53835
53869
|
init_hooks();
|
|
53836
53870
|
init_httpclienterrors();
|
|
@@ -53839,9 +53873,9 @@ var init_sdks = __esm(() => {
|
|
|
53839
53873
|
init_encodings();
|
|
53840
53874
|
init_http();
|
|
53841
53875
|
init_retries();
|
|
53842
|
-
|
|
53843
|
-
|
|
53844
|
-
|
|
53876
|
+
gt2 = typeof globalThis === "undefined" ? null : globalThis;
|
|
53877
|
+
webWorkerLike2 = typeof gt2 === "object" && gt2 != null && "importScripts" in gt2 && typeof gt2["importScripts"] === "function";
|
|
53878
|
+
isBrowserLike2 = webWorkerLike2 || typeof navigator !== "undefined" && "serviceWorker" in navigator || typeof window === "object" && typeof window.document !== "undefined";
|
|
53845
53879
|
jsonLikeContentTypeRE = /^(application|text)\/([^+]+\+)*json.*/;
|
|
53846
53880
|
jsonlLikeContentTypeRE = /^(application|text)\/([^+]+\+)*(jsonl|x-ndjson)\b.*/;
|
|
53847
53881
|
});
|
|
@@ -68088,16 +68122,39 @@ var init_transfer = __esm(() => {
|
|
|
68088
68122
|
});
|
|
68089
68123
|
});
|
|
68090
68124
|
|
|
68125
|
+
// src/models/components/transfercontrols.ts
|
|
68126
|
+
var TransferControls$inboundSchema, TransferControls$outboundSchema;
|
|
68127
|
+
var init_transfercontrols = __esm(() => {
|
|
68128
|
+
init_esm();
|
|
68129
|
+
TransferControls$inboundSchema = objectType({
|
|
68130
|
+
accountID: stringType(),
|
|
68131
|
+
partnerAccountID: stringType(),
|
|
68132
|
+
debtRepayment: booleanType(),
|
|
68133
|
+
allowDynamicDescriptor: booleanType(),
|
|
68134
|
+
allowSurcharge: booleanType()
|
|
68135
|
+
});
|
|
68136
|
+
TransferControls$outboundSchema = objectType({
|
|
68137
|
+
accountID: stringType(),
|
|
68138
|
+
partnerAccountID: stringType(),
|
|
68139
|
+
debtRepayment: booleanType(),
|
|
68140
|
+
allowDynamicDescriptor: booleanType(),
|
|
68141
|
+
allowSurcharge: booleanType()
|
|
68142
|
+
});
|
|
68143
|
+
});
|
|
68144
|
+
|
|
68091
68145
|
// src/models/components/transferconfig.ts
|
|
68092
68146
|
var TransferConfig$inboundSchema, TransferConfig$outboundSchema;
|
|
68093
68147
|
var init_transferconfig = __esm(() => {
|
|
68094
68148
|
init_esm();
|
|
68095
68149
|
init_tippresets();
|
|
68150
|
+
init_transfercontrols();
|
|
68096
68151
|
TransferConfig$inboundSchema = objectType({
|
|
68097
|
-
tipPresets: TipPresets$inboundSchema.optional()
|
|
68152
|
+
tipPresets: TipPresets$inboundSchema.optional(),
|
|
68153
|
+
transferControls: arrayType(TransferControls$inboundSchema).optional()
|
|
68098
68154
|
});
|
|
68099
68155
|
TransferConfig$outboundSchema = objectType({
|
|
68100
|
-
tipPresets: TipPresets$outboundSchema.optional()
|
|
68156
|
+
tipPresets: TipPresets$outboundSchema.optional(),
|
|
68157
|
+
transferControls: arrayType(TransferControls$outboundSchema).optional()
|
|
68101
68158
|
});
|
|
68102
68159
|
});
|
|
68103
68160
|
|
|
@@ -70195,6 +70252,7 @@ var init_components = __esm(() => {
|
|
|
70195
70252
|
init_transferachaddendarecord();
|
|
70196
70253
|
init_transferamountdetails();
|
|
70197
70254
|
init_transferconfig();
|
|
70255
|
+
init_transfercontrols();
|
|
70198
70256
|
init_transferdestination();
|
|
70199
70257
|
init_transferentrymode();
|
|
70200
70258
|
init_transferfailurereason();
|
|
@@ -80536,16 +80594,19 @@ var init_async = __esm(() => {
|
|
|
80536
80594
|
[Symbol.toStringTag] = "APIPromise";
|
|
80537
80595
|
constructor(p) {
|
|
80538
80596
|
this.#promise = p instanceof Promise ? p : Promise.resolve(p);
|
|
80539
|
-
this.#unwrapped = p instanceof Promise ?
|
|
80597
|
+
this.#unwrapped = p instanceof Promise ? null : Promise.resolve(p[0]);
|
|
80598
|
+
}
|
|
80599
|
+
#getUnwrapped() {
|
|
80600
|
+
return this.#unwrapped ??= this.#promise.then(([value]) => value);
|
|
80540
80601
|
}
|
|
80541
80602
|
then(onfulfilled, onrejected) {
|
|
80542
80603
|
return this.#promise.then(onfulfilled ? ([value]) => onfulfilled(value) : undefined, onrejected);
|
|
80543
80604
|
}
|
|
80544
80605
|
catch(onrejected) {
|
|
80545
|
-
return this.#
|
|
80606
|
+
return this.#getUnwrapped().catch(onrejected);
|
|
80546
80607
|
}
|
|
80547
80608
|
finally(onfinally) {
|
|
80548
|
-
return this.#
|
|
80609
|
+
return this.#getUnwrapped().finally(onfinally);
|
|
80549
80610
|
}
|
|
80550
80611
|
$inspect() {
|
|
80551
80612
|
return this.#promise;
|
|
@@ -102260,10 +102321,11 @@ var init_webhooksUpdate2 = __esm(() => {
|
|
|
102260
102321
|
function createMCPServer(deps) {
|
|
102261
102322
|
const server = new McpServer({
|
|
102262
102323
|
name: "Moov",
|
|
102263
|
-
version: "26.
|
|
102324
|
+
version: "26.5.1"
|
|
102264
102325
|
});
|
|
102265
102326
|
const client = new MoovCore({
|
|
102266
102327
|
security: deps.security,
|
|
102328
|
+
accessToken: deps.accessToken,
|
|
102267
102329
|
serverURL: deps.serverURL,
|
|
102268
102330
|
serverIdx: deps.serverIdx
|
|
102269
102331
|
});
|
|
@@ -102687,6 +102749,7 @@ async function startStdio(flags) {
|
|
|
102687
102749
|
username: flags.username ?? "",
|
|
102688
102750
|
password: flags.password ?? ""
|
|
102689
102751
|
}),
|
|
102752
|
+
accessToken: flags["access-token"],
|
|
102690
102753
|
serverURL: flags["server-url"],
|
|
102691
102754
|
serverIdx: flags["server-index"]
|
|
102692
102755
|
});
|
|
@@ -102708,6 +102771,7 @@ async function startSSE(flags) {
|
|
|
102708
102771
|
username: flags.username ?? "",
|
|
102709
102772
|
password: flags.password ?? ""
|
|
102710
102773
|
}),
|
|
102774
|
+
accessToken: flags["access-token"],
|
|
102711
102775
|
serverURL: flags["server-url"],
|
|
102712
102776
|
serverIdx: flags["server-index"]
|
|
102713
102777
|
});
|
|
@@ -103788,6 +103852,14 @@ var startCommand = tn({
|
|
|
103788
103852
|
return stringType().parse(value);
|
|
103789
103853
|
}
|
|
103790
103854
|
},
|
|
103855
|
+
"access-token": {
|
|
103856
|
+
kind: "parsed",
|
|
103857
|
+
brief: "Allows setting the accessToken parameter for all supported operations",
|
|
103858
|
+
optional: true,
|
|
103859
|
+
parse: (value) => {
|
|
103860
|
+
return stringType().parse(value);
|
|
103861
|
+
}
|
|
103862
|
+
},
|
|
103791
103863
|
"server-url": {
|
|
103792
103864
|
kind: "parsed",
|
|
103793
103865
|
brief: "Overrides the default server URL used by the SDK",
|
|
@@ -103847,7 +103919,7 @@ var routes = rn({
|
|
|
103847
103919
|
var app = Ve(routes, {
|
|
103848
103920
|
name: "mcp",
|
|
103849
103921
|
versionInfo: {
|
|
103850
|
-
currentVersion: "26.
|
|
103922
|
+
currentVersion: "26.5.1"
|
|
103851
103923
|
}
|
|
103852
103924
|
});
|
|
103853
103925
|
_t(app, process3.argv.slice(2), buildContext(process3));
|
|
@@ -103855,5 +103927,5 @@ export {
|
|
|
103855
103927
|
app
|
|
103856
103928
|
};
|
|
103857
103929
|
|
|
103858
|
-
//# debugId=
|
|
103930
|
+
//# debugId=89461B4DF037125C64756E2164756E21
|
|
103859
103931
|
//# sourceMappingURL=mcp-server.js.map
|