@wix/mcp 1.0.45 → 1.0.46
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 +17 -0
- package/build/bin-standalone.js +232 -16
- package/build/bin-standalone.js.map +4 -4
- package/build/dts/bin.d.ts.map +1 -1
- package/build/dts/bin.js +19 -0
- package/build/dts/bin.js.map +1 -1
- package/build/dts/cli-tools/account-auth-strategy.d.ts +17 -0
- package/build/dts/cli-tools/account-auth-strategy.d.ts.map +1 -0
- package/build/dts/cli-tools/account-auth-strategy.js +49 -0
- package/build/dts/cli-tools/account-auth-strategy.js.map +1 -0
- package/build/dts/cli-tools/account-token-store.d.ts +44 -0
- package/build/dts/cli-tools/account-token-store.d.ts.map +1 -0
- package/build/dts/cli-tools/account-token-store.js +154 -0
- package/build/dts/cli-tools/account-token-store.js.map +1 -0
- package/package.json +2 -2
package/build/dts/bin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAwB3B,QAAA,MAAM,YAAY,oGAAiC,CAAC;AAEpD,QAAA,MAAM,kBAAkB,0HAOd,CAAC;AAEX,KAAK,IAAI,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,eAAO,MAAM,aAAa,EAAE,IAAI,EAA0B,CAAC"}
|
package/build/dts/bin.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import './infra/sentry.js';
|
|
2
2
|
import minimist from 'minimist';
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
import path from 'node:path';
|
|
3
6
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
7
|
import { addDocsTools, VALID_DOCS_TOOLS } from './docs/docs.js';
|
|
5
8
|
import { addCliTools, VALID_CLI_TOOLS } from './cli-tools/cli.js';
|
|
@@ -9,6 +12,8 @@ import { addDocsResources } from './resources/docs.js';
|
|
|
9
12
|
import { addApiCallTool } from './api-call/index.js';
|
|
10
13
|
import { addVeloReadmeTools } from './docs/velo-readme.js';
|
|
11
14
|
import { getCliAuthToken } from './cli-tools/utils.js';
|
|
15
|
+
import { TokenStore } from './cli-tools/account-token-store.js';
|
|
16
|
+
import { createAccountFileAuthStrategy } from './cli-tools/account-auth-strategy.js';
|
|
12
17
|
const PUBLIC_TOOLS = [...VALID_DOCS_TOOLS];
|
|
13
18
|
const EXPERIMENTAL_TOOLS = [
|
|
14
19
|
'WIX_API',
|
|
@@ -131,6 +136,20 @@ if (cliTools.length > 0) {
|
|
|
131
136
|
}
|
|
132
137
|
}
|
|
133
138
|
}
|
|
139
|
+
// When `--wixCliAuth` is passed, register the auth-requiring tools using the
|
|
140
|
+
// OAuth token written by `npx @wix/cli login` at ~/.wix/auth/account.json.
|
|
141
|
+
// Refreshes the access token transparently when it nears expiry.
|
|
142
|
+
if (parsedArgs['wixCliAuth']) {
|
|
143
|
+
const accountFile = path.join(homedir(), '.wix', 'auth', 'account.json');
|
|
144
|
+
if (!existsSync(accountFile)) {
|
|
145
|
+
logger.error(`--wixCliAuth was set but ${accountFile} does not exist. Run \`npx @wix/cli login\` first.`);
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
logger.log('Enabling Wix CLI auth from ~/.wix/auth/account.json');
|
|
149
|
+
const tokens = new TokenStore({ accountFile });
|
|
150
|
+
const accountAuthStrategy = createAccountFileAuthStrategy({ tokens });
|
|
151
|
+
addApiCallTool(server, accountAuthStrategy);
|
|
152
|
+
}
|
|
134
153
|
try {
|
|
135
154
|
const portals = parsedArgs['portals']?.split(',') || [];
|
|
136
155
|
if (portals.length > 0) {
|
package/build/dts/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAE3B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAY,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAW,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { McpAuthenticationStrategy } from '../auth/index.js';
|
|
2
|
+
import { TokenStore } from './account-token-store.js';
|
|
3
|
+
export interface AccountAuthStrategyOptions {
|
|
4
|
+
tokens: TokenStore;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Auth strategy backed by `~/.wix/auth/account.json` (the file written by
|
|
8
|
+
* `npx @wix/cli login`).
|
|
9
|
+
*
|
|
10
|
+
* - `getAccountAuthHeaders` returns a refreshed account access token plus the
|
|
11
|
+
* account id (read from `userInfo.userId`).
|
|
12
|
+
* - `getSiteAuthHeaders(siteId)` exchanges the refresh token for a
|
|
13
|
+
* site-scoped OAuth token via Wix's `/oauth2/token` endpoint. Mirrors the
|
|
14
|
+
* exchange the remote `dev-oauth-handler` does.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createAccountFileAuthStrategy({ tokens }: AccountAuthStrategyOptions): McpAuthenticationStrategy;
|
|
17
|
+
//# sourceMappingURL=account-auth-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-auth-strategy.d.ts","sourceRoot":"","sources":["../../../src/cli-tools/account-auth-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAmB,MAAM,0BAA0B,CAAC;AAOvE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,MAAM,EACP,EAAE,0BAA0B,GAAG,yBAAyB,CAkCxD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { WixCliAuthError } from './account-token-store.js';
|
|
2
|
+
const WIX_OAUTH_TOKEN_URL = 'https://www.wixapis.com/oauth2/token';
|
|
3
|
+
// Public client id used by @wix/cli login flow. Matches DEFAULT_CLIENT_ID in
|
|
4
|
+
// account-token-store.ts.
|
|
5
|
+
const WIX_CLIENT_ID = 'f234ac48-6cab-4ef2-9ea0-03d56a376da4';
|
|
6
|
+
/**
|
|
7
|
+
* Auth strategy backed by `~/.wix/auth/account.json` (the file written by
|
|
8
|
+
* `npx @wix/cli login`).
|
|
9
|
+
*
|
|
10
|
+
* - `getAccountAuthHeaders` returns a refreshed account access token plus the
|
|
11
|
+
* account id (read from `userInfo.userId`).
|
|
12
|
+
* - `getSiteAuthHeaders(siteId)` exchanges the refresh token for a
|
|
13
|
+
* site-scoped OAuth token via Wix's `/oauth2/token` endpoint. Mirrors the
|
|
14
|
+
* exchange the remote `dev-oauth-handler` does.
|
|
15
|
+
*/
|
|
16
|
+
export function createAccountFileAuthStrategy({ tokens }) {
|
|
17
|
+
return {
|
|
18
|
+
getAccountAuthHeaders: async () => {
|
|
19
|
+
const token = await tokens.getFreshToken();
|
|
20
|
+
return {
|
|
21
|
+
Authorization: token.accessToken,
|
|
22
|
+
'wix-account-id': tokens.getUserId()
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
getSiteAuthHeaders: async (siteId) => {
|
|
26
|
+
const token = await tokens.getFreshToken();
|
|
27
|
+
const res = await fetch(WIX_OAUTH_TOKEN_URL, {
|
|
28
|
+
method: 'POST',
|
|
29
|
+
headers: { 'Content-Type': 'application/json' },
|
|
30
|
+
body: JSON.stringify({
|
|
31
|
+
clientId: WIX_CLIENT_ID,
|
|
32
|
+
grantType: 'refresh_token',
|
|
33
|
+
refreshToken: token.refreshToken,
|
|
34
|
+
siteId
|
|
35
|
+
})
|
|
36
|
+
});
|
|
37
|
+
if (!res.ok) {
|
|
38
|
+
const body = await res.text().catch(() => '');
|
|
39
|
+
throw new WixCliAuthError(`Site token exchange failed for site ${siteId} (HTTP ${res.status}): ${body.slice(0, 300)}`);
|
|
40
|
+
}
|
|
41
|
+
const data = (await res.json());
|
|
42
|
+
return {
|
|
43
|
+
Authorization: data.access_token,
|
|
44
|
+
'wix-site-id': siteId
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=account-auth-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-auth-strategy.js","sourceRoot":"","sources":["../../../src/cli-tools/account-auth-strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AACnE,6EAA6E;AAC7E,0BAA0B;AAC1B,MAAM,aAAa,GAAG,sCAAsC,CAAC;AAM7D;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,MAAM,EACqB;IAC3B,OAAO;QACL,qBAAqB,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO;gBACL,aAAa,EAAE,KAAK,CAAC,WAAW;gBAChC,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE;aACrC,CAAC;QACJ,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE;gBAC3C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,eAAe;oBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,MAAM;iBACP,CAAC;aACH,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,IAAI,eAAe,CACvB,uCAAuC,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC5F,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA6B,CAAC;YAC5D,OAAO;gBACL,aAAa,EAAE,IAAI,CAAC,YAAY;gBAChC,aAAa,EAAE,MAAM;aACtB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface AccountToken {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
refreshToken: string;
|
|
4
|
+
issuedAt: number;
|
|
5
|
+
expiresIn: number;
|
|
6
|
+
userInfo?: {
|
|
7
|
+
userId?: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface TokenStoreOptions {
|
|
12
|
+
accountFile?: string;
|
|
13
|
+
/** Wix OAuth client id used by @wix/cli. Override only for testing. */
|
|
14
|
+
clientId?: string;
|
|
15
|
+
/** Seconds before expiry to proactively refresh. */
|
|
16
|
+
expiryBufferSeconds?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class WixCliAuthError extends Error {
|
|
19
|
+
constructor(message: string);
|
|
20
|
+
}
|
|
21
|
+
export declare class TokenStore {
|
|
22
|
+
private current;
|
|
23
|
+
private currentMtimeMs;
|
|
24
|
+
private inflight;
|
|
25
|
+
private readonly accountFile;
|
|
26
|
+
private readonly clientId;
|
|
27
|
+
private readonly bufferSeconds;
|
|
28
|
+
constructor(opts?: TokenStoreOptions);
|
|
29
|
+
load(): Promise<AccountToken>;
|
|
30
|
+
getUserId(): string;
|
|
31
|
+
private isExpired;
|
|
32
|
+
/**
|
|
33
|
+
* Re-read the token file if another process has updated it on disk since we
|
|
34
|
+
* last loaded it. Avoids a redundant refresh when a sibling bridge process
|
|
35
|
+
* has already done the work.
|
|
36
|
+
*/
|
|
37
|
+
private refreshFromDiskIfChanged;
|
|
38
|
+
/** Returns a non-expired access token, refreshing and persisting if needed. */
|
|
39
|
+
getFreshToken(): Promise<AccountToken>;
|
|
40
|
+
private refresh;
|
|
41
|
+
/** Atomic write: writes to a sibling .tmp file then renames into place. */
|
|
42
|
+
private persist;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=account-token-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-token-store.d.ts","sourceRoot":"","sources":["../../../src/cli-tools/account-token-store.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAWD,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,IAAI,GAAE,iBAAsB;IAMlC,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAwCnC,SAAS,IAAI,MAAM;IAUnB,OAAO,CAAC,SAAS;IAKjB;;;;OAIG;YACW,wBAAwB;IActC,+EAA+E;IACzE,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC;YAe9B,OAAO;IA0CrB,2EAA2E;YAC7D,OAAO;CAmBtB"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
const DEFAULT_ACCOUNT_FILE = path.join(os.homedir(), '.wix', 'auth', 'account.json');
|
|
5
|
+
// Public client id used by @wix/cli login flow.
|
|
6
|
+
const DEFAULT_CLIENT_ID = 'f234ac48-6cab-4ef2-9ea0-03d56a376da4';
|
|
7
|
+
export class WixCliAuthError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'WixCliAuthError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class TokenStore {
|
|
14
|
+
current;
|
|
15
|
+
currentMtimeMs;
|
|
16
|
+
inflight;
|
|
17
|
+
accountFile;
|
|
18
|
+
clientId;
|
|
19
|
+
bufferSeconds;
|
|
20
|
+
constructor(opts = {}) {
|
|
21
|
+
this.accountFile = opts.accountFile ?? DEFAULT_ACCOUNT_FILE;
|
|
22
|
+
this.clientId = opts.clientId ?? DEFAULT_CLIENT_ID;
|
|
23
|
+
this.bufferSeconds = opts.expiryBufferSeconds ?? 5 * 60;
|
|
24
|
+
}
|
|
25
|
+
async load() {
|
|
26
|
+
let raw;
|
|
27
|
+
let mtimeMs;
|
|
28
|
+
try {
|
|
29
|
+
const [content, stat] = await Promise.all([
|
|
30
|
+
fs.readFile(this.accountFile, 'utf-8'),
|
|
31
|
+
fs.stat(this.accountFile)
|
|
32
|
+
]);
|
|
33
|
+
raw = content;
|
|
34
|
+
mtimeMs = stat.mtimeMs;
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
const code = err?.code;
|
|
38
|
+
if (code === 'ENOENT') {
|
|
39
|
+
throw new WixCliAuthError(`Wix CLI auth file not found at ${this.accountFile}.\n` +
|
|
40
|
+
`Run \`npx @wix/cli login\` first, then retry.`);
|
|
41
|
+
}
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
let parsed;
|
|
45
|
+
try {
|
|
46
|
+
parsed = JSON.parse(raw);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
throw new WixCliAuthError(`Failed to parse ${this.accountFile}: ${err.message}`);
|
|
50
|
+
}
|
|
51
|
+
if (!parsed?.accessToken || !parsed?.refreshToken) {
|
|
52
|
+
throw new WixCliAuthError(`${this.accountFile} is missing accessToken or refreshToken. Re-run \`npx @wix/cli login\`.`);
|
|
53
|
+
}
|
|
54
|
+
this.current = parsed;
|
|
55
|
+
this.currentMtimeMs = mtimeMs;
|
|
56
|
+
return parsed;
|
|
57
|
+
}
|
|
58
|
+
getUserId() {
|
|
59
|
+
const id = this.current?.userInfo?.userId;
|
|
60
|
+
if (!id) {
|
|
61
|
+
throw new WixCliAuthError(`Wix CLI auth file ${this.accountFile} is missing userInfo.userId. Re-run \`npx @wix/cli login\`.`);
|
|
62
|
+
}
|
|
63
|
+
return id;
|
|
64
|
+
}
|
|
65
|
+
isExpired(token) {
|
|
66
|
+
const expirationMs = (token.issuedAt + token.expiresIn) * 1000;
|
|
67
|
+
return Date.now() > expirationMs - this.bufferSeconds * 1000;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Re-read the token file if another process has updated it on disk since we
|
|
71
|
+
* last loaded it. Avoids a redundant refresh when a sibling bridge process
|
|
72
|
+
* has already done the work.
|
|
73
|
+
*/
|
|
74
|
+
async refreshFromDiskIfChanged() {
|
|
75
|
+
try {
|
|
76
|
+
const stat = await fs.stat(this.accountFile);
|
|
77
|
+
if (this.currentMtimeMs === undefined ||
|
|
78
|
+
stat.mtimeMs > this.currentMtimeMs) {
|
|
79
|
+
await this.load();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// ignore — load() will throw on next attempt if the file is truly gone
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** Returns a non-expired access token, refreshing and persisting if needed. */
|
|
87
|
+
async getFreshToken() {
|
|
88
|
+
if (!this.current)
|
|
89
|
+
await this.load();
|
|
90
|
+
else
|
|
91
|
+
await this.refreshFromDiskIfChanged();
|
|
92
|
+
const token = this.current;
|
|
93
|
+
if (!this.isExpired(token))
|
|
94
|
+
return token;
|
|
95
|
+
if (!this.inflight) {
|
|
96
|
+
this.inflight = this.refresh(token).finally(() => {
|
|
97
|
+
this.inflight = undefined;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return this.inflight;
|
|
101
|
+
}
|
|
102
|
+
async refresh(token) {
|
|
103
|
+
const res = await fetch('https://www.wixapis.com/oauth2/token', {
|
|
104
|
+
method: 'POST',
|
|
105
|
+
headers: {
|
|
106
|
+
'Content-Type': 'application/json',
|
|
107
|
+
Authorization: token.accessToken
|
|
108
|
+
},
|
|
109
|
+
body: JSON.stringify({
|
|
110
|
+
clientId: this.clientId,
|
|
111
|
+
grantType: 'refresh_token',
|
|
112
|
+
scope: 'offline_access',
|
|
113
|
+
refreshToken: token.refreshToken
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
if (!res.ok) {
|
|
117
|
+
const text = await res.text().catch(() => '');
|
|
118
|
+
throw new WixCliAuthError(`Failed to refresh Wix access token (HTTP ${res.status}): ${text.slice(0, 500)}\n` +
|
|
119
|
+
`Run \`npx @wix/cli login\` to re-authenticate.`);
|
|
120
|
+
}
|
|
121
|
+
const data = (await res.json());
|
|
122
|
+
const next = {
|
|
123
|
+
...token,
|
|
124
|
+
accessToken: data.access_token,
|
|
125
|
+
refreshToken: data.refresh_token,
|
|
126
|
+
issuedAt: Math.floor(Date.now() / 1000),
|
|
127
|
+
expiresIn: data.expires_in
|
|
128
|
+
};
|
|
129
|
+
this.current = next;
|
|
130
|
+
await this.persist(next);
|
|
131
|
+
return next;
|
|
132
|
+
}
|
|
133
|
+
/** Atomic write: writes to a sibling .tmp file then renames into place. */
|
|
134
|
+
async persist(token) {
|
|
135
|
+
const tmp = `${this.accountFile}.tmp-${process.pid}-${Date.now()}`;
|
|
136
|
+
try {
|
|
137
|
+
await fs.writeFile(tmp, JSON.stringify(token), {
|
|
138
|
+
encoding: 'utf-8',
|
|
139
|
+
mode: 0o600
|
|
140
|
+
});
|
|
141
|
+
await fs.rename(tmp, this.accountFile);
|
|
142
|
+
const stat = await fs.stat(this.accountFile).catch(() => undefined);
|
|
143
|
+
if (stat)
|
|
144
|
+
this.currentMtimeMs = stat.mtimeMs;
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
// Persistence failure is non-fatal; surface to stderr but keep the
|
|
148
|
+
// in-memory token so the current session continues to work.
|
|
149
|
+
console.error(`[wix-mcp] Warning: could not persist refreshed token to ${this.accountFile}: ${err.message}`);
|
|
150
|
+
await fs.unlink(tmp).catch(() => undefined);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=account-token-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-token-store.js","sourceRoot":"","sources":["../../../src/cli-tools/account-token-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.46",
|
|
4
4
|
"description": "A Model Context Protocol server for Wix AI tools",
|
|
5
5
|
"bin": "./build/bin-standalone.js",
|
|
6
6
|
"dependencies": {
|
|
@@ -110,5 +110,5 @@
|
|
|
110
110
|
]
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
|
-
"falconPackageHash": "
|
|
113
|
+
"falconPackageHash": "f4ad8d0e78fe56ad6989d31e978c5ed87c7c73147783c89ab6d66e09"
|
|
114
114
|
}
|