@sevenvip666/rop 0.1.2 → 0.1.3
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/bin/index.mjs +106 -70
- package/dist/cjs/index.js +52 -38
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +42 -25
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -13,6 +13,7 @@ import 'json5';
|
|
|
13
13
|
import 'js-yaml';
|
|
14
14
|
import { confirm } from '@inquirer/prompts';
|
|
15
15
|
import * as os from 'node:os';
|
|
16
|
+
import chalk from 'chalk';
|
|
16
17
|
|
|
17
18
|
/******************************************************************************
|
|
18
19
|
Copyright (c) Microsoft Corporation.
|
|
@@ -74,28 +75,38 @@ class RopUploadApi {
|
|
|
74
75
|
this.checkParams = (config) => __awaiter(this, void 0, void 0, function* () {
|
|
75
76
|
var _a;
|
|
76
77
|
if (!config.accessKey) {
|
|
77
|
-
if (!config.token
|
|
78
|
-
|
|
78
|
+
if (!config.token) {
|
|
79
|
+
console.log(colors.red(`Either accessKey or token must be used`));
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
if (!config.projectId) {
|
|
83
|
+
console.log(colors.red(`projectId cannot be empty`));
|
|
84
|
+
return false;
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
const branch = (_a = config.branch) !== null && _a !== void 0 ? _a : (yield getBranch());
|
|
82
88
|
if (!branch) {
|
|
83
|
-
|
|
89
|
+
console.log(colors.red(`branch cannot be empty`));
|
|
90
|
+
return false;
|
|
84
91
|
}
|
|
85
92
|
else {
|
|
86
93
|
config.branch = branch;
|
|
87
94
|
}
|
|
88
95
|
if (!config.platform) {
|
|
89
|
-
|
|
96
|
+
console.log(colors.red(`platform cannot be empty`));
|
|
97
|
+
return false;
|
|
90
98
|
}
|
|
91
99
|
if (!config.arch) {
|
|
92
|
-
|
|
100
|
+
console.log(colors.red(`arch cannot be empty`));
|
|
101
|
+
return false;
|
|
93
102
|
}
|
|
94
103
|
if (!config.targetPath) {
|
|
95
|
-
|
|
104
|
+
console.log(colors.red(`target path cannot be empty`));
|
|
105
|
+
return false;
|
|
96
106
|
}
|
|
97
107
|
if (!fs.existsSync(config.targetPath)) {
|
|
98
|
-
|
|
108
|
+
console.log(colors.red(`target file not found, file path: ${config.targetPath}`));
|
|
109
|
+
return false;
|
|
99
110
|
}
|
|
100
111
|
// 如果更新包不存在的情况使用本身的包
|
|
101
112
|
if (config.updatePath && !fs.existsSync(config.updatePath)) {
|
|
@@ -103,7 +114,8 @@ class RopUploadApi {
|
|
|
103
114
|
config.updateName = config.targetName;
|
|
104
115
|
}
|
|
105
116
|
if (!config.version) {
|
|
106
|
-
|
|
117
|
+
console.log(colors.red(`version cannot be empty`));
|
|
118
|
+
return false;
|
|
107
119
|
}
|
|
108
120
|
return config;
|
|
109
121
|
});
|
|
@@ -113,6 +125,9 @@ class RopUploadApi {
|
|
|
113
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
114
126
|
var _a, _b;
|
|
115
127
|
const config = yield this.checkParams(_config);
|
|
128
|
+
if (!config) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
116
131
|
// 以下代码帮我改成 上传文件 fetch 上传文件
|
|
117
132
|
const formData = new FormData();
|
|
118
133
|
const fileStream = fs.createReadStream(config.targetPath);
|
|
@@ -162,7 +177,7 @@ class RopUploadApi {
|
|
|
162
177
|
formData.append('signature', config.signature);
|
|
163
178
|
}
|
|
164
179
|
if (config.autoRelease) {
|
|
165
|
-
formData.append('autoRelease', config.autoRelease);
|
|
180
|
+
formData.append('autoRelease', String(config.autoRelease));
|
|
166
181
|
}
|
|
167
182
|
const res = yield fetch$1(`${this.baseDomain}/api/upload`, {
|
|
168
183
|
method: 'POST',
|
|
@@ -176,6 +191,7 @@ class RopUploadApi {
|
|
|
176
191
|
multibar.stop();
|
|
177
192
|
fileStream.destroy();
|
|
178
193
|
updateFileStream === null || updateFileStream === void 0 ? void 0 : updateFileStream.destroy();
|
|
194
|
+
console.log(colors.green(`Upload success!`));
|
|
179
195
|
return { success: res.ok, body };
|
|
180
196
|
});
|
|
181
197
|
}
|
|
@@ -260,6 +276,7 @@ class AuthApi {
|
|
|
260
276
|
}
|
|
261
277
|
login(req) {
|
|
262
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
279
|
+
var _a;
|
|
263
280
|
const res = yield fetch(`${this.baseDomain}${LOGIN_API}`, {
|
|
264
281
|
method: 'POST',
|
|
265
282
|
headers: {
|
|
@@ -269,13 +286,8 @@ class AuthApi {
|
|
|
269
286
|
});
|
|
270
287
|
const resBody = yield res.json();
|
|
271
288
|
if (!res.ok || !resBody.data) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
console.log(JSON.stringify(resBody));
|
|
277
|
-
}
|
|
278
|
-
return;
|
|
289
|
+
console.log(chalk.red(`Login failed: status:${res.status}, message:${(_a = resBody.message) !== null && _a !== void 0 ? _a : res.statusText}`));
|
|
290
|
+
return false;
|
|
279
291
|
}
|
|
280
292
|
const homedir = path$1.join(os.homedir(), '.rop');
|
|
281
293
|
if (!fs.existsSync(homedir)) {
|
|
@@ -283,6 +295,7 @@ class AuthApi {
|
|
|
283
295
|
}
|
|
284
296
|
const userFilePath = path$1.join(homedir, 'user');
|
|
285
297
|
fs.writeFileSync(userFilePath, JSON.stringify(resBody.data, null, 2), 'utf8');
|
|
298
|
+
return true;
|
|
286
299
|
});
|
|
287
300
|
}
|
|
288
301
|
refreshToken() {
|
|
@@ -290,8 +303,8 @@ class AuthApi {
|
|
|
290
303
|
const homedir = path$1.join(os.homedir(), '.rop');
|
|
291
304
|
const userFilePath = path$1.join(homedir, 'user');
|
|
292
305
|
if (!fs.existsSync(userFilePath)) {
|
|
293
|
-
console.log(
|
|
294
|
-
return;
|
|
306
|
+
console.log(chalk.red(`No permission! Please execute [rop login] or use --accessKey`));
|
|
307
|
+
return false;
|
|
295
308
|
}
|
|
296
309
|
const user = JSON.parse(fs.readFileSync(userFilePath, 'utf8'));
|
|
297
310
|
const res = yield fetch(`${this.baseDomain}${REFRESH_TOKEN_API}`, {
|
|
@@ -304,16 +317,17 @@ class AuthApi {
|
|
|
304
317
|
const resBody = yield res.json();
|
|
305
318
|
if (!res.ok || !resBody.data) {
|
|
306
319
|
if (!resBody.message || res.status != 400) {
|
|
307
|
-
console.log(`Refresh token failed: status
|
|
320
|
+
console.log(chalk.red(`Refresh token failed: status:${res.status}, statusText:${res.statusText}`));
|
|
308
321
|
}
|
|
309
322
|
else {
|
|
310
|
-
console.log(
|
|
323
|
+
console.log(chalk.red(`Authorization expired please execute the login command`));
|
|
311
324
|
fs.rmSync(userFilePath);
|
|
312
325
|
}
|
|
313
|
-
|
|
326
|
+
return false;
|
|
314
327
|
}
|
|
315
328
|
user.auth = resBody.data;
|
|
316
329
|
fs.writeFileSync(userFilePath, JSON.stringify(user), 'utf8');
|
|
330
|
+
return true;
|
|
317
331
|
});
|
|
318
332
|
}
|
|
319
333
|
getToken() {
|
|
@@ -355,7 +369,7 @@ class AuthApi {
|
|
|
355
369
|
return __awaiter(this, void 0, void 0, function* () {
|
|
356
370
|
let user = yield this.getToken();
|
|
357
371
|
if (!user) {
|
|
358
|
-
console.log(
|
|
372
|
+
console.log(colors.red(`No permission! Please execute [rop login]`));
|
|
359
373
|
return undefined;
|
|
360
374
|
}
|
|
361
375
|
const res = yield req(user.auth.accessToken);
|
|
@@ -366,10 +380,13 @@ class AuthApi {
|
|
|
366
380
|
console.log(JSON.stringify(resBody));
|
|
367
381
|
break;
|
|
368
382
|
case 401:
|
|
369
|
-
yield this.refreshToken();
|
|
370
|
-
|
|
383
|
+
const result = yield this.refreshToken();
|
|
384
|
+
if (result) {
|
|
385
|
+
return yield this.request(req);
|
|
386
|
+
}
|
|
387
|
+
break;
|
|
371
388
|
default:
|
|
372
|
-
console.log(`request failed: status
|
|
389
|
+
console.log(colors.red(`request failed: status:${res.status}, statusText:${res.statusText}`));
|
|
373
390
|
}
|
|
374
391
|
return undefined;
|
|
375
392
|
}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.19.1_tslib@2.6.3_typescript@5.4.5/node_modules/tslib/tslib.es6.js","../../src/types.ts","../../src/utils.ts","../../src/uploadApi.ts","../../src/initApi.ts","../../src/config.ts","../../src/authApi.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","export const frameworkList = ['tauri', 'ionic', 'flutter'];\nexport var Framework;\n(function (Framework) {\n Framework[\"TAURI\"] = \"tauri\";\n Framework[\"IONIC\"] = \"ionic\";\n Framework[\"FLUTTER\"] = \"flutter\";\n})(Framework || (Framework = {}));\n","import { __awaiter } from \"tslib\";\nimport { exec } from 'child_process';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport { Framework, frameworkList, } from './types';\nimport { getTauriEnv } from './tauri';\nimport platformDefaultConfigMap from './default-platform.json';\nimport { getFlutterEnv } from './flutter';\nimport { getIonicEnv } from './ionic';\nexport const getBranch = () => __awaiter(void 0, void 0, void 0, function* () {\n return new Promise((resolve) => {\n return exec('git rev-parse --abbrev-ref HEAD', (err, stdout, stderr) => {\n if (err) {\n console.log(`getBranch Error: ${err}`);\n }\n else if (stdout) {\n resolve(stdout.trim());\n return;\n }\n resolve('none');\n });\n });\n});\n// 读取 JSON 文件并替换模版变量\nexport function loadJsonWithEnv({ platform, arch }) {\n var _a, _b, _c, _d, _e;\n const configFilePath = path.join('.', 'rop.json');\n const configData = fs.readFileSync(configFilePath, 'utf8');\n const inputConfig = JSON.parse(configData);\n let _arch = arch !== null && arch !== void 0 ? arch : 'universal';\n if (arch == 'x86_64') {\n _arch = 'x64';\n }\n else if (arch == 'i386' || arch == 'i686') {\n _arch = 'x86';\n }\n else if (arch == 'aarch64') {\n _arch = 'arm64';\n }\n let env = {\n arch: _arch,\n };\n let config;\n if (!inputConfig.platforms && ((_a = inputConfig.framework) === null || _a === void 0 ? void 0 : _a.name) && frameworkList.includes((_b = inputConfig.framework) === null || _b === void 0 ? void 0 : _b.name)) {\n const framework = inputConfig.framework.name;\n const defaultPlatformConfig = platformDefaultConfigMap[framework];\n const _config = Object.assign(Object.assign({}, inputConfig), { platforms: defaultPlatformConfig });\n config = _config;\n }\n else {\n config = inputConfig;\n }\n if (!config.platforms || Object.keys(config.platforms).length == 0) {\n throw new Error('platforms is not null');\n }\n const _autoEnv = getAutoEnvByFramework((_c = config === null || config === void 0 ? void 0 : config.framework) === null || _c === void 0 ? void 0 : _c.name, config.projectPath);\n env = Object.assign(Object.assign(Object.assign({}, env), (_autoEnv !== null && _autoEnv !== void 0 ? _autoEnv : {})), ((_e = (_d = config.framework) === null || _d === void 0 ? void 0 : _d.env) !== null && _e !== void 0 ? _e : {}));\n // 确保配置文件中存在 host 属性\n if (!env.version) {\n throw new Error('Missing \"version\" property in the configuration file.');\n }\n // 递归函数来替换对象中的字符串值\n function replaceEnvInObject(obj) {\n Object.keys(obj).forEach((key) => {\n if (typeof obj[key] === 'string') {\n // 使用正则表达式替换模版变量(这里假设模版变量是 ${VAR} 格式的)\n // @ts-ignore\n obj[key] = obj[key].replace(/\\$\\{(\\w+)\\}/g, (_, envVar) => env[envVar] || '');\n }\n else if (typeof obj[key] === 'object' && obj[key] !== null) {\n replaceEnvInObject(obj[key]); // 递归处理嵌套对象\n }\n });\n }\n replaceEnvInObject(config);\n const targetInfos = getTargetInfo(config.platforms, platform, _arch);\n console.log('find target file:');\n console.log(targetInfos);\n return { config, targetInfos, version: env.version, arch: _arch };\n}\nexport const loadConfigJSON = () => {\n const configFilePath = path.join('.rop', 'config.json');\n if (!fs.existsSync(configFilePath)) {\n return {\n projectId: undefined,\n };\n }\n const configDataStr = fs.readFileSync(configFilePath, 'utf8');\n const configData = JSON.parse(configDataStr);\n return {\n projectId: configData.projectId,\n accessKey: configData.accessKey,\n };\n};\nexport const getAutoEnvByFramework = (framework, projectPath) => {\n if (!framework) {\n return undefined;\n }\n switch (framework.toLowerCase()) {\n case Framework.TAURI:\n return getTauriEnv(projectPath);\n case Framework.FLUTTER:\n return getFlutterEnv(projectPath);\n case Framework.IONIC:\n return getIonicEnv(projectPath);\n default:\n return undefined;\n }\n};\nexport const getTargetInfo = (platforms, platform, arch) => {\n const list = platforms[platform];\n if (list && list.length > 0) {\n const targetList = list.filter((item) => item.arch == arch);\n if (targetList.length > 0) {\n return targetList;\n }\n }\n throw new Error('Not find artifacts file');\n};\n","import { __awaiter } from \"tslib\";\nimport fs from 'fs';\nimport fetch from 'node-fetch';\nimport FormData from 'form-data';\nimport cliProgress from 'cli-progress';\nimport colors from 'ansi-colors';\nimport path from 'path';\nimport { getBranch } from './utils';\nexport class RopUploadApi {\n constructor({ baseDomain }) {\n this.checkParams = (config) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!config.accessKey) {\n if (!config.token || !config.projectId) {\n throw new Error('accessKey, token, projectId cannot be empty at the same time');\n }\n }\n const branch = (_a = config.branch) !== null && _a !== void 0 ? _a : (yield getBranch());\n if (!branch) {\n throw new Error('branch not null');\n }\n else {\n config.branch = branch;\n }\n if (!config.platform) {\n throw new Error('platform not null');\n }\n if (!config.arch) {\n throw new Error('arch not null');\n }\n if (!config.targetPath) {\n throw new Error('target path not null');\n }\n if (!fs.existsSync(config.targetPath)) {\n throw new Error(`target file not found, file path: ${config.targetPath}`);\n }\n // 如果更新包不存在的情况使用本身的包\n if (config.updatePath && !fs.existsSync(config.updatePath)) {\n config.updatePath = config.targetPath;\n config.updateName = config.targetName;\n }\n if (!config.version) {\n throw new Error('version not null');\n }\n return config;\n });\n this.baseDomain = baseDomain;\n }\n upload(_config) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const config = yield this.checkParams(_config);\n // 以下代码帮我改成 上传文件 fetch 上传文件\n const formData = new FormData();\n const fileStream = fs.createReadStream(config.targetPath);\n // 监听文件流的 'data' 事件来跟踪进度\n const multibar = new cliProgress.MultiBar({\n format: 'Upload Progress |' + colors.cyan('{bar}') + '| {percentage}% | {filename}',\n barCompleteChar: '\\u2588',\n barIncompleteChar: '\\u2591',\n hideCursor: true,\n });\n const bar1 = multibar.create(fs.statSync(config.targetPath).size, 0);\n let totalUploaded = 0;\n fileStream.on('data', (chunk) => {\n totalUploaded += chunk.length;\n bar1.update(totalUploaded, { filename: path.basename(config.targetPath) });\n });\n formData.append('targetFile', fileStream, {\n filename: (_a = config.targetName) !== null && _a !== void 0 ? _a : path.basename(config.targetPath),\n });\n let updateFileStream;\n if (config.updatePath) {\n const bar2 = multibar.create(fs.statSync(config.updatePath).size, 0);\n updateFileStream = fs.createReadStream(config.updatePath);\n let totalUpdateUploaded = 0;\n updateFileStream.on('data', (chunk) => {\n totalUpdateUploaded += chunk.length;\n bar2.update(totalUpdateUploaded, { filename: path.basename(config.updatePath) });\n });\n formData.append('updateFile', updateFileStream, {\n filename: (_b = config.updateName) !== null && _b !== void 0 ? _b : path.basename(config.updatePath),\n });\n }\n if (config.accessKey) {\n formData.append('accessKey', config.accessKey);\n }\n if (config.projectId) {\n formData.append('projectId', config.projectId);\n }\n if (config.token) {\n formData.append('token', config.token);\n }\n formData.append('branch', config.branch);\n formData.append('version', config.version);\n formData.append('platform', config.platform);\n formData.append('arch', config.arch);\n if (config.signature) {\n formData.append('signature', config.signature);\n }\n if (config.autoRelease) {\n formData.append('autoRelease', config.autoRelease);\n }\n const res = yield fetch(`${this.baseDomain}/api/upload`, {\n method: 'POST',\n headers: formData.getHeaders(),\n body: formData,\n });\n const body = yield res.json();\n if (!res.ok) {\n console.log(res.status, res.statusText, body);\n }\n else {\n // console.log('上传成功!');\n }\n multibar.stop();\n fileStream.destroy();\n updateFileStream === null || updateFileStream === void 0 ? void 0 : updateFileStream.destroy();\n return { success: res.ok, body };\n });\n }\n}\n","import { __awaiter } from \"tslib\";\nimport { confirm } from '@inquirer/prompts';\nimport colors from 'ansi-colors';\nimport path from 'node:path';\nimport fs from 'node:fs';\nexport class InitApi {\n initProjectConfigJson(framework) {\n return __awaiter(this, void 0, void 0, function* () {\n const jsonConfigPath = path.join('.', 'rop.json');\n let jsonConfigData;\n if (fs.existsSync(jsonConfigPath)) {\n const flag = yield confirm({\n message: `${colors.cyan('rop.json')} already exists, does it need to be overwritten?`,\n });\n if (!flag) {\n return false;\n }\n const str = fs.readFileSync(jsonConfigPath, 'utf8');\n jsonConfigData = JSON.parse(str);\n if (!jsonConfigData.framework) {\n jsonConfigData.framework = {\n name: framework,\n };\n }\n else {\n jsonConfigData.framework.name = framework;\n }\n }\n else {\n jsonConfigData = {\n framework: {\n name: framework,\n },\n };\n }\n fs.writeFileSync(jsonConfigPath, JSON.stringify(jsonConfigData, null, 2), 'utf8');\n return true;\n });\n }\n initRopConfig(projectId, accessKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const ropConfigDirPath = path.join('.', '.rop');\n if (!fs.existsSync(ropConfigDirPath)) {\n fs.mkdirSync(ropConfigDirPath);\n }\n const ropConfigPath = path.join(ropConfigDirPath, 'config.json');\n let ropConfigData = {};\n if (fs.existsSync(ropConfigPath)) {\n ropConfigData = JSON.parse(fs.readFileSync(ropConfigPath, 'utf8'));\n }\n ropConfigData.projectId = projectId;\n if (accessKey) {\n ropConfigData.accessKey = accessKey;\n }\n fs.writeFileSync(ropConfigPath, JSON.stringify(ropConfigData, null, 2), 'utf8');\n });\n }\n initGitignore() {\n return __awaiter(this, void 0, void 0, function* () {\n const gitignorePath = path.join('.', '.gitignore');\n if (fs.existsSync(gitignorePath)) {\n const gitignoreData = fs.readFileSync(gitignorePath, 'utf8');\n if (!gitignoreData.includes('.rop')) {\n fs.appendFileSync(gitignorePath, `\\n.rop`, 'utf8');\n }\n }\n else {\n fs.writeFileSync(gitignorePath, `.rop`, 'utf8');\n }\n });\n }\n}\n","export const defaultHost = 'https://rop.xh920.com';\n","import { __awaiter } from \"tslib\";\nimport fs from 'fs';\nimport * as os from 'node:os';\nimport path from 'node:path';\nimport { defaultHost } from './config';\nconst LOGIN_API = '/api/auth/login';\nconst REFRESH_TOKEN_API = '/api/auth/refresh';\nconst CHECK_AND_REFRESH_TOKEN_API = '/api/auth/checkAndRefresh';\nexport class AuthApi {\n constructor({ baseDomain }) {\n this.baseDomain = baseDomain !== null && baseDomain !== void 0 ? baseDomain : defaultHost;\n }\n login(req) {\n return __awaiter(this, void 0, void 0, function* () {\n const res = yield fetch(`${this.baseDomain}${LOGIN_API}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify(req),\n });\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n if (!resBody.message || res.status != 400) {\n console.log(`Login failed: status=${res.status}, statusText=${res.statusText}`);\n }\n else {\n console.log(JSON.stringify(resBody));\n }\n return;\n }\n const homedir = path.join(os.homedir(), '.rop');\n if (!fs.existsSync(homedir)) {\n fs.mkdirSync(homedir);\n }\n const userFilePath = path.join(homedir, 'user');\n fs.writeFileSync(userFilePath, JSON.stringify(resBody.data, null, 2), 'utf8');\n });\n }\n refreshToken() {\n return __awaiter(this, void 0, void 0, function* () {\n const homedir = path.join(os.homedir(), '.rop');\n const userFilePath = path.join(homedir, 'user');\n if (!fs.existsSync(userFilePath)) {\n console.log('Unauthorized. Please execute the login command');\n return;\n }\n const user = JSON.parse(fs.readFileSync(userFilePath, 'utf8'));\n const res = yield fetch(`${this.baseDomain}${REFRESH_TOKEN_API}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify({ token: user.auth.refreshToken }),\n });\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n if (!resBody.message || res.status != 400) {\n console.log(`Refresh token failed: status=${res.status}, statusText=${res.statusText}`);\n }\n else {\n console.log('Authorization expired please execute the login command');\n fs.rmSync(userFilePath);\n }\n throw new Error('Refresh token failed');\n }\n user.auth = resBody.data;\n fs.writeFileSync(userFilePath, JSON.stringify(user), 'utf8');\n });\n }\n getToken() {\n return __awaiter(this, void 0, void 0, function* () {\n const homedir = path.join(os.homedir(), '.rop');\n const userFilePath = path.join(homedir, 'user');\n if (!fs.existsSync(userFilePath)) {\n return undefined;\n }\n return JSON.parse(fs.readFileSync(userFilePath, 'utf8'));\n });\n }\n checkAndRefreshToken() {\n return __awaiter(this, void 0, void 0, function* () {\n let user = yield this.getToken();\n if (!user) {\n return undefined;\n }\n const res = yield fetch(`${this.baseDomain}${CHECK_AND_REFRESH_TOKEN_API}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify(user.auth),\n });\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n return undefined;\n }\n const homedir = path.join(os.homedir(), '.rop');\n const userFilePath = path.join(homedir, 'user');\n user = JSON.parse(fs.readFileSync(userFilePath, 'utf8'));\n user.auth = resBody.data;\n fs.writeFileSync(userFilePath, JSON.stringify(user), 'utf8');\n return user;\n });\n }\n request(req) {\n return __awaiter(this, void 0, void 0, function* () {\n let user = yield this.getToken();\n if (!user) {\n console.log('Unauthorized. Please execute the login command');\n return undefined;\n }\n const res = yield req(user.auth.accessToken);\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n switch (res.status) {\n case 400:\n console.log(JSON.stringify(resBody));\n break;\n case 401:\n yield this.refreshToken();\n return yield this.request(req);\n default:\n console.log(`request failed: status=${res.status}, statusText=${res.statusText}`);\n }\n return undefined;\n }\n return resBody.data;\n });\n }\n}\n"],"names":["fetch","path","fs"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.19.1_tslib@2.6.3_typescript@5.4.5/node_modules/tslib/tslib.es6.js","../../src/types.ts","../../src/utils.ts","../../src/uploadApi.ts","../../src/initApi.ts","../../src/config.ts","../../src/authApi.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","export const frameworkList = ['tauri', 'ionic', 'flutter'];\nexport var Framework;\n(function (Framework) {\n Framework[\"TAURI\"] = \"tauri\";\n Framework[\"IONIC\"] = \"ionic\";\n Framework[\"FLUTTER\"] = \"flutter\";\n})(Framework || (Framework = {}));\n","import { __awaiter } from \"tslib\";\nimport { exec } from 'child_process';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport { Framework, frameworkList, } from './types';\nimport { getTauriEnv } from './tauri';\nimport platformDefaultConfigMap from './default-platform.json';\nimport { getFlutterEnv } from './flutter';\nimport { getIonicEnv } from './ionic';\nimport colors from 'ansi-colors';\nexport const getBranch = () => __awaiter(void 0, void 0, void 0, function* () {\n return new Promise((resolve) => {\n return exec('git rev-parse --abbrev-ref HEAD', (err, stdout, stderr) => {\n if (err) {\n console.log(`getBranch Error: ${err}`);\n }\n else if (stdout) {\n resolve(stdout.trim());\n return;\n }\n resolve('none');\n });\n });\n});\n// 读取 JSON 文件并替换模版变量\nexport function loadJsonWithEnv({ platform, arch }) {\n var _a, _b, _c, _d, _e;\n const configFilePath = path.join('.', 'rop.json');\n const configData = fs.readFileSync(configFilePath, 'utf8');\n const inputConfig = JSON.parse(configData);\n let _arch = arch !== null && arch !== void 0 ? arch : 'universal';\n if (arch == 'x86_64') {\n _arch = 'x64';\n }\n else if (arch == 'i386' || arch == 'i686') {\n _arch = 'x86';\n }\n else if (arch == 'aarch64') {\n _arch = 'arm64';\n }\n let env = {\n arch: _arch,\n };\n let config;\n if (!inputConfig.platforms && ((_a = inputConfig.framework) === null || _a === void 0 ? void 0 : _a.name) && frameworkList.includes((_b = inputConfig.framework) === null || _b === void 0 ? void 0 : _b.name)) {\n const framework = inputConfig.framework.name;\n const defaultPlatformConfig = platformDefaultConfigMap[framework];\n const _config = Object.assign(Object.assign({}, inputConfig), { platforms: defaultPlatformConfig });\n config = _config;\n }\n else {\n config = inputConfig;\n }\n if (!config.platforms || Object.keys(config.platforms).length == 0) {\n console.log(colors.red('The platforms property in rop.json cannot be empty.'));\n return;\n }\n const _autoEnv = getAutoEnvByFramework((_c = config === null || config === void 0 ? void 0 : config.framework) === null || _c === void 0 ? void 0 : _c.name, config.projectPath);\n env = Object.assign(Object.assign(Object.assign({}, env), (_autoEnv !== null && _autoEnv !== void 0 ? _autoEnv : {})), ((_e = (_d = config.framework) === null || _d === void 0 ? void 0 : _d.env) !== null && _e !== void 0 ? _e : {}));\n // 确保配置文件中存在 host 属性\n if (!env.version) {\n console.log(colors.red('The version property in rop.json cannot be empty.'));\n return;\n }\n // 递归函数来替换对象中的字符串值\n function replaceEnvInObject(obj) {\n Object.keys(obj).forEach((key) => {\n if (typeof obj[key] === 'string') {\n // 使用正则表达式替换模版变量(这里假设模版变量是 ${VAR} 格式的)\n // @ts-ignore\n obj[key] = obj[key].replace(/\\$\\{(\\w+)\\}/g, (_, envVar) => env[envVar] || '');\n }\n else if (typeof obj[key] === 'object' && obj[key] !== null) {\n replaceEnvInObject(obj[key]); // 递归处理嵌套对象\n }\n });\n }\n replaceEnvInObject(config);\n const targetInfos = getTargetInfo(config.platforms, platform, _arch);\n console.log(colors.cyan(`find target file:`));\n console.log(`${JSON.stringify(targetInfos)}`);\n return { config, targetInfos, version: env.version, arch: _arch };\n}\nexport const loadConfigJSON = () => {\n const configFilePath = path.join('.rop', 'config.json');\n if (!fs.existsSync(configFilePath)) {\n return {\n projectId: undefined,\n };\n }\n const configDataStr = fs.readFileSync(configFilePath, 'utf8');\n const configData = JSON.parse(configDataStr);\n return {\n projectId: configData.projectId,\n accessKey: configData.accessKey,\n };\n};\nexport const getAutoEnvByFramework = (framework, projectPath) => {\n if (!framework) {\n return undefined;\n }\n switch (framework.toLowerCase()) {\n case Framework.TAURI:\n return getTauriEnv(projectPath);\n case Framework.FLUTTER:\n return getFlutterEnv(projectPath);\n case Framework.IONIC:\n return getIonicEnv(projectPath);\n default:\n return undefined;\n }\n};\nexport const getTargetInfo = (platforms, platform, arch) => {\n const list = platforms[platform];\n if (list && list.length > 0) {\n const targetList = list.filter((item) => item.arch == arch);\n if (targetList.length > 0) {\n return targetList;\n }\n }\n throw new Error('Not find artifacts file');\n};\n","import { __awaiter } from \"tslib\";\nimport fs from 'fs';\nimport fetch from 'node-fetch';\nimport FormData from 'form-data';\nimport cliProgress from 'cli-progress';\nimport colors from 'ansi-colors';\nimport path from 'path';\nimport { getBranch } from './utils';\nexport class RopUploadApi {\n constructor({ baseDomain }) {\n this.checkParams = (config) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!config.accessKey) {\n if (!config.token) {\n console.log(colors.red(`Either accessKey or token must be used`));\n return false;\n }\n if (!config.projectId) {\n console.log(colors.red(`projectId cannot be empty`));\n return false;\n }\n }\n const branch = (_a = config.branch) !== null && _a !== void 0 ? _a : (yield getBranch());\n if (!branch) {\n console.log(colors.red(`branch cannot be empty`));\n return false;\n }\n else {\n config.branch = branch;\n }\n if (!config.platform) {\n console.log(colors.red(`platform cannot be empty`));\n return false;\n }\n if (!config.arch) {\n console.log(colors.red(`arch cannot be empty`));\n return false;\n }\n if (!config.targetPath) {\n console.log(colors.red(`target path cannot be empty`));\n return false;\n }\n if (!fs.existsSync(config.targetPath)) {\n console.log(colors.red(`target file not found, file path: ${config.targetPath}`));\n return false;\n }\n // 如果更新包不存在的情况使用本身的包\n if (config.updatePath && !fs.existsSync(config.updatePath)) {\n config.updatePath = config.targetPath;\n config.updateName = config.targetName;\n }\n if (!config.version) {\n console.log(colors.red(`version cannot be empty`));\n return false;\n }\n return config;\n });\n this.baseDomain = baseDomain;\n }\n upload(_config) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const config = yield this.checkParams(_config);\n if (!config) {\n return;\n }\n // 以下代码帮我改成 上传文件 fetch 上传文件\n const formData = new FormData();\n const fileStream = fs.createReadStream(config.targetPath);\n // 监听文件流的 'data' 事件来跟踪进度\n const multibar = new cliProgress.MultiBar({\n format: 'Upload Progress |' + colors.cyan('{bar}') + '| {percentage}% | {filename}',\n barCompleteChar: '\\u2588',\n barIncompleteChar: '\\u2591',\n hideCursor: true,\n });\n const bar1 = multibar.create(fs.statSync(config.targetPath).size, 0);\n let totalUploaded = 0;\n fileStream.on('data', (chunk) => {\n totalUploaded += chunk.length;\n bar1.update(totalUploaded, { filename: path.basename(config.targetPath) });\n });\n formData.append('targetFile', fileStream, {\n filename: (_a = config.targetName) !== null && _a !== void 0 ? _a : path.basename(config.targetPath),\n });\n let updateFileStream;\n if (config.updatePath) {\n const bar2 = multibar.create(fs.statSync(config.updatePath).size, 0);\n updateFileStream = fs.createReadStream(config.updatePath);\n let totalUpdateUploaded = 0;\n updateFileStream.on('data', (chunk) => {\n totalUpdateUploaded += chunk.length;\n bar2.update(totalUpdateUploaded, { filename: path.basename(config.updatePath) });\n });\n formData.append('updateFile', updateFileStream, {\n filename: (_b = config.updateName) !== null && _b !== void 0 ? _b : path.basename(config.updatePath),\n });\n }\n if (config.accessKey) {\n formData.append('accessKey', config.accessKey);\n }\n if (config.projectId) {\n formData.append('projectId', config.projectId);\n }\n if (config.token) {\n formData.append('token', config.token);\n }\n formData.append('branch', config.branch);\n formData.append('version', config.version);\n formData.append('platform', config.platform);\n formData.append('arch', config.arch);\n if (config.signature) {\n formData.append('signature', config.signature);\n }\n if (config.autoRelease) {\n formData.append('autoRelease', String(config.autoRelease));\n }\n const res = yield fetch(`${this.baseDomain}/api/upload`, {\n method: 'POST',\n headers: formData.getHeaders(),\n body: formData,\n });\n const body = yield res.json();\n if (!res.ok) {\n console.log(res.status, res.statusText, body);\n }\n else {\n // console.log('上传成功!');\n }\n multibar.stop();\n fileStream.destroy();\n updateFileStream === null || updateFileStream === void 0 ? void 0 : updateFileStream.destroy();\n console.log(colors.green(`Upload success!`));\n return { success: res.ok, body };\n });\n }\n}\n","import { __awaiter } from \"tslib\";\nimport { confirm } from '@inquirer/prompts';\nimport colors from 'ansi-colors';\nimport path from 'node:path';\nimport fs from 'node:fs';\nexport class InitApi {\n initProjectConfigJson(framework) {\n return __awaiter(this, void 0, void 0, function* () {\n const jsonConfigPath = path.join('.', 'rop.json');\n let jsonConfigData;\n if (fs.existsSync(jsonConfigPath)) {\n const flag = yield confirm({\n message: `${colors.cyan('rop.json')} already exists, does it need to be overwritten?`,\n });\n if (!flag) {\n return false;\n }\n const str = fs.readFileSync(jsonConfigPath, 'utf8');\n jsonConfigData = JSON.parse(str);\n if (!jsonConfigData.framework) {\n jsonConfigData.framework = {\n name: framework,\n };\n }\n else {\n jsonConfigData.framework.name = framework;\n }\n }\n else {\n jsonConfigData = {\n framework: {\n name: framework,\n },\n };\n }\n fs.writeFileSync(jsonConfigPath, JSON.stringify(jsonConfigData, null, 2), 'utf8');\n return true;\n });\n }\n initRopConfig(projectId, accessKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const ropConfigDirPath = path.join('.', '.rop');\n if (!fs.existsSync(ropConfigDirPath)) {\n fs.mkdirSync(ropConfigDirPath);\n }\n const ropConfigPath = path.join(ropConfigDirPath, 'config.json');\n let ropConfigData = {};\n if (fs.existsSync(ropConfigPath)) {\n ropConfigData = JSON.parse(fs.readFileSync(ropConfigPath, 'utf8'));\n }\n ropConfigData.projectId = projectId;\n if (accessKey) {\n ropConfigData.accessKey = accessKey;\n }\n fs.writeFileSync(ropConfigPath, JSON.stringify(ropConfigData, null, 2), 'utf8');\n });\n }\n initGitignore() {\n return __awaiter(this, void 0, void 0, function* () {\n const gitignorePath = path.join('.', '.gitignore');\n if (fs.existsSync(gitignorePath)) {\n const gitignoreData = fs.readFileSync(gitignorePath, 'utf8');\n if (!gitignoreData.includes('.rop')) {\n fs.appendFileSync(gitignorePath, `\\n.rop`, 'utf8');\n }\n }\n else {\n fs.writeFileSync(gitignorePath, `.rop`, 'utf8');\n }\n });\n }\n}\n","export const defaultHost = 'https://rop.xh920.com';\n","import { __awaiter } from \"tslib\";\nimport fs from 'fs';\nimport * as os from 'node:os';\nimport path from 'node:path';\nimport { defaultHost } from './config';\nimport chalk from 'chalk';\nimport colors from 'ansi-colors';\nconst LOGIN_API = '/api/auth/login';\nconst REFRESH_TOKEN_API = '/api/auth/refresh';\nconst CHECK_AND_REFRESH_TOKEN_API = '/api/auth/checkAndRefresh';\nexport class AuthApi {\n constructor({ baseDomain }) {\n this.baseDomain = baseDomain !== null && baseDomain !== void 0 ? baseDomain : defaultHost;\n }\n login(req) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const res = yield fetch(`${this.baseDomain}${LOGIN_API}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify(req),\n });\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n console.log(chalk.red(`Login failed: status:${res.status}, message:${(_a = resBody.message) !== null && _a !== void 0 ? _a : res.statusText}`));\n return false;\n }\n const homedir = path.join(os.homedir(), '.rop');\n if (!fs.existsSync(homedir)) {\n fs.mkdirSync(homedir);\n }\n const userFilePath = path.join(homedir, 'user');\n fs.writeFileSync(userFilePath, JSON.stringify(resBody.data, null, 2), 'utf8');\n return true;\n });\n }\n refreshToken() {\n return __awaiter(this, void 0, void 0, function* () {\n const homedir = path.join(os.homedir(), '.rop');\n const userFilePath = path.join(homedir, 'user');\n if (!fs.existsSync(userFilePath)) {\n console.log(chalk.red(`No permission! Please execute [rop login] or use --accessKey`));\n return false;\n }\n const user = JSON.parse(fs.readFileSync(userFilePath, 'utf8'));\n const res = yield fetch(`${this.baseDomain}${REFRESH_TOKEN_API}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify({ token: user.auth.refreshToken }),\n });\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n if (!resBody.message || res.status != 400) {\n console.log(chalk.red(`Refresh token failed: status:${res.status}, statusText:${res.statusText}`));\n }\n else {\n console.log(chalk.red(`Authorization expired please execute the login command`));\n fs.rmSync(userFilePath);\n }\n return false;\n }\n user.auth = resBody.data;\n fs.writeFileSync(userFilePath, JSON.stringify(user), 'utf8');\n return true;\n });\n }\n getToken() {\n return __awaiter(this, void 0, void 0, function* () {\n const homedir = path.join(os.homedir(), '.rop');\n const userFilePath = path.join(homedir, 'user');\n if (!fs.existsSync(userFilePath)) {\n return undefined;\n }\n return JSON.parse(fs.readFileSync(userFilePath, 'utf8'));\n });\n }\n checkAndRefreshToken() {\n return __awaiter(this, void 0, void 0, function* () {\n let user = yield this.getToken();\n if (!user) {\n return undefined;\n }\n const res = yield fetch(`${this.baseDomain}${CHECK_AND_REFRESH_TOKEN_API}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify(user.auth),\n });\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n return undefined;\n }\n const homedir = path.join(os.homedir(), '.rop');\n const userFilePath = path.join(homedir, 'user');\n user = JSON.parse(fs.readFileSync(userFilePath, 'utf8'));\n user.auth = resBody.data;\n fs.writeFileSync(userFilePath, JSON.stringify(user), 'utf8');\n return user;\n });\n }\n request(req) {\n return __awaiter(this, void 0, void 0, function* () {\n let user = yield this.getToken();\n if (!user) {\n console.log(colors.red(`No permission! Please execute [rop login]`));\n return undefined;\n }\n const res = yield req(user.auth.accessToken);\n const resBody = yield res.json();\n if (!res.ok || !resBody.data) {\n switch (res.status) {\n case 400:\n console.log(JSON.stringify(resBody));\n break;\n case 401:\n const result = yield this.refreshToken();\n if (result) {\n return yield this.request(req);\n }\n break;\n default:\n console.log(colors.red(`request failed: status:${res.status}, statusText:${res.statusText}`));\n }\n return undefined;\n }\n return resBody.data;\n });\n }\n}\n"],"names":["fetch","path","fs"],"mappings":"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","x_google_ignoreList":[0]}
|