awal 2.8.0 → 2.8.2
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/dist/commands/address.d.ts.map +1 -1
- package/dist/commands/address.js +27 -6
- package/dist/commands/address.js.map +1 -1
- package/dist/ipcClient.d.ts.map +1 -1
- package/dist/ipcClient.js +5 -2
- package/dist/ipcClient.js.map +1 -1
- package/dist/utils/__tests__/errors.test.d.ts +2 -0
- package/dist/utils/__tests__/errors.test.d.ts.map +1 -0
- package/dist/utils/__tests__/errors.test.js +27 -0
- package/dist/utils/__tests__/errors.test.js.map +1 -0
- package/dist/utils/errors.d.ts +5 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +29 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/serverManager.js +1 -1
- package/package.json +1 -1
- package/server-bundle/bundle-electron.js +21 -21
- package/server-bundle/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,oBAAoB,IAAI,OAAO,CA6D9C"}
|
package/dist/commands/address.js
CHANGED
|
@@ -2,8 +2,7 @@ import { Command } from 'commander';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import ora from 'ora';
|
|
4
4
|
import { sendIpcRequest } from '../ipcClient.js';
|
|
5
|
-
import {
|
|
6
|
-
import { formatError } from '../utils/errors.js';
|
|
5
|
+
import { AuthRequiredError, formatError, WalletRefreshingError } from '../utils/errors.js';
|
|
7
6
|
import { formatJson } from '../formatters/output.js';
|
|
8
7
|
export function createAddressCommand() {
|
|
9
8
|
return new Command('address')
|
|
@@ -13,13 +12,26 @@ export function createAddressCommand() {
|
|
|
13
12
|
.action(async (options) => {
|
|
14
13
|
const spinner = ora('Fetching wallet address...').start();
|
|
15
14
|
try {
|
|
16
|
-
// Check authentication first
|
|
17
|
-
await requireAuth();
|
|
18
15
|
const data = {};
|
|
19
16
|
if (options.chain) {
|
|
20
17
|
data.chain = options.chain;
|
|
21
18
|
}
|
|
22
|
-
|
|
19
|
+
let result;
|
|
20
|
+
try {
|
|
21
|
+
result = await sendIpcRequest('get-wallet-address', data);
|
|
22
|
+
}
|
|
23
|
+
catch (firstError) {
|
|
24
|
+
const firstMsg = firstError instanceof Error ? firstError.message : '';
|
|
25
|
+
if (firstMsg.includes('refreshing'))
|
|
26
|
+
throw firstError;
|
|
27
|
+
// First call may fail while the SDK warms up — retry once
|
|
28
|
+
try {
|
|
29
|
+
result = await sendIpcRequest('get-wallet-address', data);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
throw firstError;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
23
35
|
spinner.stop();
|
|
24
36
|
const isMulti = typeof result === 'object' && result !== null && 'evm' in result && 'solana' in result;
|
|
25
37
|
if (options.json) {
|
|
@@ -42,7 +54,16 @@ export function createAddressCommand() {
|
|
|
42
54
|
}
|
|
43
55
|
catch (error) {
|
|
44
56
|
spinner.fail('Failed to fetch address');
|
|
45
|
-
|
|
57
|
+
const msg = error instanceof Error ? error.message : '';
|
|
58
|
+
if (msg.includes('refreshing')) {
|
|
59
|
+
console.error(chalk.yellow(formatError(new WalletRefreshingError())));
|
|
60
|
+
}
|
|
61
|
+
else if (msg.includes('not signed in') || msg.includes('Authentication required')) {
|
|
62
|
+
console.error(chalk.red(formatError(new AuthRequiredError())));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.error(chalk.red(formatError(error)));
|
|
66
|
+
}
|
|
46
67
|
process.exit(1);
|
|
47
68
|
}
|
|
48
69
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"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"}
|
package/dist/ipcClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipcClient.d.ts","sourceRoot":"","sources":["../src/ipcClient.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAE1D;AAsCD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"ipcClient.d.ts","sourceRoot":"","sources":["../src/ipcClient.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAE1D;AAsCD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA2GrF"}
|
package/dist/ipcClient.js
CHANGED
|
@@ -70,8 +70,11 @@ export async function sendIpcRequest(channel, data) {
|
|
|
70
70
|
};
|
|
71
71
|
// Write with secure permissions (600 - owner read/write only)
|
|
72
72
|
fs.writeFileSync(requestFile, JSON.stringify(request, null, 2), { mode: 0o600 });
|
|
73
|
-
// Wait for response file using file system watcher
|
|
74
|
-
|
|
73
|
+
// Wait for response file using file system watcher.
|
|
74
|
+
// 180s comfortably exceeds the de facto x402 cap (sellers commonly advertise
|
|
75
|
+
// maxTimeoutSeconds up to 120s for LLM-backed endpoints) plus facilitator
|
|
76
|
+
// and network jitter.
|
|
77
|
+
const maxWait = 180000;
|
|
75
78
|
await new Promise((resolve, reject) => {
|
|
76
79
|
const timeout = setTimeout(() => {
|
|
77
80
|
watcher.close();
|
package/dist/ipcClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipcClient.js","sourceRoot":"","sources":["../src/ipcClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ipcClient.js","sourceRoot":"","sources":["../src/ipcClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IpcTimeoutError, formatError } from '../errors.js';
|
|
2
|
+
describe('IpcTimeoutError', () => {
|
|
3
|
+
it('stores the channel for downstream branching', () => {
|
|
4
|
+
const err = new IpcTimeoutError('make-x402-request', 180000);
|
|
5
|
+
expect(err.channel).toBe('make-x402-request');
|
|
6
|
+
expect(err.name).toBe('IpcTimeoutError');
|
|
7
|
+
});
|
|
8
|
+
it('emits the payment-may-have-completed hint for x402 timeouts', () => {
|
|
9
|
+
const err = new IpcTimeoutError('make-x402-request', 180000);
|
|
10
|
+
const message = err.getDisplayMessage();
|
|
11
|
+
expect(message).toContain('payment may still have completed on chain');
|
|
12
|
+
expect(message).toContain('npx awal show');
|
|
13
|
+
expect(message).not.toContain('Restart the wallet');
|
|
14
|
+
});
|
|
15
|
+
it('emits the wallet-restart hint for non-x402 timeouts', () => {
|
|
16
|
+
const err = new IpcTimeoutError('get-wallet-balance', 180000);
|
|
17
|
+
const message = err.getDisplayMessage();
|
|
18
|
+
expect(message).toContain('wallet may be unresponsive');
|
|
19
|
+
expect(message).toContain('Restart the wallet');
|
|
20
|
+
expect(message).not.toContain('payment may still have completed');
|
|
21
|
+
});
|
|
22
|
+
it('flows through formatError', () => {
|
|
23
|
+
const err = new IpcTimeoutError('make-x402-request', 180000);
|
|
24
|
+
expect(formatError(err)).toBe(err.getDisplayMessage());
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/errors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -9,7 +9,12 @@ export declare class AuthRequiredError extends Error {
|
|
|
9
9
|
constructor(message?: string);
|
|
10
10
|
getDisplayMessage(): string;
|
|
11
11
|
}
|
|
12
|
+
export declare class WalletRefreshingError extends Error {
|
|
13
|
+
constructor();
|
|
14
|
+
getDisplayMessage(): string;
|
|
15
|
+
}
|
|
12
16
|
export declare class IpcTimeoutError extends Error {
|
|
17
|
+
readonly channel: string;
|
|
13
18
|
constructor(channel: string, timeoutMs: number);
|
|
14
19
|
getDisplayMessage(): string;
|
|
15
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,KAAK;;IAM9C,iBAAiB,IAAI,MAAM;CAO5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,SAA4B;IAK/C,iBAAiB,IAAI,MAAM;CAW5B;AAED,qBAAa,eAAgB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,qBAAsB,SAAQ,KAAK;;IAM9C,iBAAiB,IAAI,MAAM;CAO5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,SAA4B;IAK/C,iBAAiB,IAAI,MAAM;CAW5B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;;IAM9C,iBAAiB,IAAI,MAAM;CAQ5B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM9C,iBAAiB,IAAI,MAAM;CAoB5B;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;IAK3B,iBAAiB,IAAI,MAAM;CAG5B;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;IAK3B,iBAAiB,IAAI,MAAM;CAK5B;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAelD"}
|
package/dist/utils/errors.js
CHANGED
|
@@ -31,12 +31,40 @@ Sign in using one of:
|
|
|
31
31
|
npx awal show`;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
export class WalletRefreshingError extends Error {
|
|
35
|
+
constructor() {
|
|
36
|
+
super('Wallet is still refreshing');
|
|
37
|
+
this.name = 'WalletRefreshingError';
|
|
38
|
+
}
|
|
39
|
+
getDisplayMessage() {
|
|
40
|
+
return `Wallet session is valid, but still loading.
|
|
41
|
+
|
|
42
|
+
Try:
|
|
43
|
+
1. Wait a few seconds and retry the command
|
|
44
|
+
2. Open the wallet UI to check status:
|
|
45
|
+
npx awal show`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
34
48
|
export class IpcTimeoutError extends Error {
|
|
49
|
+
channel;
|
|
35
50
|
constructor(channel, timeoutMs) {
|
|
36
51
|
super(`IPC timeout on channel "${channel}" after ${timeoutMs}ms`);
|
|
37
52
|
this.name = 'IpcTimeoutError';
|
|
53
|
+
this.channel = channel;
|
|
38
54
|
}
|
|
39
55
|
getDisplayMessage() {
|
|
56
|
+
// x402 payments settle server-side via the facilitator before the seller's
|
|
57
|
+
// response returns, so a timeout here can mean the USDC moved on chain even
|
|
58
|
+
// though awal didn't see a result. Restarting the wallet would mask, not
|
|
59
|
+
// resolve, that case — direct the user to check history first.
|
|
60
|
+
if (this.channel === 'make-x402-request') {
|
|
61
|
+
return `Request timed out. The payment may still have completed on chain.
|
|
62
|
+
|
|
63
|
+
Before retrying:
|
|
64
|
+
1. Open the wallet UI: npx awal show
|
|
65
|
+
2. Check transaction history for a settled payment matching this request
|
|
66
|
+
3. If the payment landed, the seller likely failed after settlement — do not retry`;
|
|
67
|
+
}
|
|
40
68
|
return `Request timed out. The wallet may be unresponsive.
|
|
41
69
|
|
|
42
70
|
Try:
|
|
@@ -67,6 +95,7 @@ This may indicate a configuration issue. Try restarting the wallet.`;
|
|
|
67
95
|
export function formatError(error) {
|
|
68
96
|
if (error instanceof WalletNotRunningError ||
|
|
69
97
|
error instanceof AuthRequiredError ||
|
|
98
|
+
error instanceof WalletRefreshingError ||
|
|
70
99
|
error instanceof IpcTimeoutError ||
|
|
71
100
|
error instanceof WalletError ||
|
|
72
101
|
error instanceof IpcBridgeError) {
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;gBAIK,CAAC;IACf,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,GAAG,yBAAyB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;;;;;mBAQQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;gBAIK,CAAC;IACf,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,GAAG,yBAAyB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;;;;;mBAQQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;IAED,iBAAiB;QACf,OAAO;;;;;mBAKQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,SAAiB;QAC5C,KAAK,CAAC,2BAA2B,OAAO,WAAW,SAAS,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,2EAA2E;QAC3E,4EAA4E;QAC5E,yEAAyE;QACzE,+DAA+D;QAC/D,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;YACzC,OAAO;;;;;qFAKwE,CAAC;QAClF,CAAC;QAED,OAAO;;;;sCAI2B,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;IAED,iBAAiB;QACf,OAAO,+BAA+B,IAAI,CAAC,OAAO;;oEAEc,CAAC;IACnE,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IACE,KAAK,YAAY,qBAAqB;QACtC,KAAK,YAAY,iBAAiB;QAClC,KAAK,YAAY,qBAAqB;QACtC,KAAK,YAAY,eAAe;QAChC,KAAK,YAAY,WAAW;QAC5B,KAAK,YAAY,cAAc,EAC/B,CAAC;QACD,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { fileURLToPath } from 'url';
|
|
|
6
6
|
import { getPrimaryProcessPid } from './processCheck.js';
|
|
7
7
|
const paths = envPaths('awal');
|
|
8
8
|
// This will be updated by the build script
|
|
9
|
-
const BUNDLE_VERSION = '2.8.
|
|
9
|
+
const BUNDLE_VERSION = '2.8.2';
|
|
10
10
|
function getServerPaths() {
|
|
11
11
|
const dataDir = paths.data;
|
|
12
12
|
const bundleDir = path.join(dataDir, 'server');
|