vscode-behavior3 2.5.0 → 2.6.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 +147 -50
- package/README.zh-CN.md +317 -0
- package/dist/build-cli.js +930 -43
- package/dist/extension.js +1534 -1106
- package/dist/webview/assets/editor-DQTG2Z7M.js +8 -0
- package/dist/webview/index.html +1 -1
- package/dist/webview/locales/en.json +13 -0
- package/dist/webview/locales/zh.json +13 -0
- package/package.json +1 -1
- package/webview/shared/b3build-model.d.ts +133 -9
- package/webview/shared/b3type.ts +1 -0
- package/dist/webview/assets/editor-BPxOdZMY.js +0 -8
package/dist/build-cli.js
CHANGED
|
@@ -212428,6 +212428,473 @@ var checkOneof = (arg, argValue, inputValue) => {
|
|
|
212428
212428
|
return normalizedArgValue !== "" && normalizedInputValue === "" || normalizedArgValue === "" && normalizedInputValue !== "";
|
|
212429
212429
|
};
|
|
212430
212430
|
|
|
212431
|
+
// media/locales/en.json
|
|
212432
|
+
var en_default = {
|
|
212433
|
+
about: "About Behavior3",
|
|
212434
|
+
actuaSize: "Actual Size",
|
|
212435
|
+
actualSize: "Actual Size",
|
|
212436
|
+
add: "Add",
|
|
212437
|
+
alertNewVersion: "This file is created by a newer version of Behavior3({{version}}), please upgrade to the latest version.",
|
|
212438
|
+
batch: "Batch Script",
|
|
212439
|
+
batchCompleted: "Batch completed",
|
|
212440
|
+
batchFailed: "Batch failed, more information can be found in the console.",
|
|
212441
|
+
build: "Build",
|
|
212442
|
+
buildCompleted: "Build completed",
|
|
212443
|
+
buildFailed: "Build failed, more information can be found in the console.",
|
|
212444
|
+
cancel: "Cancel",
|
|
212445
|
+
compact: "Compact",
|
|
212446
|
+
console: "Console",
|
|
212447
|
+
copy: "Copy",
|
|
212448
|
+
createProject: "Create Project",
|
|
212449
|
+
checkExpr: "Check expression",
|
|
212450
|
+
cut: "Cut",
|
|
212451
|
+
delete: "Delete",
|
|
212452
|
+
deleteNode: "Delete Node",
|
|
212453
|
+
devTools: "Toggle Developer Tools",
|
|
212454
|
+
donotSave: "Don't Save",
|
|
212455
|
+
duplicate: "Duplicate",
|
|
212456
|
+
editSubtree: "Edit Subtree",
|
|
212457
|
+
fieldRequired: "Field '{{field}}' is required",
|
|
212458
|
+
forceReload: "Force Reload",
|
|
212459
|
+
fullscreen: "Toggle Full Screen",
|
|
212460
|
+
hide: "Hide Behavior3",
|
|
212461
|
+
hideOthers: "Hide Others",
|
|
212462
|
+
insertNode: "Insert Node",
|
|
212463
|
+
jumpNode: "Jump Node",
|
|
212464
|
+
language: "Language",
|
|
212465
|
+
moveToTrash: "Move to Trash",
|
|
212466
|
+
newFile: "New File...",
|
|
212467
|
+
newFolder: "New Folder...",
|
|
212468
|
+
newWindow: "New Window",
|
|
212469
|
+
nodeDefinition: "NODES",
|
|
212470
|
+
normal: "Normal",
|
|
212471
|
+
open: "Open...",
|
|
212472
|
+
openProject: "Open Project",
|
|
212473
|
+
paste: "Paste",
|
|
212474
|
+
quit: "Quit Behavior3",
|
|
212475
|
+
recent: "Recent",
|
|
212476
|
+
redo: "Redo",
|
|
212477
|
+
reload: "Reload",
|
|
212478
|
+
reset: "Reset",
|
|
212479
|
+
"reset.confirm": "Reset to original value?",
|
|
212480
|
+
"reset.defaultConfirm": "Reset to default value?",
|
|
212481
|
+
rename: "Rename...",
|
|
212482
|
+
replace: "Replace",
|
|
212483
|
+
reportIssue: "Report Issue",
|
|
212484
|
+
revealFileOnMac: "Reveal in Finder",
|
|
212485
|
+
revealFileOnWindows: "Reveal in File Explorer",
|
|
212486
|
+
save: "Save",
|
|
212487
|
+
saveAll: "Save All",
|
|
212488
|
+
saveAs: "Save As...",
|
|
212489
|
+
saveAsSubtree: "Save As Subtree",
|
|
212490
|
+
searchFile: "Search File",
|
|
212491
|
+
searchNode: "Search Node",
|
|
212492
|
+
selectAll: "Select All",
|
|
212493
|
+
services: "Services",
|
|
212494
|
+
setupBuildScript: "Setup Build Script",
|
|
212495
|
+
start: "Start",
|
|
212496
|
+
undo: "Undo",
|
|
212497
|
+
unhide: "Show All",
|
|
212498
|
+
zoomIn: "Zoom In",
|
|
212499
|
+
zoomOut: "Zoom Out",
|
|
212500
|
+
"menu.edit": "Edit",
|
|
212501
|
+
"menu.file": "File",
|
|
212502
|
+
"menu.view": "View",
|
|
212503
|
+
"menu.window": "Window",
|
|
212504
|
+
"menu.help": "Help",
|
|
212505
|
+
"workspace.saveAllOnClose": "Do you want to save the changes to the following {{count}} files?",
|
|
212506
|
+
"workspace.saveOnClose": "Do you want to save the changes you made to '{{name}}'?",
|
|
212507
|
+
"workspace.reloadFile": "'{{name}}' has changed, do you want to reload now?",
|
|
212508
|
+
"explorer.deleteFile": "Are you sure you want delete '{{name}}'?",
|
|
212509
|
+
"explorer.deleteFolder": "Are you sure you want delete '{{name}}' and its contents?",
|
|
212510
|
+
"explorer.replaceFile": "Are you sure you want replace '{{name}}'?",
|
|
212511
|
+
"explorer.restoreFileInfo": "You can restore this file from the Trash.",
|
|
212512
|
+
"explorer.title": "Explorer",
|
|
212513
|
+
"tree.overview": "Overview",
|
|
212514
|
+
"tree.name": "Tree name",
|
|
212515
|
+
"tree.desc": "Tree desc",
|
|
212516
|
+
"tree.export": "Export",
|
|
212517
|
+
"tree.prefix": "ID prefix",
|
|
212518
|
+
"tree.group": "Enable Node Grouping",
|
|
212519
|
+
"tree.group.placeholder": "Select node groups",
|
|
212520
|
+
"tree.vars": "Define Variables",
|
|
212521
|
+
"tree.vars.local": "Local Variables",
|
|
212522
|
+
"tree.vars.add": "Add Variable",
|
|
212523
|
+
"tree.vars.name": "name",
|
|
212524
|
+
"tree.vars.invalidName": "Invalid variable name",
|
|
212525
|
+
"tree.vars.desc": "description",
|
|
212526
|
+
"tree.vars.imports": "Import Variables",
|
|
212527
|
+
"tree.vars.subtree": "Subtree Variables",
|
|
212528
|
+
"tree.import.add": "Add Import",
|
|
212529
|
+
"tree.custom": "Custom Data",
|
|
212530
|
+
"tree.custom.add": "Add Entry",
|
|
212531
|
+
"tree.custom.key": "key",
|
|
212532
|
+
"tree.custom.value": "value",
|
|
212533
|
+
"tree.custom.type.string": "String value",
|
|
212534
|
+
"tree.custom.type.number": "Number value",
|
|
212535
|
+
"tree.custom.type.boolean": "Boolean value",
|
|
212536
|
+
"tree.custom.type.invalid": "Invalid custom value",
|
|
212537
|
+
"regnode.input": "Input: ",
|
|
212538
|
+
"regnode.output": "Output: ",
|
|
212539
|
+
"regnode.args": "Args: ",
|
|
212540
|
+
"regnode.mark": "Mark: ",
|
|
212541
|
+
"regnode.subtree": "Subtree: ",
|
|
212542
|
+
"node.args": "Const arguments",
|
|
212543
|
+
"node.children.unlimited": "Unlimited",
|
|
212544
|
+
"node.children": "Num children",
|
|
212545
|
+
"node.debug": "Debug",
|
|
212546
|
+
"node.deleteRootNodeDenied": "Unable to delete the root node",
|
|
212547
|
+
"node.dropDenied": "This node position is denied to drop the node",
|
|
212548
|
+
"node.desc": "Node desc",
|
|
212549
|
+
"node.disabled": "Disabled",
|
|
212550
|
+
"node.editSubtreeDenied": "Unable to edit the subtree node",
|
|
212551
|
+
"node.editFailed": "Node '{{name}}' edit failed",
|
|
212552
|
+
"node.group": "Node group",
|
|
212553
|
+
"node.groupNotEnabled": "One of '{{group}}' node group is not enabled in current file",
|
|
212554
|
+
"node.id": "Node id",
|
|
212555
|
+
"node.inputVariable": "Input variables",
|
|
212556
|
+
"node.invalidChildren": "Invalid number of children",
|
|
212557
|
+
"node.invalidExpression": "Invalid expression",
|
|
212558
|
+
"node.invalidValue": "Invalid value",
|
|
212559
|
+
"node.invalidVariableName": "Invalid variable name, should start with a letter or underscore",
|
|
212560
|
+
"node.name": "Node name",
|
|
212561
|
+
"node.noNodeSelected": "No node selected",
|
|
212562
|
+
"node.notFound": "Node '{{name}}' not found",
|
|
212563
|
+
"node.oneof.error": "Only one is allowed between input '{{input}}' and argument '{{desc}}({{arg}})'",
|
|
212564
|
+
"node.oneof.inputNotfound": "Input '{{input}}' not found",
|
|
212565
|
+
"node.outputVariable": "Output variables",
|
|
212566
|
+
"node.pasteDataError": "Paste data error",
|
|
212567
|
+
"node.rootNodeAsSubtree": "Root node cann't be save as subtree",
|
|
212568
|
+
"node.subtree": "Subtree",
|
|
212569
|
+
"node.subtreeMissing": "Subtree file is missing: {{path}}",
|
|
212570
|
+
"node.subtreeInvalid": "Subtree file is invalid: {{path}}",
|
|
212571
|
+
"node.subtreeCyclic": "Subtree reference is cyclic: {{path}}",
|
|
212572
|
+
"node.subtreeOpenFailed": "Failed to open subtree: file not found or unreadable ({{path}})",
|
|
212573
|
+
"node.subtreePathError": "You should save the subtree inside the current workspace",
|
|
212574
|
+
"node.subtreeSaveRootError": "Root node cann't be save as subtree",
|
|
212575
|
+
"node.subtreeSaveSuccess": "Saved and converted to subtree node: {{path}}",
|
|
212576
|
+
"node.moveSubtreeDenied": "Cannot move nodes inside a subtree",
|
|
212577
|
+
"node.dropSubtreeInternalDenied": "Cannot drop onto a subtree internal node",
|
|
212578
|
+
"node.moveRootDenied": "Cannot move the root node",
|
|
212579
|
+
"node.dropAroundRootDenied": "Cannot place a node before or after the root",
|
|
212580
|
+
"node.addChildToSubtreeRefDenied": "Cannot add child nodes to a subtree reference",
|
|
212581
|
+
"node.moveIntoDescendantDenied": "Cannot move a node into its own descendant",
|
|
212582
|
+
"node.type": "Node type",
|
|
212583
|
+
"node.undefinedVariable": "Variable '{{variable}}' is not defined",
|
|
212584
|
+
"node.jsonData": "JSON Data",
|
|
212585
|
+
"node.unknown.title": "Unknown Node",
|
|
212586
|
+
"node.unknownType": "Unknown",
|
|
212587
|
+
"node.resolutionError": "Resolution Error",
|
|
212588
|
+
"node.unknown.desc": "New node",
|
|
212589
|
+
"build.success": "Build completed.",
|
|
212590
|
+
"build.failed": "Build failed.",
|
|
212591
|
+
"editor.loading": "Loading editor...",
|
|
212592
|
+
"editor.externalChangeConflict": "External file change detected while the document has unsaved edits.",
|
|
212593
|
+
"editor.reloadFromDisk": "Reload",
|
|
212594
|
+
"editor.dismissConflict": "Dismiss",
|
|
212595
|
+
"editor.newerVersionEditDenied": "This file is created by a newer version of Behavior3({{version}}). Please upgrade to the latest version.",
|
|
212596
|
+
"inspector.noActiveDocument": "Open a Behavior3 editor to inspect and edit the active tree.",
|
|
212597
|
+
"inspector.embeddedModeNotice": "Inspector is configured to appear inside the Behavior3 editor.",
|
|
212598
|
+
"inspector.embeddedToolbar.build": "Build Behavior Tree",
|
|
212599
|
+
"inspector.embeddedToolbar.toggleEditorMode": "Toggle Editor Mode",
|
|
212600
|
+
"inspector.embeddedToolbar.toggleInspectorNodeJson": "Toggle Raw Node JSON",
|
|
212601
|
+
"inspector.embeddedToolbar.createProject": "Create Project",
|
|
212602
|
+
"inspector.embeddedToolbar.createTree": "Create Behavior Tree",
|
|
212603
|
+
"mutation.invalidJsonPath": "Invalid JSON path: {{path}}",
|
|
212604
|
+
"mutation.missingSelectedNode": "No selected node is available for this mutation.",
|
|
212605
|
+
"mutation.selectedNodeMismatch": "The selected node changed before the mutation was applied.",
|
|
212606
|
+
"mutation.missingTargetNode": "The target node could not be found.",
|
|
212607
|
+
"mutation.missingSourceNode": "The source node could not be found.",
|
|
212608
|
+
"mutation.missingSubtreeOriginal": "Missing subtree original snapshot for this mutation.",
|
|
212609
|
+
"mutation.missingDetachedSubtreeRoot": "Missing detached subtree snapshot for this mutation.",
|
|
212610
|
+
"mutation.moveRootDenied": "Cannot move the root node.",
|
|
212611
|
+
"mutation.dropAroundRootDenied": "Cannot drop before or after the root node.",
|
|
212612
|
+
"mutation.addChildToSubtreeRefDenied": "Cannot add a child directly to a subtree reference.",
|
|
212613
|
+
"mutation.moveIntoDescendantDenied": "Cannot move a node into its own descendant.",
|
|
212614
|
+
"mutation.deleteRootNodeDenied": "Cannot delete the root node.",
|
|
212615
|
+
"mutation.editSubtreeDenied": "Cannot edit structure on a subtree reference.",
|
|
212616
|
+
"mutation.saveSelectedAsSubtreeRootDenied": "The root node cannot be saved as a subtree.",
|
|
212617
|
+
"mutation.saveSelectedAsSubtreeMissingTarget": "The target node could not be saved as a subtree.",
|
|
212618
|
+
"mutation.saveSelectedAsSubtreePostSaveMissingTarget": "The target node could not be found after saving the subtree.",
|
|
212619
|
+
"runtime.nodeCheckRuntimeHasErrors": "Checker runtime has errors.",
|
|
212620
|
+
"runtime.invalidSavedSubtreePath": "Host returned an invalid saved subtree path.",
|
|
212621
|
+
"runtime.unsupportedDocumentMutation": "Unsupported document mutation.",
|
|
212622
|
+
"runtime.visibleHookNotRegistered": "Visible '{{name}}' is not registered.",
|
|
212623
|
+
"runtime.visibleHookFailed": "Visible '{{name}}' failed: {{error}}",
|
|
212624
|
+
"runtime.visibleExpressionDisabled": "Visible expression is disabled; enable settings.allowNewFunction.",
|
|
212625
|
+
"runtime.visibleExpressionCompileFailed": "Visible expression failed to compile: {{error}}",
|
|
212626
|
+
"runtime.visibleExpressionFailed": "Visible expression failed: {{error}}",
|
|
212627
|
+
"runtime.visibleExpressionUnknownArg": "Visible expression referenced args.{{property}}, but '{{property}}' is not in the defined arg scope (defined args: {{definedArgs}}).",
|
|
212628
|
+
"runtime.visibleExpressionNoArgs": "Visible expression referenced args.{{property}}, but this node defines no args.",
|
|
212629
|
+
"runtime.visibleExpressionUnknownSlotIndex": "Visible expression referenced {{fieldKind}}[{{index}}], but {{definedScope}}.",
|
|
212630
|
+
"runtime.visibleExpressionInvalidSlotProperty": "Visible expression referenced {{fieldKind}}.{{property}}, but {{fieldKind}} only supports defined numeric slot indices.",
|
|
212631
|
+
"runtime.visibleSlotScopeNone": "this node defines no {{fieldKind}} slots",
|
|
212632
|
+
"runtime.visibleSlotScopeIndex": "the defined {{fieldKind}} index is {{start}}",
|
|
212633
|
+
"runtime.visibleSlotScopeRange": "the defined {{fieldKind}} indices are {{start}}..{{end}}",
|
|
212634
|
+
"runtime.visibleSlotScopeRangeVariadic": "the defined {{fieldKind}} indices are {{start}}..{{end}}+",
|
|
212635
|
+
"override.resetTitle": "Reset this override?",
|
|
212636
|
+
"form.enterJsonArray": "Enter JSON array",
|
|
212637
|
+
"form.enterJsonValue": "Enter JSON value",
|
|
212638
|
+
"form.unset": "Unset",
|
|
212639
|
+
"form.true": "True",
|
|
212640
|
+
"form.false": "False",
|
|
212641
|
+
"validation.jsonArray": "{{name}} must be a JSON array",
|
|
212642
|
+
"validation.integer": "{{field}} must be an integer",
|
|
212643
|
+
"validation.number": "{{field}} must be a number",
|
|
212644
|
+
"validation.missingOneofInput": "Missing input slot for oneof '{{input}}'",
|
|
212645
|
+
"validation.oneof": "Only one of '{{left}}' and '{{right}}' can be set",
|
|
212646
|
+
"validation.invalidJsonPath": "Path must be a workdir-relative .json file: {{path}}",
|
|
212647
|
+
"validation.variableDescriptionRequired": "Variable description is required",
|
|
212648
|
+
"validation.customKeyRequired": "Custom key is required",
|
|
212649
|
+
"validation.customKeyDuplicate": "Custom key '{{key}}' is duplicated",
|
|
212650
|
+
"validation.customValueInvalid": "Custom value must be a string, number, or boolean"
|
|
212651
|
+
};
|
|
212652
|
+
|
|
212653
|
+
// media/locales/zh.json
|
|
212654
|
+
var zh_default = {
|
|
212655
|
+
about: "\u5173\u4E8E Behavior3",
|
|
212656
|
+
actualSize: "\u5B9E\u9645\u5927\u5C0F",
|
|
212657
|
+
add: "\u6DFB\u52A0",
|
|
212658
|
+
alertNewVersion: "\u6B64\u6587\u4EF6\u7531\u65B0\u7248\u672C Behavior3({{version}}) \u521B\u5EFA\uFF0C\u8BF7\u5347\u7EA7\u5230\u6700\u65B0\u7248\u672C\u3002",
|
|
212659
|
+
batch: "\u6279\u5904\u7406\u811A\u672C",
|
|
212660
|
+
batchCompleted: "\u6279\u5904\u7406\u5B8C\u6210",
|
|
212661
|
+
batchFailed: "\u6279\u5904\u7406\u51FA\u73B0\u9519\u8BEF\uFF0C\u8BE6\u60C5\u8BF7\u67E5\u770B\u63A7\u5236\u53F0\uFF01",
|
|
212662
|
+
build: "\u6784\u5EFA",
|
|
212663
|
+
buildCompleted: "\u6784\u5EFA\u5B8C\u6210",
|
|
212664
|
+
buildFailed: "\u6784\u5EFA\u51FA\u73B0\u9519\u8BEF\uFF0C\u8BE6\u60C5\u8BF7\u67E5\u770B\u63A7\u5236\u53F0\uFF01",
|
|
212665
|
+
cancel: "\u53D6\u6D88",
|
|
212666
|
+
compact: "\u7D27\u51D1",
|
|
212667
|
+
console: "\u63A7\u5236\u53F0",
|
|
212668
|
+
checkExpr: "\u68C0\u67E5\u8868\u8FBE\u5F0F",
|
|
212669
|
+
copy: "\u590D\u5236",
|
|
212670
|
+
createProject: "\u65B0\u5EFA\u9879\u76EE",
|
|
212671
|
+
cut: "\u526A\u5207",
|
|
212672
|
+
delete: "\u5220\u9664",
|
|
212673
|
+
deleteNode: "\u5220\u9664\u8282\u70B9",
|
|
212674
|
+
devTools: "\u5207\u6362\u5F00\u53D1\u8005\u5DE5\u5177",
|
|
212675
|
+
donotSave: "\u4E0D\u4FDD\u5B58",
|
|
212676
|
+
duplicate: "\u751F\u6210\u526F\u672C",
|
|
212677
|
+
editSubtree: "\u7F16\u8F91\u5B50\u6811",
|
|
212678
|
+
fieldRequired: "\u5B57\u6BB5\u201C{{field}}\u201D\u5FC5\u586B",
|
|
212679
|
+
forceReload: "\u5F3A\u5236\u91CD\u65B0\u52A0\u8F7D",
|
|
212680
|
+
fullscreen: "\u5207\u6362\u5168\u5C4F",
|
|
212681
|
+
hide: "\u9690\u85CF Behavior3",
|
|
212682
|
+
hideOthers: "\u9690\u85CF\u5176\u5B83",
|
|
212683
|
+
insertNode: "\u63D2\u5165\u8282\u70B9",
|
|
212684
|
+
jumpNode: "\u8DF3\u8F6C\u8282\u70B9",
|
|
212685
|
+
language: "\u8BED\u8A00",
|
|
212686
|
+
moveToTrash: "\u79FB\u81F3\u56DE\u6536\u7AD9",
|
|
212687
|
+
newFile: "\u65B0\u5EFA\u884C\u4E3A\u6811...",
|
|
212688
|
+
newFolder: "\u65B0\u5EFA\u76EE\u5F55...",
|
|
212689
|
+
newWindow: "\u65B0\u5EFA\u7A97\u53E3",
|
|
212690
|
+
nodeDefinition: "\u8282\u70B9\u5B9A\u4E49",
|
|
212691
|
+
normal: "\u6B63\u5E38",
|
|
212692
|
+
open: "\u6253\u5F00...",
|
|
212693
|
+
openProject: "\u6253\u5F00\u9879\u76EE",
|
|
212694
|
+
paste: "\u7C98\u8D34",
|
|
212695
|
+
quit: "\u9000\u51FA Behavior3",
|
|
212696
|
+
recent: "\u6700\u8FD1\u6253\u5F00",
|
|
212697
|
+
redo: "\u91CD\u505A",
|
|
212698
|
+
reload: "\u91CD\u65B0\u52A0\u8F7D",
|
|
212699
|
+
reset: "\u91CD\u7F6E",
|
|
212700
|
+
"reset.confirm": "\u91CD\u7F6E\u4E3A\u539F\u59CB\u503C\uFF1F",
|
|
212701
|
+
"reset.defaultConfirm": "\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C\uFF1F",
|
|
212702
|
+
rename: "\u91CD\u547D\u540D...",
|
|
212703
|
+
replace: "\u66FF\u6362",
|
|
212704
|
+
reportIssue: "\u95EE\u9898\u53CD\u9988",
|
|
212705
|
+
revealFileOnMac: "\u5728 Finder \u4E2D\u663E\u793A",
|
|
212706
|
+
revealFileOnWindows: "\u5728\u6587\u4EF6\u7BA1\u7406\u5668\u4E2D\u6253\u5F00",
|
|
212707
|
+
save: "\u4FDD\u5B58",
|
|
212708
|
+
saveAll: "\u4FDD\u5B58\u5168\u90E8",
|
|
212709
|
+
saveAs: "\u53E6\u5B58\u4E3A...",
|
|
212710
|
+
saveAsSubtree: "\u53E6\u5B58\u4E3A\u5B50\u6811",
|
|
212711
|
+
searchFile: "\u641C\u7D22\u6587\u4EF6",
|
|
212712
|
+
searchNode: "\u641C\u7D22\u8282\u70B9",
|
|
212713
|
+
selectAll: "\u5168\u9009",
|
|
212714
|
+
services: "\u670D\u52A1",
|
|
212715
|
+
setupBuildScript: "\u8BBE\u7F6E\u6784\u5EFA\u811A\u672C",
|
|
212716
|
+
start: "\u5F00\u59CB",
|
|
212717
|
+
undo: "\u64A4\u9500",
|
|
212718
|
+
unhide: "\u663E\u793A\u6240\u6709",
|
|
212719
|
+
zoomIn: "\u653E\u5927",
|
|
212720
|
+
zoomOut: "\u7F29\u5C0F",
|
|
212721
|
+
"menu.file": "\u6587\u4EF6",
|
|
212722
|
+
"menu.edit": "\u7F16\u8F91",
|
|
212723
|
+
"menu.view": "\u89C6\u56FE",
|
|
212724
|
+
"menu.window": "\u7A97\u53E3",
|
|
212725
|
+
"menu.help": "\u5E2E\u52A9",
|
|
212726
|
+
"workspace.saveAllOnClose": "\u4F60\u9700\u8981\u4FDD\u5B58\u5BF9\u4EE5\u4E0B {{count}} \u4E2A\u6587\u4EF6\u7684\u4FEE\u6539\u5417\uFF1F",
|
|
212727
|
+
"workspace.saveOnClose": "\u4F60\u9700\u8981\u4FDD\u5B58\u5BF9\u6587\u4EF6 {{name}} \u7684\u4FEE\u6539\u5417\uFF1F",
|
|
212728
|
+
"workspace.reloadFile": "\u6587\u4EF6 {{name}} \u53D1\u751F\u6539\u53D8\uFF0C\u4F60\u9700\u8981\u91CD\u65B0\u52A0\u8F7D\u5417\uFF1F",
|
|
212729
|
+
"explorer.deleteFile": "\u4F60\u786E\u5B9A\u8981\u5220\u9664\u6587\u4EF6 '{{name}}'\uFF1F",
|
|
212730
|
+
"explorer.deleteFolder": "\u4F60\u786E\u5B9A\u8981\u5220\u9664\u76EE\u5F55 '{{name}}'\uFF1F",
|
|
212731
|
+
"explorer.replaceFile": "\u4F60\u786E\u5B9A\u8981\u66FF\u6362\u6587\u4EF6 '{{name}}'\uFF1F",
|
|
212732
|
+
"explorer.restoreFileInfo": "\u4F60\u53EF\u4EE5\u4ECE\u56DE\u6536\u7AD9\u6062\u590D\u6B64\u6587\u4EF6\u3002",
|
|
212733
|
+
"explorer.title": "\u8D44\u6E90\u6D4F\u89C8",
|
|
212734
|
+
"tree.overview": "\u6982\u51B5",
|
|
212735
|
+
"tree.name": "\u884C\u4E3A\u6811",
|
|
212736
|
+
"tree.desc": "\u8BF4\u660E",
|
|
212737
|
+
"tree.export": "\u5BFC\u51FA",
|
|
212738
|
+
"tree.prefix": "\u6807\u8BC6\u524D\u7F00",
|
|
212739
|
+
"tree.group": "\u542F\u7528\u8282\u70B9\u5206\u7EC4",
|
|
212740
|
+
"tree.group.placeholder": "\u9009\u62E9\u8282\u70B9\u5206\u7EC4",
|
|
212741
|
+
"tree.vars": "\u5B9A\u4E49\u53D8\u91CF",
|
|
212742
|
+
"tree.vars.local": "\u672C\u5730\u53D8\u91CF",
|
|
212743
|
+
"tree.vars.add": "\u6DFB\u52A0\u53D8\u91CF",
|
|
212744
|
+
"tree.vars.name": "\u53D8\u91CF\u540D",
|
|
212745
|
+
"tree.vars.invalidName": "\u53D8\u91CF\u540D\u4E0D\u5408\u6CD5",
|
|
212746
|
+
"tree.vars.desc": "\u53D8\u91CF\u8BF4\u660E",
|
|
212747
|
+
"tree.vars.imports": "\u5BFC\u5165\u53D8\u91CF",
|
|
212748
|
+
"tree.vars.subtree": "\u5B50\u6811\u53D8\u91CF",
|
|
212749
|
+
"tree.import.add": "\u6DFB\u52A0\u5BFC\u5165",
|
|
212750
|
+
"tree.custom": "\u81EA\u5B9A\u4E49\u6570\u636E",
|
|
212751
|
+
"tree.custom.add": "\u6DFB\u52A0\u6761\u76EE",
|
|
212752
|
+
"tree.custom.key": "\u952E",
|
|
212753
|
+
"tree.custom.value": "\u503C",
|
|
212754
|
+
"tree.custom.type.string": "\u5B57\u7B26\u4E32\u503C",
|
|
212755
|
+
"tree.custom.type.number": "\u6570\u5B57\u503C",
|
|
212756
|
+
"tree.custom.type.boolean": "\u5E03\u5C14\u503C",
|
|
212757
|
+
"tree.custom.type.invalid": "\u975E\u6CD5\u7684\u81EA\u5B9A\u4E49\u503C",
|
|
212758
|
+
"regnode.input": "\u8F93\u5165\uFF1A",
|
|
212759
|
+
"regnode.output": "\u8F93\u51FA\uFF1A",
|
|
212760
|
+
"regnode.args": "\u53C2\u6570\uFF1A",
|
|
212761
|
+
"regnode.mark": "\u5907\u6CE8\uFF1A",
|
|
212762
|
+
"regnode.subtree": "\u5B50\u6811\uFF1A",
|
|
212763
|
+
"node.args": "\u5E38\u91CF\u53C2\u6570",
|
|
212764
|
+
"node.children.unlimited": "\u65E0\u9650\u5236",
|
|
212765
|
+
"node.children": "\u5B50\u8282\u70B9\u6570\u91CF",
|
|
212766
|
+
"node.debug": "\u8C03\u8BD5",
|
|
212767
|
+
"node.deleteRootNodeDenied": "\u4E0D\u80FD\u5220\u9664\u6839\u8282\u70B9",
|
|
212768
|
+
"node.dropDenied": "\u6B64\u8282\u70B9\u4F4D\u7F6E\u4E0D\u5141\u8BB8\u653E\u7F6E\u62D6\u62FD\u7684\u8282\u70B9",
|
|
212769
|
+
"node.desc": "\u8282\u70B9\u8BF4\u660E",
|
|
212770
|
+
"node.disabled": "\u7981\u7528",
|
|
212771
|
+
"node.editSubtreeDenied": "\u4E0D\u80FD\u7F16\u8F91\u5B50\u6811\u8282\u70B9",
|
|
212772
|
+
"node.editFailed": "\u8282\u70B9 {{name}} \u7F16\u8F91\u5931\u8D25",
|
|
212773
|
+
"node.group": "\u8282\u70B9\u5206\u7EC4",
|
|
212774
|
+
"node.groupNotEnabled": "\u8282\u70B9\u5206\u7EC4 \u201C{{group}}\u201D \u4EFB\u610F\u4E00\u4E2A\u672A\u5728\u5F53\u524D\u6587\u4EF6\u4E2D\u542F\u7528",
|
|
212775
|
+
"node.id": "\u8282\u70B9\u6807\u8BC6",
|
|
212776
|
+
"node.inputVariable": "\u8F93\u5165\u53D8\u91CF",
|
|
212777
|
+
"node.invalidChildren": "\u5B50\u8282\u70B9\u6570\u91CF\u4E0D\u5408\u6CD5",
|
|
212778
|
+
"node.invalidExpression": "\u8868\u8FBE\u5F0F\u4E0D\u5408\u6CD5",
|
|
212779
|
+
"node.invalidValue": "\u65E0\u6548\u7684\u503C",
|
|
212780
|
+
"node.invalidVariableName": "\u53D8\u91CF\u540D\u5FC5\u987B\u4EE5\u5B57\u6BCD\u6216\u4E0B\u5212\u7EBF\u5F00\u5934",
|
|
212781
|
+
"node.name": "\u8282\u70B9\u540D\u79F0",
|
|
212782
|
+
"node.noNodeSelected": "\u672A\u9009\u62E9\u4EFB\u52A1\u8282\u70B9",
|
|
212783
|
+
"node.notFound": "\u8282\u70B9 \u201C{{name}}\u201D \u4E0D\u5B58\u5728",
|
|
212784
|
+
"node.oneof.error": "\u8F93\u5165\u9879 \u201C{{input}}\u201D \u548C\u53C2\u6570 \u201C{{desc}}({{arg}})\u201D \u4E4B\u4E2D\uFF0C\u53EA\u80FD\u9009\u62E9\u8BBE\u7F6E\u5176\u4E2D\u4E4B\u4E00",
|
|
212785
|
+
"node.oneof.inputNotfound": "\u8F93\u5165\u9879\u201C{{input}}\u201D\u4E0D\u5B58\u5728",
|
|
212786
|
+
"node.outputVariable": "\u8F93\u51FA\u53D8\u91CF",
|
|
212787
|
+
"node.pasteDataError": "\u7C98\u8D34\u6570\u636E\u51FA\u9519",
|
|
212788
|
+
"node.rootNodeAsSubtree": "\u6839\u8282\u70B9\u4E0D\u80FD\u4FDD\u5B58\u4E3A\u5B50\u6811",
|
|
212789
|
+
"node.subtree": "\u5B50\u6811",
|
|
212790
|
+
"node.subtreeMissing": "\u5B50\u6811\u6587\u4EF6\u7F3A\u5931\uFF1A{{path}}",
|
|
212791
|
+
"node.subtreeInvalid": "\u5B50\u6811\u6587\u4EF6\u65E0\u6548\uFF1A{{path}}",
|
|
212792
|
+
"node.subtreeCyclic": "\u5B50\u6811\u5F15\u7528\u51FA\u73B0\u5FAA\u73AF\uFF1A{{path}}",
|
|
212793
|
+
"node.subtreeOpenFailed": "\u6253\u5F00\u5B50\u6811\u5931\u8D25\uFF1A\u6587\u4EF6\u4E0D\u5B58\u5728\u6216\u4E0D\u53EF\u8BFB\uFF08{{path}}\uFF09",
|
|
212794
|
+
"node.subtreePathError": "\u5B50\u6811\u5FC5\u987B\u4FDD\u5B58\u5728\u5F53\u524D\u5DE5\u4F5C\u533A\u7684\u76EE\u5F55\u5185",
|
|
212795
|
+
"node.subtreeSaveRootError": "\u6839\u8282\u70B9\u4E0D\u80FD\u4FDD\u5B58\u4E3A\u5B50\u6811",
|
|
212796
|
+
"node.subtreeSaveSuccess": "\u5DF2\u4FDD\u5B58\u5E76\u8F6C\u6362\u4E3A\u5B50\u6811\u8282\u70B9\uFF1A{{path}}",
|
|
212797
|
+
"node.moveSubtreeDenied": "\u4E0D\u80FD\u79FB\u52A8\u5B50\u6811\u5185\u90E8\u8282\u70B9",
|
|
212798
|
+
"node.dropSubtreeInternalDenied": "\u4E0D\u80FD\u62D6\u653E\u5230\u5B50\u6811\u5185\u90E8\u8282\u70B9",
|
|
212799
|
+
"node.moveRootDenied": "\u4E0D\u80FD\u79FB\u52A8\u6839\u8282\u70B9",
|
|
212800
|
+
"node.dropAroundRootDenied": "\u4E0D\u80FD\u5C06\u8282\u70B9\u653E\u5230\u6839\u8282\u70B9\u4E4B\u524D\u6216\u4E4B\u540E",
|
|
212801
|
+
"node.addChildToSubtreeRefDenied": "\u4E0D\u80FD\u5411\u5B50\u6811\u5F15\u7528\u6DFB\u52A0\u5B50\u8282\u70B9",
|
|
212802
|
+
"node.moveIntoDescendantDenied": "\u4E0D\u80FD\u5C06\u8282\u70B9\u79FB\u52A8\u5230\u81EA\u5DF1\u7684\u540E\u4EE3\u8282\u70B9\u4E2D",
|
|
212803
|
+
"node.type": "\u8282\u70B9\u7C7B\u578B",
|
|
212804
|
+
"node.undefinedVariable": "\u53D8\u91CF \u201C{{variable}}\u201D \u672A\u5B9A\u4E49",
|
|
212805
|
+
"node.jsonData": "JSON \u6570\u636E",
|
|
212806
|
+
"node.unknown.title": "\u672A\u77E5\u8282\u70B9",
|
|
212807
|
+
"node.unknownType": "\u672A\u77E5",
|
|
212808
|
+
"node.resolutionError": "\u89E3\u6790\u9519\u8BEF",
|
|
212809
|
+
"node.unknown.desc": "\u65B0\u5EFA\u8282\u70B9",
|
|
212810
|
+
"build.success": "\u6784\u5EFA\u5B8C\u6210\u3002",
|
|
212811
|
+
"build.failed": "\u6784\u5EFA\u5931\u8D25\u3002",
|
|
212812
|
+
"editor.loading": "\u6B63\u5728\u52A0\u8F7D\u7F16\u8F91\u5668...",
|
|
212813
|
+
"editor.externalChangeConflict": "\u68C0\u6D4B\u5230\u5916\u90E8\u6587\u4EF6\u53D8\u66F4\uFF0C\u5F53\u524D\u6587\u6863\u8FD8\u6709\u672A\u4FDD\u5B58\u4FEE\u6539\u3002",
|
|
212814
|
+
"editor.reloadFromDisk": "\u91CD\u65B0\u8F7D\u5165",
|
|
212815
|
+
"editor.dismissConflict": "\u5FFD\u7565",
|
|
212816
|
+
"editor.newerVersionEditDenied": "\u6B64\u6587\u4EF6\u7531\u65B0\u7248\u672C Behavior3({{version}}) \u521B\u5EFA\uFF0C\u8BF7\u5347\u7EA7\u5230\u6700\u65B0\u7248\u672C\u540E\u518D\u7F16\u8F91\u3002",
|
|
212817
|
+
"inspector.noActiveDocument": "\u6253\u5F00\u4E00\u4E2A Behavior3 \u7F16\u8F91\u5668\u540E\uFF0C\u8FD9\u91CC\u4F1A\u663E\u793A\u5F53\u524D\u884C\u4E3A\u6811\u7684 Inspector\uFF0C\u5E76\u652F\u6301\u76F4\u63A5\u7F16\u8F91\u3002",
|
|
212818
|
+
"inspector.embeddedModeNotice": "Inspector \u5F53\u524D\u914D\u7F6E\u4E3A\u5728 Behavior3 \u7F16\u8F91\u5668\u5185\u90E8\u663E\u793A\u3002",
|
|
212819
|
+
"inspector.embeddedToolbar.build": "\u6784\u5EFA\u884C\u4E3A\u6811",
|
|
212820
|
+
"inspector.embeddedToolbar.toggleEditorMode": "\u5207\u6362\u7F16\u8F91\u5668\u6A21\u5F0F",
|
|
212821
|
+
"inspector.embeddedToolbar.toggleInspectorNodeJson": "\u5207\u6362\u539F\u59CB\u8282\u70B9 JSON",
|
|
212822
|
+
"inspector.embeddedToolbar.createProject": "\u65B0\u5EFA\u9879\u76EE",
|
|
212823
|
+
"inspector.embeddedToolbar.createTree": "\u65B0\u5EFA\u884C\u4E3A\u6811",
|
|
212824
|
+
"mutation.invalidJsonPath": "\u65E0\u6548\u7684 JSON \u8DEF\u5F84: {{path}}",
|
|
212825
|
+
"mutation.missingSelectedNode": "\u5F53\u524D\u6CA1\u6709\u53EF\u7528\u4E8E\u63D0\u4EA4\u6B64\u4FEE\u6539\u7684\u9009\u4E2D\u8282\u70B9\u3002",
|
|
212826
|
+
"mutation.selectedNodeMismatch": "\u5F53\u524D\u9009\u4E2D\u8282\u70B9\u5DF2\u53D8\u5316\uFF0C\u8BF7\u91CD\u8BD5\u3002",
|
|
212827
|
+
"mutation.missingTargetNode": "\u672A\u627E\u5230\u76EE\u6807\u8282\u70B9\uFF0C\u8BF7\u91CD\u8BD5\u3002",
|
|
212828
|
+
"mutation.missingSourceNode": "\u672A\u627E\u5230\u6E90\u8282\u70B9\uFF0C\u8BF7\u91CD\u8BD5\u3002",
|
|
212829
|
+
"mutation.missingSubtreeOriginal": "\u7F3A\u5C11 subtree \u539F\u59CB\u8282\u70B9\u5FEB\u7167\uFF0C\u8BF7\u91CD\u8BD5\u3002",
|
|
212830
|
+
"mutation.missingDetachedSubtreeRoot": "\u7F3A\u5C11\u7528\u4E8E\u89E3\u7ED1 subtree \u5F15\u7528\u7684\u5FEB\u7167\uFF0C\u8BF7\u91CD\u8BD5\u3002",
|
|
212831
|
+
"mutation.moveRootDenied": "\u4E0D\u80FD\u79FB\u52A8\u6839\u8282\u70B9\u3002",
|
|
212832
|
+
"mutation.dropAroundRootDenied": "\u4E0D\u80FD\u56F4\u7ED5\u6839\u8282\u70B9\u63D2\u5165\u3002",
|
|
212833
|
+
"mutation.addChildToSubtreeRefDenied": "\u4E0D\u80FD\u76F4\u63A5\u5411 subtree \u5F15\u7528\u6DFB\u52A0\u5B50\u8282\u70B9\u3002",
|
|
212834
|
+
"mutation.moveIntoDescendantDenied": "\u4E0D\u80FD\u79FB\u52A8\u5230\u81EA\u5DF1\u7684\u540E\u4EE3\u4E0B\u3002",
|
|
212835
|
+
"mutation.deleteRootNodeDenied": "\u4E0D\u80FD\u5220\u9664\u6839\u8282\u70B9\u3002",
|
|
212836
|
+
"mutation.editSubtreeDenied": "\u4E0D\u80FD\u5728 subtree \u5F15\u7528\u4E0A\u76F4\u63A5\u4FEE\u6539\u7ED3\u6784\u3002",
|
|
212837
|
+
"mutation.saveSelectedAsSubtreeRootDenied": "\u6839\u8282\u70B9\u4E0D\u80FD\u53E6\u5B58\u4E3A subtree\u3002",
|
|
212838
|
+
"mutation.saveSelectedAsSubtreeMissingTarget": "\u672A\u627E\u5230\u53EF\u53E6\u5B58\u4E3A subtree \u7684\u76EE\u6807\u8282\u70B9\u3002",
|
|
212839
|
+
"mutation.saveSelectedAsSubtreePostSaveMissingTarget": "\u63D0\u4EA4 subtree \u4FDD\u5B58\u7ED3\u679C\u65F6\u672A\u627E\u5230\u76EE\u6807\u8282\u70B9\u3002",
|
|
212840
|
+
"runtime.nodeCheckRuntimeHasErrors": "checker \u8FD0\u884C\u65F6\u5B58\u5728\u9519\u8BEF\u3002",
|
|
212841
|
+
"runtime.invalidSavedSubtreePath": "\u5BBF\u4E3B\u8FD4\u56DE\u4E86\u65E0\u6548\u7684 subtree \u4FDD\u5B58\u8DEF\u5F84\u3002",
|
|
212842
|
+
"runtime.unsupportedDocumentMutation": "\u4E0D\u652F\u6301\u6B64\u6587\u6863\u4FEE\u6539\u3002",
|
|
212843
|
+
"runtime.visibleHookNotRegistered": "visible \u201C{{name}}\u201D \u672A\u6CE8\u518C\u3002",
|
|
212844
|
+
"runtime.visibleHookFailed": "visible \u201C{{name}}\u201D \u6267\u884C\u5931\u8D25\uFF1A{{error}}",
|
|
212845
|
+
"runtime.visibleExpressionDisabled": "visible \u8868\u8FBE\u5F0F\u5DF2\u7981\u7528\uFF1B\u8BF7\u542F\u7528 settings.allowNewFunction\u3002",
|
|
212846
|
+
"runtime.visibleExpressionCompileFailed": "visible \u8868\u8FBE\u5F0F\u7F16\u8BD1\u5931\u8D25\uFF1A{{error}}",
|
|
212847
|
+
"runtime.visibleExpressionFailed": "visible \u8868\u8FBE\u5F0F\u6267\u884C\u5931\u8D25\uFF1A{{error}}",
|
|
212848
|
+
"runtime.visibleExpressionUnknownArg": "visible \u8868\u8FBE\u5F0F\u5F15\u7528\u4E86 args.{{property}}\uFF0C\u4F46 \u201C{{property}}\u201D \u4E0D\u5728\u5DF2\u5B9A\u4E49\u7684\u53C2\u6570\u8303\u56F4\u5185\uFF08\u5DF2\u5B9A\u4E49\u53C2\u6570\uFF1A{{definedArgs}}\uFF09\u3002",
|
|
212849
|
+
"runtime.visibleExpressionNoArgs": "visible \u8868\u8FBE\u5F0F\u5F15\u7528\u4E86 args.{{property}}\uFF0C\u4F46\u5F53\u524D\u8282\u70B9\u672A\u5B9A\u4E49\u53C2\u6570\u3002",
|
|
212850
|
+
"runtime.visibleExpressionUnknownSlotIndex": "visible \u8868\u8FBE\u5F0F\u5F15\u7528\u4E86 {{fieldKind}}[{{index}}]\uFF0C\u4F46{{definedScope}}\u3002",
|
|
212851
|
+
"runtime.visibleExpressionInvalidSlotProperty": "visible \u8868\u8FBE\u5F0F\u5F15\u7528\u4E86 {{fieldKind}}.{{property}}\uFF0C\u4F46 {{fieldKind}} \u4EC5\u652F\u6301\u5DF2\u5B9A\u4E49\u7684\u6570\u5B57\u69FD\u4F4D\u7D22\u5F15\u3002",
|
|
212852
|
+
"runtime.visibleSlotScopeNone": "\u5F53\u524D\u8282\u70B9\u672A\u5B9A\u4E49{{fieldKind}}\u69FD\u4F4D",
|
|
212853
|
+
"runtime.visibleSlotScopeIndex": "\u5DF2\u5B9A\u4E49\u7684{{fieldKind}}\u69FD\u4F4D\u7D22\u5F15\u53EA\u6709 {{start}}",
|
|
212854
|
+
"runtime.visibleSlotScopeRange": "\u5DF2\u5B9A\u4E49\u7684{{fieldKind}}\u69FD\u4F4D\u7D22\u5F15\u8303\u56F4\u662F {{start}}..{{end}}",
|
|
212855
|
+
"runtime.visibleSlotScopeRangeVariadic": "\u5DF2\u5B9A\u4E49\u7684{{fieldKind}}\u69FD\u4F4D\u7D22\u5F15\u8303\u56F4\u662F {{start}}..{{end}}+",
|
|
212856
|
+
"override.resetTitle": "\u91CD\u7F6E\u6B64\u8986\u76D6\uFF1F",
|
|
212857
|
+
"form.enterJsonArray": "\u8F93\u5165 JSON \u6570\u7EC4",
|
|
212858
|
+
"form.enterJsonValue": "\u8F93\u5165 JSON \u503C",
|
|
212859
|
+
"form.unset": "\u672A\u8BBE\u7F6E",
|
|
212860
|
+
"form.true": "\u662F",
|
|
212861
|
+
"form.false": "\u5426",
|
|
212862
|
+
"validation.jsonArray": "{{name}} \u5FC5\u987B\u662F JSON \u6570\u7EC4",
|
|
212863
|
+
"validation.integer": "{{field}} \u5FC5\u987B\u662F\u6574\u6570",
|
|
212864
|
+
"validation.number": "{{field}} \u5FC5\u987B\u662F\u6570\u5B57",
|
|
212865
|
+
"validation.missingOneofInput": "\u7F3A\u5C11 oneof \u8F93\u5165\u9879 \u201C{{input}}\u201D",
|
|
212866
|
+
"validation.oneof": "\u201C{{left}}\u201D \u548C \u201C{{right}}\u201D \u53EA\u80FD\u8BBE\u7F6E\u5176\u4E2D\u4E4B\u4E00",
|
|
212867
|
+
"validation.invalidJsonPath": "\u8DEF\u5F84\u5FC5\u987B\u662F\u5DE5\u4F5C\u76EE\u5F55\u5185\u7684\u76F8\u5BF9 .json \u6587\u4EF6\uFF1A{{path}}",
|
|
212868
|
+
"validation.variableDescriptionRequired": "\u53D8\u91CF\u8BF4\u660E\u5FC5\u586B",
|
|
212869
|
+
"validation.customKeyRequired": "\u81EA\u5B9A\u4E49 key \u5FC5\u586B",
|
|
212870
|
+
"validation.customKeyDuplicate": "\u81EA\u5B9A\u4E49 key \u201C{{key}}\u201D \u91CD\u590D\u4E86",
|
|
212871
|
+
"validation.customValueInvalid": "\u81EA\u5B9A\u4E49\u503C\u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u3001\u6570\u5B57\u6216\u5E03\u5C14\u503C"
|
|
212872
|
+
};
|
|
212873
|
+
|
|
212874
|
+
// webview/shared/runtime-i18n.ts
|
|
212875
|
+
var runtimeTranslations = {
|
|
212876
|
+
en: en_default,
|
|
212877
|
+
zh: zh_default
|
|
212878
|
+
};
|
|
212879
|
+
var INTERPOLATION_PATTERN = /\{\{\s*([^{}\s]+)\s*\}\}/g;
|
|
212880
|
+
var normalizeI18nLanguage = (language) => {
|
|
212881
|
+
const value = (language ?? "").toLowerCase();
|
|
212882
|
+
return value.startsWith("zh") ? "zh" : "en";
|
|
212883
|
+
};
|
|
212884
|
+
var interpolateRuntimeMessage = (template, params) => {
|
|
212885
|
+
if (!params) {
|
|
212886
|
+
return template;
|
|
212887
|
+
}
|
|
212888
|
+
return template.replace(INTERPOLATION_PATTERN, (match, key) => {
|
|
212889
|
+
const value = params[key];
|
|
212890
|
+
return value === void 0 || value === null ? match : String(value);
|
|
212891
|
+
});
|
|
212892
|
+
};
|
|
212893
|
+
var translateRuntimeMessage = (language, key, params) => {
|
|
212894
|
+
const template = runtimeTranslations[language][key] ?? runtimeTranslations.en[key] ?? key;
|
|
212895
|
+
return interpolateRuntimeMessage(template, params);
|
|
212896
|
+
};
|
|
212897
|
+
|
|
212431
212898
|
// webview/shared/protocol.ts
|
|
212432
212899
|
var URI_SCHEME_PATTERN = /^[a-zA-Z][a-zA-Z0-9+.-]*:/;
|
|
212433
212900
|
var WINDOWS_ABSOLUTE_PATTERN = /^[a-zA-Z]:[\\/]/;
|
|
@@ -212881,6 +213348,7 @@ var normalizeWorkspaceModel = (value) => {
|
|
|
212881
213348
|
}
|
|
212882
213349
|
return {
|
|
212883
213350
|
settings: {
|
|
213351
|
+
allowNewFunction: typeof settingsRecord.allowNewFunction === "boolean" ? settingsRecord.allowNewFunction : void 0,
|
|
212884
213352
|
checkExpr: typeof settingsRecord.checkExpr === "boolean" ? settingsRecord.checkExpr : void 0,
|
|
212885
213353
|
buildScript: asOptionalString(settingsRecord.buildScript),
|
|
212886
213354
|
checkScripts: settingsRecord.checkScripts === void 0 ? void 0 : Array.isArray(settingsRecord.checkScripts) ? settingsRecord.checkScripts.map(
|
|
@@ -213449,6 +213917,7 @@ var markVisibleHook = (nameOrCtor, _context) => {
|
|
|
213449
213917
|
var isDecoratedBuildHookCtor = (value) => typeof value === "function" && value[BUILD_HOOK_MARKER] === true;
|
|
213450
213918
|
var isDecoratedBatchHookCtor = (value) => typeof value === "function" && value[BATCH_HOOK_MARKER] === true;
|
|
213451
213919
|
var isDecoratedCheckCtor = (value) => typeof value === "function" && value[CHECK_HOOK_MARKER] === true;
|
|
213920
|
+
var isDecoratedVisibleCtor = (value) => typeof value === "function" && value[VISIBLE_HOOK_MARKER] === true;
|
|
213452
213921
|
var findDecoratedBuildHookCtor = (moduleRecord) => {
|
|
213453
213922
|
const decorated = Array.from(new Set(Object.values(moduleRecord))).filter(
|
|
213454
213923
|
isDecoratedBuildHookCtor
|
|
@@ -213480,6 +213949,7 @@ var findDecoratedBatchHookCtor = (moduleRecord) => {
|
|
|
213480
213949
|
return legacyDecorated[0];
|
|
213481
213950
|
};
|
|
213482
213951
|
var findDecoratedCheckCtors = (moduleRecord) => Array.from(new Set(Object.values(moduleRecord))).filter(isDecoratedCheckCtor);
|
|
213952
|
+
var findDecoratedVisibleCtors = (moduleRecord) => Array.from(new Set(Object.values(moduleRecord))).filter(isDecoratedVisibleCtor);
|
|
213483
213953
|
var createBuildHooks = (moduleExports, env, reportMissing = true) => {
|
|
213484
213954
|
if (!moduleExports || typeof moduleExports !== "object") {
|
|
213485
213955
|
return void 0;
|
|
@@ -213565,6 +214035,342 @@ var createNodeFieldCheckers = (moduleExports, env) => {
|
|
|
213565
214035
|
}
|
|
213566
214036
|
return { checkers, hasError, hasCheckers: decorated.length > 0 };
|
|
213567
214037
|
};
|
|
214038
|
+
var normalizeNodeFieldVisibleResult = (result) => result !== false;
|
|
214039
|
+
var VISIBLE_HANDLER_NAME_PATTERN = /^\w+$/;
|
|
214040
|
+
var VISIBLE_EXPRESSION_TOKEN_PATTERN = /[\s()[\].!=<>|&+*\/?:'"]/;
|
|
214041
|
+
var VISIBLE_ARRAY_INDEX_PATTERN = /^(0|[1-9]\d*)$/;
|
|
214042
|
+
var visibleExpressionCache = /* @__PURE__ */ new Map();
|
|
214043
|
+
var getBuildEnvLanguage = (env) => normalizeI18nLanguage(env.language);
|
|
214044
|
+
var translateVisibleRuntimeMessage = (env, key, params) => translateRuntimeMessage(getBuildEnvLanguage(env), key, params);
|
|
214045
|
+
var formatVisibleArgScope = (env, definedArgNames) => getBuildEnvLanguage(env) === "zh" ? definedArgNames.join("\u3001") : definedArgNames.join(", ");
|
|
214046
|
+
var getVisibleFieldKindLabel = (env, fieldKind) => {
|
|
214047
|
+
if (getBuildEnvLanguage(env) === "zh") {
|
|
214048
|
+
return fieldKind === "input" ? "\u8F93\u5165" : "\u8F93\u51FA";
|
|
214049
|
+
}
|
|
214050
|
+
return fieldKind;
|
|
214051
|
+
};
|
|
214052
|
+
var parseVisibleArrayIndex = (property) => {
|
|
214053
|
+
if (typeof property === "number") {
|
|
214054
|
+
return Number.isInteger(property) && property >= 0 ? property : null;
|
|
214055
|
+
}
|
|
214056
|
+
if (typeof property === "string" && VISIBLE_ARRAY_INDEX_PATTERN.test(property)) {
|
|
214057
|
+
return Number(property);
|
|
214058
|
+
}
|
|
214059
|
+
return null;
|
|
214060
|
+
};
|
|
214061
|
+
var isVisibleSlotIndexDefined = (slotDefs, index) => {
|
|
214062
|
+
if (index < 0) {
|
|
214063
|
+
return false;
|
|
214064
|
+
}
|
|
214065
|
+
const slotCount = slotDefs?.length ?? 0;
|
|
214066
|
+
if (slotCount === 0) {
|
|
214067
|
+
return false;
|
|
214068
|
+
}
|
|
214069
|
+
if (index < slotCount) {
|
|
214070
|
+
return true;
|
|
214071
|
+
}
|
|
214072
|
+
const normalizedSlotDefs = slotDefs ?? [];
|
|
214073
|
+
return parseSlotDefinition(
|
|
214074
|
+
normalizedSlotDefs[slotCount - 1] ?? "",
|
|
214075
|
+
normalizedSlotDefs,
|
|
214076
|
+
slotCount - 1
|
|
214077
|
+
).variadic;
|
|
214078
|
+
};
|
|
214079
|
+
var formatVisibleSlotScope = (env, fieldKind, slotDefs) => {
|
|
214080
|
+
const slotCount = slotDefs?.length ?? 0;
|
|
214081
|
+
const fieldKindLabel = getVisibleFieldKindLabel(env, fieldKind);
|
|
214082
|
+
if (slotCount === 0) {
|
|
214083
|
+
return translateVisibleRuntimeMessage(env, "runtime.visibleSlotScopeNone", {
|
|
214084
|
+
fieldKind: fieldKindLabel
|
|
214085
|
+
});
|
|
214086
|
+
}
|
|
214087
|
+
if (parseSlotDefinition(slotDefs?.[slotCount - 1] ?? "", slotDefs, slotCount - 1).variadic) {
|
|
214088
|
+
return translateVisibleRuntimeMessage(env, "runtime.visibleSlotScopeRangeVariadic", {
|
|
214089
|
+
fieldKind: fieldKindLabel,
|
|
214090
|
+
start: 0,
|
|
214091
|
+
end: slotCount - 1
|
|
214092
|
+
});
|
|
214093
|
+
}
|
|
214094
|
+
return slotCount === 1 ? translateVisibleRuntimeMessage(env, "runtime.visibleSlotScopeIndex", {
|
|
214095
|
+
fieldKind: fieldKindLabel,
|
|
214096
|
+
start: 0
|
|
214097
|
+
}) : translateVisibleRuntimeMessage(env, "runtime.visibleSlotScopeRange", {
|
|
214098
|
+
fieldKind: fieldKindLabel,
|
|
214099
|
+
start: 0,
|
|
214100
|
+
end: slotCount - 1
|
|
214101
|
+
});
|
|
214102
|
+
};
|
|
214103
|
+
var createVisibleArgScope = (ctx) => {
|
|
214104
|
+
const definedArgNames = (ctx.nodeDef.args ?? []).map((arg) => arg.name);
|
|
214105
|
+
const definedArgNameSet = new Set(definedArgNames);
|
|
214106
|
+
const target = Object.assign(
|
|
214107
|
+
/* @__PURE__ */ Object.create(null),
|
|
214108
|
+
ctx.node.args ?? {}
|
|
214109
|
+
);
|
|
214110
|
+
return new Proxy(target, {
|
|
214111
|
+
get(currentTarget, property) {
|
|
214112
|
+
if (typeof property === "symbol") {
|
|
214113
|
+
return Reflect.get(currentTarget, property);
|
|
214114
|
+
}
|
|
214115
|
+
if (definedArgNameSet.has(property)) {
|
|
214116
|
+
return currentTarget[property];
|
|
214117
|
+
}
|
|
214118
|
+
throw new Error(
|
|
214119
|
+
definedArgNames.length ? translateVisibleRuntimeMessage(
|
|
214120
|
+
ctx.env,
|
|
214121
|
+
"runtime.visibleExpressionUnknownArg",
|
|
214122
|
+
{
|
|
214123
|
+
property,
|
|
214124
|
+
definedArgs: formatVisibleArgScope(ctx.env, definedArgNames)
|
|
214125
|
+
}
|
|
214126
|
+
) : translateVisibleRuntimeMessage(ctx.env, "runtime.visibleExpressionNoArgs", {
|
|
214127
|
+
property
|
|
214128
|
+
})
|
|
214129
|
+
);
|
|
214130
|
+
},
|
|
214131
|
+
has(_currentTarget, property) {
|
|
214132
|
+
if (typeof property === "symbol") {
|
|
214133
|
+
return false;
|
|
214134
|
+
}
|
|
214135
|
+
return definedArgNameSet.has(property);
|
|
214136
|
+
}
|
|
214137
|
+
});
|
|
214138
|
+
};
|
|
214139
|
+
var createVisibleSlotScope = (fieldKind, values, slotDefs, env) => {
|
|
214140
|
+
const target = values ?? [];
|
|
214141
|
+
return new Proxy(target, {
|
|
214142
|
+
get(currentTarget, property, receiver) {
|
|
214143
|
+
if (typeof property === "symbol") {
|
|
214144
|
+
return Reflect.get(currentTarget, property, receiver);
|
|
214145
|
+
}
|
|
214146
|
+
const index = parseVisibleArrayIndex(property);
|
|
214147
|
+
if (index !== null) {
|
|
214148
|
+
if (!isVisibleSlotIndexDefined(slotDefs, index)) {
|
|
214149
|
+
throw new Error(
|
|
214150
|
+
translateVisibleRuntimeMessage(
|
|
214151
|
+
env,
|
|
214152
|
+
"runtime.visibleExpressionUnknownSlotIndex",
|
|
214153
|
+
{
|
|
214154
|
+
fieldKind: getVisibleFieldKindLabel(env, fieldKind),
|
|
214155
|
+
index,
|
|
214156
|
+
definedScope: formatVisibleSlotScope(env, fieldKind, slotDefs)
|
|
214157
|
+
}
|
|
214158
|
+
)
|
|
214159
|
+
);
|
|
214160
|
+
}
|
|
214161
|
+
return Reflect.get(currentTarget, property, receiver);
|
|
214162
|
+
}
|
|
214163
|
+
if (property in currentTarget || property in Array.prototype) {
|
|
214164
|
+
return Reflect.get(currentTarget, property, receiver);
|
|
214165
|
+
}
|
|
214166
|
+
throw new Error(
|
|
214167
|
+
translateVisibleRuntimeMessage(
|
|
214168
|
+
env,
|
|
214169
|
+
"runtime.visibleExpressionInvalidSlotProperty",
|
|
214170
|
+
{
|
|
214171
|
+
fieldKind: getVisibleFieldKindLabel(env, fieldKind),
|
|
214172
|
+
property: String(property)
|
|
214173
|
+
}
|
|
214174
|
+
)
|
|
214175
|
+
);
|
|
214176
|
+
},
|
|
214177
|
+
has(currentTarget, property) {
|
|
214178
|
+
if (typeof property === "symbol") {
|
|
214179
|
+
return property in currentTarget;
|
|
214180
|
+
}
|
|
214181
|
+
const index = parseVisibleArrayIndex(property);
|
|
214182
|
+
if (index !== null) {
|
|
214183
|
+
return isVisibleSlotIndexDefined(slotDefs, index);
|
|
214184
|
+
}
|
|
214185
|
+
return property in currentTarget || property in Array.prototype;
|
|
214186
|
+
}
|
|
214187
|
+
});
|
|
214188
|
+
};
|
|
214189
|
+
var isNamedNodeFieldVisible = (visibleName) => VISIBLE_HANDLER_NAME_PATTERN.test(visibleName);
|
|
214190
|
+
var isInlineNodeFieldVisibleExpression = (visibleName, visibles) => {
|
|
214191
|
+
if (visibles.has(visibleName)) {
|
|
214192
|
+
return false;
|
|
214193
|
+
}
|
|
214194
|
+
if (isNamedNodeFieldVisible(visibleName)) {
|
|
214195
|
+
return false;
|
|
214196
|
+
}
|
|
214197
|
+
return VISIBLE_EXPRESSION_TOKEN_PATTERN.test(visibleName);
|
|
214198
|
+
};
|
|
214199
|
+
var getVisibleExpressionEvaluator = (expression) => {
|
|
214200
|
+
const cached = visibleExpressionCache.get(expression);
|
|
214201
|
+
if (cached) {
|
|
214202
|
+
return cached;
|
|
214203
|
+
}
|
|
214204
|
+
const evaluator = new Function(
|
|
214205
|
+
"args",
|
|
214206
|
+
"input",
|
|
214207
|
+
"output",
|
|
214208
|
+
"value",
|
|
214209
|
+
`"use strict"; return (${expression});`
|
|
214210
|
+
);
|
|
214211
|
+
visibleExpressionCache.set(expression, evaluator);
|
|
214212
|
+
return evaluator;
|
|
214213
|
+
};
|
|
214214
|
+
var resolveNodeFieldVisible = (params) => {
|
|
214215
|
+
if (!isInlineNodeFieldVisibleExpression(params.visibleName, params.visibles)) {
|
|
214216
|
+
const visible = params.visibles.get(params.visibleName);
|
|
214217
|
+
if (!visible) {
|
|
214218
|
+
return {
|
|
214219
|
+
diagnostic: {
|
|
214220
|
+
source: params.visibleName,
|
|
214221
|
+
message: translateVisibleRuntimeMessage(
|
|
214222
|
+
params.ctx.env,
|
|
214223
|
+
"runtime.visibleHookNotRegistered",
|
|
214224
|
+
{
|
|
214225
|
+
name: params.visibleName
|
|
214226
|
+
}
|
|
214227
|
+
)
|
|
214228
|
+
}
|
|
214229
|
+
};
|
|
214230
|
+
}
|
|
214231
|
+
try {
|
|
214232
|
+
return {
|
|
214233
|
+
visible: normalizeNodeFieldVisibleResult(visible.visible(params.value, params.ctx))
|
|
214234
|
+
};
|
|
214235
|
+
} catch (error) {
|
|
214236
|
+
return {
|
|
214237
|
+
diagnostic: {
|
|
214238
|
+
source: params.visibleName,
|
|
214239
|
+
message: translateVisibleRuntimeMessage(
|
|
214240
|
+
params.ctx.env,
|
|
214241
|
+
"runtime.visibleHookFailed",
|
|
214242
|
+
{
|
|
214243
|
+
name: params.visibleName,
|
|
214244
|
+
error: formatRuntimeError(error)
|
|
214245
|
+
}
|
|
214246
|
+
)
|
|
214247
|
+
}
|
|
214248
|
+
};
|
|
214249
|
+
}
|
|
214250
|
+
}
|
|
214251
|
+
if (!params.ctx.env.allowNewFunction) {
|
|
214252
|
+
return {
|
|
214253
|
+
diagnostic: {
|
|
214254
|
+
source: params.visibleName,
|
|
214255
|
+
message: translateVisibleRuntimeMessage(
|
|
214256
|
+
params.ctx.env,
|
|
214257
|
+
"runtime.visibleExpressionDisabled"
|
|
214258
|
+
)
|
|
214259
|
+
}
|
|
214260
|
+
};
|
|
214261
|
+
}
|
|
214262
|
+
let evaluator;
|
|
214263
|
+
try {
|
|
214264
|
+
evaluator = getVisibleExpressionEvaluator(params.visibleName);
|
|
214265
|
+
} catch (error) {
|
|
214266
|
+
return {
|
|
214267
|
+
diagnostic: {
|
|
214268
|
+
source: params.visibleName,
|
|
214269
|
+
message: translateVisibleRuntimeMessage(
|
|
214270
|
+
params.ctx.env,
|
|
214271
|
+
"runtime.visibleExpressionCompileFailed",
|
|
214272
|
+
{
|
|
214273
|
+
error: formatRuntimeError(error)
|
|
214274
|
+
}
|
|
214275
|
+
)
|
|
214276
|
+
}
|
|
214277
|
+
};
|
|
214278
|
+
}
|
|
214279
|
+
try {
|
|
214280
|
+
return {
|
|
214281
|
+
visible: normalizeNodeFieldVisibleResult(
|
|
214282
|
+
evaluator(
|
|
214283
|
+
createVisibleArgScope(params.ctx),
|
|
214284
|
+
createVisibleSlotScope(
|
|
214285
|
+
"input",
|
|
214286
|
+
params.ctx.node.input ?? [],
|
|
214287
|
+
params.ctx.nodeDef.input,
|
|
214288
|
+
params.ctx.env
|
|
214289
|
+
),
|
|
214290
|
+
createVisibleSlotScope(
|
|
214291
|
+
"output",
|
|
214292
|
+
params.ctx.node.output ?? [],
|
|
214293
|
+
params.ctx.nodeDef.output,
|
|
214294
|
+
params.ctx.env
|
|
214295
|
+
),
|
|
214296
|
+
params.value
|
|
214297
|
+
)
|
|
214298
|
+
)
|
|
214299
|
+
};
|
|
214300
|
+
} catch (error) {
|
|
214301
|
+
return {
|
|
214302
|
+
diagnostic: {
|
|
214303
|
+
source: params.visibleName,
|
|
214304
|
+
message: translateVisibleRuntimeMessage(
|
|
214305
|
+
params.ctx.env,
|
|
214306
|
+
"runtime.visibleExpressionFailed",
|
|
214307
|
+
{
|
|
214308
|
+
error: formatRuntimeError(error)
|
|
214309
|
+
}
|
|
214310
|
+
)
|
|
214311
|
+
}
|
|
214312
|
+
};
|
|
214313
|
+
}
|
|
214314
|
+
};
|
|
214315
|
+
var createNodeFieldVisibles = (moduleExports, env) => {
|
|
214316
|
+
const visibles = /* @__PURE__ */ new Map();
|
|
214317
|
+
let hasError = false;
|
|
214318
|
+
if (!moduleExports || typeof moduleExports !== "object") {
|
|
214319
|
+
return { visibles, hasError, hasVisibles: false };
|
|
214320
|
+
}
|
|
214321
|
+
const moduleRecord = moduleExports;
|
|
214322
|
+
const decorated = findDecoratedVisibleCtors(moduleRecord);
|
|
214323
|
+
for (const ctor of decorated) {
|
|
214324
|
+
const name = ctor[VISIBLE_HOOK_NAME]?.trim() || ctor.name;
|
|
214325
|
+
if (!name) {
|
|
214326
|
+
logger.error("visible class must have a non-empty @behavior3.visible name");
|
|
214327
|
+
hasError = true;
|
|
214328
|
+
continue;
|
|
214329
|
+
}
|
|
214330
|
+
if (visibles.has(name)) {
|
|
214331
|
+
logger.error(`duplicate @behavior3.visible registration: ${name}`);
|
|
214332
|
+
hasError = true;
|
|
214333
|
+
continue;
|
|
214334
|
+
}
|
|
214335
|
+
try {
|
|
214336
|
+
const instance = new ctor(env);
|
|
214337
|
+
if (typeof instance.visible !== "function") {
|
|
214338
|
+
logger.error(`visible '${name}' must provide a visible(value, ctx) method`);
|
|
214339
|
+
hasError = true;
|
|
214340
|
+
continue;
|
|
214341
|
+
}
|
|
214342
|
+
visibles.set(name, instance);
|
|
214343
|
+
} catch (error) {
|
|
214344
|
+
logger.error(`failed to instantiate visible '${name}'`, error);
|
|
214345
|
+
hasError = true;
|
|
214346
|
+
}
|
|
214347
|
+
}
|
|
214348
|
+
return { visibles, hasError, hasVisibles: decorated.length > 0 };
|
|
214349
|
+
};
|
|
214350
|
+
var createNodeFieldVisibleRuntimeWithCheckModules = (buildScriptModule, checkScriptModules, env) => {
|
|
214351
|
+
const nodeFieldVisibles = /* @__PURE__ */ new Map();
|
|
214352
|
+
let hasError = false;
|
|
214353
|
+
const mergeModuleVisibles = (moduleExports) => {
|
|
214354
|
+
const visibleResult = createNodeFieldVisibles(moduleExports, env);
|
|
214355
|
+
hasError = hasError || visibleResult.hasError;
|
|
214356
|
+
for (const [name, visible] of visibleResult.visibles) {
|
|
214357
|
+
if (nodeFieldVisibles.has(name)) {
|
|
214358
|
+
logger.error(`duplicate @behavior3.visible registration: ${name}`);
|
|
214359
|
+
hasError = true;
|
|
214360
|
+
continue;
|
|
214361
|
+
}
|
|
214362
|
+
nodeFieldVisibles.set(name, visible);
|
|
214363
|
+
}
|
|
214364
|
+
};
|
|
214365
|
+
mergeModuleVisibles(buildScriptModule);
|
|
214366
|
+
for (const checkScript of checkScriptModules) {
|
|
214367
|
+
mergeModuleVisibles(checkScript.moduleExports);
|
|
214368
|
+
}
|
|
214369
|
+
return {
|
|
214370
|
+
nodeFieldVisibles,
|
|
214371
|
+
hasError
|
|
214372
|
+
};
|
|
214373
|
+
};
|
|
213568
214374
|
var createBuildScriptRuntime = (moduleExports, env) => {
|
|
213569
214375
|
if (!moduleExports || typeof moduleExports !== "object") {
|
|
213570
214376
|
return {
|
|
@@ -213889,38 +214695,49 @@ var collectNodeFieldCheckDiagnostics = (params) => {
|
|
|
213889
214695
|
nodeDef,
|
|
213890
214696
|
treePath: target.treePath ?? params.treePath,
|
|
213891
214697
|
env: params.env,
|
|
213892
|
-
onArg: ({ fieldName, checkerName, value, ctx }) => {
|
|
213893
|
-
|
|
213894
|
-
return;
|
|
213895
|
-
}
|
|
213896
|
-
const pushDiagnostic = (message) => {
|
|
214698
|
+
onArg: ({ fieldName, checkerName, visibleName, value, ctx }) => {
|
|
214699
|
+
const pushDiagnostic = (source, message) => {
|
|
213897
214700
|
diagnostics.push({
|
|
213898
214701
|
instanceKey: target.instanceKey,
|
|
213899
214702
|
nodeId: node.id,
|
|
213900
214703
|
nodeName: node.name,
|
|
213901
214704
|
fieldKind: "arg",
|
|
213902
214705
|
fieldName,
|
|
213903
|
-
checker:
|
|
214706
|
+
checker: source,
|
|
213904
214707
|
message
|
|
213905
214708
|
});
|
|
213906
214709
|
};
|
|
214710
|
+
if (visibleName) {
|
|
214711
|
+
const resolution = resolveNodeFieldVisible({
|
|
214712
|
+
visibleName,
|
|
214713
|
+
value,
|
|
214714
|
+
ctx,
|
|
214715
|
+
visibles: params.visibles ?? /* @__PURE__ */ new Map()
|
|
214716
|
+
});
|
|
214717
|
+
if (resolution.diagnostic) {
|
|
214718
|
+
pushDiagnostic(resolution.diagnostic.source, resolution.diagnostic.message);
|
|
214719
|
+
}
|
|
214720
|
+
}
|
|
214721
|
+
if (!checkerName) {
|
|
214722
|
+
return;
|
|
214723
|
+
}
|
|
213907
214724
|
const checker = params.checkers.get(checkerName);
|
|
213908
214725
|
if (!checker) {
|
|
213909
|
-
pushDiagnostic(`checker '${checkerName}' is not registered`);
|
|
214726
|
+
pushDiagnostic(checkerName, `checker '${checkerName}' is not registered`);
|
|
213910
214727
|
return;
|
|
213911
214728
|
}
|
|
213912
214729
|
try {
|
|
213913
214730
|
const messages = normalizeNodeFieldCheckResult(checker.validate(value, ctx));
|
|
213914
|
-
messages.forEach(pushDiagnostic);
|
|
214731
|
+
messages.forEach((message) => pushDiagnostic(checkerName, message));
|
|
213915
214732
|
} catch (error) {
|
|
213916
|
-
pushDiagnostic(
|
|
214733
|
+
pushDiagnostic(
|
|
214734
|
+
checkerName,
|
|
214735
|
+
`checker '${checkerName}' failed: ${formatRuntimeError(error)}`
|
|
214736
|
+
);
|
|
213917
214737
|
}
|
|
213918
214738
|
},
|
|
213919
|
-
onInput: ({ fieldName, fieldIndex, checkerName, value, ctx }) => {
|
|
213920
|
-
|
|
213921
|
-
return;
|
|
213922
|
-
}
|
|
213923
|
-
const pushDiagnostic = (message) => {
|
|
214739
|
+
onInput: ({ fieldName, fieldIndex, checkerName, visibleName, value, ctx }) => {
|
|
214740
|
+
const pushDiagnostic = (source, message) => {
|
|
213924
214741
|
diagnostics.push({
|
|
213925
214742
|
instanceKey: target.instanceKey,
|
|
213926
214743
|
nodeId: node.id,
|
|
@@ -213928,27 +214745,41 @@ var collectNodeFieldCheckDiagnostics = (params) => {
|
|
|
213928
214745
|
fieldKind: "input",
|
|
213929
214746
|
fieldName,
|
|
213930
214747
|
fieldIndex,
|
|
213931
|
-
checker:
|
|
214748
|
+
checker: source,
|
|
213932
214749
|
message
|
|
213933
214750
|
});
|
|
213934
214751
|
};
|
|
214752
|
+
if (visibleName) {
|
|
214753
|
+
const resolution = resolveNodeFieldVisible({
|
|
214754
|
+
visibleName,
|
|
214755
|
+
value,
|
|
214756
|
+
ctx,
|
|
214757
|
+
visibles: params.visibles ?? /* @__PURE__ */ new Map()
|
|
214758
|
+
});
|
|
214759
|
+
if (resolution.diagnostic) {
|
|
214760
|
+
pushDiagnostic(resolution.diagnostic.source, resolution.diagnostic.message);
|
|
214761
|
+
}
|
|
214762
|
+
}
|
|
214763
|
+
if (!checkerName) {
|
|
214764
|
+
return;
|
|
214765
|
+
}
|
|
213935
214766
|
const checker = params.checkers.get(checkerName);
|
|
213936
214767
|
if (!checker) {
|
|
213937
|
-
pushDiagnostic(`checker '${checkerName}' is not registered`);
|
|
214768
|
+
pushDiagnostic(checkerName, `checker '${checkerName}' is not registered`);
|
|
213938
214769
|
return;
|
|
213939
214770
|
}
|
|
213940
214771
|
try {
|
|
213941
214772
|
const messages = normalizeNodeFieldCheckResult(checker.validate(value, ctx));
|
|
213942
|
-
messages.forEach(pushDiagnostic);
|
|
214773
|
+
messages.forEach((message) => pushDiagnostic(checkerName, message));
|
|
213943
214774
|
} catch (error) {
|
|
213944
|
-
pushDiagnostic(
|
|
214775
|
+
pushDiagnostic(
|
|
214776
|
+
checkerName,
|
|
214777
|
+
`checker '${checkerName}' failed: ${formatRuntimeError(error)}`
|
|
214778
|
+
);
|
|
213945
214779
|
}
|
|
213946
214780
|
},
|
|
213947
|
-
onOutput: ({ fieldName, fieldIndex, checkerName, value, ctx }) => {
|
|
213948
|
-
|
|
213949
|
-
return;
|
|
213950
|
-
}
|
|
213951
|
-
const pushDiagnostic = (message) => {
|
|
214781
|
+
onOutput: ({ fieldName, fieldIndex, checkerName, visibleName, value, ctx }) => {
|
|
214782
|
+
const pushDiagnostic = (source, message) => {
|
|
213952
214783
|
diagnostics.push({
|
|
213953
214784
|
instanceKey: target.instanceKey,
|
|
213954
214785
|
nodeId: node.id,
|
|
@@ -213956,20 +214787,37 @@ var collectNodeFieldCheckDiagnostics = (params) => {
|
|
|
213956
214787
|
fieldKind: "output",
|
|
213957
214788
|
fieldName,
|
|
213958
214789
|
fieldIndex,
|
|
213959
|
-
checker:
|
|
214790
|
+
checker: source,
|
|
213960
214791
|
message
|
|
213961
214792
|
});
|
|
213962
214793
|
};
|
|
214794
|
+
if (visibleName) {
|
|
214795
|
+
const resolution = resolveNodeFieldVisible({
|
|
214796
|
+
visibleName,
|
|
214797
|
+
value,
|
|
214798
|
+
ctx,
|
|
214799
|
+
visibles: params.visibles ?? /* @__PURE__ */ new Map()
|
|
214800
|
+
});
|
|
214801
|
+
if (resolution.diagnostic) {
|
|
214802
|
+
pushDiagnostic(resolution.diagnostic.source, resolution.diagnostic.message);
|
|
214803
|
+
}
|
|
214804
|
+
}
|
|
214805
|
+
if (!checkerName) {
|
|
214806
|
+
return;
|
|
214807
|
+
}
|
|
213963
214808
|
const checker = params.checkers.get(checkerName);
|
|
213964
214809
|
if (!checker) {
|
|
213965
|
-
pushDiagnostic(`checker '${checkerName}' is not registered`);
|
|
214810
|
+
pushDiagnostic(checkerName, `checker '${checkerName}' is not registered`);
|
|
213966
214811
|
return;
|
|
213967
214812
|
}
|
|
213968
214813
|
try {
|
|
213969
214814
|
const messages = normalizeNodeFieldCheckResult(checker.validate(value, ctx));
|
|
213970
|
-
messages.forEach(pushDiagnostic);
|
|
214815
|
+
messages.forEach((message) => pushDiagnostic(checkerName, message));
|
|
213971
214816
|
} catch (error) {
|
|
213972
|
-
pushDiagnostic(
|
|
214817
|
+
pushDiagnostic(
|
|
214818
|
+
checkerName,
|
|
214819
|
+
`checker '${checkerName}' failed: ${formatRuntimeError(error)}`
|
|
214820
|
+
);
|
|
213973
214821
|
}
|
|
213974
214822
|
}
|
|
213975
214823
|
});
|
|
@@ -214406,13 +215254,19 @@ var buildProjectWithContext = async (project, buildDir, context) => {
|
|
|
214406
215254
|
path: b3path_default,
|
|
214407
215255
|
workdir: context.workdir,
|
|
214408
215256
|
nodeDefs: context.nodeDefs,
|
|
214409
|
-
logger
|
|
215257
|
+
logger,
|
|
215258
|
+
allowNewFunction: settings.allowNewFunction ?? false
|
|
214410
215259
|
};
|
|
214411
215260
|
const buildRuntime = createBuildScriptRuntimeWithCheckModules(
|
|
214412
215261
|
buildScriptModule,
|
|
214413
215262
|
checkScriptModules,
|
|
214414
215263
|
scriptEnv
|
|
214415
215264
|
);
|
|
215265
|
+
const visibleRuntime = createNodeFieldVisibleRuntimeWithCheckModules(
|
|
215266
|
+
buildScriptModule,
|
|
215267
|
+
checkScriptModules,
|
|
215268
|
+
scriptEnv
|
|
215269
|
+
);
|
|
214416
215270
|
if (buildSetting && (!buildScriptModule || buildRuntime.hasError)) {
|
|
214417
215271
|
hasError = true;
|
|
214418
215272
|
}
|
|
@@ -214458,7 +215312,8 @@ var buildProjectWithContext = async (project, buildDir, context) => {
|
|
|
214458
215312
|
tree,
|
|
214459
215313
|
treePath: candidatePath,
|
|
214460
215314
|
env: scriptEnv,
|
|
214461
|
-
checkers: buildRuntime.nodeFieldCheckers
|
|
215315
|
+
checkers: buildRuntime.nodeFieldCheckers,
|
|
215316
|
+
visibles: visibleRuntime.nodeFieldVisibles
|
|
214462
215317
|
});
|
|
214463
215318
|
if (checkDiagnostics.length) {
|
|
214464
215319
|
hasError = true;
|
|
@@ -214491,6 +215346,7 @@ var batchProcessProjectWithContext = async (project, scriptPath, context) => {
|
|
|
214491
215346
|
let writtenFiles = 0;
|
|
214492
215347
|
const allErrors = [];
|
|
214493
215348
|
const stagedWrites = [];
|
|
215349
|
+
const settings = readWorkspaceSettings(project);
|
|
214494
215350
|
let buildScriptModule;
|
|
214495
215351
|
try {
|
|
214496
215352
|
buildScriptModule = await loadRuntimeModule(scriptPath, {
|
|
@@ -214504,7 +215360,8 @@ var batchProcessProjectWithContext = async (project, scriptPath, context) => {
|
|
|
214504
215360
|
path: b3path_default,
|
|
214505
215361
|
workdir: context.workdir,
|
|
214506
215362
|
nodeDefs: context.nodeDefs,
|
|
214507
|
-
logger
|
|
215363
|
+
logger,
|
|
215364
|
+
allowNewFunction: settings.allowNewFunction ?? false
|
|
214508
215365
|
};
|
|
214509
215366
|
const buildScript = createBatchHooks(buildScriptModule, scriptEnv);
|
|
214510
215367
|
if (!buildScriptModule || !buildScript) {
|
|
@@ -218052,6 +218909,13 @@ var isValidInputOrOutput = (def, data, index) => {
|
|
|
218052
218909
|
// src/project-path-discovery.ts
|
|
218053
218910
|
var fs = __toESM(require("fs"));
|
|
218054
218911
|
var path = __toESM(require("path"));
|
|
218912
|
+
var resolveExistingPath = (inputPath) => {
|
|
218913
|
+
const resolved = path.resolve(inputPath);
|
|
218914
|
+
if (!fs.existsSync(resolved)) {
|
|
218915
|
+
return resolved;
|
|
218916
|
+
}
|
|
218917
|
+
return fs.realpathSync.native(resolved);
|
|
218918
|
+
};
|
|
218055
218919
|
var isWithinRoot = (rootDir, candidateDir) => {
|
|
218056
218920
|
const relative3 = path.relative(rootDir, candidateDir);
|
|
218057
218921
|
return relative3 === "" || !relative3.startsWith("..") && !path.isAbsolute(relative3);
|
|
@@ -218061,12 +218925,13 @@ var toSearchDirectory = (inputPath) => {
|
|
|
218061
218925
|
if (!fs.existsSync(resolved)) {
|
|
218062
218926
|
return path.extname(resolved) ? path.dirname(resolved) : resolved;
|
|
218063
218927
|
}
|
|
218064
|
-
const
|
|
218065
|
-
|
|
218928
|
+
const canonical = resolveExistingPath(resolved);
|
|
218929
|
+
const stat = fs.statSync(canonical);
|
|
218930
|
+
return stat.isDirectory() ? canonical : path.dirname(canonical);
|
|
218066
218931
|
};
|
|
218067
218932
|
var findNearestFileUpward = (searchFrom, suffix, rootDir) => {
|
|
218068
|
-
let dir =
|
|
218069
|
-
const boundary = rootDir ?
|
|
218933
|
+
let dir = resolveExistingPath(searchFrom);
|
|
218934
|
+
const boundary = rootDir ? resolveExistingPath(rootDir) : void 0;
|
|
218070
218935
|
while (true) {
|
|
218071
218936
|
if (boundary && !isWithinRoot(boundary, dir)) {
|
|
218072
218937
|
break;
|
|
@@ -218075,7 +218940,7 @@ var findNearestFileUpward = (searchFrom, suffix, rootDir) => {
|
|
|
218075
218940
|
const names = fs.readdirSync(dir);
|
|
218076
218941
|
const hit = names.filter((name) => name.endsWith(suffix)).sort()[0];
|
|
218077
218942
|
if (hit) {
|
|
218078
|
-
return path.join(dir, hit);
|
|
218943
|
+
return resolveExistingPath(path.join(dir, hit));
|
|
218079
218944
|
}
|
|
218080
218945
|
} catch {
|
|
218081
218946
|
}
|
|
@@ -218093,14 +218958,14 @@ var findNearestFileUpward = (searchFrom, suffix, rootDir) => {
|
|
|
218093
218958
|
var findBehaviorWorkspaceFileSync = (searchPath, opts) => {
|
|
218094
218959
|
const resolved = path.resolve(searchPath);
|
|
218095
218960
|
if (resolved.endsWith(".b3-workspace") && fs.existsSync(resolved)) {
|
|
218096
|
-
return resolved;
|
|
218961
|
+
return resolveExistingPath(resolved);
|
|
218097
218962
|
}
|
|
218098
218963
|
return findNearestFileUpward(toSearchDirectory(resolved), ".b3-workspace", opts?.rootDir);
|
|
218099
218964
|
};
|
|
218100
218965
|
var findBehaviorSettingFileSync = (searchPath, opts) => {
|
|
218101
218966
|
const resolved = path.resolve(searchPath);
|
|
218102
218967
|
if (resolved.endsWith(".b3-setting") && fs.existsSync(resolved)) {
|
|
218103
|
-
return resolved;
|
|
218968
|
+
return resolveExistingPath(resolved);
|
|
218104
218969
|
}
|
|
218105
218970
|
return findNearestFileUpward(toSearchDirectory(resolved), ".b3-setting", opts?.rootDir);
|
|
218106
218971
|
};
|
|
@@ -218108,6 +218973,25 @@ var findBehaviorSettingFileSync = (searchPath, opts) => {
|
|
|
218108
218973
|
// src/build/build-cli.ts
|
|
218109
218974
|
setFs(fs2);
|
|
218110
218975
|
var normalizePosixPath = (filePath) => filePath.replace(/\\/g, "/");
|
|
218976
|
+
var resolveExistingPath2 = (filePath) => {
|
|
218977
|
+
const resolved = path2.resolve(filePath);
|
|
218978
|
+
if (!fs2.existsSync(resolved)) {
|
|
218979
|
+
return resolved;
|
|
218980
|
+
}
|
|
218981
|
+
return fs2.realpathSync.native(resolved);
|
|
218982
|
+
};
|
|
218983
|
+
async function withProcessCwd(cwd, run) {
|
|
218984
|
+
const previousCwd = process.cwd();
|
|
218985
|
+
if (previousCwd === cwd) {
|
|
218986
|
+
return run();
|
|
218987
|
+
}
|
|
218988
|
+
process.chdir(cwd);
|
|
218989
|
+
try {
|
|
218990
|
+
return await run();
|
|
218991
|
+
} finally {
|
|
218992
|
+
process.chdir(previousCwd);
|
|
218993
|
+
}
|
|
218994
|
+
}
|
|
218111
218995
|
var ensureExistingFile = (filePath, suffix, label) => {
|
|
218112
218996
|
const resolved = path2.resolve(filePath);
|
|
218113
218997
|
if (!resolved.endsWith(suffix)) {
|
|
@@ -218116,7 +219000,7 @@ var ensureExistingFile = (filePath, suffix, label) => {
|
|
|
218116
219000
|
if (!fs2.existsSync(resolved) || !fs2.statSync(resolved).isFile()) {
|
|
218117
219001
|
throw new Error(`${label} does not exist: ${resolved}`);
|
|
218118
219002
|
}
|
|
218119
|
-
return resolved;
|
|
219003
|
+
return resolveExistingPath2(resolved);
|
|
218120
219004
|
};
|
|
218121
219005
|
var ensureExistingScriptFile = (filePath, label) => {
|
|
218122
219006
|
const resolved = path2.resolve(filePath);
|
|
@@ -218127,7 +219011,7 @@ var ensureExistingScriptFile = (filePath, label) => {
|
|
|
218127
219011
|
if (!fs2.existsSync(resolved) || !fs2.statSync(resolved).isFile()) {
|
|
218128
219012
|
throw new Error(`${label} does not exist: ${resolved}`);
|
|
218129
219013
|
}
|
|
218130
|
-
return resolved;
|
|
219014
|
+
return resolveExistingPath2(resolved);
|
|
218131
219015
|
};
|
|
218132
219016
|
var resolveBehaviorProjectPaths = (options) => {
|
|
218133
219017
|
const projectPath = path2.resolve(options.projectPath ?? process.cwd());
|
|
@@ -218175,10 +219059,13 @@ var buildBehaviorProject = async (options) => {
|
|
|
218175
219059
|
alertError: () => {
|
|
218176
219060
|
}
|
|
218177
219061
|
});
|
|
218178
|
-
const hasError = await
|
|
218179
|
-
|
|
218180
|
-
|
|
218181
|
-
|
|
219062
|
+
const hasError = await withProcessCwd(
|
|
219063
|
+
paths.workdir,
|
|
219064
|
+
async () => buildProjectWithContext(
|
|
219065
|
+
normalizePosixPath(paths.workspaceFile),
|
|
219066
|
+
normalizePosixPath(paths.outputDir),
|
|
219067
|
+
buildContext
|
|
219068
|
+
)
|
|
218182
219069
|
);
|
|
218183
219070
|
return {
|
|
218184
219071
|
hasError,
|