@pmate/cli 0.12.7 → 0.12.8
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/index.d.ts +346 -3
- package/dist/index.js +20884 -1474
- package/package.json +6 -5
- package/dist/agentCommandParser.d.ts +0 -2
- package/dist/agentCommandParser.js +0 -151
- package/dist/agentCommandParser.js.map +0 -1
- package/dist/alioss.d.ts +0 -21
- package/dist/alioss.js +0 -281
- package/dist/alioss.js.map +0 -1
- package/dist/appCommandParser.d.ts +0 -2
- package/dist/appCommandParser.js +0 -106
- package/dist/appCommandParser.js.map +0 -1
- package/dist/appDir.d.ts +0 -2
- package/dist/appDir.js +0 -33
- package/dist/appDir.js.map +0 -1
- package/dist/cli.d.ts +0 -8
- package/dist/cli.js +0 -43
- package/dist/cli.js.map +0 -1
- package/dist/commands/AddDnsCommandHandler.d.ts +0 -4
- package/dist/commands/AddDnsCommandHandler.js +0 -26
- package/dist/commands/AddDnsCommandHandler.js.map +0 -1
- package/dist/commands/AgentCommandHandler.d.ts +0 -11
- package/dist/commands/AgentCommandHandler.js +0 -146
- package/dist/commands/AgentCommandHandler.js.map +0 -1
- package/dist/commands/AppCommandHandler.d.ts +0 -10
- package/dist/commands/AppCommandHandler.js +0 -125
- package/dist/commands/AppCommandHandler.js.map +0 -1
- package/dist/commands/BucketCommandHandler.d.ts +0 -4
- package/dist/commands/BucketCommandHandler.js +0 -14
- package/dist/commands/BucketCommandHandler.js.map +0 -1
- package/dist/commands/CollectCommandHandler.d.ts +0 -20
- package/dist/commands/CollectCommandHandler.js +0 -470
- package/dist/commands/CollectCommandHandler.js.map +0 -1
- package/dist/commands/CommitCommandHandler.d.ts +0 -4
- package/dist/commands/CommitCommandHandler.js +0 -12
- package/dist/commands/CommitCommandHandler.js.map +0 -1
- package/dist/commands/DeployCommandHandler.d.ts +0 -20
- package/dist/commands/DeployCommandHandler.js +0 -297
- package/dist/commands/DeployCommandHandler.js.map +0 -1
- package/dist/commands/DevCommandHandler.d.ts +0 -8
- package/dist/commands/DevCommandHandler.js +0 -81
- package/dist/commands/DevCommandHandler.js.map +0 -1
- package/dist/commands/EnvCommandHandler.d.ts +0 -12
- package/dist/commands/EnvCommandHandler.js +0 -346
- package/dist/commands/EnvCommandHandler.js.map +0 -1
- package/dist/commands/InitCommandHandler.d.ts +0 -21
- package/dist/commands/InitCommandHandler.js +0 -468
- package/dist/commands/InitCommandHandler.js.map +0 -1
- package/dist/commands/LinearCommandHandler.d.ts +0 -52
- package/dist/commands/LinearCommandHandler.js +0 -1652
- package/dist/commands/LinearCommandHandler.js.map +0 -1
- package/dist/commands/ListCommandHandler.d.ts +0 -6
- package/dist/commands/ListCommandHandler.js +0 -43
- package/dist/commands/ListCommandHandler.js.map +0 -1
- package/dist/commands/LogCommandHandler.d.ts +0 -15
- package/dist/commands/LogCommandHandler.js +0 -201
- package/dist/commands/LogCommandHandler.js.map +0 -1
- package/dist/commands/LoginCommandHandler.d.ts +0 -11
- package/dist/commands/LoginCommandHandler.js +0 -178
- package/dist/commands/LoginCommandHandler.js.map +0 -1
- package/dist/commands/NotionCommandHandler.d.ts +0 -5
- package/dist/commands/NotionCommandHandler.js +0 -59
- package/dist/commands/NotionCommandHandler.js.map +0 -1
- package/dist/commands/OssCommandHandler.d.ts +0 -7
- package/dist/commands/OssCommandHandler.js +0 -82
- package/dist/commands/OssCommandHandler.js.map +0 -1
- package/dist/commands/PrCommandHandler.d.ts +0 -44
- package/dist/commands/PrCommandHandler.js +0 -673
- package/dist/commands/PrCommandHandler.js.map +0 -1
- package/dist/commands/QrcodeCommandHandler.d.ts +0 -9
- package/dist/commands/QrcodeCommandHandler.js +0 -135
- package/dist/commands/QrcodeCommandHandler.js.map +0 -1
- package/dist/commands/RandomCommandHandler.d.ts +0 -6
- package/dist/commands/RandomCommandHandler.js +0 -201
- package/dist/commands/RandomCommandHandler.js.map +0 -1
- package/dist/commands/StsCommandHandler.d.ts +0 -5
- package/dist/commands/StsCommandHandler.js +0 -45
- package/dist/commands/StsCommandHandler.js.map +0 -1
- package/dist/commands/SummaryCommandHandler.d.ts +0 -16
- package/dist/commands/SummaryCommandHandler.js +0 -190
- package/dist/commands/SummaryCommandHandler.js.map +0 -1
- package/dist/commands/VercelCommandHandler.d.ts +0 -38
- package/dist/commands/VercelCommandHandler.js +0 -126
- package/dist/commands/VercelCommandHandler.js.map +0 -1
- package/dist/config.d.ts +0 -62
- package/dist/config.js +0 -265
- package/dist/config.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/llm/AgentLlmClient.d.ts +0 -14
- package/dist/llm/AgentLlmClient.js +0 -81
- package/dist/llm/AgentLlmClient.js.map +0 -1
- package/dist/llm/types.d.ts +0 -37
- package/dist/llm/types.js +0 -3
- package/dist/llm/types.js.map +0 -1
- package/dist/serverAddress.d.ts +0 -2
- package/dist/serverAddress.js +0 -21
- package/dist/serverAddress.js.map +0 -1
- package/dist/services/AliyunService.d.ts +0 -68
- package/dist/services/AliyunService.js +0 -622
- package/dist/services/AliyunService.js.map +0 -1
- package/dist/services/NotionService.d.ts +0 -47
- package/dist/services/NotionService.js +0 -292
- package/dist/services/NotionService.js.map +0 -1
- package/dist/shell.d.ts +0 -2
- package/dist/shell.js +0 -11
- package/dist/shell.js.map +0 -1
- package/dist/tests/AgentCommandHandler.test.d.ts +0 -1
- package/dist/tests/AgentCommandHandler.test.js +0 -138
- package/dist/tests/AgentCommandHandler.test.js.map +0 -1
- package/dist/tests/AppCommandHandler.test.d.ts +0 -1
- package/dist/tests/AppCommandHandler.test.js +0 -94
- package/dist/tests/AppCommandHandler.test.js.map +0 -1
- package/dist/tests/LoginCommandHandler.test.d.ts +0 -1
- package/dist/tests/LoginCommandHandler.test.js +0 -13
- package/dist/tests/LoginCommandHandler.test.js.map +0 -1
- package/dist/tests/PrCommandHandler.test.d.ts +0 -1
- package/dist/tests/PrCommandHandler.test.js +0 -27
- package/dist/tests/PrCommandHandler.test.js.map +0 -1
- package/dist/tests/VercelCommandHandler.test.d.ts +0 -1
- package/dist/tests/VercelCommandHandler.test.js +0 -84
- package/dist/tests/VercelCommandHandler.test.js.map +0 -1
- package/dist/tests/agentCommandParser.test.d.ts +0 -1
- package/dist/tests/agentCommandParser.test.js +0 -75
- package/dist/tests/agentCommandParser.test.js.map +0 -1
- package/dist/tests/appCommandParser.test.d.ts +0 -1
- package/dist/tests/appCommandParser.test.js +0 -28
- package/dist/tests/appCommandParser.test.js.map +0 -1
- package/dist/tests/config.test.d.ts +0 -1
- package/dist/tests/config.test.js +0 -41
- package/dist/tests/config.test.js.map +0 -1
- package/dist/tests/pythonAppSupport.test.d.ts +0 -1
- package/dist/tests/pythonAppSupport.test.js +0 -47
- package/dist/tests/pythonAppSupport.test.js.map +0 -1
- package/dist/tests/serverAddress.test.d.ts +0 -1
- package/dist/tests/serverAddress.test.js +0 -14
- package/dist/tests/serverAddress.test.js.map +0 -1
- package/dist/tests/shell.test.d.ts +0 -1
- package/dist/tests/shell.test.js +0 -16
- package/dist/tests/shell.test.js.map +0 -1
- package/dist/tests/vercelParser.test.d.ts +0 -1
- package/dist/tests/vercelParser.test.js +0 -39
- package/dist/tests/vercelParser.test.js.map +0 -1
- package/dist/types.d.ts +0 -394
- package/dist/types.js +0 -30
- package/dist/types.js.map +0 -1
|
@@ -1,622 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AliyunService = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const alidns20150109_1 = tslib_1.__importStar(require("@alicloud/alidns20150109"));
|
|
6
|
-
const cdn20180510_1 = tslib_1.__importStar(require("@alicloud/cdn20180510"));
|
|
7
|
-
const openapi_client_1 = require("@alicloud/openapi-client");
|
|
8
|
-
const ali_oss_1 = tslib_1.__importDefault(require("ali-oss"));
|
|
9
|
-
const node_crypto_1 = require("node:crypto");
|
|
10
|
-
const node_fs_1 = require("node:fs");
|
|
11
|
-
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
12
|
-
const cli_1 = require("../cli");
|
|
13
|
-
const config_1 = require("../config");
|
|
14
|
-
class AliyunService {
|
|
15
|
-
/** Add a DNS record via Aliyun DNS. */
|
|
16
|
-
static async addRecord(input) {
|
|
17
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
18
|
-
const userConfig = (0, config_1.loadPmateConfig)();
|
|
19
|
-
const accessKeyId = (_b = (_a = userConfig.aliyun) === null || _a === void 0 ? void 0 : _a.ak) === null || _b === void 0 ? void 0 : _b.trim();
|
|
20
|
-
const accessKeySecret = (_d = (_c = userConfig.aliyun) === null || _c === void 0 ? void 0 : _c.sk) === null || _d === void 0 ? void 0 : _d.trim();
|
|
21
|
-
if (!accessKeyId)
|
|
22
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
23
|
-
if (!accessKeySecret)
|
|
24
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
25
|
-
const sdkConfig = new openapi_client_1.Config({
|
|
26
|
-
accessKeyId,
|
|
27
|
-
accessKeySecret,
|
|
28
|
-
regionId: ((_f = (_e = userConfig.aliyun) === null || _e === void 0 ? void 0 : _e.region) === null || _f === void 0 ? void 0 : _f.trim()) || "cn-hangzhou",
|
|
29
|
-
});
|
|
30
|
-
const client = new alidns20150109_1.default(sdkConfig);
|
|
31
|
-
const request = new alidns20150109_1.AddDomainRecordRequest({
|
|
32
|
-
domainName: input.domainName,
|
|
33
|
-
RR: input.rr,
|
|
34
|
-
type: input.type,
|
|
35
|
-
value: input.value,
|
|
36
|
-
TTL: (_g = input.ttl) !== null && _g !== void 0 ? _g : 600,
|
|
37
|
-
});
|
|
38
|
-
await client.addDomainRecord(request);
|
|
39
|
-
}
|
|
40
|
-
/** Get existing CNAME record value for an RR, if any. */
|
|
41
|
-
static async getCnameRecordValue(domainName, rr) {
|
|
42
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
43
|
-
const userConfig = (0, config_1.loadPmateConfig)();
|
|
44
|
-
const accessKeyId = (_b = (_a = userConfig.aliyun) === null || _a === void 0 ? void 0 : _a.ak) === null || _b === void 0 ? void 0 : _b.trim();
|
|
45
|
-
const accessKeySecret = (_d = (_c = userConfig.aliyun) === null || _c === void 0 ? void 0 : _c.sk) === null || _d === void 0 ? void 0 : _d.trim();
|
|
46
|
-
if (!accessKeyId)
|
|
47
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
48
|
-
if (!accessKeySecret)
|
|
49
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
50
|
-
const sdkConfig = new openapi_client_1.Config({
|
|
51
|
-
accessKeyId,
|
|
52
|
-
accessKeySecret,
|
|
53
|
-
regionId: ((_f = (_e = userConfig.aliyun) === null || _e === void 0 ? void 0 : _e.region) === null || _f === void 0 ? void 0 : _f.trim()) || "cn-hangzhou",
|
|
54
|
-
});
|
|
55
|
-
const client = new alidns20150109_1.default(sdkConfig);
|
|
56
|
-
const request = new alidns20150109_1.DescribeDomainRecordsRequest({
|
|
57
|
-
domainName,
|
|
58
|
-
RRKeyWord: rr,
|
|
59
|
-
type: "CNAME",
|
|
60
|
-
searchMode: "ADVANCED",
|
|
61
|
-
pageSize: 500,
|
|
62
|
-
});
|
|
63
|
-
const response = await client.describeDomainRecords(request);
|
|
64
|
-
const records = (_j = (_h = (_g = response.body) === null || _g === void 0 ? void 0 : _g.domainRecords) === null || _h === void 0 ? void 0 : _h.record) !== null && _j !== void 0 ? _j : [];
|
|
65
|
-
const normalizedRr = rr.toLowerCase();
|
|
66
|
-
const match = records.find((record) => {
|
|
67
|
-
var _a, _b;
|
|
68
|
-
return ((_a = record === null || record === void 0 ? void 0 : record.RR) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === normalizedRr &&
|
|
69
|
-
((_b = record === null || record === void 0 ? void 0 : record.type) === null || _b === void 0 ? void 0 : _b.toUpperCase()) === "CNAME";
|
|
70
|
-
});
|
|
71
|
-
return match === null || match === void 0 ? void 0 : match.value;
|
|
72
|
-
}
|
|
73
|
-
/** Get existing A record value for an RR, if any. */
|
|
74
|
-
static async getARecordValue(domainName, rr) {
|
|
75
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
76
|
-
const userConfig = (0, config_1.loadPmateConfig)();
|
|
77
|
-
const accessKeyId = (_b = (_a = userConfig.aliyun) === null || _a === void 0 ? void 0 : _a.ak) === null || _b === void 0 ? void 0 : _b.trim();
|
|
78
|
-
const accessKeySecret = (_d = (_c = userConfig.aliyun) === null || _c === void 0 ? void 0 : _c.sk) === null || _d === void 0 ? void 0 : _d.trim();
|
|
79
|
-
if (!accessKeyId)
|
|
80
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
81
|
-
if (!accessKeySecret)
|
|
82
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
83
|
-
const sdkConfig = new openapi_client_1.Config({
|
|
84
|
-
accessKeyId,
|
|
85
|
-
accessKeySecret,
|
|
86
|
-
regionId: ((_f = (_e = userConfig.aliyun) === null || _e === void 0 ? void 0 : _e.region) === null || _f === void 0 ? void 0 : _f.trim()) || "cn-hangzhou",
|
|
87
|
-
});
|
|
88
|
-
const client = new alidns20150109_1.default(sdkConfig);
|
|
89
|
-
const request = new alidns20150109_1.DescribeDomainRecordsRequest({
|
|
90
|
-
domainName,
|
|
91
|
-
RRKeyWord: rr,
|
|
92
|
-
type: "A",
|
|
93
|
-
searchMode: "ADVANCED",
|
|
94
|
-
pageSize: 500,
|
|
95
|
-
});
|
|
96
|
-
const response = await client.describeDomainRecords(request);
|
|
97
|
-
const records = (_j = (_h = (_g = response.body) === null || _g === void 0 ? void 0 : _g.domainRecords) === null || _h === void 0 ? void 0 : _h.record) !== null && _j !== void 0 ? _j : [];
|
|
98
|
-
const normalizedRr = rr.toLowerCase();
|
|
99
|
-
const match = records.find((record) => {
|
|
100
|
-
var _a, _b;
|
|
101
|
-
return ((_a = record === null || record === void 0 ? void 0 : record.RR) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === normalizedRr &&
|
|
102
|
-
((_b = record === null || record === void 0 ? void 0 : record.type) === null || _b === void 0 ? void 0 : _b.toUpperCase()) === "A";
|
|
103
|
-
});
|
|
104
|
-
return match === null || match === void 0 ? void 0 : match.value;
|
|
105
|
-
}
|
|
106
|
-
/** Create an OSS bucket. */
|
|
107
|
-
static async createBucket(bucketName) {
|
|
108
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
109
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
110
|
-
const region = (_c = (_b = (_a = cfg.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
111
|
-
const accessKeyId = (_e = (_d = cfg.aliyun) === null || _d === void 0 ? void 0 : _d.ak) === null || _e === void 0 ? void 0 : _e.trim();
|
|
112
|
-
const accessKeySecret = (_g = (_f = cfg.aliyun) === null || _f === void 0 ? void 0 : _f.sk) === null || _g === void 0 ? void 0 : _g.trim();
|
|
113
|
-
if (!region)
|
|
114
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
115
|
-
if (!accessKeyId)
|
|
116
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
117
|
-
if (!accessKeySecret)
|
|
118
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
119
|
-
const client = new ali_oss_1.default({ region, accessKeyId, accessKeySecret });
|
|
120
|
-
await client.putBucket(bucketName);
|
|
121
|
-
// await this.configureBucketWebsite(bucketName)
|
|
122
|
-
}
|
|
123
|
-
/** Ensure an OSS bucket exists. */
|
|
124
|
-
static async ensureBucket(bucketName) {
|
|
125
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
126
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
127
|
-
const region = (_c = (_b = (_a = cfg.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
128
|
-
const accessKeyId = (_e = (_d = cfg.aliyun) === null || _d === void 0 ? void 0 : _d.ak) === null || _e === void 0 ? void 0 : _e.trim();
|
|
129
|
-
const accessKeySecret = (_g = (_f = cfg.aliyun) === null || _f === void 0 ? void 0 : _f.sk) === null || _g === void 0 ? void 0 : _g.trim();
|
|
130
|
-
if (!region)
|
|
131
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
132
|
-
if (!accessKeyId)
|
|
133
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
134
|
-
if (!accessKeySecret)
|
|
135
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
136
|
-
const client = new ali_oss_1.default({ region, accessKeyId, accessKeySecret });
|
|
137
|
-
const exists = await this.bucketExists(client, bucketName);
|
|
138
|
-
if (exists) {
|
|
139
|
-
cli_1.ui.warn(`Bucket already exists: ${bucketName}`);
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
await client.putBucket(bucketName);
|
|
143
|
-
// await this.configureBucketWebsite(bucketName)
|
|
144
|
-
cli_1.ui.success(`Bucket created: ${bucketName}`);
|
|
145
|
-
}
|
|
146
|
-
/** Upload all files in a directory to OSS, skipping unchanged files. */
|
|
147
|
-
static async uploadDirectory(localDir, bucket, prefix) {
|
|
148
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
149
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
150
|
-
const region = (_c = (_b = (_a = cfg.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
151
|
-
const accessKeyId = (_e = (_d = cfg.aliyun) === null || _d === void 0 ? void 0 : _d.ak) === null || _e === void 0 ? void 0 : _e.trim();
|
|
152
|
-
const accessKeySecret = (_g = (_f = cfg.aliyun) === null || _f === void 0 ? void 0 : _f.sk) === null || _g === void 0 ? void 0 : _g.trim();
|
|
153
|
-
if (!region)
|
|
154
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
155
|
-
if (!accessKeyId)
|
|
156
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
157
|
-
if (!accessKeySecret)
|
|
158
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
159
|
-
const client = new ali_oss_1.default({ region, accessKeyId, accessKeySecret, bucket });
|
|
160
|
-
const files = await this.collectFiles(localDir);
|
|
161
|
-
if (files.length === 0) {
|
|
162
|
-
cli_1.ui.warn(`No files to upload from ${localDir}`);
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
const normalizedPrefix = prefix ? prefix.replace(/^\/+|\/+$/g, "") : "";
|
|
166
|
-
const existingObjects = await this.listObjectsForClient(client, normalizedPrefix);
|
|
167
|
-
const existingMap = new Map(existingObjects
|
|
168
|
-
.filter((item) => typeof item.name === "string")
|
|
169
|
-
.map((item) => [
|
|
170
|
-
item.name,
|
|
171
|
-
{ size: item.size, etag: item.etag },
|
|
172
|
-
]));
|
|
173
|
-
for (const filePath of files) {
|
|
174
|
-
const relativePath = node_path_1.default.relative(localDir, filePath);
|
|
175
|
-
const objectKey = this.toObjectKey(normalizedPrefix, relativePath);
|
|
176
|
-
const contentType = this.getContentType(filePath);
|
|
177
|
-
const options = contentType
|
|
178
|
-
? { headers: { "Content-Type": contentType } }
|
|
179
|
-
: undefined;
|
|
180
|
-
const existing = existingMap.get(objectKey);
|
|
181
|
-
if (existing && typeof existing.size === "number") {
|
|
182
|
-
const stat = await node_fs_1.promises.stat(filePath);
|
|
183
|
-
if (stat.size === existing.size) {
|
|
184
|
-
const etag = this.normalizeEtag(existing.etag);
|
|
185
|
-
if (etag && !etag.includes("-")) {
|
|
186
|
-
const md5 = await this.getFileMd5(filePath);
|
|
187
|
-
if (md5 === etag) {
|
|
188
|
-
cli_1.ui.info(`Skipped ${objectKey} (unchanged)`);
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
await client.put(objectKey, filePath, options);
|
|
195
|
-
cli_1.ui.success(`Uploaded ${objectKey}`);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
/** Upload a single file to OSS. */
|
|
199
|
-
static async uploadFile(localFile, bucket, objectKey) {
|
|
200
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
201
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
202
|
-
const region = (_c = (_b = (_a = cfg.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
203
|
-
const accessKeyId = (_e = (_d = cfg.aliyun) === null || _d === void 0 ? void 0 : _d.ak) === null || _e === void 0 ? void 0 : _e.trim();
|
|
204
|
-
const accessKeySecret = (_g = (_f = cfg.aliyun) === null || _f === void 0 ? void 0 : _f.sk) === null || _g === void 0 ? void 0 : _g.trim();
|
|
205
|
-
if (!region)
|
|
206
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
207
|
-
if (!accessKeyId)
|
|
208
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
209
|
-
if (!accessKeySecret)
|
|
210
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
211
|
-
if (!(0, node_fs_1.existsSync)(localFile)) {
|
|
212
|
-
throw new Error(`File not found: ${localFile}`);
|
|
213
|
-
}
|
|
214
|
-
const client = new ali_oss_1.default({ region, accessKeyId, accessKeySecret, bucket });
|
|
215
|
-
const contentType = this.getContentType(localFile);
|
|
216
|
-
const options = contentType
|
|
217
|
-
? { headers: { "Content-Type": contentType } }
|
|
218
|
-
: undefined;
|
|
219
|
-
await client.put(objectKey, localFile, options);
|
|
220
|
-
cli_1.ui.success(`Uploaded ${objectKey}`);
|
|
221
|
-
}
|
|
222
|
-
/** List objects in a bucket (optionally under a prefix). */
|
|
223
|
-
static async listObjects(bucket, prefix) {
|
|
224
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
225
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
226
|
-
const region = (_c = (_b = (_a = cfg.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
227
|
-
const accessKeyId = (_e = (_d = cfg.aliyun) === null || _d === void 0 ? void 0 : _d.ak) === null || _e === void 0 ? void 0 : _e.trim();
|
|
228
|
-
const accessKeySecret = (_g = (_f = cfg.aliyun) === null || _f === void 0 ? void 0 : _f.sk) === null || _g === void 0 ? void 0 : _g.trim();
|
|
229
|
-
if (!region)
|
|
230
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
231
|
-
if (!accessKeyId)
|
|
232
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
233
|
-
if (!accessKeySecret)
|
|
234
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
235
|
-
const client = new ali_oss_1.default({ region, accessKeyId, accessKeySecret, bucket });
|
|
236
|
-
const normalizedPrefix = prefix ? prefix.replace(/^\/+|\/+$/g, "") : "";
|
|
237
|
-
const objects = await this.listObjectsForClient(client, normalizedPrefix);
|
|
238
|
-
return objects
|
|
239
|
-
.filter((item) => typeof item.name === "string" && item.name.length > 0)
|
|
240
|
-
.map((item) => ({
|
|
241
|
-
name: item.name,
|
|
242
|
-
size: item.size,
|
|
243
|
-
etag: item.etag,
|
|
244
|
-
}));
|
|
245
|
-
}
|
|
246
|
-
/** List all OSS buckets for the account. */
|
|
247
|
-
static async listBuckets() {
|
|
248
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
249
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
250
|
-
const region = (_c = (_b = (_a = cfg.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
251
|
-
const accessKeyId = (_e = (_d = cfg.aliyun) === null || _d === void 0 ? void 0 : _d.ak) === null || _e === void 0 ? void 0 : _e.trim();
|
|
252
|
-
const accessKeySecret = (_g = (_f = cfg.aliyun) === null || _f === void 0 ? void 0 : _f.sk) === null || _g === void 0 ? void 0 : _g.trim();
|
|
253
|
-
if (!region)
|
|
254
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
255
|
-
if (!accessKeyId)
|
|
256
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
257
|
-
if (!accessKeySecret)
|
|
258
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
259
|
-
const client = new ali_oss_1.default({ region, accessKeyId, accessKeySecret });
|
|
260
|
-
const result = await client.listBuckets(null);
|
|
261
|
-
const buckets = Array.isArray(result)
|
|
262
|
-
? result
|
|
263
|
-
: (_h = result === null || result === void 0 ? void 0 : result.buckets) !== null && _h !== void 0 ? _h : [];
|
|
264
|
-
return buckets
|
|
265
|
-
.map((bucket) => typeof bucket === "string" ? bucket : bucket.name)
|
|
266
|
-
.filter((name) => typeof name === "string" && name.trim().length > 0);
|
|
267
|
-
}
|
|
268
|
-
/** Ensure a CDN domain exists for the bucket origin. */
|
|
269
|
-
static async ensureCdnDomain(domainName, bucketName) {
|
|
270
|
-
const client = this.createCdnClient();
|
|
271
|
-
const status = await this.getCdnDomainStatus(client, domainName);
|
|
272
|
-
if (status === "DomainExistCdnProduct") {
|
|
273
|
-
cli_1.ui.warn(`CDN domain already exists: ${domainName}`);
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
if (status && status !== "DomainNotExist") {
|
|
277
|
-
throw new Error(`CDN domain ${domainName} is already in use: ${status}`);
|
|
278
|
-
}
|
|
279
|
-
const sourceDomain = this.getOssDomain(bucketName);
|
|
280
|
-
const sources = JSON.stringify([
|
|
281
|
-
{
|
|
282
|
-
content: sourceDomain,
|
|
283
|
-
type: "oss",
|
|
284
|
-
priority: "20",
|
|
285
|
-
port: 80,
|
|
286
|
-
weight: "10",
|
|
287
|
-
},
|
|
288
|
-
]);
|
|
289
|
-
const request = new cdn20180510_1.AddCdnDomainRequest({
|
|
290
|
-
domainName,
|
|
291
|
-
cdnType: "web",
|
|
292
|
-
sources,
|
|
293
|
-
});
|
|
294
|
-
await client.addCdnDomain(request);
|
|
295
|
-
cli_1.ui.success(`CDN domain created: ${domainName}`);
|
|
296
|
-
}
|
|
297
|
-
/** Fetch the CDN CNAME for a domain. */
|
|
298
|
-
static async getCdnCname(domainName) {
|
|
299
|
-
var _a, _b, _c, _d;
|
|
300
|
-
const client = this.createCdnClient();
|
|
301
|
-
const request = new cdn20180510_1.DescribeDomainCnameRequest({ domainName });
|
|
302
|
-
const response = await client.describeDomainCname(request);
|
|
303
|
-
const data = (_c = (_b = (_a = response.body) === null || _a === void 0 ? void 0 : _a.cnameDatas) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : [];
|
|
304
|
-
const match = (_d = data.find((item) => (item === null || item === void 0 ? void 0 : item.domain) === domainName)) !== null && _d !== void 0 ? _d : data[0];
|
|
305
|
-
return match === null || match === void 0 ? void 0 : match.cname;
|
|
306
|
-
}
|
|
307
|
-
/** Enable HTTPS certificate for a CDN domain. */
|
|
308
|
-
static async enableHttpsCertificate(domainName) {
|
|
309
|
-
const client = this.createCdnClient();
|
|
310
|
-
const request = new cdn20180510_1.SetCdnDomainSSLCertificateRequest({
|
|
311
|
-
domainName,
|
|
312
|
-
certType: "cas",
|
|
313
|
-
certName: "pmate",
|
|
314
|
-
certId: 21869146,
|
|
315
|
-
SSLProtocol: "on",
|
|
316
|
-
});
|
|
317
|
-
await client.setCdnDomainSSLCertificate(request);
|
|
318
|
-
}
|
|
319
|
-
/** Configure a CDN 403 error page for SPA fallback. */
|
|
320
|
-
static async enableSpa404Fallback(domainName) {
|
|
321
|
-
const client = this.createCdnClient();
|
|
322
|
-
const functions = JSON.stringify([
|
|
323
|
-
{
|
|
324
|
-
functionName: "error_page",
|
|
325
|
-
functionArgs: [
|
|
326
|
-
{ argName: "error_code", argValue: "403" },
|
|
327
|
-
{
|
|
328
|
-
argName: "rewrite_page",
|
|
329
|
-
argValue: `https://${domainName}/index.html`,
|
|
330
|
-
},
|
|
331
|
-
],
|
|
332
|
-
},
|
|
333
|
-
]);
|
|
334
|
-
const request = new cdn20180510_1.BatchSetCdnDomainConfigRequest({
|
|
335
|
-
domainNames: domainName,
|
|
336
|
-
functions,
|
|
337
|
-
});
|
|
338
|
-
await client.batchSetCdnDomainConfig(request);
|
|
339
|
-
}
|
|
340
|
-
/** Enable SPA rewrite rule for CDN. */
|
|
341
|
-
static async enableSpaRewriteRule(domainName) {
|
|
342
|
-
const client = this.createCdnClient();
|
|
343
|
-
const functions = JSON.stringify([
|
|
344
|
-
{
|
|
345
|
-
functionName: "host_redirect",
|
|
346
|
-
functionArgs: [
|
|
347
|
-
{ argName: "regex", argValue: "^/(?!.*\\.[^/]+$).*" },
|
|
348
|
-
{ argName: "replacement", argValue: "/index.html" },
|
|
349
|
-
{ argName: "flag", argValue: "break" },
|
|
350
|
-
],
|
|
351
|
-
},
|
|
352
|
-
]);
|
|
353
|
-
const request = new cdn20180510_1.BatchSetCdnDomainConfigRequest({
|
|
354
|
-
domainNames: domainName,
|
|
355
|
-
functions,
|
|
356
|
-
});
|
|
357
|
-
await client.batchSetCdnDomainConfig(request);
|
|
358
|
-
}
|
|
359
|
-
/** Enable SSG rewrite rule for CDN. */
|
|
360
|
-
static async enableSsgRewriteRule(domainName) {
|
|
361
|
-
const client = this.createCdnClient();
|
|
362
|
-
const functions = JSON.stringify([
|
|
363
|
-
{
|
|
364
|
-
functionName: "host_redirect",
|
|
365
|
-
functionArgs: [
|
|
366
|
-
{ argName: "regex", argValue: "^/(?!.*\\.[^/]+$)(.*?)(?:/)?$" },
|
|
367
|
-
{ argName: "replacement", argValue: "/$1/index.html" },
|
|
368
|
-
{ argName: "flag", argValue: "break" },
|
|
369
|
-
],
|
|
370
|
-
},
|
|
371
|
-
]);
|
|
372
|
-
const request = new cdn20180510_1.BatchSetCdnDomainConfigRequest({
|
|
373
|
-
domainNames: domainName,
|
|
374
|
-
functions,
|
|
375
|
-
});
|
|
376
|
-
await client.batchSetCdnDomainConfig(request);
|
|
377
|
-
}
|
|
378
|
-
/** Enable OSS private bucket origin auth for CDN. */
|
|
379
|
-
static async enableOssPrivateBucketOrigin(domainName) {
|
|
380
|
-
const client = this.createCdnClient();
|
|
381
|
-
const functions = JSON.stringify([
|
|
382
|
-
{
|
|
383
|
-
functionName: "l2_oss_key",
|
|
384
|
-
functionArgs: [{ argName: "private_oss_auth", argValue: "on" }],
|
|
385
|
-
},
|
|
386
|
-
]);
|
|
387
|
-
const request = new cdn20180510_1.BatchSetCdnDomainConfigRequest({
|
|
388
|
-
domainNames: domainName,
|
|
389
|
-
functions,
|
|
390
|
-
});
|
|
391
|
-
await client.batchSetCdnDomainConfig(request);
|
|
392
|
-
}
|
|
393
|
-
/** Configure default cache rules for CDN. */
|
|
394
|
-
static async setDefaultCacheRules(domainName) {
|
|
395
|
-
const client = this.createCdnClient();
|
|
396
|
-
const oneYearSeconds = 31536000;
|
|
397
|
-
const functions = JSON.stringify([
|
|
398
|
-
{
|
|
399
|
-
functionName: "path_based_ttl_set",
|
|
400
|
-
functionArgs: [
|
|
401
|
-
{ argName: "path", argValue: "/" },
|
|
402
|
-
{ argName: "weight", argValue: "1" },
|
|
403
|
-
{ argName: "ttl", argValue: "0" },
|
|
404
|
-
{ argName: "swift_origin_cache_high", argValue: "off" },
|
|
405
|
-
{ argName: "swift_no_cache_low", argValue: "off" },
|
|
406
|
-
{ argName: "swift_follow_cachetime", argValue: "off" },
|
|
407
|
-
{ argName: "force_revalidate", argValue: "off" },
|
|
408
|
-
],
|
|
409
|
-
},
|
|
410
|
-
{
|
|
411
|
-
functionName: "filetype_based_ttl_set",
|
|
412
|
-
functionArgs: [
|
|
413
|
-
{ argName: "file_type", argValue: "json" },
|
|
414
|
-
{ argName: "weight", argValue: "1" },
|
|
415
|
-
{ argName: "ttl", argValue: "300" },
|
|
416
|
-
{ argName: "swift_origin_cache_high", argValue: "off" },
|
|
417
|
-
{ argName: "swift_no_cache_low", argValue: "off" },
|
|
418
|
-
{ argName: "swift_follow_cachetime", argValue: "off" },
|
|
419
|
-
{ argName: "force_revalidate", argValue: "off" },
|
|
420
|
-
],
|
|
421
|
-
},
|
|
422
|
-
{
|
|
423
|
-
functionName: "filetype_based_ttl_set",
|
|
424
|
-
functionArgs: [
|
|
425
|
-
{
|
|
426
|
-
argName: "file_type",
|
|
427
|
-
argValue: "css,png,jpg,jpeg,svg,webp,woff,woff2,ttf,eot,ico,js,mjs,map",
|
|
428
|
-
},
|
|
429
|
-
{ argName: "weight", argValue: "1" },
|
|
430
|
-
{ argName: "ttl", argValue: String(oneYearSeconds) },
|
|
431
|
-
{ argName: "swift_origin_cache_high", argValue: "off" },
|
|
432
|
-
{ argName: "swift_no_cache_low", argValue: "off" },
|
|
433
|
-
{ argName: "swift_follow_cachetime", argValue: "off" },
|
|
434
|
-
{ argName: "force_revalidate", argValue: "off" },
|
|
435
|
-
],
|
|
436
|
-
},
|
|
437
|
-
]);
|
|
438
|
-
const request = new cdn20180510_1.BatchSetCdnDomainConfigRequest({
|
|
439
|
-
domainNames: domainName,
|
|
440
|
-
functions,
|
|
441
|
-
});
|
|
442
|
-
await client.batchSetCdnDomainConfig(request);
|
|
443
|
-
}
|
|
444
|
-
/** Check if an OSS bucket exists. */
|
|
445
|
-
static async bucketExists(client, bucketName) {
|
|
446
|
-
try {
|
|
447
|
-
await client.getBucketInfo(bucketName);
|
|
448
|
-
return true;
|
|
449
|
-
}
|
|
450
|
-
catch (error) {
|
|
451
|
-
const err = error;
|
|
452
|
-
if (err.status === 404 || err.code === "NoSuchBucket") {
|
|
453
|
-
return false;
|
|
454
|
-
}
|
|
455
|
-
throw error;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
/** Create an Aliyun CDN client. */
|
|
459
|
-
static createCdnClient() {
|
|
460
|
-
var _a, _b, _c, _d, _e, _f;
|
|
461
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
462
|
-
const accessKeyId = (_b = (_a = cfg.aliyun) === null || _a === void 0 ? void 0 : _a.ak) === null || _b === void 0 ? void 0 : _b.trim();
|
|
463
|
-
const accessKeySecret = (_d = (_c = cfg.aliyun) === null || _c === void 0 ? void 0 : _c.sk) === null || _d === void 0 ? void 0 : _d.trim();
|
|
464
|
-
if (!accessKeyId)
|
|
465
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
466
|
-
if (!accessKeySecret)
|
|
467
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
468
|
-
const regionId = ((_f = (_e = cfg.aliyun) === null || _e === void 0 ? void 0 : _e.region) === null || _f === void 0 ? void 0 : _f.trim()) || "cn-hangzhou";
|
|
469
|
-
const config = new openapi_client_1.Config({ accessKeyId, accessKeySecret, regionId });
|
|
470
|
-
return new cdn20180510_1.default(config);
|
|
471
|
-
}
|
|
472
|
-
/** Check CDN domain status. */
|
|
473
|
-
static async getCdnDomainStatus(client, domainName) {
|
|
474
|
-
var _a;
|
|
475
|
-
const request = new cdn20180510_1.CheckCdnDomainExistRequest({ domainName });
|
|
476
|
-
const response = await client.checkCdnDomainExist(request);
|
|
477
|
-
return (_a = response.body) === null || _a === void 0 ? void 0 : _a.status;
|
|
478
|
-
}
|
|
479
|
-
/** Build the OSS regional domain for a bucket. */
|
|
480
|
-
static getOssDomain(bucketName) {
|
|
481
|
-
var _a, _b, _c;
|
|
482
|
-
const config = (0, config_1.loadPmateConfig)();
|
|
483
|
-
const region = (_c = (_b = (_a = config.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
484
|
-
if (!region)
|
|
485
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
486
|
-
const normalizedRegion = region.startsWith("oss-")
|
|
487
|
-
? region
|
|
488
|
-
: `oss-${region}`;
|
|
489
|
-
return `${bucketName}.${normalizedRegion}.aliyuncs.com`;
|
|
490
|
-
}
|
|
491
|
-
/** Configure OSS static website hosting. */
|
|
492
|
-
static async configureBucketWebsite(bucketName) {
|
|
493
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
494
|
-
const cfg = (0, config_1.loadPmateConfig)();
|
|
495
|
-
const region = (_c = (_b = (_a = cfg.oss) === null || _a === void 0 ? void 0 : _a.public) === null || _b === void 0 ? void 0 : _b.region) === null || _c === void 0 ? void 0 : _c.trim();
|
|
496
|
-
const accessKeyId = (_e = (_d = cfg.aliyun) === null || _d === void 0 ? void 0 : _d.ak) === null || _e === void 0 ? void 0 : _e.trim();
|
|
497
|
-
const accessKeySecret = (_g = (_f = cfg.aliyun) === null || _f === void 0 ? void 0 : _f.sk) === null || _g === void 0 ? void 0 : _g.trim();
|
|
498
|
-
if (!region)
|
|
499
|
-
throw new Error("Missing oss.public.region in ~/.pmate/config.yaml.");
|
|
500
|
-
if (!accessKeyId)
|
|
501
|
-
throw new Error("Missing aliyun.ak in ~/.pmate/config.yaml.");
|
|
502
|
-
if (!accessKeySecret)
|
|
503
|
-
throw new Error("Missing aliyun.sk in ~/.pmate/config.yaml.");
|
|
504
|
-
const client = new ali_oss_1.default({ region, accessKeyId, accessKeySecret });
|
|
505
|
-
await client.putBucketWebsite(bucketName, {
|
|
506
|
-
index: "index.html",
|
|
507
|
-
error: "index.html",
|
|
508
|
-
});
|
|
509
|
-
}
|
|
510
|
-
/** Recursively collect file paths under a directory. */
|
|
511
|
-
static async collectFiles(dir) {
|
|
512
|
-
const entries = await node_fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
513
|
-
const files = [];
|
|
514
|
-
for (const entry of entries) {
|
|
515
|
-
const fullPath = node_path_1.default.join(dir, entry.name);
|
|
516
|
-
if (entry.isDirectory()) {
|
|
517
|
-
files.push(...(await this.collectFiles(fullPath)));
|
|
518
|
-
}
|
|
519
|
-
else if (entry.isFile()) {
|
|
520
|
-
files.push(fullPath);
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
return files;
|
|
524
|
-
}
|
|
525
|
-
/** List OSS objects for a client with pagination. */
|
|
526
|
-
static async listObjectsForClient(client, prefix) {
|
|
527
|
-
var _a;
|
|
528
|
-
const listPrefix = prefix ? `${prefix}/` : undefined;
|
|
529
|
-
const objects = [];
|
|
530
|
-
let marker;
|
|
531
|
-
do {
|
|
532
|
-
const result = await client.list({
|
|
533
|
-
prefix: listPrefix,
|
|
534
|
-
marker,
|
|
535
|
-
"max-keys": 1000,
|
|
536
|
-
}, {});
|
|
537
|
-
const page = (_a = result.objects) !== null && _a !== void 0 ? _a : [];
|
|
538
|
-
objects.push(...page.map((item) => ({
|
|
539
|
-
name: item.name,
|
|
540
|
-
size: item.size,
|
|
541
|
-
etag: item.etag,
|
|
542
|
-
})));
|
|
543
|
-
marker = result.nextMarker;
|
|
544
|
-
if (!result.isTruncated) {
|
|
545
|
-
break;
|
|
546
|
-
}
|
|
547
|
-
} while (marker);
|
|
548
|
-
return objects;
|
|
549
|
-
}
|
|
550
|
-
/** Normalize OSS ETag by removing quotes. */
|
|
551
|
-
static normalizeEtag(etag) {
|
|
552
|
-
if (!etag) {
|
|
553
|
-
return undefined;
|
|
554
|
-
}
|
|
555
|
-
return etag.replace(/^"|"$/g, "").trim();
|
|
556
|
-
}
|
|
557
|
-
/** Compute MD5 for a file. */
|
|
558
|
-
static getFileMd5(filePath) {
|
|
559
|
-
return new Promise((resolve, reject) => {
|
|
560
|
-
const hash = (0, node_crypto_1.createHash)("md5");
|
|
561
|
-
const stream = (0, node_fs_1.createReadStream)(filePath);
|
|
562
|
-
stream.on("data", (chunk) => {
|
|
563
|
-
hash.update(chunk);
|
|
564
|
-
});
|
|
565
|
-
stream.on("error", (error) => {
|
|
566
|
-
reject(error);
|
|
567
|
-
});
|
|
568
|
-
stream.on("end", () => {
|
|
569
|
-
resolve(hash.digest("hex"));
|
|
570
|
-
});
|
|
571
|
-
});
|
|
572
|
-
}
|
|
573
|
-
static toObjectKey(prefix, relativePath) {
|
|
574
|
-
const normalizedPath = relativePath.split(node_path_1.default.sep).join("/");
|
|
575
|
-
if (!prefix) {
|
|
576
|
-
return normalizedPath;
|
|
577
|
-
}
|
|
578
|
-
return `${prefix}/${normalizedPath}`;
|
|
579
|
-
}
|
|
580
|
-
static getContentType(filePath) {
|
|
581
|
-
const ext = node_path_1.default.extname(filePath).toLowerCase();
|
|
582
|
-
switch (ext) {
|
|
583
|
-
case ".html":
|
|
584
|
-
return "text/html";
|
|
585
|
-
case ".css":
|
|
586
|
-
return "text/css";
|
|
587
|
-
case ".js":
|
|
588
|
-
return "application/javascript";
|
|
589
|
-
case ".mjs":
|
|
590
|
-
return "application/javascript";
|
|
591
|
-
case ".json":
|
|
592
|
-
return "application/json";
|
|
593
|
-
case ".svg":
|
|
594
|
-
return "image/svg+xml";
|
|
595
|
-
case ".png":
|
|
596
|
-
return "image/png";
|
|
597
|
-
case ".jpg":
|
|
598
|
-
case ".jpeg":
|
|
599
|
-
return "image/jpeg";
|
|
600
|
-
case ".webp":
|
|
601
|
-
return "image/webp";
|
|
602
|
-
case ".ico":
|
|
603
|
-
return "image/x-icon";
|
|
604
|
-
case ".txt":
|
|
605
|
-
return "text/plain";
|
|
606
|
-
case ".map":
|
|
607
|
-
return "application/json";
|
|
608
|
-
case ".woff":
|
|
609
|
-
return "font/woff";
|
|
610
|
-
case ".woff2":
|
|
611
|
-
return "font/woff2";
|
|
612
|
-
case ".ttf":
|
|
613
|
-
return "font/ttf";
|
|
614
|
-
case ".eot":
|
|
615
|
-
return "application/vnd.ms-fontobject";
|
|
616
|
-
default:
|
|
617
|
-
return undefined;
|
|
618
|
-
}
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
exports.AliyunService = AliyunService;
|
|
622
|
-
//# sourceMappingURL=AliyunService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AliyunService.js","sourceRoot":"","sources":["../../src/services/AliyunService.ts"],"names":[],"mappings":"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"}
|