seventeen-track 1.0.0 → 2.0.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.
- package/LICENSE +1 -1
- package/README.md +7 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -9
- package/dist/index.js.map +1 -1
- package/dist/package.js +4 -8
- package/dist/package.js.map +1 -1
- package/dist/profile.d.ts +2 -1
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +27 -19
- package/dist/profile.js.map +1 -1
- package/package.json +11 -13
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# seventeen-track
|
|
2
2
|
|
|
3
|
-
[](https://github.com/mderazon/seventeen-track-js/actions) [](https://github.com/mderazon/seventeen-track-js/actions) [](https://badge.fury.io/js/seventeen-track) [](https://opensource.org/licenses/MIT)
|
|
4
4
|
|
|
5
5
|
> track packages with 17track.net
|
|
6
6
|
|
|
7
|
-
This repository provides an **unofficial SDK** for interacting with 17track.net from Node.js
|
|
7
|
+
This repository provides an **unofficial SDK** for interacting with 17track.net from Node.js or Google Apps Scripts. **This project is not affiliated with 17track** and may break in the future as the API evolves.
|
|
8
8
|
|
|
9
9
|
## Usage Example
|
|
10
10
|
|
|
@@ -21,8 +21,7 @@ const loggedIn = await client.profile.login(
|
|
|
21
21
|
"your-password"
|
|
22
22
|
);
|
|
23
23
|
if (!loggedIn) {
|
|
24
|
-
|
|
25
|
-
return;
|
|
24
|
+
throw new Error("Login failed");
|
|
26
25
|
}
|
|
27
26
|
console.log(`Logged in as: ${client.profile.accountId}`);
|
|
28
27
|
|
|
@@ -99,10 +98,12 @@ A package object contains the following properties:
|
|
|
99
98
|
|
|
100
99
|
## Supported Environments
|
|
101
100
|
|
|
102
|
-
This library is designed to work in both Node.js /
|
|
101
|
+
This library is designed to work in both Node.js / other environments that support native `fetch` **and** in Google Apps Script (GAS), which uses `UrlFetchApp.fetch`. It includes a pure-JavaScript RSA implementation (`node-forge`) to handle the required password encryption across all platforms.
|
|
103
102
|
|
|
104
103
|
In GAS, the library can be especially useful to fetch tracking numbers directly from Gmail emails and add them to 17track via the API.
|
|
105
104
|
|
|
105
|
+
When used in a web environment, the 17track server's strict CORS policies block requests from unauthorized domains.
|
|
106
|
+
|
|
106
107
|
### Building for Google Apps Script
|
|
107
108
|
|
|
108
109
|
To build for GAS, run:
|
|
@@ -111,7 +112,7 @@ To build for GAS, run:
|
|
|
111
112
|
npm run build-gas
|
|
112
113
|
```
|
|
113
114
|
|
|
114
|
-
This command uses
|
|
115
|
+
This command uses esbuild (with ts2gas) to convert the TypeScript files to GAS-compatible JavaScript. The output file (`index.gs`) is placed in the `dist-gas` folder.
|
|
115
116
|
|
|
116
117
|
For more information about targeting GAS, see [here](https://github.com/google/clasp/blob/master/docs/typescript.md).
|
|
117
118
|
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,qBAAa,MAAM;IACV,OAAO,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,OAAO,CAAiC;;IAMhD,OAAO,CAAC,qBAAqB;YAyBf,WAAW;YAgDX,OAAO;CA+DtB"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Client = void 0;
|
|
4
|
-
const profile_1 = require("./profile");
|
|
5
|
-
class Client {
|
|
1
|
+
import { Profile } from "./profile.js";
|
|
2
|
+
export class Client {
|
|
6
3
|
profile;
|
|
7
4
|
cookies = {};
|
|
8
5
|
constructor() {
|
|
9
|
-
this.profile = new
|
|
6
|
+
this.profile = new Profile(this.request.bind(this));
|
|
10
7
|
}
|
|
11
8
|
parseAndFilterCookies(setCookieHeader) {
|
|
12
9
|
if (!setCookieHeader) {
|
|
@@ -72,6 +69,9 @@ class Client {
|
|
|
72
69
|
async request(method, url, data) {
|
|
73
70
|
const headers = {
|
|
74
71
|
"Content-Type": "application/json",
|
|
72
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
|
73
|
+
Referer: "https://www.17track.net/",
|
|
74
|
+
"X-Requested-With": "XMLHttpRequest",
|
|
75
75
|
};
|
|
76
76
|
const relevantCookies = Object.entries(this.cookies)
|
|
77
77
|
.map(([key, value]) => `${key}=${value}`)
|
|
@@ -79,7 +79,21 @@ class Client {
|
|
|
79
79
|
if (relevantCookies) {
|
|
80
80
|
headers["Cookie"] = relevantCookies;
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
const bodyData = data ? JSON.stringify(data) : undefined;
|
|
83
|
+
if (typeof process !== "undefined" &&
|
|
84
|
+
process.env &&
|
|
85
|
+
process.env.NODE_DEBUG &&
|
|
86
|
+
process.env.NODE_DEBUG.includes("seventeen-track")) {
|
|
87
|
+
console.log(`Request: ${method.toUpperCase()} ${url}`);
|
|
88
|
+
console.log("Request Headers:", JSON.stringify(headers, null, 2));
|
|
89
|
+
if (bodyData) {
|
|
90
|
+
const loggedData = JSON.parse(bodyData);
|
|
91
|
+
if (loggedData.password) {
|
|
92
|
+
loggedData.password = "****";
|
|
93
|
+
}
|
|
94
|
+
console.log("Request Data:", JSON.stringify(loggedData, null, 2));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
83
97
|
const response = await this.customFetch(url, {
|
|
84
98
|
method: method.toUpperCase(),
|
|
85
99
|
headers: headers,
|
|
@@ -97,10 +111,11 @@ class Client {
|
|
|
97
111
|
catch (e) {
|
|
98
112
|
throw new Error(`Request failed: ${response.status} - ${errorText}`);
|
|
99
113
|
}
|
|
100
|
-
|
|
114
|
+
const errorCode = errorJson.Code ?? errorJson.code;
|
|
115
|
+
const errorMessage = errorJson.Message ?? errorJson.message;
|
|
116
|
+
throw new Error(`Request failed: ${response.status} - Code: ${errorCode}, Message: ${errorMessage}`);
|
|
101
117
|
}
|
|
102
118
|
return await response.json();
|
|
103
119
|
}
|
|
104
120
|
}
|
|
105
|
-
exports.Client = Client;
|
|
106
121
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/package.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Package = exports.packageStatusMap = exports.PackageStatus = void 0;
|
|
4
|
-
var PackageStatus;
|
|
1
|
+
export var PackageStatus;
|
|
5
2
|
(function (PackageStatus) {
|
|
6
3
|
PackageStatus["Pending"] = "Pending";
|
|
7
4
|
PackageStatus["InTransit"] = "In Transit";
|
|
@@ -10,8 +7,8 @@ var PackageStatus;
|
|
|
10
7
|
PackageStatus["Undelivered"] = "Undelivered";
|
|
11
8
|
PackageStatus["Exception"] = "Exception";
|
|
12
9
|
PackageStatus["Unknown"] = "Unknown";
|
|
13
|
-
})(PackageStatus || (
|
|
14
|
-
|
|
10
|
+
})(PackageStatus || (PackageStatus = {}));
|
|
11
|
+
export const packageStatusMap = {
|
|
15
12
|
0: PackageStatus.Pending,
|
|
16
13
|
1: PackageStatus.InTransit,
|
|
17
14
|
2: PackageStatus.Expired,
|
|
@@ -23,7 +20,7 @@ exports.packageStatusMap = {
|
|
|
23
20
|
9: PackageStatus.Unknown,
|
|
24
21
|
10: PackageStatus.Exception,
|
|
25
22
|
};
|
|
26
|
-
class Package {
|
|
23
|
+
export class Package {
|
|
27
24
|
id;
|
|
28
25
|
destinationCountry;
|
|
29
26
|
friendlyName;
|
|
@@ -49,5 +46,4 @@ class Package {
|
|
|
49
46
|
this.status = options.status;
|
|
50
47
|
}
|
|
51
48
|
}
|
|
52
|
-
exports.Package = Package;
|
|
53
49
|
//# sourceMappingURL=package.js.map
|
package/dist/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,yCAAwB,CAAA;IACxB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;AACrB,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D,CAAC,EAAE,aAAa,CAAC,OAAO;IACxB,CAAC,EAAE,aAAa,CAAC,SAAS;IAC1B,CAAC,EAAE,aAAa,CAAC,OAAO;IACxB,CAAC,EAAE,aAAa,CAAC,SAAS;IAC1B,CAAC,EAAE,aAAa,CAAC,WAAW;IAC5B,CAAC,EAAE,aAAa,CAAC,OAAO;IACxB,CAAC,EAAE,aAAa,CAAC,OAAO;IACxB,CAAC,EAAE,aAAa,CAAC,OAAO;IACxB,CAAC,EAAE,aAAa,CAAC,OAAO;IACxB,EAAE,EAAE,aAAa,CAAC,SAAS;CAC5B,CAAC;AAEF,MAAM,OAAO,OAAO;IAClB,EAAE,CAAU;IACZ,kBAAkB,CAAkB;IACpC,YAAY,CAAU;IACtB,QAAQ,CAAU;IAClB,QAAQ,CAAU;IAClB,SAAS,CAAU;IACnB,EAAE,CAAS;IACX,aAAa,CAAkB;IAC/B,WAAW,CAAkB;IAC7B,MAAM,CAAkB;IACxB,cAAc,CAAS;IAEvB,YACE,cAAsB,EACtB,OAWC;QAED,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF"}
|
package/dist/profile.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Package } from "./package";
|
|
1
|
+
import { Package } from "./package.js";
|
|
2
2
|
export declare class RequestError extends Error {
|
|
3
3
|
}
|
|
4
4
|
export declare class InvalidTrackingNumberError extends Error {
|
|
@@ -7,6 +7,7 @@ export declare class Profile {
|
|
|
7
7
|
private request;
|
|
8
8
|
accountId?: string;
|
|
9
9
|
constructor(request: (method: string, url: string, data?: any) => Promise<any>);
|
|
10
|
+
private rsaEncrypt;
|
|
10
11
|
login(email: string, password: string): Promise<boolean>;
|
|
11
12
|
packages(packageState?: number | string, showArchived?: boolean, tz?: string): Promise<Package[]>;
|
|
12
13
|
summary(showArchived?: boolean): Promise<Record<string, number>>;
|
package/dist/profile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAmC,MAAM,cAAc,CAAC;AAexE,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAC1C,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;AAExD,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAA4D;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;gBAGxB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;IAKpE,OAAO,CAAC,UAAU;IAMZ,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBxD,QAAQ,CACZ,YAAY,GAAE,MAAM,GAAG,MAAW,EAClC,YAAY,GAAE,OAAe,EAC7B,EAAE,GAAE,MAAc,GACjB,OAAO,CAAC,OAAO,EAAE,CAAC;IA8Cf,OAAO,CACX,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAiB5B,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAoCV,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAaV,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrD,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B3D"}
|
package/dist/profile.js
CHANGED
|
@@ -1,32 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Profile = exports.InvalidTrackingNumberError = exports.RequestError = void 0;
|
|
4
|
-
const package_1 = require("./package");
|
|
1
|
+
import forge from "node-forge";
|
|
2
|
+
import { Package, packageStatusMap, PackageStatus } from "./package.js";
|
|
5
3
|
const API_URL_BUYER = "https://buyer.17track.net/orderapi/call";
|
|
6
|
-
const API_URL_USER = "https://user.17track.net/
|
|
7
|
-
|
|
4
|
+
const API_URL_USER = "https://user.17track.net/user-api/v1/sign-in-by-password";
|
|
5
|
+
const PUBLIC_KEY = `-----BEGIN PUBLIC KEY-----
|
|
6
|
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Y5iQN3VNofXPtZXYZe9
|
|
7
|
+
75ojD+Gb+yPBrlrKj2t4XvYHE+pYmFzGPTvDmB3t1OfHujdgBVc3VJBSFsHezm4kz
|
|
8
|
+
4iqIChHLKeFvuux+i/Uq+zo1QdC72qteUMHF925qPLe3xU/QJj6BFR9mA4VrUwXt8
|
|
9
|
+
eWI58ozizBH31PclxiPNT+yYYXRUV3QJvbZ+FJGL3gYUu1k44WILQzDZfBJMRf+My
|
|
10
|
+
LHZew6+XtYB8E2+PXc/R7TtLPcMDsPvARrAJMhu5b+yfwJM1zOFChAz3U1w0Zkj1y
|
|
11
|
+
VJQaa/aktmfd0KyFkU2M0xNpPIIcQkywUGCMZEmJkEIyyV/I+H/NvQ+qqU5llwIDAQAB
|
|
12
|
+
-----END PUBLIC KEY-----`;
|
|
13
|
+
export class RequestError extends Error {
|
|
8
14
|
}
|
|
9
|
-
|
|
10
|
-
class InvalidTrackingNumberError extends Error {
|
|
15
|
+
export class InvalidTrackingNumberError extends Error {
|
|
11
16
|
}
|
|
12
|
-
|
|
13
|
-
class Profile {
|
|
17
|
+
export class Profile {
|
|
14
18
|
request;
|
|
15
19
|
accountId;
|
|
16
20
|
constructor(request) {
|
|
17
21
|
this.request = request;
|
|
18
22
|
}
|
|
23
|
+
rsaEncrypt(text) {
|
|
24
|
+
const publicKey = forge.pki.publicKeyFromPem(PUBLIC_KEY);
|
|
25
|
+
const encrypted = publicKey.encrypt(text, "RSAES-PKCS1-V1_5");
|
|
26
|
+
return forge.util.encode64(encrypted);
|
|
27
|
+
}
|
|
19
28
|
async login(email, password) {
|
|
29
|
+
const encryptedPassword = this.rsaEncrypt(password);
|
|
20
30
|
const loginResp = await this.request("post", API_URL_USER, {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
sourcetype: 0,
|
|
31
|
+
source: 0,
|
|
32
|
+
account: email,
|
|
33
|
+
password: encryptedPassword,
|
|
25
34
|
});
|
|
26
|
-
if (loginResp.
|
|
35
|
+
if (loginResp.code !== 0) {
|
|
27
36
|
return false;
|
|
28
37
|
}
|
|
29
|
-
this.accountId = loginResp.
|
|
38
|
+
this.accountId = loginResp.data?.gid;
|
|
30
39
|
return true;
|
|
31
40
|
}
|
|
32
41
|
async packages(packageState = "", showArchived = false, tz = "UTC") {
|
|
@@ -65,7 +74,7 @@ class Profile {
|
|
|
65
74
|
packageType: packageData.FTrackStateType ?? 0,
|
|
66
75
|
status: packageData.FPackageState ?? 0,
|
|
67
76
|
};
|
|
68
|
-
packages.push(new
|
|
77
|
+
packages.push(new Package(packageData.FTrackNo, options));
|
|
69
78
|
}
|
|
70
79
|
return packages;
|
|
71
80
|
}
|
|
@@ -78,7 +87,7 @@ class Profile {
|
|
|
78
87
|
});
|
|
79
88
|
const results = {};
|
|
80
89
|
for (const kind of summaryResp.Json?.eitem || []) {
|
|
81
|
-
const key =
|
|
90
|
+
const key = packageStatusMap[kind.e] || PackageStatus.Unknown;
|
|
82
91
|
const value = kind.ec;
|
|
83
92
|
results[key] = key in results ? results[key] + value : value;
|
|
84
93
|
}
|
|
@@ -164,5 +173,4 @@ class Profile {
|
|
|
164
173
|
}
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
|
-
exports.Profile = Profile;
|
|
168
176
|
//# sourceMappingURL=profile.js.map
|
package/dist/profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seventeen-track",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "An unofficial SDK for interacting with 17track.net to manage and track packages.",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"files": [
|
|
@@ -10,7 +11,7 @@
|
|
|
10
11
|
],
|
|
11
12
|
"scripts": {
|
|
12
13
|
"build": "tsc --project tsconfig.build.json",
|
|
13
|
-
"build-gas": "
|
|
14
|
+
"build-gas": "esbuild src/index.ts --bundle --outfile=dist-gas/index.js --platform=browser --format=esm --banner:js=\"var window = globalThis; var self = globalThis;\" && node build-gas.js",
|
|
14
15
|
"test": "tsx --test --env-file-if-exists=.env test/**/*.spec.ts"
|
|
15
16
|
},
|
|
16
17
|
"repository": {
|
|
@@ -33,17 +34,14 @@
|
|
|
33
34
|
},
|
|
34
35
|
"homepage": "https://github.com/mderazon/seventeen-track-js#readme",
|
|
35
36
|
"devDependencies": {
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"@types/node": "^22.13.4",
|
|
43
|
-
"prettier": "^3.5.1",
|
|
44
|
-
"rollup": "^4.34.8",
|
|
37
|
+
"@types/google-apps-script": "^2.0.8",
|
|
38
|
+
"@types/node": "^25.0.3",
|
|
39
|
+
"@types/node-forge": "^1.3.14",
|
|
40
|
+
"esbuild": "^0.27.2",
|
|
41
|
+
"node-forge": "^1.3.3",
|
|
42
|
+
"prettier": "^3.7.4",
|
|
45
43
|
"ts2gas": "^4.2.0",
|
|
46
|
-
"tsx": "^4.
|
|
47
|
-
"typescript": "^5.
|
|
44
|
+
"tsx": "^4.21.0",
|
|
45
|
+
"typescript": "^5.9.3"
|
|
48
46
|
}
|
|
49
47
|
}
|