@mytegroupinc/myte-core 0.0.56 → 0.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/cli.js +374 -140
- package/lib/build-harness.js +378 -0
- package/lib/package-update-check.js +228 -0
- package/mytecody-cli.js +44 -86
- package/package.json +1 -1
package/mytecody-cli.js
CHANGED
|
@@ -8,11 +8,17 @@ const crypto = require("crypto");
|
|
|
8
8
|
const zlib = require("zlib");
|
|
9
9
|
const { spawn } = require("child_process");
|
|
10
10
|
const readline = require("readline");
|
|
11
|
-
const {
|
|
12
|
-
DEFAULT_MYTEAI_BASE,
|
|
13
|
-
normalizeMyteAiBase,
|
|
14
|
-
} = require("./lib/ai-gateway");
|
|
15
|
-
const { createMyteSplash } = require("./lib/mytecody-splash");
|
|
11
|
+
const {
|
|
12
|
+
DEFAULT_MYTEAI_BASE,
|
|
13
|
+
normalizeMyteAiBase,
|
|
14
|
+
} = require("./lib/ai-gateway");
|
|
15
|
+
const { createMyteSplash } = require("./lib/mytecody-splash");
|
|
16
|
+
const {
|
|
17
|
+
checkPackageUpdate: checkSharedPackageUpdate,
|
|
18
|
+
isVersionNewer,
|
|
19
|
+
packageStatusBase: buildPackageStatusBase,
|
|
20
|
+
packageUpdateNotice,
|
|
21
|
+
} = require("./lib/package-update-check");
|
|
16
22
|
|
|
17
23
|
const PACKAGE_NAME = "myte";
|
|
18
24
|
const PACKAGE_VERSION = require("./package.json").version;
|
|
@@ -474,93 +480,45 @@ function packageLatestUrl(args = {}) {
|
|
|
474
480
|
);
|
|
475
481
|
}
|
|
476
482
|
|
|
477
|
-
function packageUpdateCheckEnabled(args = {}) {
|
|
478
|
-
if (args["package-update-check"] === false) return false;
|
|
479
|
-
return process.env.MYTE_CODY_PACKAGE_UPDATE_CHECK !== "0";
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
function packageStatusBase(args = {}) {
|
|
483
|
-
return {
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
function parseSemverish(version) {
|
|
496
|
-
const main = String(version || "")
|
|
497
|
-
.trim()
|
|
498
|
-
.replace(/^v/i, "")
|
|
499
|
-
.split(/[+-]/)[0];
|
|
500
|
-
const match = main.match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?/);
|
|
501
|
-
if (!match) return null;
|
|
502
|
-
return [match[1], match[2] || "0", match[3] || "0"].map((part) => Number(part));
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
function compareSemverish(left, right) {
|
|
506
|
-
const leftParts = parseSemverish(left);
|
|
507
|
-
const rightParts = parseSemverish(right);
|
|
508
|
-
if (!leftParts || !rightParts) return String(left || "").localeCompare(String(right || ""));
|
|
509
|
-
for (let i = 0; i < 3; i += 1) {
|
|
510
|
-
if (leftParts[i] > rightParts[i]) return 1;
|
|
511
|
-
if (leftParts[i] < rightParts[i]) return -1;
|
|
512
|
-
}
|
|
513
|
-
return 0;
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
function isVersionNewer(latest, installed = PACKAGE_VERSION) {
|
|
517
|
-
return compareSemverish(latest, installed) > 0;
|
|
518
|
-
}
|
|
483
|
+
function packageUpdateCheckEnabled(args = {}) {
|
|
484
|
+
if (args["package-update-check"] === false || args["update-check"] === false) return false;
|
|
485
|
+
return process.env.MYTE_CODY_PACKAGE_UPDATE_CHECK !== "0";
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
function packageStatusBase(args = {}) {
|
|
489
|
+
return {
|
|
490
|
+
...buildPackageStatusBase({
|
|
491
|
+
packageName: PACKAGE_NAME,
|
|
492
|
+
installedVersion: PACKAGE_VERSION,
|
|
493
|
+
latestUrl: packageLatestUrl(args),
|
|
494
|
+
updateCommand: `npm install -g ${PACKAGE_NAME}@latest`,
|
|
495
|
+
}),
|
|
496
|
+
engine_update_command: "mytecody update",
|
|
497
|
+
};
|
|
498
|
+
}
|
|
519
499
|
|
|
520
500
|
function packageUpdateTimeoutMs() {
|
|
521
501
|
const value = Number(process.env.MYTE_CODY_PACKAGE_UPDATE_TIMEOUT_MS || 1500);
|
|
522
502
|
return Number.isFinite(value) && value > 0 ? value : 1500;
|
|
523
503
|
}
|
|
524
504
|
|
|
525
|
-
async function checkPackageUpdate(args = {}) {
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
if (!latestVersion) {
|
|
543
|
-
return { ...status, check_status: "invalid-response" };
|
|
544
|
-
}
|
|
545
|
-
return {
|
|
546
|
-
...status,
|
|
547
|
-
latest_version: latestVersion,
|
|
548
|
-
update_available: isVersionNewer(latestVersion, PACKAGE_VERSION),
|
|
549
|
-
check_status: "ok",
|
|
550
|
-
};
|
|
551
|
-
} catch (error) {
|
|
552
|
-
return {
|
|
553
|
-
...status,
|
|
554
|
-
check_status: "unavailable",
|
|
555
|
-
error: error && error.message ? error.message : String(error),
|
|
556
|
-
};
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
function packageUpdateNotice(packageStatus) {
|
|
561
|
-
if (!packageStatus || packageStatus.update_available !== true) return "";
|
|
562
|
-
return `myte package update available: ${packageStatus.latest_version} (installed ${packageStatus.installed_version}). Run ${packageStatus.update_command}`;
|
|
563
|
-
}
|
|
505
|
+
async function checkPackageUpdate(args = {}) {
|
|
506
|
+
return checkSharedPackageUpdate({
|
|
507
|
+
packageName: PACKAGE_NAME,
|
|
508
|
+
installedVersion: PACKAGE_VERSION,
|
|
509
|
+
latestUrl: packageLatestUrl(args),
|
|
510
|
+
updateCommand: `npm install -g ${PACKAGE_NAME}@latest`,
|
|
511
|
+
enabled: packageUpdateCheckEnabled(args),
|
|
512
|
+
timeoutMs: packageUpdateTimeoutMs(),
|
|
513
|
+
cacheDir: args["package-cache-dir"] === false
|
|
514
|
+
? false
|
|
515
|
+
: process.env.MYTE_PACKAGE_UPDATE_CACHE_DIR || undefined,
|
|
516
|
+
fetchJson,
|
|
517
|
+
}).then((status) => ({
|
|
518
|
+
...status,
|
|
519
|
+
engine_update_command: "mytecody update",
|
|
520
|
+
}));
|
|
521
|
+
}
|
|
564
522
|
|
|
565
523
|
function printJson(payload) {
|
|
566
524
|
console.log(JSON.stringify(payload, null, 2));
|