@vmz/vmz 0.1.17 → 0.1.18
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/application-cmd.d.ts +6 -16
- package/dist/application-cmd.js +34 -180
- package/dist/author-input.d.ts +40 -19
- package/dist/author-input.js +2 -16
- package/dist/build-assemble.d.ts +63 -41
- package/dist/build-assemble.js +42 -43
- package/dist/bundler-adapter.d.ts +46 -48
- package/dist/bundler-adapter.js +4 -43
- package/dist/cdn-policy.d.ts +77 -93
- package/dist/cdn-policy.js +10 -16
- package/dist/cli-localize.d.ts +34 -0
- package/dist/cli-localize.js +58 -0
- package/dist/cli.d.ts +8 -19
- package/dist/cli.js +69 -252
- package/dist/content-addressed-assets.d.ts +24 -10
- package/dist/content-addressed-assets.js +2 -7
- package/dist/delivery-profile.d.ts +54 -27
- package/dist/delivery-profile.js +15 -13
- package/dist/dev-session.d.ts +29 -23
- package/dist/dev-session.js +0 -21
- package/dist/dev-watch-roots.d.ts +34 -25
- package/dist/dev-watch-roots.js +0 -31
- package/dist/document-build.d.ts +22 -97
- package/dist/document-build.js +4 -19
- package/dist/document-check.d.ts +30 -53
- package/dist/document-check.js +14 -29
- package/dist/document-cmd.d.ts +3 -6
- package/dist/document-cmd.js +19 -79
- package/dist/document-designs.d.ts +5 -8
- package/dist/document-designs.js +2 -15
- package/dist/document-enrich.d.ts +52 -24
- package/dist/document-enrich.js +4 -32
- package/dist/document-evidence.d.ts +46 -43
- package/dist/document-evidence.js +6 -47
- package/dist/document-integrate.d.ts +13 -29
- package/dist/document-integrate.js +2 -13
- package/dist/document-interactive.d.ts +45 -67
- package/dist/document-interactive.js +9 -50
- package/dist/document-layout-render.d.ts +7 -16
- package/dist/document-layout-render.js +0 -17
- package/dist/document-locale.d.ts +12 -25
- package/dist/document-locale.js +3 -14
- package/dist/document-markdown.d.ts +9 -5
- package/dist/document-markdown.js +0 -4
- package/dist/document-routing-config.d.ts +7 -14
- package/dist/document-routing-config.js +0 -9
- package/dist/document-scan.d.ts +14 -18
- package/dist/document-scan.js +2 -23
- package/dist/document-schema.d.ts +154 -41
- package/dist/document-schema.js +0 -35
- package/dist/embedded-packaging.d.ts +20 -8
- package/dist/embedded-packaging.js +0 -1
- package/dist/explain-cmd.d.ts +4 -3
- package/dist/explain-cmd.js +16 -65
- package/dist/index.d.ts +70 -143
- package/dist/index.js +16 -136
- package/dist/invocation.d.ts +29 -50
- package/dist/invocation.js +11 -57
- package/dist/locale-check.d.ts +69 -70
- package/dist/locale-check.js +5 -66
- package/dist/locale-cmd.d.ts +2 -5
- package/dist/locale-cmd.js +62 -142
- package/dist/locale-delivery.d.ts +294 -191
- package/dist/locale-delivery.js +8 -94
- package/dist/locale-route-emit.d.ts +23 -9
- package/dist/locale-route-emit.js +0 -7
- package/dist/locale-router.d.ts +189 -162
- package/dist/locale-router.js +13 -122
- package/dist/locale-runtime.d.ts +292 -262
- package/dist/locale-runtime.js +8 -102
- package/dist/locale-schema.js +0 -1
- package/dist/locale-tooling.d.ts +100 -63
- package/dist/locale-tooling.js +7 -45
- package/dist/log.d.ts +22 -15
- package/dist/log.js +24 -21
- package/dist/native-addon.d.ts +10 -9
- package/dist/native-addon.js +1 -10
- package/dist/pack-client-packages.d.ts +5 -1
- package/dist/pack-client-packages.js +0 -6
- package/dist/pack.d.ts +17 -15
- package/dist/pack.js +0 -12
- package/dist/packages.d.ts +10 -23
- package/dist/packages.js +1 -37
- package/dist/plan-cmd.d.ts +6 -0
- package/dist/plan-cmd.js +35 -0
- package/dist/plugin-host.js +0 -1
- package/dist/port.d.ts +2 -10
- package/dist/port.js +2 -11
- package/dist/pretty-json.d.ts +9 -19
- package/dist/pretty-json.js +3 -17
- package/dist/production-observability.d.ts +37 -181
- package/dist/production-observability.js +1 -9
- package/dist/production-test-pack.d.ts +17 -3
- package/dist/production-test-pack.js +0 -2
- package/dist/public-static-assets.d.ts +6 -1
- package/dist/public-static-assets.js +0 -5
- package/dist/refactor-cmd.d.ts +3 -6
- package/dist/refactor-cmd.js +16 -69
- package/dist/release-cmd.d.ts +7 -6
- package/dist/release-cmd.js +17 -59
- package/dist/release-pack.d.ts +7 -3
- package/dist/release-pack.js +0 -6
- package/dist/resolve.d.ts +15 -19
- package/dist/resolve.js +1 -15
- package/dist/server-artifact.d.ts +30 -75
- package/dist/server-artifact.js +0 -10
- package/dist/server-language-backend.d.ts +22 -79
- package/dist/server-language-backend.js +0 -26
- package/dist/site-delivery.d.ts +46 -59
- package/dist/site-delivery.js +3 -8
- package/dist/site-favicon.d.ts +6 -1
- package/dist/site-favicon.js +0 -5
- package/dist/static-emit.d.ts +73 -103
- package/dist/static-emit.js +1 -26
- package/dist/test-cmd.d.ts +3 -5
- package/dist/test-cmd.js +15 -25
- package/dist/test-compile.js +0 -1
- package/dist/test-discover.js +0 -1
- package/dist/test-logic.js +0 -1
- package/dist/test-protocol.js +0 -1
- package/dist/toolchain-dx.d.ts +11 -0
- package/dist/toolchain-dx.js +10 -0
- package/dist/watch-diff.d.ts +4 -13
- package/dist/watch-diff.js +0 -17
- package/dist/wechat-packaging.d.ts +8 -7
- package/dist/wechat-packaging.js +0 -6
- package/locales/en-US/cli.json +105 -0
- package/locales/locales.json +4 -0
- package/package.json +15 -12
- package/dist/resolve-native-cli.d.ts +0 -14
- package/dist/resolve-native-cli.js +0 -84
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cli.intro.project": "vmz — Node toolchain host (`@vmz/vmz`, N-API)",
|
|
3
|
+
"cli.intro.global": "vmz — global install (help/version only). Pin `@vmz/vmz` in the app (`pnpm add -D @vmz/vmz`) and run `pnpm exec vmz <command>`. A global `vmz` re-execs the nearest project bin when present.",
|
|
4
|
+
"cli.cmd.check": "Check project via Workspace",
|
|
5
|
+
"cli.cmd.build": "Build project via Workspace",
|
|
6
|
+
"cli.cmd.serve": "Serve dist (optional --build)",
|
|
7
|
+
"cli.cmd.dev": "Rebuild session",
|
|
8
|
+
"cli.cmd.format": "Format .vmz via N-API",
|
|
9
|
+
"cli.cmd.lint": "Lint (= check) via N-API",
|
|
10
|
+
"cli.cmd.test": "Native test discover / report",
|
|
11
|
+
"cli.cmd.document": "Project /documents domain",
|
|
12
|
+
"cli.cmd.document.check": "Check locale tree + links/anchors + evidence",
|
|
13
|
+
"cli.cmd.document.build": "Static HTML + view + evidence + designs CSS",
|
|
14
|
+
"cli.cmd.locale": "Locale domain",
|
|
15
|
+
"cli.cmd.locale.check": "Check locales.json5 + catalogs + param contracts",
|
|
16
|
+
"cli.cmd.locale.list": "List LocaleIds",
|
|
17
|
+
"cli.cmd.locale.emit-types": "Emit #locales/* .d.ts stubs",
|
|
18
|
+
"cli.cmd.locale.rename": "MessageId rename plan",
|
|
19
|
+
"cli.cmd.locale.runtime-check": "LocaleContext / FormatterContext / SSR parity",
|
|
20
|
+
"cli.cmd.locale.router-check": "Route realization / canonical / hreflang",
|
|
21
|
+
"cli.cmd.locale.delivery-check": "Multi-host LocaleDeliveryResolution",
|
|
22
|
+
"cli.cmd.locale.explain": "Explain MessageId",
|
|
23
|
+
"cli.cmd.locale.diff": "Diff two locales",
|
|
24
|
+
"cli.cmd.locale.extract": "Hardcoded text sink check",
|
|
25
|
+
"cli.cmd.locale.pseudo": "Pseudo-localize catalog",
|
|
26
|
+
"cli.cmd.locale.conformance": "Cross-host MessageId/hash conformance",
|
|
27
|
+
"cli.cmd.application": "Application Collection / Mount",
|
|
28
|
+
"cli.cmd.application.check": "Validate descriptors + applications.config.json5",
|
|
29
|
+
"cli.cmd.application.list": "List ApplicationIds / collections / mounts",
|
|
30
|
+
"cli.cmd.application.schemas": "Print frozen protocol catalog JSON",
|
|
31
|
+
"cli.cmd.application.relocatable": "ApplicationBase / non_relocatable_url proof",
|
|
32
|
+
"cli.cmd.application.relocate": "Apply ApplicationBase to relocation manifest",
|
|
33
|
+
"cli.cmd.application.artifacts": "ApplicationArtifact + MountTable boundary",
|
|
34
|
+
"cli.cmd.application.isolation": "Isolation namespaces + failure containment",
|
|
35
|
+
"cli.cmd.application.composition": "Catalog consumption + cross-app Link hrefs",
|
|
36
|
+
"cli.cmd.application.dev": "Sessions / affected / proxy / mounted tests",
|
|
37
|
+
"cli.cmd.artifact": "Release pack / publish / rollback / diff",
|
|
38
|
+
"cli.cmd.artifact.pack": "Write dist/_vmz manifests + envelope",
|
|
39
|
+
"cli.cmd.artifact.publish": "Pack + publish under dist/releases",
|
|
40
|
+
"cli.cmd.artifact.rollback": "Restore PREVIOUS pointer",
|
|
41
|
+
"cli.cmd.artifact.current": "Print CURRENT digest",
|
|
42
|
+
"cli.cmd.artifact.diff": "Structured file digest diff",
|
|
43
|
+
"cli.cmd.refactor": "DX rename plans / apply",
|
|
44
|
+
"cli.cmd.refactor.rename": "Plan or apply a workspace rename",
|
|
45
|
+
"cli.cmd.explain": "DX causal explain",
|
|
46
|
+
"cli.cmd.plan": "Dump frozen Rust plans via N-API",
|
|
47
|
+
"cli.cmd.plan.locale": "LocalePlan from locales/",
|
|
48
|
+
"cli.cmd.plan.document-route": "DocumentRoutePlan from documents/",
|
|
49
|
+
"cli.cmd.version": "Show host + native protocol versions",
|
|
50
|
+
"cli.opt.out-dir": "Workspace output root (default: dist)",
|
|
51
|
+
"cli.opt.release": "Release build (omit serve-host; pack minify; proof)",
|
|
52
|
+
"cli.opt.profile": "Delivery profile id",
|
|
53
|
+
"cli.opt.target": "browser | mini-program-wechat (or test affected alias)",
|
|
54
|
+
"cli.opt.origin": "Site origin for web-static",
|
|
55
|
+
"cli.opt.host": "Listen host",
|
|
56
|
+
"cli.opt.port": "Listen port",
|
|
57
|
+
"cli.opt.poll-ms": "Dev watch poll interval",
|
|
58
|
+
"cli.opt.build": "Build before serve",
|
|
59
|
+
"cli.opt.check": "Format check-only / extract fail on CJK",
|
|
60
|
+
"cli.opt.deny-warnings": "Treat warnings as errors",
|
|
61
|
+
"cli.opt.json": "Write JSON to stdout or file",
|
|
62
|
+
"cli.opt.root": "Project root",
|
|
63
|
+
"cli.opt.out": "Output directory",
|
|
64
|
+
"cli.opt.strict": "Strict coverage / require defaultLocale",
|
|
65
|
+
"cli.opt.list": "List discovered tests",
|
|
66
|
+
"cli.opt.mode": "compile|logic|browser|ssr|resume|deployment|all",
|
|
67
|
+
"cli.opt.filter": "Filter by test id or file",
|
|
68
|
+
"cli.opt.application": "Run only tests for ApplicationId",
|
|
69
|
+
"cli.opt.mounted": "Relocation + host-boundary tests for ApplicationId",
|
|
70
|
+
"cli.opt.affected": "Select tests from dirty VPG units",
|
|
71
|
+
"cli.opt.locale": "Requested locale id",
|
|
72
|
+
"cli.opt.delivery": "Delivery id",
|
|
73
|
+
"cli.opt.timezone": "Formatter time zone",
|
|
74
|
+
"cli.opt.production": "Fail pseudo in production",
|
|
75
|
+
"cli.opt.base": "ApplicationBase path",
|
|
76
|
+
"cli.opt.dirty": "Dirty file path for affected planning (repeatable)",
|
|
77
|
+
"cli.opt.releases": "Releases root directory",
|
|
78
|
+
"cli.opt.app-id": "applicationId for envelope",
|
|
79
|
+
"cli.opt.refactor.kind": "route_id|field|method|component|capability",
|
|
80
|
+
"cli.opt.refactor.from": "Rename from id",
|
|
81
|
+
"cli.opt.refactor.to": "Rename to id",
|
|
82
|
+
"cli.opt.refactor.scope": "Optional chunk scope",
|
|
83
|
+
"cli.opt.apply": "Apply workspace edit plan",
|
|
84
|
+
"cli.opt.explain": "Include rename explain chain",
|
|
85
|
+
"cli.opt.explain.target": "Generic Workspace.explain target",
|
|
86
|
+
"cli.err.unknown_plan_kind": "unknown plan kind `{kind}` (locale | document-route)",
|
|
87
|
+
"cli.err.unknown_target": "unknown --target {target} (browser | mini-program-wechat)",
|
|
88
|
+
"cli.err.document_build_aborted": "document build aborted due to diagnostics",
|
|
89
|
+
"cli.err.locale_rename_usage": "usage: vmz locale rename <from-message-id> <to-message-id>",
|
|
90
|
+
"cli.err.locale_explain_usage": "usage: vmz locale explain <message-id> [project]",
|
|
91
|
+
"cli.err.locale_diff_usage": "usage: vmz locale diff <base-locale> <target-locale> [project]",
|
|
92
|
+
"cli.err.locale_pseudo_usage": "usage: vmz locale pseudo <source-locale> [project]",
|
|
93
|
+
"cli.err.application_relocate_manifest": "relocate requires a relocation manifest JSON path",
|
|
94
|
+
"cli.err.application_relocate_base": "relocate requires --base <ApplicationBase>",
|
|
95
|
+
"cli.err.artifact_diff_usage": "artifact diff requires <aDigest> <bDigest>",
|
|
96
|
+
"cli.err.refactor_rename_usage": "rename requires --kind, --from, and --to",
|
|
97
|
+
"cli.err.explain_style_usage": "usage: vmz explain style <node> [path]",
|
|
98
|
+
"cli.err.explain_usage": "usage: vmz explain style <node> [path] | vmz explain <target> [path]",
|
|
99
|
+
"cli.err.project_bin_missing": "found project `vmz` / `@vmz/vmz` but bin/vmz.js is missing.",
|
|
100
|
+
"cli.err.global_needs_project": "this `vmz` is a global install (mode=global); project commands need a project install.",
|
|
101
|
+
"cli.err.global_install_hint": "Install in the app: pnpm add -D @vmz/vmz",
|
|
102
|
+
"cli.err.global_run_hint": "Then run: pnpm exec vmz <command>",
|
|
103
|
+
"cli.err.global_developer_hint": "(developer mode: run from vmz-framework packages/runtimes/vmz source — full CLI)",
|
|
104
|
+
"diag.message": "{message}"
|
|
105
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vmz/vmz",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "VMZ Node toolchain — N-API workspace session + CLI (publish name @vmz/vmz)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -48,14 +48,16 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@vmz/
|
|
52
|
-
"@vmz/
|
|
53
|
-
"@vmz/
|
|
51
|
+
"@vmz/commander": "0.1.18",
|
|
52
|
+
"@vmz/core": "0.1.18",
|
|
53
|
+
"@vmz/diagnostic": "0.1.18",
|
|
54
|
+
"@vmz/plugin": "0.1.18",
|
|
55
|
+
"@vmz/protocol": "0.1.18",
|
|
54
56
|
"jiti": "^2.6.1"
|
|
55
57
|
},
|
|
56
58
|
"peerDependencies": {
|
|
57
|
-
"@vmz/plugin-markdown-it": "0.1.
|
|
58
|
-
"@vmz/test": "0.1.
|
|
59
|
+
"@vmz/plugin-markdown-it": "0.1.18",
|
|
60
|
+
"@vmz/test": "0.1.18",
|
|
59
61
|
"typescript": "^5.8.3"
|
|
60
62
|
},
|
|
61
63
|
"peerDependenciesMeta": {
|
|
@@ -72,6 +74,7 @@
|
|
|
72
74
|
"files": [
|
|
73
75
|
"bin",
|
|
74
76
|
"dist",
|
|
77
|
+
"locales",
|
|
75
78
|
"README.md"
|
|
76
79
|
],
|
|
77
80
|
"scripts": {
|
|
@@ -89,12 +92,12 @@
|
|
|
89
92
|
"cli"
|
|
90
93
|
],
|
|
91
94
|
"optionalDependencies": {
|
|
92
|
-
"@vmz/vmz-win32-x64": "0.1.
|
|
93
|
-
"@vmz/vmz-win32-arm64": "0.1.
|
|
94
|
-
"@vmz/vmz-darwin-x64": "0.1.
|
|
95
|
-
"@vmz/vmz-darwin-arm64": "0.1.
|
|
96
|
-
"@vmz/vmz-linux-x64": "0.1.
|
|
97
|
-
"@vmz/vmz-linux-arm64": "0.1.
|
|
95
|
+
"@vmz/vmz-win32-x64": "0.1.18",
|
|
96
|
+
"@vmz/vmz-win32-arm64": "0.1.18",
|
|
97
|
+
"@vmz/vmz-darwin-x64": "0.1.18",
|
|
98
|
+
"@vmz/vmz-darwin-arm64": "0.1.18",
|
|
99
|
+
"@vmz/vmz-linux-x64": "0.1.18",
|
|
100
|
+
"@vmz/vmz-linux-arm64": "0.1.18"
|
|
98
101
|
},
|
|
99
102
|
"publishConfig": {
|
|
100
103
|
"access": "public"
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the native `vmz` CLI binary (vmz-tools), never the Node wrapper.
|
|
3
|
-
* Used by `vmz lsp` / `vmz mcp` so stdio servers stay one binary for all hosts.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* @param {string} [startDir]
|
|
7
|
-
* @returns {string | null}
|
|
8
|
-
*/
|
|
9
|
-
export declare function findRepoRoot(startDir?: string): string;
|
|
10
|
-
/**
|
|
11
|
-
* @param {{ cwd?: string }} [opts]
|
|
12
|
-
* @returns {string | null} absolute path to native vmz binary
|
|
13
|
-
*/
|
|
14
|
-
export declare function resolveNativeVmzCli(opts?: {}): any;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/**
|
|
3
|
-
* Resolve the native `vmz` CLI binary (vmz-tools), never the Node wrapper.
|
|
4
|
-
* Used by `vmz lsp` / `vmz mcp` so stdio servers stay one binary for all hosts.
|
|
5
|
-
*/
|
|
6
|
-
import { existsSync, statSync } from 'node:fs';
|
|
7
|
-
import path from 'node:path';
|
|
8
|
-
import { fileURLToPath } from 'node:url';
|
|
9
|
-
const exe = process.platform === 'win32' ? 'vmz.exe' : 'vmz';
|
|
10
|
-
/**
|
|
11
|
-
* @param {string} [startDir]
|
|
12
|
-
* @returns {string | null}
|
|
13
|
-
*/
|
|
14
|
-
export function findRepoRoot(startDir = process.cwd()) {
|
|
15
|
-
let dir = path.resolve(startDir);
|
|
16
|
-
for (let i = 0; i < 12; i++) {
|
|
17
|
-
if (existsSync(path.join(dir, 'Cargo.toml')) && existsSync(path.join(dir, 'package.json'))) {
|
|
18
|
-
return dir;
|
|
19
|
-
}
|
|
20
|
-
const parent = path.dirname(dir);
|
|
21
|
-
if (parent === dir)
|
|
22
|
-
break;
|
|
23
|
-
dir = parent;
|
|
24
|
-
}
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Prefer the newer of release/debug so a fresh `cargo build` is not shadowed by a stale release.
|
|
29
|
-
* @param {string} repo
|
|
30
|
-
* @returns {string | null}
|
|
31
|
-
*/
|
|
32
|
-
function pickNewestProfileBinary(repo) {
|
|
33
|
-
/** @type {{ path: string, mtime: number } | null} */
|
|
34
|
-
let best = null;
|
|
35
|
-
for (const profile of ['release', 'debug']) {
|
|
36
|
-
const candidate = path.join(repo, 'target', profile, exe);
|
|
37
|
-
if (!existsSync(candidate))
|
|
38
|
-
continue;
|
|
39
|
-
let mtime = 0;
|
|
40
|
-
try {
|
|
41
|
-
mtime = statSync(candidate).mtimeMs;
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
if (!best || mtime > best.mtime)
|
|
47
|
-
best = { path: candidate, mtime };
|
|
48
|
-
}
|
|
49
|
-
return best?.path ?? null;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* @param {{ cwd?: string }} [opts]
|
|
53
|
-
* @returns {string | null} absolute path to native vmz binary
|
|
54
|
-
*/
|
|
55
|
-
export function resolveNativeVmzCli(opts = {}) {
|
|
56
|
-
if (typeof process.env.VMZ_NATIVE === 'string' && process.env.VMZ_NATIVE.trim()) {
|
|
57
|
-
const p = path.resolve(process.env.VMZ_NATIVE.trim());
|
|
58
|
-
if (existsSync(p))
|
|
59
|
-
return p;
|
|
60
|
-
}
|
|
61
|
-
const roots = [];
|
|
62
|
-
if (opts.cwd)
|
|
63
|
-
roots.push(path.resolve(opts.cwd));
|
|
64
|
-
roots.push(process.cwd());
|
|
65
|
-
try {
|
|
66
|
-
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
67
|
-
// packages/runtimes/vmz/dist → repo root
|
|
68
|
-
roots.push(path.resolve(here, '../../../..'));
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
/* ignore */
|
|
72
|
-
}
|
|
73
|
-
const seen = new Set();
|
|
74
|
-
for (const start of roots) {
|
|
75
|
-
const repo = findRepoRoot(start);
|
|
76
|
-
if (!repo || seen.has(repo))
|
|
77
|
-
continue;
|
|
78
|
-
seen.add(repo);
|
|
79
|
-
const picked = pickNewestProfileBinary(repo);
|
|
80
|
-
if (picked)
|
|
81
|
-
return picked;
|
|
82
|
-
}
|
|
83
|
-
return null;
|
|
84
|
-
}
|