@dsh-workbench/shared 1.1.1 → 1.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/contract/protocol/market-index.d.ts +35 -1
- package/dist/contract/protocol/market-index.js +1 -0
- package/dist/host/changelog.d.ts +7 -0
- package/dist/host/changelog.js +12 -0
- package/dist/host/market-index-claim.d.ts +18 -0
- package/dist/host/market-index-claim.js +83 -0
- package/dist/host/market-index.js +34 -2
- package/dist/host.d.ts +2 -0
- package/dist/host.js +2 -0
- package/dist/i18n/en.js +45 -5
- package/dist/i18n/index.d.ts +46 -6
- package/dist/i18n/zh.d.ts +45 -5
- package/dist/i18n/zh.js +45 -5
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/lib/git-address.d.ts +23 -0
- package/dist/lib/git-address.js +79 -0
- package/package.json +1 -1
- package/src/contract/protocol/market-index.ts +27 -2
- package/src/host/__tests__/changelog.test.ts +33 -0
- package/src/host/__tests__/market-index.test.ts +166 -0
- package/src/host/changelog.ts +19 -0
- package/src/host/market-index-claim.ts +91 -0
- package/src/host/market-index.ts +33 -2
- package/src/host.ts +2 -0
- package/src/i18n/en.ts +45 -5
- package/src/i18n/zh.ts +45 -5
- package/src/index.ts +1 -0
- package/src/lib/git-address.test.ts +63 -0
- package/src/lib/git-address.ts +92 -0
package/dist/i18n/index.d.ts
CHANGED
|
@@ -258,6 +258,7 @@ export declare const dictionaries: {
|
|
|
258
258
|
readonly 'panels.market.add.failurePnpmMissing': "没有找到 pnpm,无法安装";
|
|
259
259
|
readonly 'panels.market.add.failureInstalled': "它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。";
|
|
260
260
|
readonly 'panels.market.add.failureGeneric': "安装过程中出错,原因见安装详情";
|
|
261
|
+
readonly 'panels.market.add.failureCredentials': "这个仓库要凭证:本机没有它的 git 凭据。先在终端里 clone 一次、配好凭据助手,或改用 SSH 地址,再装一次。";
|
|
261
262
|
readonly 'panels.market.add.approveTitle': "需要你允许安装脚本";
|
|
262
263
|
readonly 'panels.market.add.approveCaution': "只允许你信得过的包:安装脚本会以你的权限在这台机器上运行。";
|
|
263
264
|
readonly 'panels.market.add.approveRun': "允许并继续安装";
|
|
@@ -299,10 +300,16 @@ export declare const dictionaries: {
|
|
|
299
300
|
readonly 'panels.discover.addingSource': "正在添加…";
|
|
300
301
|
readonly 'panels.discover.addFirstSource': "添加索引源";
|
|
301
302
|
readonly 'panels.discover.removeSource': "移除";
|
|
302
|
-
readonly 'panels.discover.
|
|
303
|
-
readonly 'panels.discover.
|
|
304
|
-
readonly 'panels.discover.
|
|
305
|
-
readonly 'panels.discover.
|
|
303
|
+
readonly 'panels.discover.removeTitle': "移除这个索引源?";
|
|
304
|
+
readonly 'panels.discover.removeBody': "会把「{label}」从这份列表里移除;仓库本身不会被删,之后还能再添加。";
|
|
305
|
+
readonly 'panels.discover.sourceActions': "「{label}」的操作";
|
|
306
|
+
readonly 'panels.discover.sourceStateWritable': "可发布";
|
|
307
|
+
readonly 'panels.discover.sourceStateReadOnly': "仅读取模块列表";
|
|
308
|
+
readonly 'panels.discover.sourceEnable': "设为可发布";
|
|
309
|
+
readonly 'panels.discover.sourceDisable': "设为只读";
|
|
310
|
+
readonly 'panels.discover.sourceWorking': "设置中…";
|
|
311
|
+
readonly 'panels.discover.sourceEnabled': "已把「{label}」设为可发布";
|
|
312
|
+
readonly 'panels.discover.sourceReadOnly': "已把「{label}」设为只读";
|
|
306
313
|
readonly 'panels.discover.refresh': "刷新";
|
|
307
314
|
readonly 'panels.discover.search': "搜索模块";
|
|
308
315
|
readonly 'panels.discover.clearSearch': "清除搜索";
|
|
@@ -324,12 +331,13 @@ export declare const dictionaries: {
|
|
|
324
331
|
readonly 'panels.discover.noSourceHint': "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块";
|
|
325
332
|
readonly 'panels.discover.sourcesFailed': "无法读取索引源";
|
|
326
333
|
readonly 'panels.discover.unreadable': "无法读取此索引";
|
|
334
|
+
readonly 'panels.discover.sourceAuth': "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。";
|
|
327
335
|
readonly 'panels.discover.invalid': "此索引的格式无效";
|
|
328
336
|
readonly 'panels.discover.emptyRepo': "这个仓库还没有任何提交";
|
|
329
337
|
readonly 'panels.discover.missingIndex': "仓库里还没有索引文件 {path}";
|
|
330
338
|
readonly 'panels.discover.initTitle': "把这个仓库初始化成模块市场索引?";
|
|
331
339
|
readonly 'panels.discover.initCta': "初始化成市场索引";
|
|
332
|
-
readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md
|
|
340
|
+
readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到按包名分的 packages/<包名>/。仓库的写权限归它的所有者。";
|
|
333
341
|
readonly 'panels.discover.initBranch': "分支";
|
|
334
342
|
readonly 'panels.discover.initBranchHint': "索引和打包文件都发到这个分支;空仓库会新建它。";
|
|
335
343
|
readonly 'panels.discover.initBranchBad': "分支名只能用字母、数字、点、下划线、斜杠或短横线";
|
|
@@ -347,8 +355,23 @@ export declare const dictionaries: {
|
|
|
347
355
|
readonly 'panels.discover.badShellDetail': "此版本与当前的工作台 {current} 不兼容,它要求 {peer}";
|
|
348
356
|
readonly 'panels.discover.unverified': "工作台未验证";
|
|
349
357
|
readonly 'panels.discover.installing': "正在安装…";
|
|
358
|
+
readonly 'panels.discover.installingNamed': "正在安装「{name}」…";
|
|
359
|
+
readonly 'panels.discover.cancelInstall': "取消安装";
|
|
360
|
+
readonly 'panels.discover.cancelling': "正在取消…";
|
|
361
|
+
readonly 'panels.discover.installCancelled': "已取消安装:{name}";
|
|
350
362
|
readonly 'panels.discover.installedDone': "装好了:{name}";
|
|
351
363
|
readonly 'panels.discover.failed': "操作失败:{reason}";
|
|
364
|
+
readonly 'panels.discover.transportTitle': "从哪读这个仓库";
|
|
365
|
+
readonly 'panels.discover.transportSsh': "SSH";
|
|
366
|
+
readonly 'panels.discover.transportHttps': "HTTPS";
|
|
367
|
+
readonly 'panels.discover.transportOk': "能读";
|
|
368
|
+
readonly 'panels.discover.transportAuth': "要凭证";
|
|
369
|
+
readonly 'panels.discover.transportUnreachable': "连不上";
|
|
370
|
+
readonly 'panels.discover.transportUnknown': "没探成";
|
|
371
|
+
readonly 'panels.discover.transportChecking': "正在探测…";
|
|
372
|
+
readonly 'panels.discover.transportTest': "试这个地址";
|
|
373
|
+
readonly 'panels.discover.transportPlaceholder': "或贴一个别的地址(公司镜像、别名)";
|
|
374
|
+
readonly 'panels.discover.transportNeedsAuth': "这个仓库要凭证:先在终端里把它 clone 一次,或配好 SSH key / 凭据助手;配好后再点安装。";
|
|
352
375
|
readonly 'panels.discover.expand': "展开版本";
|
|
353
376
|
readonly 'panels.discover.collapse': "收起版本";
|
|
354
377
|
readonly 'panels.discover.versionCount': "{n} 个版本";
|
|
@@ -639,6 +662,13 @@ export declare const dictionaries: {
|
|
|
639
662
|
readonly 'approval.publish.version': "版本";
|
|
640
663
|
readonly 'approval.publish.author': "作者";
|
|
641
664
|
readonly 'approval.publish.authorMissing': "未署名";
|
|
665
|
+
readonly 'approval.publish.owner': "认领人";
|
|
666
|
+
readonly 'approval.publish.ownerUnowned': "原来没署名";
|
|
667
|
+
readonly 'approval.publish.ownerTaken': "已有主人:{owner}";
|
|
668
|
+
readonly 'approval.publish.unit': "模块 id";
|
|
669
|
+
readonly 'approval.publish.unitTaken': "已被 {entry} 占用";
|
|
670
|
+
readonly 'approval.publish.path': "产物目录";
|
|
671
|
+
readonly 'approval.publish.pathTaken': "已被 {entry} 占用";
|
|
642
672
|
readonly 'approval.publish.registry': "源";
|
|
643
673
|
readonly 'approval.publish.repo': "仓库";
|
|
644
674
|
readonly 'approval.publish.branch': "分支";
|
|
@@ -649,6 +679,7 @@ export declare const dictionaries: {
|
|
|
649
679
|
readonly 'approval.publish.twoCommits': "打包文件 + market.json 两次提交,一次推送";
|
|
650
680
|
readonly 'approval.publish.reading': "读取中…";
|
|
651
681
|
readonly 'approval.publish.changelog': "{version} 的更新日志";
|
|
682
|
+
readonly 'approval.publish.changelogPending': "{version} 这一版会写进更新日志,随包发布";
|
|
652
683
|
readonly 'approval.publish.changelogMissing': "这一版还没有更新日志({version}),发布会被拦下";
|
|
653
684
|
readonly 'approval.publish.targetAuto': "按配置默认";
|
|
654
685
|
readonly 'approval.publish.targetTeam': "团队源";
|
|
@@ -657,6 +688,15 @@ export declare const dictionaries: {
|
|
|
657
688
|
readonly 'approval.publish.targetGit': "git 仓库";
|
|
658
689
|
readonly 'approval.publish.targetMarket': "模块市场索引";
|
|
659
690
|
readonly 'approval.publish.targetLocal': "留在本机";
|
|
691
|
+
readonly 'approval.market.source': "索引源";
|
|
692
|
+
readonly 'approval.market.url': "地址";
|
|
693
|
+
readonly 'approval.market.action': "这次操作";
|
|
694
|
+
readonly 'approval.market.policy': "当前状态";
|
|
695
|
+
readonly 'approval.market.enable': "设为可发布";
|
|
696
|
+
readonly 'approval.market.disable': "改回只读";
|
|
697
|
+
readonly 'approval.market.writable': "可发布";
|
|
698
|
+
readonly 'approval.market.readOnly': "仅读取模块列表";
|
|
699
|
+
readonly 'approval.market.reading': "正在读取…";
|
|
660
700
|
readonly 'markdown.copy': "复制";
|
|
661
701
|
readonly 'markdown.copied': "已复制";
|
|
662
702
|
readonly 'markdown.footnotes': "脚注";
|
|
@@ -712,7 +752,7 @@ export declare const dictionaries: {
|
|
|
712
752
|
readonly 'configSync.emptyProviders': "工作台还没有任何模型供应商 —— 去「配置同步」从某个 profile 把模型供应商那几行同步过来,或自己去「模型」里配。";
|
|
713
753
|
readonly 'configSync.failed': "同步没成功,再试一次。";
|
|
714
754
|
};
|
|
715
|
-
en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.updateNeedsWorkbench" | "panels.market.updateIncompatible" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.pendingFollowUp" | "panels.market.migrationHint" | "panels.market.migrateAction" | "panels.market.migrating" | "panels.market.migrateConfirmTitle" | "panels.market.migrateConfirmDetail" | "panels.market.migrateConfirmAck" | "panels.market.migrateConfirmYes" | "panels.market.migrateDone" | "panels.market.dismissFollowUp" | "panels.market.dismissing" | "panels.market.dismissFollowUpTitle" | "panels.market.dismissFollowUpDetail" | "panels.market.dismissFollowUpAck" | "panels.market.dismissFollowUpYes" | "panels.market.dismissed" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.slowHint" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeSourceNamed" | "panels.discover.useSource" | "panels.discover.useSourceNamed" | "panels.discover.sourceCurrent" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.clearSearch" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.update" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.toolchain.ok" | "env.toolchain.warn" | "env.opencli.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.opencli" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
|
|
755
|
+
en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.updateNeedsWorkbench" | "panels.market.updateIncompatible" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.pendingFollowUp" | "panels.market.migrationHint" | "panels.market.migrateAction" | "panels.market.migrating" | "panels.market.migrateConfirmTitle" | "panels.market.migrateConfirmDetail" | "panels.market.migrateConfirmAck" | "panels.market.migrateConfirmYes" | "panels.market.migrateDone" | "panels.market.dismissFollowUp" | "panels.market.dismissing" | "panels.market.dismissFollowUpTitle" | "panels.market.dismissFollowUpDetail" | "panels.market.dismissFollowUpAck" | "panels.market.dismissFollowUpYes" | "panels.market.dismissed" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.failureCredentials" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.slowHint" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeTitle" | "panels.discover.removeBody" | "panels.discover.sourceActions" | "panels.discover.sourceStateWritable" | "panels.discover.sourceStateReadOnly" | "panels.discover.sourceEnable" | "panels.discover.sourceDisable" | "panels.discover.sourceWorking" | "panels.discover.sourceEnabled" | "panels.discover.sourceReadOnly" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.clearSearch" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.sourceAuth" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installingNamed" | "panels.discover.cancelInstall" | "panels.discover.cancelling" | "panels.discover.installCancelled" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.transportTitle" | "panels.discover.transportSsh" | "panels.discover.transportHttps" | "panels.discover.transportOk" | "panels.discover.transportAuth" | "panels.discover.transportUnreachable" | "panels.discover.transportUnknown" | "panels.discover.transportChecking" | "panels.discover.transportTest" | "panels.discover.transportPlaceholder" | "panels.discover.transportNeedsAuth" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.update" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.toolchain.ok" | "env.toolchain.warn" | "env.opencli.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.opencli" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.owner" | "approval.publish.ownerUnowned" | "approval.publish.ownerTaken" | "approval.publish.unit" | "approval.publish.unitTaken" | "approval.publish.path" | "approval.publish.pathTaken" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogPending" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "approval.market.source" | "approval.market.url" | "approval.market.action" | "approval.market.policy" | "approval.market.enable" | "approval.market.disable" | "approval.market.writable" | "approval.market.readOnly" | "approval.market.reading" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
|
|
716
756
|
};
|
|
717
757
|
/** 中文词表的键类型(从 `zh.ts` 转出):`en` 与模块词表都得覆盖同一批键。 */
|
|
718
758
|
export type { WorkbenchMessages };
|
package/dist/i18n/zh.d.ts
CHANGED
|
@@ -256,6 +256,7 @@ export declare const zh: {
|
|
|
256
256
|
readonly 'panels.market.add.failurePnpmMissing': "没有找到 pnpm,无法安装";
|
|
257
257
|
readonly 'panels.market.add.failureInstalled': "它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。";
|
|
258
258
|
readonly 'panels.market.add.failureGeneric': "安装过程中出错,原因见安装详情";
|
|
259
|
+
readonly 'panels.market.add.failureCredentials': "这个仓库要凭证:本机没有它的 git 凭据。先在终端里 clone 一次、配好凭据助手,或改用 SSH 地址,再装一次。";
|
|
259
260
|
readonly 'panels.market.add.approveTitle': "需要你允许安装脚本";
|
|
260
261
|
readonly 'panels.market.add.approveCaution': "只允许你信得过的包:安装脚本会以你的权限在这台机器上运行。";
|
|
261
262
|
readonly 'panels.market.add.approveRun': "允许并继续安装";
|
|
@@ -297,10 +298,16 @@ export declare const zh: {
|
|
|
297
298
|
readonly 'panels.discover.addingSource': "正在添加…";
|
|
298
299
|
readonly 'panels.discover.addFirstSource': "添加索引源";
|
|
299
300
|
readonly 'panels.discover.removeSource': "移除";
|
|
300
|
-
readonly 'panels.discover.
|
|
301
|
-
readonly 'panels.discover.
|
|
302
|
-
readonly 'panels.discover.
|
|
303
|
-
readonly 'panels.discover.
|
|
301
|
+
readonly 'panels.discover.removeTitle': "移除这个索引源?";
|
|
302
|
+
readonly 'panels.discover.removeBody': "会把「{label}」从这份列表里移除;仓库本身不会被删,之后还能再添加。";
|
|
303
|
+
readonly 'panels.discover.sourceActions': "「{label}」的操作";
|
|
304
|
+
readonly 'panels.discover.sourceStateWritable': "可发布";
|
|
305
|
+
readonly 'panels.discover.sourceStateReadOnly': "仅读取模块列表";
|
|
306
|
+
readonly 'panels.discover.sourceEnable': "设为可发布";
|
|
307
|
+
readonly 'panels.discover.sourceDisable': "设为只读";
|
|
308
|
+
readonly 'panels.discover.sourceWorking': "设置中…";
|
|
309
|
+
readonly 'panels.discover.sourceEnabled': "已把「{label}」设为可发布";
|
|
310
|
+
readonly 'panels.discover.sourceReadOnly': "已把「{label}」设为只读";
|
|
304
311
|
readonly 'panels.discover.refresh': "刷新";
|
|
305
312
|
readonly 'panels.discover.search': "搜索模块";
|
|
306
313
|
readonly 'panels.discover.clearSearch': "清除搜索";
|
|
@@ -322,12 +329,13 @@ export declare const zh: {
|
|
|
322
329
|
readonly 'panels.discover.noSourceHint': "添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块";
|
|
323
330
|
readonly 'panels.discover.sourcesFailed': "无法读取索引源";
|
|
324
331
|
readonly 'panels.discover.unreadable': "无法读取此索引";
|
|
332
|
+
readonly 'panels.discover.sourceAuth': "这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。";
|
|
325
333
|
readonly 'panels.discover.invalid': "此索引的格式无效";
|
|
326
334
|
readonly 'panels.discover.emptyRepo': "这个仓库还没有任何提交";
|
|
327
335
|
readonly 'panels.discover.missingIndex': "仓库里还没有索引文件 {path}";
|
|
328
336
|
readonly 'panels.discover.initTitle': "把这个仓库初始化成模块市场索引?";
|
|
329
337
|
readonly 'panels.discover.initCta': "初始化成市场索引";
|
|
330
|
-
readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md
|
|
338
|
+
readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到按包名分的 packages/<包名>/。仓库的写权限归它的所有者。";
|
|
331
339
|
readonly 'panels.discover.initBranch': "分支";
|
|
332
340
|
readonly 'panels.discover.initBranchHint': "索引和打包文件都发到这个分支;空仓库会新建它。";
|
|
333
341
|
readonly 'panels.discover.initBranchBad': "分支名只能用字母、数字、点、下划线、斜杠或短横线";
|
|
@@ -345,8 +353,23 @@ export declare const zh: {
|
|
|
345
353
|
readonly 'panels.discover.badShellDetail': "此版本与当前的工作台 {current} 不兼容,它要求 {peer}";
|
|
346
354
|
readonly 'panels.discover.unverified': "工作台未验证";
|
|
347
355
|
readonly 'panels.discover.installing': "正在安装…";
|
|
356
|
+
readonly 'panels.discover.installingNamed': "正在安装「{name}」…";
|
|
357
|
+
readonly 'panels.discover.cancelInstall': "取消安装";
|
|
358
|
+
readonly 'panels.discover.cancelling': "正在取消…";
|
|
359
|
+
readonly 'panels.discover.installCancelled': "已取消安装:{name}";
|
|
348
360
|
readonly 'panels.discover.installedDone': "装好了:{name}";
|
|
349
361
|
readonly 'panels.discover.failed': "操作失败:{reason}";
|
|
362
|
+
readonly 'panels.discover.transportTitle': "从哪读这个仓库";
|
|
363
|
+
readonly 'panels.discover.transportSsh': "SSH";
|
|
364
|
+
readonly 'panels.discover.transportHttps': "HTTPS";
|
|
365
|
+
readonly 'panels.discover.transportOk': "能读";
|
|
366
|
+
readonly 'panels.discover.transportAuth': "要凭证";
|
|
367
|
+
readonly 'panels.discover.transportUnreachable': "连不上";
|
|
368
|
+
readonly 'panels.discover.transportUnknown': "没探成";
|
|
369
|
+
readonly 'panels.discover.transportChecking': "正在探测…";
|
|
370
|
+
readonly 'panels.discover.transportTest': "试这个地址";
|
|
371
|
+
readonly 'panels.discover.transportPlaceholder': "或贴一个别的地址(公司镜像、别名)";
|
|
372
|
+
readonly 'panels.discover.transportNeedsAuth': "这个仓库要凭证:先在终端里把它 clone 一次,或配好 SSH key / 凭据助手;配好后再点安装。";
|
|
350
373
|
readonly 'panels.discover.expand': "展开版本";
|
|
351
374
|
readonly 'panels.discover.collapse': "收起版本";
|
|
352
375
|
readonly 'panels.discover.versionCount': "{n} 个版本";
|
|
@@ -637,6 +660,13 @@ export declare const zh: {
|
|
|
637
660
|
readonly 'approval.publish.version': "版本";
|
|
638
661
|
readonly 'approval.publish.author': "作者";
|
|
639
662
|
readonly 'approval.publish.authorMissing': "未署名";
|
|
663
|
+
readonly 'approval.publish.owner': "认领人";
|
|
664
|
+
readonly 'approval.publish.ownerUnowned': "原来没署名";
|
|
665
|
+
readonly 'approval.publish.ownerTaken': "已有主人:{owner}";
|
|
666
|
+
readonly 'approval.publish.unit': "模块 id";
|
|
667
|
+
readonly 'approval.publish.unitTaken': "已被 {entry} 占用";
|
|
668
|
+
readonly 'approval.publish.path': "产物目录";
|
|
669
|
+
readonly 'approval.publish.pathTaken': "已被 {entry} 占用";
|
|
640
670
|
readonly 'approval.publish.registry': "源";
|
|
641
671
|
readonly 'approval.publish.repo': "仓库";
|
|
642
672
|
readonly 'approval.publish.branch': "分支";
|
|
@@ -647,6 +677,7 @@ export declare const zh: {
|
|
|
647
677
|
readonly 'approval.publish.twoCommits': "打包文件 + market.json 两次提交,一次推送";
|
|
648
678
|
readonly 'approval.publish.reading': "读取中…";
|
|
649
679
|
readonly 'approval.publish.changelog': "{version} 的更新日志";
|
|
680
|
+
readonly 'approval.publish.changelogPending': "{version} 这一版会写进更新日志,随包发布";
|
|
650
681
|
readonly 'approval.publish.changelogMissing': "这一版还没有更新日志({version}),发布会被拦下";
|
|
651
682
|
readonly 'approval.publish.targetAuto': "按配置默认";
|
|
652
683
|
readonly 'approval.publish.targetTeam': "团队源";
|
|
@@ -655,6 +686,15 @@ export declare const zh: {
|
|
|
655
686
|
readonly 'approval.publish.targetGit': "git 仓库";
|
|
656
687
|
readonly 'approval.publish.targetMarket': "模块市场索引";
|
|
657
688
|
readonly 'approval.publish.targetLocal': "留在本机";
|
|
689
|
+
readonly 'approval.market.source': "索引源";
|
|
690
|
+
readonly 'approval.market.url': "地址";
|
|
691
|
+
readonly 'approval.market.action': "这次操作";
|
|
692
|
+
readonly 'approval.market.policy': "当前状态";
|
|
693
|
+
readonly 'approval.market.enable': "设为可发布";
|
|
694
|
+
readonly 'approval.market.disable': "改回只读";
|
|
695
|
+
readonly 'approval.market.writable': "可发布";
|
|
696
|
+
readonly 'approval.market.readOnly': "仅读取模块列表";
|
|
697
|
+
readonly 'approval.market.reading': "正在读取…";
|
|
658
698
|
readonly 'markdown.copy': "复制";
|
|
659
699
|
readonly 'markdown.copied': "已复制";
|
|
660
700
|
readonly 'markdown.footnotes': "脚注";
|
package/dist/i18n/zh.js
CHANGED
|
@@ -248,6 +248,7 @@ export const zh = {
|
|
|
248
248
|
'panels.market.add.failurePnpmMissing': '没有找到 pnpm,无法安装',
|
|
249
249
|
'panels.market.add.failureInstalled': '它已经装在这份工作台里了。同一个包不能就地覆盖,得先卸载再装;这次卸载也没成功。',
|
|
250
250
|
'panels.market.add.failureGeneric': '安装过程中出错,原因见安装详情',
|
|
251
|
+
'panels.market.add.failureCredentials': '这个仓库要凭证:本机没有它的 git 凭据。先在终端里 clone 一次、配好凭据助手,或改用 SSH 地址,再装一次。',
|
|
251
252
|
'panels.market.add.approveTitle': '需要你允许安装脚本',
|
|
252
253
|
'panels.market.add.approveCaution': '只允许你信得过的包:安装脚本会以你的权限在这台机器上运行。',
|
|
253
254
|
'panels.market.add.approveRun': '允许并继续安装',
|
|
@@ -289,10 +290,16 @@ export const zh = {
|
|
|
289
290
|
'panels.discover.addingSource': '正在添加…',
|
|
290
291
|
'panels.discover.addFirstSource': '添加索引源',
|
|
291
292
|
'panels.discover.removeSource': '移除',
|
|
292
|
-
'panels.discover.
|
|
293
|
-
'panels.discover.
|
|
294
|
-
'panels.discover.
|
|
295
|
-
'panels.discover.
|
|
293
|
+
'panels.discover.removeTitle': '移除这个索引源?',
|
|
294
|
+
'panels.discover.removeBody': '会把「{label}」从这份列表里移除;仓库本身不会被删,之后还能再添加。',
|
|
295
|
+
'panels.discover.sourceActions': '「{label}」的操作',
|
|
296
|
+
'panels.discover.sourceStateWritable': '可发布',
|
|
297
|
+
'panels.discover.sourceStateReadOnly': '仅读取模块列表',
|
|
298
|
+
'panels.discover.sourceEnable': '设为可发布',
|
|
299
|
+
'panels.discover.sourceDisable': '设为只读',
|
|
300
|
+
'panels.discover.sourceWorking': '设置中…',
|
|
301
|
+
'panels.discover.sourceEnabled': '已把「{label}」设为可发布',
|
|
302
|
+
'panels.discover.sourceReadOnly': '已把「{label}」设为只读',
|
|
296
303
|
'panels.discover.refresh': '刷新',
|
|
297
304
|
'panels.discover.search': '搜索模块',
|
|
298
305
|
'panels.discover.clearSearch': '清除搜索',
|
|
@@ -314,12 +321,13 @@ export const zh = {
|
|
|
314
321
|
'panels.discover.noSourceHint': '添加一个模块市场索引(http 地址或 git 仓库),即可在这里浏览和安装其中的模块',
|
|
315
322
|
'panels.discover.sourcesFailed': '无法读取索引源',
|
|
316
323
|
'panels.discover.unreadable': '无法读取此索引',
|
|
324
|
+
'panels.discover.sourceAuth': '这个索引源读不了:本机没有它的 git 凭据。配好凭据(或在源里改用 SSH 地址),再点右上角的刷新。',
|
|
317
325
|
'panels.discover.invalid': '此索引的格式无效',
|
|
318
326
|
'panels.discover.emptyRepo': '这个仓库还没有任何提交',
|
|
319
327
|
'panels.discover.missingIndex': '仓库里还没有索引文件 {path}',
|
|
320
328
|
'panels.discover.initTitle': '把这个仓库初始化成模块市场索引?',
|
|
321
329
|
'panels.discover.initCta': '初始化成市场索引',
|
|
322
|
-
'panels.discover.initWhat': '会在 {branch} 分支写 market.json 与 README.md
|
|
330
|
+
'panels.discover.initWhat': '会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到按包名分的 packages/<包名>/。仓库的写权限归它的所有者。',
|
|
323
331
|
'panels.discover.initBranch': '分支',
|
|
324
332
|
'panels.discover.initBranchHint': '索引和打包文件都发到这个分支;空仓库会新建它。',
|
|
325
333
|
'panels.discover.initBranchBad': '分支名只能用字母、数字、点、下划线、斜杠或短横线',
|
|
@@ -337,8 +345,23 @@ export const zh = {
|
|
|
337
345
|
'panels.discover.badShellDetail': '此版本与当前的工作台 {current} 不兼容,它要求 {peer}',
|
|
338
346
|
'panels.discover.unverified': '工作台未验证',
|
|
339
347
|
'panels.discover.installing': '正在安装…',
|
|
348
|
+
'panels.discover.installingNamed': '正在安装「{name}」…',
|
|
349
|
+
'panels.discover.cancelInstall': '取消安装',
|
|
350
|
+
'panels.discover.cancelling': '正在取消…',
|
|
351
|
+
'panels.discover.installCancelled': '已取消安装:{name}',
|
|
340
352
|
'panels.discover.installedDone': '装好了:{name}',
|
|
341
353
|
'panels.discover.failed': '操作失败:{reason}',
|
|
354
|
+
'panels.discover.transportTitle': '从哪读这个仓库',
|
|
355
|
+
'panels.discover.transportSsh': 'SSH',
|
|
356
|
+
'panels.discover.transportHttps': 'HTTPS',
|
|
357
|
+
'panels.discover.transportOk': '能读',
|
|
358
|
+
'panels.discover.transportAuth': '要凭证',
|
|
359
|
+
'panels.discover.transportUnreachable': '连不上',
|
|
360
|
+
'panels.discover.transportUnknown': '没探成',
|
|
361
|
+
'panels.discover.transportChecking': '正在探测…',
|
|
362
|
+
'panels.discover.transportTest': '试这个地址',
|
|
363
|
+
'panels.discover.transportPlaceholder': '或贴一个别的地址(公司镜像、别名)',
|
|
364
|
+
'panels.discover.transportNeedsAuth': '这个仓库要凭证:先在终端里把它 clone 一次,或配好 SSH key / 凭据助手;配好后再点安装。',
|
|
342
365
|
'panels.discover.expand': '展开版本',
|
|
343
366
|
'panels.discover.collapse': '收起版本',
|
|
344
367
|
'panels.discover.versionCount': '{n} 个版本',
|
|
@@ -629,6 +652,13 @@ export const zh = {
|
|
|
629
652
|
'approval.publish.version': '版本',
|
|
630
653
|
'approval.publish.author': '作者',
|
|
631
654
|
'approval.publish.authorMissing': '未署名',
|
|
655
|
+
'approval.publish.owner': '认领人',
|
|
656
|
+
'approval.publish.ownerUnowned': '原来没署名',
|
|
657
|
+
'approval.publish.ownerTaken': '已有主人:{owner}',
|
|
658
|
+
'approval.publish.unit': '模块 id',
|
|
659
|
+
'approval.publish.unitTaken': '已被 {entry} 占用',
|
|
660
|
+
'approval.publish.path': '产物目录',
|
|
661
|
+
'approval.publish.pathTaken': '已被 {entry} 占用',
|
|
632
662
|
'approval.publish.registry': '源',
|
|
633
663
|
'approval.publish.repo': '仓库',
|
|
634
664
|
'approval.publish.branch': '分支',
|
|
@@ -639,6 +669,7 @@ export const zh = {
|
|
|
639
669
|
'approval.publish.twoCommits': '打包文件 + market.json 两次提交,一次推送',
|
|
640
670
|
'approval.publish.reading': '读取中…',
|
|
641
671
|
'approval.publish.changelog': '{version} 的更新日志',
|
|
672
|
+
'approval.publish.changelogPending': '{version} 这一版会写进更新日志,随包发布',
|
|
642
673
|
'approval.publish.changelogMissing': '这一版还没有更新日志({version}),发布会被拦下',
|
|
643
674
|
'approval.publish.targetAuto': '按配置默认',
|
|
644
675
|
'approval.publish.targetTeam': '团队源',
|
|
@@ -647,6 +678,15 @@ export const zh = {
|
|
|
647
678
|
'approval.publish.targetGit': 'git 仓库',
|
|
648
679
|
'approval.publish.targetMarket': '模块市场索引',
|
|
649
680
|
'approval.publish.targetLocal': '留在本机',
|
|
681
|
+
'approval.market.source': '索引源',
|
|
682
|
+
'approval.market.url': '地址',
|
|
683
|
+
'approval.market.action': '这次操作',
|
|
684
|
+
'approval.market.policy': '当前状态',
|
|
685
|
+
'approval.market.enable': '设为可发布',
|
|
686
|
+
'approval.market.disable': '改回只读',
|
|
687
|
+
'approval.market.writable': '可发布',
|
|
688
|
+
'approval.market.readOnly': '仅读取模块列表',
|
|
689
|
+
'approval.market.reading': '正在读取…',
|
|
650
690
|
'markdown.copy': '复制',
|
|
651
691
|
'markdown.copied': '已复制',
|
|
652
692
|
'markdown.footnotes': '脚注',
|
package/dist/index.d.ts
CHANGED
|
@@ -66,6 +66,7 @@ export * from './i18n/settings.js';
|
|
|
66
66
|
export * from './i18n/zh.js';
|
|
67
67
|
export * from './lib/blocker-action.js';
|
|
68
68
|
export * from './lib/market-index.js';
|
|
69
|
+
export * from './lib/git-address.js';
|
|
69
70
|
export * from './lib/board-fact.js';
|
|
70
71
|
export * from './lib/busy.js';
|
|
71
72
|
export * from './lib/dsh-client.js';
|
package/dist/index.js
CHANGED
|
@@ -66,6 +66,7 @@ export * from './i18n/settings.js';
|
|
|
66
66
|
export * from './i18n/zh.js';
|
|
67
67
|
export * from './lib/blocker-action.js';
|
|
68
68
|
export * from './lib/market-index.js';
|
|
69
|
+
export * from './lib/git-address.js';
|
|
69
70
|
export * from './lib/board-fact.js';
|
|
70
71
|
export * from './lib/busy.js';
|
|
71
72
|
export * from './lib/dsh-client.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface GitAddress {
|
|
2
|
+
readonly kind: 'https' | 'ssh';
|
|
3
|
+
readonly host: string;
|
|
4
|
+
readonly path: string;
|
|
5
|
+
readonly user?: string;
|
|
6
|
+
readonly port?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface GitTransportCandidate {
|
|
9
|
+
readonly kind: 'https' | 'ssh';
|
|
10
|
+
readonly url: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 把一个 git 地址拆成「哪台主机 + 哪个路径」,不管发布者当初用的是 https、ssh 还是
|
|
14
|
+
* scp 那种 `git@host:path` 写法;认不出来给 undefined。
|
|
15
|
+
*/
|
|
16
|
+
export declare function gitAddressOf(url: string): GitAddress | undefined;
|
|
17
|
+
/** 一份地址的规范写法:ssh 一律成 `ssh://user@host/path`(pnpm 认这个),https 原样。 */
|
|
18
|
+
export declare function gitAddressText(address: GitAddress): string;
|
|
19
|
+
/**
|
|
20
|
+
* 同一个仓库的两种读法,发布者用的那种排前面。ssh 那条一律规范成 `ssh://` 形式,
|
|
21
|
+
* 因为 `git@host:path` 拼进安装 spec 时 pnpm 不认;https 那条保留发布者的原样(含 http)。
|
|
22
|
+
*/
|
|
23
|
+
export declare function gitTransportCandidates(url: string): readonly GitTransportCandidate[];
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const SCP = /^(?:([A-Za-z0-9._-]+)@)?([A-Za-z0-9.-]+):(?!\/)(\S+)$/;
|
|
2
|
+
function bare(url) {
|
|
3
|
+
return url.trim().replace(/^git\+/, '');
|
|
4
|
+
}
|
|
5
|
+
function pathOf(pathname) {
|
|
6
|
+
return pathname.replace(/^\/+/, '').replace(/\/+$/, '');
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 把一个 git 地址拆成「哪台主机 + 哪个路径」,不管发布者当初用的是 https、ssh 还是
|
|
10
|
+
* scp 那种 `git@host:path` 写法;认不出来给 undefined。
|
|
11
|
+
*/
|
|
12
|
+
export function gitAddressOf(url) {
|
|
13
|
+
const text = bare(url);
|
|
14
|
+
if (text === '')
|
|
15
|
+
return undefined;
|
|
16
|
+
if (text.includes('://')) {
|
|
17
|
+
let parsed;
|
|
18
|
+
try {
|
|
19
|
+
parsed = new URL(text);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:' && parsed.protocol !== 'ssh:') {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const path = pathOf(parsed.pathname);
|
|
28
|
+
if (path === '')
|
|
29
|
+
return undefined;
|
|
30
|
+
const port = parsed.port === '' ? undefined : Number(parsed.port);
|
|
31
|
+
const shared = {
|
|
32
|
+
host: parsed.hostname,
|
|
33
|
+
path,
|
|
34
|
+
...(port === undefined ? {} : { port }),
|
|
35
|
+
};
|
|
36
|
+
if (parsed.protocol !== 'ssh:')
|
|
37
|
+
return { kind: 'https', ...shared };
|
|
38
|
+
return { kind: 'ssh', ...shared, ...(parsed.username === '' ? {} : { user: parsed.username }) };
|
|
39
|
+
}
|
|
40
|
+
const scp = SCP.exec(text);
|
|
41
|
+
if (scp === null)
|
|
42
|
+
return undefined;
|
|
43
|
+
const path = pathOf(scp[3] ?? '');
|
|
44
|
+
if (path === '')
|
|
45
|
+
return undefined;
|
|
46
|
+
return {
|
|
47
|
+
kind: 'ssh',
|
|
48
|
+
host: scp[2] ?? '',
|
|
49
|
+
path,
|
|
50
|
+
...(scp[1] === undefined ? {} : { user: scp[1] }),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** 一份地址的规范写法:ssh 一律成 `ssh://user@host/path`(pnpm 认这个),https 原样。 */
|
|
54
|
+
export function gitAddressText(address) {
|
|
55
|
+
const port = address.port === undefined ? '' : `:${String(address.port)}`;
|
|
56
|
+
if (address.kind === 'ssh') {
|
|
57
|
+
return `ssh://${address.user === undefined || address.user === '' ? 'git' : address.user}@${address.host}${port}/${address.path}`;
|
|
58
|
+
}
|
|
59
|
+
return `https://${address.host}${port}/${address.path}`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 同一个仓库的两种读法,发布者用的那种排前面。ssh 那条一律规范成 `ssh://` 形式,
|
|
63
|
+
* 因为 `git@host:path` 拼进安装 spec 时 pnpm 不认;https 那条保留发布者的原样(含 http)。
|
|
64
|
+
*/
|
|
65
|
+
export function gitTransportCandidates(url) {
|
|
66
|
+
const address = gitAddressOf(url);
|
|
67
|
+
if (address === undefined) {
|
|
68
|
+
const only = bare(url);
|
|
69
|
+
return only === '' ? [] : [{ kind: only.startsWith('ssh') ? 'ssh' : 'https', url: only }];
|
|
70
|
+
}
|
|
71
|
+
const primary = {
|
|
72
|
+
kind: address.kind,
|
|
73
|
+
url: address.kind === 'ssh' ? gitAddressText(address) : bare(url),
|
|
74
|
+
};
|
|
75
|
+
const other = address.kind === 'https'
|
|
76
|
+
? { kind: 'ssh', url: gitAddressText({ kind: 'ssh', host: address.host, path: address.path }) }
|
|
77
|
+
: { kind: 'https', url: gitAddressText({ kind: 'https', host: address.host, path: address.path }) };
|
|
78
|
+
return other.url === primary.url ? [primary] : [primary, other];
|
|
79
|
+
}
|