@prd-improve/cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/dist/anchor-slicer.d.ts +18 -0
- package/dist/anchor-slicer.js +114 -0
- package/dist/anchor-slicer.js.map +1 -0
- package/dist/api/client.d.ts +68 -0
- package/dist/api/client.js +175 -0
- package/dist/api/client.js.map +1 -0
- package/dist/changelog.d.ts +9 -0
- package/dist/changelog.js +34 -0
- package/dist/changelog.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +258 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/admin/_adminJson.d.ts +18 -0
- package/dist/commands/admin/_adminJson.js +27 -0
- package/dist/commands/admin/_adminJson.js.map +1 -0
- package/dist/commands/admin/_authResolve.d.ts +8 -0
- package/dist/commands/admin/_authResolve.js +56 -0
- package/dist/commands/admin/_authResolve.js.map +1 -0
- package/dist/commands/admin/index.d.ts +22 -0
- package/dist/commands/admin/index.js +100 -0
- package/dist/commands/admin/index.js.map +1 -0
- package/dist/commands/admin/io.d.ts +15 -0
- package/dist/commands/admin/io.js +30 -0
- package/dist/commands/admin/io.js.map +1 -0
- package/dist/commands/admin/member.d.ts +43 -0
- package/dist/commands/admin/member.js +362 -0
- package/dist/commands/admin/member.js.map +1 -0
- package/dist/commands/admin/project.d.ts +40 -0
- package/dist/commands/admin/project.js +182 -0
- package/dist/commands/admin/project.js.map +1 -0
- package/dist/commands/admin/team.d.ts +31 -0
- package/dist/commands/admin/team.js +157 -0
- package/dist/commands/admin/team.js.map +1 -0
- package/dist/commands/admin/teamMember.d.ts +33 -0
- package/dist/commands/admin/teamMember.js +262 -0
- package/dist/commands/admin/teamMember.js.map +1 -0
- package/dist/commands/admin/token.d.ts +29 -0
- package/dist/commands/admin/token.js +125 -0
- package/dist/commands/admin/token.js.map +1 -0
- package/dist/commands/admin/user.d.ts +2 -0
- package/dist/commands/admin/user.js +85 -0
- package/dist/commands/admin/user.js.map +1 -0
- package/dist/commands/config.d.ts +9 -0
- package/dist/commands/config.js +178 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/context.d.ts +11 -0
- package/dist/commands/context.js +235 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/diff.d.ts +6 -0
- package/dist/commands/diff.js +208 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/freeze.d.ts +10 -0
- package/dist/commands/freeze.js +269 -0
- package/dist/commands/freeze.js.map +1 -0
- package/dist/commands/init.d.ts +24 -0
- package/dist/commands/init.js +229 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +26 -0
- package/dist/commands/login.js +241 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +6 -0
- package/dist/commands/logout.js +75 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/migrate-yaml.d.ts +17 -0
- package/dist/commands/migrate-yaml.js +288 -0
- package/dist/commands/migrate-yaml.js.map +1 -0
- package/dist/commands/project.d.ts +7 -0
- package/dist/commands/project.js +87 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/pull.d.ts +16 -0
- package/dist/commands/pull.js +197 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +9 -0
- package/dist/commands/push.js +392 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/refresh.d.ts +9 -0
- package/dist/commands/refresh.js +123 -0
- package/dist/commands/refresh.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.js +190 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/team.d.ts +6 -0
- package/dist/commands/team.js +84 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/validate.d.ts +5 -0
- package/dist/commands/validate.js +129 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.js +81 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config/adminBackend.d.ts +43 -0
- package/dist/config/adminBackend.js +33 -0
- package/dist/config/adminBackend.js.map +1 -0
- package/dist/config/rc.d.ts +70 -0
- package/dist/config/rc.js +148 -0
- package/dist/config/rc.js.map +1 -0
- package/dist/config/schema.d.ts +132 -0
- package/dist/config/schema.js +36 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/diff/engine.d.ts +35 -0
- package/dist/diff/engine.js +305 -0
- package/dist/diff/engine.js.map +1 -0
- package/dist/diff/render.d.ts +18 -0
- package/dist/diff/render.js +129 -0
- package/dist/diff/render.js.map +1 -0
- package/dist/formatter/colors.d.ts +17 -0
- package/dist/formatter/colors.js +35 -0
- package/dist/formatter/colors.js.map +1 -0
- package/dist/formatter/human.d.ts +7 -0
- package/dist/formatter/human.js +70 -0
- package/dist/formatter/human.js.map +1 -0
- package/dist/fs/atomicWrite.d.ts +7 -0
- package/dist/fs/atomicWrite.js +37 -0
- package/dist/fs/atomicWrite.js.map +1 -0
- package/dist/i18n/dispatch.d.ts +19 -0
- package/dist/i18n/dispatch.js +27 -0
- package/dist/i18n/dispatch.js.map +1 -0
- package/dist/i18n/en.d.ts +3 -0
- package/dist/i18n/en.js +275 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/help.d.ts +3 -0
- package/dist/i18n/help.en.d.ts +149 -0
- package/dist/i18n/help.en.js +150 -0
- package/dist/i18n/help.en.js.map +1 -0
- package/dist/i18n/help.js +7 -0
- package/dist/i18n/help.js.map +1 -0
- package/dist/i18n/help.zh.d.ts +149 -0
- package/dist/i18n/help.zh.js +150 -0
- package/dist/i18n/help.zh.js.map +1 -0
- package/dist/i18n/helpFormat.d.ts +7 -0
- package/dist/i18n/helpFormat.js +51 -0
- package/dist/i18n/helpFormat.js.map +1 -0
- package/dist/i18n/helpGroups.d.ts +3 -0
- package/dist/i18n/helpGroups.js +11 -0
- package/dist/i18n/helpGroups.js.map +1 -0
- package/dist/i18n/index.d.ts +16 -0
- package/dist/i18n/index.js +46 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/peekLang.d.ts +1 -0
- package/dist/i18n/peekLang.js +16 -0
- package/dist/i18n/peekLang.js.map +1 -0
- package/dist/i18n/zh.d.ts +680 -0
- package/dist/i18n/zh.js +288 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/parser/discover.d.ts +2 -0
- package/dist/parser/discover.js +69 -0
- package/dist/parser/discover.js.map +1 -0
- package/dist/parser/load-yaml.d.ts +11 -0
- package/dist/parser/load-yaml.js +25 -0
- package/dist/parser/load-yaml.js.map +1 -0
- package/dist/pkgVersion.d.ts +9 -0
- package/dist/pkgVersion.js +22 -0
- package/dist/pkgVersion.js.map +1 -0
- package/dist/renderer/context-md.d.ts +27 -0
- package/dist/renderer/context-md.js +444 -0
- package/dist/renderer/context-md.js.map +1 -0
- package/dist/renderer/refresh-md.d.ts +18 -0
- package/dist/renderer/refresh-md.js +93 -0
- package/dist/renderer/refresh-md.js.map +1 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.js +3 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/modules.d.ts +461 -0
- package/dist/schema/modules.js +184 -0
- package/dist/schema/modules.js.map +1 -0
- package/dist/schema/prd.d.ts +1018 -0
- package/dist/schema/prd.js +65 -0
- package/dist/schema/prd.js.map +1 -0
- package/dist/sync/cliRcHelpers.d.ts +25 -0
- package/dist/sync/cliRcHelpers.js +62 -0
- package/dist/sync/cliRcHelpers.js.map +1 -0
- package/dist/sync/conflicts.d.ts +7 -0
- package/dist/sync/conflicts.js +72 -0
- package/dist/sync/conflicts.js.map +1 -0
- package/dist/sync/headProbe.d.ts +1 -0
- package/dist/sync/headProbe.js +95 -0
- package/dist/sync/headProbe.js.map +1 -0
- package/dist/sync/normalize.d.ts +10 -0
- package/dist/sync/normalize.js +13 -0
- package/dist/sync/normalize.js.map +1 -0
- package/dist/sync/syncJson.d.ts +18 -0
- package/dist/sync/syncJson.js +42 -0
- package/dist/sync/syncJson.js.map +1 -0
- package/dist/types.d.ts +70 -0
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -0
- package/dist/validators/blocking.d.ts +2 -0
- package/dist/validators/blocking.js +25 -0
- package/dist/validators/blocking.js.map +1 -0
- package/dist/validators/duplicate-ids.d.ts +2 -0
- package/dist/validators/duplicate-ids.js +58 -0
- package/dist/validators/duplicate-ids.js.map +1 -0
- package/dist/validators/references.d.ts +5 -0
- package/dist/validators/references.js +165 -0
- package/dist/validators/references.js.map +1 -0
- package/dist/validators/required-modules.d.ts +8 -0
- package/dist/validators/required-modules.js +59 -0
- package/dist/validators/required-modules.js.map +1 -0
- package/dist/validators/runner.d.ts +11 -0
- package/dist/validators/runner.js +73 -0
- package/dist/validators/runner.js.map +1 -0
- package/dist/workspace.d.ts +32 -0
- package/dist/workspace.js +37 -0
- package/dist/workspace.js.map +1 -0
- package/dist/yaml-indexer.d.ts +15 -0
- package/dist/yaml-indexer.js +112 -0
- package/dist/yaml-indexer.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { SCHEMA_VERSION_CURRENT } from "../schema/prd.js";
|
|
2
|
+
export default {
|
|
3
|
+
program_desc: `PRD Improve CLI — schema ${SCHEMA_VERSION_CURRENT}`,
|
|
4
|
+
program_lang_opt: "Output language zh | en, place before command (priority flag > PRD_LANG > config > default zh)",
|
|
5
|
+
group: {
|
|
6
|
+
lifecycle: "Lifecycle (offline)",
|
|
7
|
+
auth: "Auth / session",
|
|
8
|
+
sync: "Backend sync",
|
|
9
|
+
team: "Team / project",
|
|
10
|
+
admin: "Admin / config",
|
|
11
|
+
},
|
|
12
|
+
cmd: {
|
|
13
|
+
init: {
|
|
14
|
+
desc: "Initialize .prd/ workspace; with slug, also write a v0.2 yaml stub",
|
|
15
|
+
opts: {
|
|
16
|
+
workspace: "workspace name (default: cwd basename)",
|
|
17
|
+
team: "team slug for new yaml (default from ~/.prdrc default_team)",
|
|
18
|
+
project: "project slug for new yaml (default from ~/.prdrc default_project)",
|
|
19
|
+
backend: "rc backend name (selects which backend's default_team / default_project to read)",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
freeze: {
|
|
23
|
+
desc: "Freeze working/prd.yaml as immutable snapshot",
|
|
24
|
+
opts: {
|
|
25
|
+
version: "version vX.Y[.Z]",
|
|
26
|
+
auto: "auto-increment from existing",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
context: {
|
|
30
|
+
desc: "Render PRD as slim Markdown for coding agent",
|
|
31
|
+
opts: {
|
|
32
|
+
feature: "feature slug (required)",
|
|
33
|
+
version: "read specific frozen version",
|
|
34
|
+
working: "read working/prd.yaml (mutually exclusive with --version)",
|
|
35
|
+
includeQuestions: "include open_questions section",
|
|
36
|
+
out: "write to file instead of stdout",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
diff: {
|
|
40
|
+
desc: "Diff two PRD versions (ID-level semantic)",
|
|
41
|
+
opts: {
|
|
42
|
+
feature: "feature slug (required)",
|
|
43
|
+
from: "from ref (defaults to latest frozen)",
|
|
44
|
+
to: "to ref (defaults to working)",
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
refresh: {
|
|
48
|
+
desc: "Render refresh index view",
|
|
49
|
+
opts: {
|
|
50
|
+
feature: "feature slug (required)",
|
|
51
|
+
newPrd: "new PRD file path (for anchor slice)",
|
|
52
|
+
prdAnchor: "PRD heading text (exact / prefix / substring)",
|
|
53
|
+
prdAnchorExact: "anchor exact match only",
|
|
54
|
+
out: "write to file (default stdout)",
|
|
55
|
+
format: "output format md | json",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
validate: {
|
|
59
|
+
desc: "Validate PRD file(s)",
|
|
60
|
+
opts: {
|
|
61
|
+
feature: "Validate one feature only",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
"migrate-yaml": {
|
|
65
|
+
desc: "Upgrade yaml v0.1 → v0.2 (insert meta.team / meta.project)",
|
|
66
|
+
opts: {
|
|
67
|
+
team: "overrides ~/.prdrc default_team",
|
|
68
|
+
project: "overrides ~/.prdrc default_project",
|
|
69
|
+
nonInteractive: "disable prompts; requires --team / --project",
|
|
70
|
+
backend: "select backend from ~/.prdrc",
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
push: {
|
|
74
|
+
desc: "Push working PRD to backend",
|
|
75
|
+
opts: {
|
|
76
|
+
backend: "select backend from ~/.prdrc",
|
|
77
|
+
allowCreate: "create new feature on backend",
|
|
78
|
+
skipFrozen: "skip frozen-version sync",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
pull: {
|
|
82
|
+
desc: "Pull latest from backend",
|
|
83
|
+
opts: {
|
|
84
|
+
backend: "select backend",
|
|
85
|
+
stash: "stash local edits to .prd/.conflicts/ before fast-forward",
|
|
86
|
+
force: "overwrite local uncommitted changes",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
status: {
|
|
90
|
+
desc: "Show sync status",
|
|
91
|
+
opts: {
|
|
92
|
+
backend: "select backend",
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
login: {
|
|
96
|
+
desc: "Login and store token in ~/.prdrc",
|
|
97
|
+
opts: {
|
|
98
|
+
backend: "backend name in rc",
|
|
99
|
+
url: "backend URL",
|
|
100
|
+
bootstrap: "use bootstrap secret",
|
|
101
|
+
admin: "explicit admin-token login",
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
logout: {
|
|
105
|
+
desc: "Logout (revoke + wipe local)",
|
|
106
|
+
opts: {
|
|
107
|
+
backend: "backend name in rc",
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
whoami: {
|
|
111
|
+
desc: "Show current user",
|
|
112
|
+
opts: {
|
|
113
|
+
backend: "backend name in rc",
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
team: {
|
|
117
|
+
desc: "List teams visible to current user",
|
|
118
|
+
opts: {
|
|
119
|
+
backend: "backend name in rc",
|
|
120
|
+
},
|
|
121
|
+
sub: {
|
|
122
|
+
list: "List teams I have membership in",
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
project: {
|
|
126
|
+
desc: "List projects visible to current user",
|
|
127
|
+
opts: {
|
|
128
|
+
team: "team slug (required)",
|
|
129
|
+
backend: "backend name in rc",
|
|
130
|
+
},
|
|
131
|
+
sub: {
|
|
132
|
+
list: "List projects I have membership in",
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
admin: {
|
|
136
|
+
desc: "Admin commands (user / token / team / member / project)",
|
|
137
|
+
opts: {},
|
|
138
|
+
},
|
|
139
|
+
config: {
|
|
140
|
+
desc: "Manage ~/.prdrc",
|
|
141
|
+
opts: {},
|
|
142
|
+
sub: {
|
|
143
|
+
show: "Print current ~/.prdrc (token masked)",
|
|
144
|
+
set: "Update a ~/.prdrc field",
|
|
145
|
+
use: "Switch default backend",
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=help.en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.en.js","sourceRoot":"","sources":["../../src/i18n/help.en.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/i18n/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9B,OAAO,EAAE,MAAM,cAAc,CAAC;AAG9B,MAAM,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,EAAW,CAAC;AACrC,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
program_desc: string;
|
|
3
|
+
program_lang_opt: string;
|
|
4
|
+
group: {
|
|
5
|
+
lifecycle: string;
|
|
6
|
+
auth: string;
|
|
7
|
+
sync: string;
|
|
8
|
+
team: string;
|
|
9
|
+
admin: string;
|
|
10
|
+
};
|
|
11
|
+
cmd: {
|
|
12
|
+
init: {
|
|
13
|
+
desc: string;
|
|
14
|
+
opts: {
|
|
15
|
+
workspace: string;
|
|
16
|
+
team: string;
|
|
17
|
+
project: string;
|
|
18
|
+
backend: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
freeze: {
|
|
22
|
+
desc: string;
|
|
23
|
+
opts: {
|
|
24
|
+
version: string;
|
|
25
|
+
auto: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
context: {
|
|
29
|
+
desc: string;
|
|
30
|
+
opts: {
|
|
31
|
+
feature: string;
|
|
32
|
+
version: string;
|
|
33
|
+
working: string;
|
|
34
|
+
includeQuestions: string;
|
|
35
|
+
out: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
diff: {
|
|
39
|
+
desc: string;
|
|
40
|
+
opts: {
|
|
41
|
+
feature: string;
|
|
42
|
+
from: string;
|
|
43
|
+
to: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
refresh: {
|
|
47
|
+
desc: string;
|
|
48
|
+
opts: {
|
|
49
|
+
feature: string;
|
|
50
|
+
newPrd: string;
|
|
51
|
+
prdAnchor: string;
|
|
52
|
+
prdAnchorExact: string;
|
|
53
|
+
out: string;
|
|
54
|
+
format: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
validate: {
|
|
58
|
+
desc: string;
|
|
59
|
+
opts: {
|
|
60
|
+
feature: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
"migrate-yaml": {
|
|
64
|
+
desc: string;
|
|
65
|
+
opts: {
|
|
66
|
+
team: string;
|
|
67
|
+
project: string;
|
|
68
|
+
nonInteractive: string;
|
|
69
|
+
backend: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
push: {
|
|
73
|
+
desc: string;
|
|
74
|
+
opts: {
|
|
75
|
+
backend: string;
|
|
76
|
+
allowCreate: string;
|
|
77
|
+
skipFrozen: string;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
pull: {
|
|
81
|
+
desc: string;
|
|
82
|
+
opts: {
|
|
83
|
+
backend: string;
|
|
84
|
+
stash: string;
|
|
85
|
+
force: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
status: {
|
|
89
|
+
desc: string;
|
|
90
|
+
opts: {
|
|
91
|
+
backend: string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
login: {
|
|
95
|
+
desc: string;
|
|
96
|
+
opts: {
|
|
97
|
+
backend: string;
|
|
98
|
+
url: string;
|
|
99
|
+
bootstrap: string;
|
|
100
|
+
admin: string;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
logout: {
|
|
104
|
+
desc: string;
|
|
105
|
+
opts: {
|
|
106
|
+
backend: string;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
whoami: {
|
|
110
|
+
desc: string;
|
|
111
|
+
opts: {
|
|
112
|
+
backend: string;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
team: {
|
|
116
|
+
desc: string;
|
|
117
|
+
opts: {
|
|
118
|
+
backend: string;
|
|
119
|
+
};
|
|
120
|
+
sub: {
|
|
121
|
+
list: string;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
project: {
|
|
125
|
+
desc: string;
|
|
126
|
+
opts: {
|
|
127
|
+
team: string;
|
|
128
|
+
backend: string;
|
|
129
|
+
};
|
|
130
|
+
sub: {
|
|
131
|
+
list: string;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
admin: {
|
|
135
|
+
desc: string;
|
|
136
|
+
opts: {};
|
|
137
|
+
};
|
|
138
|
+
config: {
|
|
139
|
+
desc: string;
|
|
140
|
+
opts: {};
|
|
141
|
+
sub: {
|
|
142
|
+
show: string;
|
|
143
|
+
set: string;
|
|
144
|
+
use: string;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
export default _default;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { SCHEMA_VERSION_CURRENT } from "../schema/prd.js";
|
|
2
|
+
export default {
|
|
3
|
+
program_desc: `PRD Improve CLI — schema ${SCHEMA_VERSION_CURRENT}`,
|
|
4
|
+
program_lang_opt: "输出语言 zh | en,放命令前(优先级 flag > PRD_LANG > config > 默认 zh)",
|
|
5
|
+
group: {
|
|
6
|
+
lifecycle: "生命周期(离线)",
|
|
7
|
+
auth: "认证 / 会话",
|
|
8
|
+
sync: "后端同步",
|
|
9
|
+
team: "团队 / 项目",
|
|
10
|
+
admin: "管理 / 配置",
|
|
11
|
+
},
|
|
12
|
+
cmd: {
|
|
13
|
+
init: {
|
|
14
|
+
desc: "初始化 .prd/ 工作区;传 slug 时同时建 v0.2 yaml(meta.team/project 由 --team/--project 或 .prdrc default_team/default_project 取)",
|
|
15
|
+
opts: {
|
|
16
|
+
workspace: "指定 workspace 名称(默认从当前目录名推断)",
|
|
17
|
+
team: "v1.1 team slug(slug arg 在场时必填,fallback ~/.prdrc default_team)",
|
|
18
|
+
project: "v1.1 project slug(slug arg 在场时必填,fallback ~/.prdrc default_project)",
|
|
19
|
+
backend: "rc backend 名(影响 default_team / default_project 取哪个 backend 的值)",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
freeze: {
|
|
23
|
+
desc: "冻结当前 working/prd.yaml 为不可变快照",
|
|
24
|
+
opts: {
|
|
25
|
+
version: "版本号 vX.Y[.Z]",
|
|
26
|
+
auto: "自动取最大版本+1",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
context: {
|
|
30
|
+
desc: "渲染 PRD 为精简 Markdown 给 coding agent",
|
|
31
|
+
opts: {
|
|
32
|
+
feature: "feature slug(必填)",
|
|
33
|
+
version: "读指定 frozen 版本 vX.Y[.Z]",
|
|
34
|
+
working: "读 working/prd.yaml(与 --version 互斥)",
|
|
35
|
+
includeQuestions: "包含 open_questions 模块",
|
|
36
|
+
out: "写到文件而非 stdout",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
diff: {
|
|
40
|
+
desc: "对比两版 PRD(语义级 ID 视角)",
|
|
41
|
+
opts: {
|
|
42
|
+
feature: "feature slug(必填)",
|
|
43
|
+
from: "起点 ref(working / vX.Y[.Z]),默认 latest_frozen",
|
|
44
|
+
to: "终点 ref(working / vX.Y[.Z]),默认 working",
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
refresh: {
|
|
48
|
+
desc: "产 refresh 索引视图(yaml 索引 + refers_to 反向图 + 可选 PRD 锚点切片)",
|
|
49
|
+
opts: {
|
|
50
|
+
feature: "feature slug(必填)",
|
|
51
|
+
newPrd: "新 PRD 文件路径(仅用于 anchor 切片)",
|
|
52
|
+
prdAnchor: "PRD 中的 heading 文本(支持完整 / 前缀 / substring)",
|
|
53
|
+
prdAnchorExact: "锚点严格精确匹配(关闭 prefix / substring fallback)",
|
|
54
|
+
out: "输出到文件(默认 stdout)",
|
|
55
|
+
format: "输出格式 md | json",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
validate: {
|
|
59
|
+
desc: "校验 PRD 文件(中文默认;PRD_LANG=en 切英文)",
|
|
60
|
+
opts: {
|
|
61
|
+
feature: "只校验指定 feature",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
"migrate-yaml": {
|
|
65
|
+
desc: "升级 yaml v0.1 → v0.2(写 meta.team / meta.project)",
|
|
66
|
+
opts: {
|
|
67
|
+
team: "team slug,覆盖 ~/.prdrc default_team",
|
|
68
|
+
project: "project slug,覆盖 ~/.prdrc default_project",
|
|
69
|
+
nonInteractive: "禁用交互提示;要求 --team 和 --project 显式传入",
|
|
70
|
+
backend: "选择 ~/.prdrc 中的 backend",
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
push: {
|
|
74
|
+
desc: "推送 working/prd.yaml 到 backend",
|
|
75
|
+
opts: {
|
|
76
|
+
backend: "选择 ~/.prdrc 中的 backend",
|
|
77
|
+
allowCreate: "允许创建 backend 上尚不存在的 feature",
|
|
78
|
+
skipFrozen: "跳过 frozen 版本同步",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
pull: {
|
|
82
|
+
desc: "拉取 backend 最新到 working/prd.yaml",
|
|
83
|
+
opts: {
|
|
84
|
+
backend: "选择 ~/.prdrc 中的 backend",
|
|
85
|
+
stash: "脏 working 时把本地存到 .prd/.conflicts/ 再 fast-forward",
|
|
86
|
+
force: "覆盖本地未提交改动",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
status: {
|
|
90
|
+
desc: "查看 sync 状态",
|
|
91
|
+
opts: {
|
|
92
|
+
backend: "选择 ~/.prdrc 中的 backend",
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
login: {
|
|
96
|
+
desc: "登录 backend(取 token 写 ~/.prdrc)",
|
|
97
|
+
opts: {
|
|
98
|
+
backend: "rc 中的 backend 名(默认 'default')",
|
|
99
|
+
url: "backend URL",
|
|
100
|
+
bootstrap: "使用 bootstrap secret(否则用 admin token)",
|
|
101
|
+
admin: "显式 admin token 登录(默认行为)",
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
logout: {
|
|
105
|
+
desc: "登出 backend(吊销 token + 删本地)",
|
|
106
|
+
opts: {
|
|
107
|
+
backend: "rc 中的 backend 名",
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
whoami: {
|
|
111
|
+
desc: "显示当前登录身份",
|
|
112
|
+
opts: {
|
|
113
|
+
backend: "rc 中的 backend 名",
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
team: {
|
|
117
|
+
desc: "查询当前 user 在 backend 可见的 team",
|
|
118
|
+
opts: {
|
|
119
|
+
backend: "rc 中的 backend 名",
|
|
120
|
+
},
|
|
121
|
+
sub: {
|
|
122
|
+
list: "列出我能看见的 team",
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
project: {
|
|
126
|
+
desc: "查询当前 user 在 backend 可见的 project",
|
|
127
|
+
opts: {
|
|
128
|
+
team: "team slug(必填)",
|
|
129
|
+
backend: "rc 中的 backend 名",
|
|
130
|
+
},
|
|
131
|
+
sub: {
|
|
132
|
+
list: "列出我能看见的 project",
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
admin: {
|
|
136
|
+
desc: "管理员命令(user / token / team / member / project)",
|
|
137
|
+
opts: {},
|
|
138
|
+
},
|
|
139
|
+
config: {
|
|
140
|
+
desc: "管理 ~/.prdrc",
|
|
141
|
+
opts: {},
|
|
142
|
+
sub: {
|
|
143
|
+
show: "打印当前 ~/.prdrc(token 脱敏)",
|
|
144
|
+
set: "修改 ~/.prdrc 字段",
|
|
145
|
+
use: "切换默认 backend",
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=help.zh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.zh.js","sourceRoot":"","sources":["../../src/i18n/help.zh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Help } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* commander v12.1 无 native 命令分组(helpGroup 是 v13+),用 configureHelp
|
|
4
|
+
* 覆盖 formatHelp 自定义渲染。仅顶层 `prd` 走分组;子命令(admin / team / ...)
|
|
5
|
+
* 回退 commander 默认 formatter 不动。
|
|
6
|
+
*/
|
|
7
|
+
export declare function makeGroupedHelp(): Partial<Help>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Help } from "commander";
|
|
2
|
+
import { COMMAND_GROUPS, GROUP_ORDER } from "./helpGroups.js";
|
|
3
|
+
import { getHelp } from "./help.js";
|
|
4
|
+
import { readLocale } from "./index.js";
|
|
5
|
+
/**
|
|
6
|
+
* commander v12.1 无 native 命令分组(helpGroup 是 v13+),用 configureHelp
|
|
7
|
+
* 覆盖 formatHelp 自定义渲染。仅顶层 `prd` 走分组;子命令(admin / team / ...)
|
|
8
|
+
* 回退 commander 默认 formatter 不动。
|
|
9
|
+
*/
|
|
10
|
+
export function makeGroupedHelp() {
|
|
11
|
+
return {
|
|
12
|
+
formatHelp(cmd, helper) {
|
|
13
|
+
// 子命令(cmd.name() !== "prd")用 commander 默认渲染
|
|
14
|
+
if (cmd.name() !== "prd") {
|
|
15
|
+
return Help.prototype.formatHelp.call(helper, cmd, helper);
|
|
16
|
+
}
|
|
17
|
+
const h = getHelp(readLocale());
|
|
18
|
+
const pad = helper.padWidth(cmd, helper);
|
|
19
|
+
const usage = `Usage: ${helper.commandUsage(cmd)}\n\n${cmd.description()}\n`;
|
|
20
|
+
const opts = helper
|
|
21
|
+
.visibleOptions(cmd)
|
|
22
|
+
.map((o) => ` ${helper.optionTerm(o).padEnd(pad)} ${helper.optionDescription(o)}`)
|
|
23
|
+
.join("\n");
|
|
24
|
+
const byGroup = {
|
|
25
|
+
lifecycle: [],
|
|
26
|
+
auth: [],
|
|
27
|
+
sync: [],
|
|
28
|
+
team: [],
|
|
29
|
+
admin: [],
|
|
30
|
+
};
|
|
31
|
+
for (const sub of helper.visibleCommands(cmd)) {
|
|
32
|
+
const g = COMMAND_GROUPS[sub.name()];
|
|
33
|
+
if (g)
|
|
34
|
+
byGroup[g].push(sub);
|
|
35
|
+
}
|
|
36
|
+
const cmdsSection = GROUP_ORDER.map((g) => {
|
|
37
|
+
const list = byGroup[g];
|
|
38
|
+
if (!list.length)
|
|
39
|
+
return "";
|
|
40
|
+
const lines = list
|
|
41
|
+
.map((s) => ` ${helper.subcommandTerm(s).padEnd(pad)} ${helper.subcommandDescription(s)}`)
|
|
42
|
+
.join("\n");
|
|
43
|
+
return `${h.group[g]}:\n${lines}`;
|
|
44
|
+
})
|
|
45
|
+
.filter(Boolean)
|
|
46
|
+
.join("\n\n");
|
|
47
|
+
return `${usage}\nOptions:\n${opts}\n\nCommands:\n${cmdsSection}\n`;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=helpFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpFormat.js","sourceRoot":"","sources":["../../src/i18n/helpFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAiB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,UAAU,CAAC,GAAY,EAAE,MAAY;YACnC,4CAA4C;YAC5C,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAEzC,MAAM,KAAK,GAAG,UAAU,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;YAE7E,MAAM,IAAI,GAAG,MAAM;iBAChB,cAAc,CAAC,GAAG,CAAC;iBACnB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAC1E;iBACA,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,OAAO,GAAgC;gBAC3C,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,EAAE;aACV,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC;oBAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,IAAI;qBACf,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAClF;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC;YACpC,CAAC,CAAC;iBACC,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhB,OAAO,GAAG,KAAK,eAAe,IAAI,kBAAkB,WAAW,IAAI,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const COMMAND_GROUPS = {
|
|
2
|
+
init: "lifecycle", freeze: "lifecycle", context: "lifecycle",
|
|
3
|
+
diff: "lifecycle", refresh: "lifecycle", validate: "lifecycle",
|
|
4
|
+
"migrate-yaml": "lifecycle",
|
|
5
|
+
login: "auth", logout: "auth", whoami: "auth",
|
|
6
|
+
push: "sync", pull: "sync", status: "sync",
|
|
7
|
+
team: "team", project: "team",
|
|
8
|
+
admin: "admin", config: "admin",
|
|
9
|
+
};
|
|
10
|
+
export const GROUP_ORDER = ["lifecycle", "auth", "sync", "team", "admin"];
|
|
11
|
+
//# sourceMappingURL=helpGroups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpGroups.js","sourceRoot":"","sources":["../../src/i18n/helpGroups.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW;IAC5D,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW;IAC9D,cAAc,EAAE,WAAW;IAC3B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC7C,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC1C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAC7B,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n key 命名约定(团队共识,新增 key 时遵守):
|
|
3
|
+
*
|
|
4
|
+
* 1. snake_case —— 全小写 + 下划线分隔
|
|
5
|
+
* 2. 语义动词在前 —— missing_* / duplicate_* / reference_* / unsupported_* / schema_*
|
|
6
|
+
* 3. key === ValidationIssue.code(一一对应)
|
|
7
|
+
* 4. 占位符通过 details 对象传入,函数式渲染:`(d) => "...${d.x}..."`
|
|
8
|
+
* 5. zh.ts 与 en.ts 必须 key 集合完全一致(测试会断言)
|
|
9
|
+
*/
|
|
10
|
+
import zh from "./zh.js";
|
|
11
|
+
export type Locale = "zh" | "en";
|
|
12
|
+
export type MessageMap = typeof zh;
|
|
13
|
+
export declare function resolveLang(flagValue?: string): Locale;
|
|
14
|
+
export declare function setLocale(flagValue?: string): void;
|
|
15
|
+
export declare function readLocale(): Locale;
|
|
16
|
+
export declare function getMessages(locale: Locale): MessageMap;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n key 命名约定(团队共识,新增 key 时遵守):
|
|
3
|
+
*
|
|
4
|
+
* 1. snake_case —— 全小写 + 下划线分隔
|
|
5
|
+
* 2. 语义动词在前 —— missing_* / duplicate_* / reference_* / unsupported_* / schema_*
|
|
6
|
+
* 3. key === ValidationIssue.code(一一对应)
|
|
7
|
+
* 4. 占位符通过 details 对象传入,函数式渲染:`(d) => "...${d.x}..."`
|
|
8
|
+
* 5. zh.ts 与 en.ts 必须 key 集合完全一致(测试会断言)
|
|
9
|
+
*/
|
|
10
|
+
import zh from "./zh.js";
|
|
11
|
+
import en from "./en.js";
|
|
12
|
+
import { loadRc } from "../config/rc.js";
|
|
13
|
+
const maps = { zh, en };
|
|
14
|
+
function normalizeLang(raw) {
|
|
15
|
+
const v = raw.trim().toLowerCase().replace(/_/g, "-");
|
|
16
|
+
if (v === "en" || v.startsWith("en-") || v === "english")
|
|
17
|
+
return "en";
|
|
18
|
+
if (v === "zh" || v.startsWith("zh-") || v === "cn" || v === "chinese")
|
|
19
|
+
return "zh";
|
|
20
|
+
return "zh"; // unknown → silent fallback
|
|
21
|
+
}
|
|
22
|
+
function readRcLang() {
|
|
23
|
+
try {
|
|
24
|
+
const r = loadRc();
|
|
25
|
+
return r.ok ? r.rc.lang : undefined;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return undefined; // rc 坏不破坏 CLI
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function resolveLang(flagValue) {
|
|
32
|
+
const candidate = flagValue ?? process.env.PRD_LANG ?? readRcLang() ?? "zh";
|
|
33
|
+
return normalizeLang(candidate);
|
|
34
|
+
}
|
|
35
|
+
let resolvedLocale;
|
|
36
|
+
// flagValue 有值 → 锁定;falsy(含 undefined)→ reset 到"现算"模式
|
|
37
|
+
export function setLocale(flagValue) {
|
|
38
|
+
resolvedLocale = flagValue ? resolveLang(flagValue) : undefined;
|
|
39
|
+
}
|
|
40
|
+
export function readLocale() {
|
|
41
|
+
return resolvedLocale ?? resolveLang();
|
|
42
|
+
}
|
|
43
|
+
export function getMessages(locale) {
|
|
44
|
+
return maps[locale];
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,MAAM,IAAI,GAA+B,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAEpD,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO,IAAI,CAAC,CAAC,4BAA4B;AAC3C,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,EAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,CAAC,cAAc;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAkB;IAC5C,MAAM,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,UAAU,EAAE,IAAI,IAAI,CAAC;IAC5E,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,cAAkC,CAAC;AACvC,sDAAsD;AACtD,MAAM,UAAU,SAAS,CAAC,SAAkB;IAC1C,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,cAAc,IAAI,WAAW,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function peekLangArg(argv: string[]): string | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Scan argv for --lang <v> / --lang=<v>, position-independent.
|
|
2
|
+
// Used before commander.parse() (help render) + as flag fallback.
|
|
3
|
+
export function peekLangArg(argv) {
|
|
4
|
+
for (let i = 0; i < argv.length; i++) {
|
|
5
|
+
const a = argv[i];
|
|
6
|
+
if (a === "--lang") {
|
|
7
|
+
const next = argv[i + 1];
|
|
8
|
+
return next && !next.startsWith("-") ? next : undefined;
|
|
9
|
+
}
|
|
10
|
+
if (a.startsWith("--lang=")) {
|
|
11
|
+
return a.slice("--lang=".length) || undefined;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=peekLang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peekLang.js","sourceRoot":"","sources":["../../src/i18n/peekLang.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|