@spyglassmc/mcfunction 0.1.1 → 0.2.1

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.
@@ -1,29 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.register = void 0;
23
- const core = __importStar(require("@spyglassmc/core"));
24
- function register(meta) {
1
+ import * as core from '@spyglassmc/core';
2
+ export function register(meta) {
25
3
  meta.registerColorizer('mcfunction:command_child/literal', core.colorizer.literal);
26
4
  meta.registerColorizer('mcfunction:command_child/trailing', core.colorizer.error);
27
5
  }
28
- exports.register = register;
29
6
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  import * as core from '@spyglassmc/core';
2
- import type { McfunctionNode } from '../node';
3
- import { CommandNode } from '../node';
4
- import type { ArgumentTreeNode, RootTreeNode } from '../tree';
2
+ import type { McfunctionNode } from '../node/index.js';
3
+ import { CommandNode } from '../node/index.js';
4
+ import type { ArgumentTreeNode, RootTreeNode } from '../tree/index.js';
5
5
  export declare type MockNodesGetter = (treeNode: ArgumentTreeNode, range: core.RangeLike) => core.Arrayable<core.AstNode>;
6
6
  /**
7
7
  * @param getMockNodes A function that returns a mock AST Node from given {@link ArgumentTreeNode}. These mock nodes
@@ -1,46 +1,23 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.command = exports.entry = void 0;
23
- const core = __importStar(require("@spyglassmc/core"));
24
- const node_1 = require("../node");
25
- const tree_1 = require("../tree");
1
+ import * as core from '@spyglassmc/core';
2
+ import { CommandNode } from '../node/index.js';
3
+ import { categorizeTreeChildren, CommandTreeRegistry, redirect, resolveParentTreeNode } from '../tree/index.js';
26
4
  /**
27
5
  * @param getMockNodes A function that returns a mock AST Node from given {@link ArgumentTreeNode}. These mock nodes
28
6
  * will be used for completing the argument.
29
7
  */
30
- function entry(commandTreeName, getMockNodes) {
8
+ export function entry(commandTreeName, getMockNodes) {
31
9
  return (node, ctx) => {
32
- const tree = tree_1.CommandTreeRegistry.instance.get(commandTreeName);
10
+ const tree = CommandTreeRegistry.instance.get(commandTreeName);
33
11
  const childNode = core.AstNode.findChild(node, ctx.offset, true);
34
12
  if (core.CommentNode.is(childNode)) {
35
13
  return [];
36
14
  }
37
15
  else {
38
- return command(tree, getMockNodes)(childNode ?? node_1.CommandNode.mock(ctx.offset), ctx);
16
+ return command(tree, getMockNodes)(childNode ?? CommandNode.mock(ctx.offset), ctx);
39
17
  }
40
18
  };
41
19
  }
42
- exports.entry = entry;
43
- function command(tree, getMockNodes) {
20
+ export function command(tree, getMockNodes) {
44
21
  return (node, ctx) => {
45
22
  const index = core.AstNode.findChildIndex(node, ctx.offset, true);
46
23
  const selectedChildNode = node.children[index]?.children[0];
@@ -51,20 +28,19 @@ function command(tree, getMockNodes) {
51
28
  if (!lastChildNode) {
52
29
  return Object
53
30
  .keys(tree.children ?? {})
54
- .map(v => core.CompletionItem.create(v, ctx.offset, { kind: 14 /* Keyword */ }));
31
+ .map(v => core.CompletionItem.create(v, ctx.offset, { kind: 14 /* core.CompletionKind.Keyword */ }));
55
32
  }
56
33
  const treePath = lastChildNode.path;
57
- const { treeNode: parentTreeNode } = (0, tree_1.resolveParentTreeNode)((0, tree_1.redirect)(tree, treePath), tree);
34
+ const { treeNode: parentTreeNode } = resolveParentTreeNode(redirect(tree, treePath), tree);
58
35
  if (!parentTreeNode?.children) {
59
36
  return [];
60
37
  }
61
- const { literalTreeNodes, argumentTreeNodes } = (0, tree_1.categorizeTreeChildren)(parentTreeNode.children);
38
+ const { literalTreeNodes, argumentTreeNodes } = categorizeTreeChildren(parentTreeNode.children);
62
39
  return [
63
- ...literalTreeNodes.map(([name]) => core.CompletionItem.create(name, ctx.offset, { kind: 14 /* Keyword */ })),
40
+ ...literalTreeNodes.map(([name]) => core.CompletionItem.create(name, ctx.offset, { kind: 14 /* core.CompletionKind.Keyword */ })),
64
41
  ...argumentTreeNodes.flatMap(([_name, treeNode]) => core.Arrayable.toArray(getMockNodes(treeNode, ctx.offset))
65
42
  .flatMap(n => core.completer.dispatch(n, ctx))),
66
43
  ];
67
44
  };
68
45
  }
69
- exports.command = command;
70
46
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as core from '@spyglassmc/core';
2
- export * as colorizer from './colorizer';
3
- export * as completer from './completer';
4
- export * from './node';
5
- export * from './parser';
6
- export * from './tree';
7
- export declare const initialize: core.ProjectInitializer;
2
+ export * as colorizer from './colorizer/index.js';
3
+ export * as completer from './completer/index.js';
4
+ export * from './node/index.js';
5
+ export * from './parser/index.js';
6
+ export * from './tree/index.js';
7
+ export declare const initialize: core.SyncProjectInitializer;
8
8
  //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -1,39 +1,13 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.initialize = exports.completer = exports.colorizer = void 0;
26
- const core = __importStar(require("@spyglassmc/core"));
27
- const colorizer = __importStar(require("./colorizer"));
28
- exports.colorizer = __importStar(require("./colorizer"));
29
- exports.completer = __importStar(require("./completer"));
30
- __exportStar(require("./node"), exports);
31
- __exportStar(require("./parser"), exports);
32
- __exportStar(require("./tree"), exports);
1
+ import * as core from '@spyglassmc/core';
2
+ import * as colorizer from './colorizer/index.js';
3
+ export * as colorizer from './colorizer/index.js';
4
+ export * as completer from './completer/index.js';
5
+ export * from './node/index.js';
6
+ export * from './parser/index.js';
7
+ export * from './tree/index.js';
33
8
  /* istanbul ignore next */
34
- const initialize = ({ meta }) => {
9
+ export const initialize = ({ meta }) => {
35
10
  colorizer.register(meta);
36
11
  meta.registerCompleter('mcfunction:command_child/literal', core.completer.literal);
37
12
  };
38
- exports.initialize = initialize;
39
13
  //# sourceMappingURL=index.js.map
@@ -1,27 +1,5 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.LiteralCommandChildNode = exports.CommandChildNode = exports.CommandNode = void 0;
23
- const core = __importStar(require("@spyglassmc/core"));
24
- var CommandNode;
1
+ import * as core from '@spyglassmc/core';
2
+ export var CommandNode;
25
3
  (function (CommandNode) {
26
4
  /* istanbul ignore next */
27
5
  function is(node) {
@@ -36,19 +14,19 @@ var CommandNode;
36
14
  };
37
15
  }
38
16
  CommandNode.mock = mock;
39
- })(CommandNode = exports.CommandNode || (exports.CommandNode = {}));
40
- var CommandChildNode;
17
+ })(CommandNode || (CommandNode = {}));
18
+ export var CommandChildNode;
41
19
  (function (CommandChildNode) {
42
20
  function is(node) {
43
21
  return node.type === 'mcfunction:command_child';
44
22
  }
45
23
  CommandChildNode.is = is;
46
- })(CommandChildNode = exports.CommandChildNode || (exports.CommandChildNode = {}));
47
- var LiteralCommandChildNode;
24
+ })(CommandChildNode || (CommandChildNode = {}));
25
+ export var LiteralCommandChildNode;
48
26
  (function (LiteralCommandChildNode) {
49
27
  function is(node) {
50
28
  return node?.type === 'mcfunction:command_child/literal';
51
29
  }
52
30
  LiteralCommandChildNode.is = is;
53
- })(LiteralCommandChildNode = exports.LiteralCommandChildNode || (exports.LiteralCommandChildNode = {}));
31
+ })(LiteralCommandChildNode || (LiteralCommandChildNode = {}));
54
32
  //# sourceMappingURL=command.js.map
@@ -1,5 +1,5 @@
1
1
  import type * as core from '@spyglassmc/core';
2
- import type { CommandNode } from './command';
2
+ import type { CommandNode } from './command.js';
3
3
  export interface McfunctionNode extends core.SequenceNode<CommandNode | core.CommentNode> {
4
4
  type: 'mcfunction:entry';
5
5
  }
package/lib/node/entry.js CHANGED
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.McfunctionNode = void 0;
4
- var McfunctionNode;
1
+ export var McfunctionNode;
5
2
  (function (McfunctionNode) {
6
3
  /* istanbul ignore next */
7
4
  function is(node) {
8
5
  return node?.type === 'mcfunction:entry';
9
6
  }
10
7
  McfunctionNode.is = is;
11
- })(McfunctionNode = exports.McfunctionNode || (exports.McfunctionNode = {}));
8
+ })(McfunctionNode || (McfunctionNode = {}));
12
9
  //# sourceMappingURL=entry.js.map
@@ -1,3 +1,3 @@
1
- export * from './command';
2
- export * from './entry';
1
+ export * from './command.js';
2
+ export * from './entry.js';
3
3
  //# sourceMappingURL=index.d.ts.map
package/lib/node/index.js CHANGED
@@ -1,15 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./command"), exports);
14
- __exportStar(require("./entry"), exports);
1
+ export * from './command.js';
2
+ export * from './entry.js';
15
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import type * as core from '@spyglassmc/core';
2
- import type { ArgumentTreeNode } from '../tree';
2
+ import type { ArgumentTreeNode } from '../tree/index.js';
3
3
  /**
4
4
  * A function that returns a parser for the provided tree node.
5
5
  *
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.argumentTreeNodeToString = void 0;
4
- function argumentTreeNodeToString(name, treeNode) {
1
+ export function argumentTreeNodeToString(name, treeNode) {
5
2
  const parserName = treeNode.parser.slice(treeNode.parser.indexOf(':') + 1);
6
3
  return `<${name}: ${parserName}>`;
7
4
  }
8
- exports.argumentTreeNodeToString = argumentTreeNodeToString;
9
5
  //# sourceMappingURL=argument.js.map
@@ -1,7 +1,7 @@
1
1
  import * as core from '@spyglassmc/core';
2
- import type { CommandNode } from '../node';
3
- import type { RootTreeNode, TreeNode } from '../tree/type';
4
- import type { ArgumentParserGetter } from './argument';
2
+ import type { CommandNode } from '../node/index.js';
3
+ import type { RootTreeNode, TreeNode } from '../tree/type.js';
4
+ import type { ArgumentParserGetter } from './argument.js';
5
5
  /**
6
6
  * @returns A parser that always takes a whole line (excluding line turn characters) and tries to parse it as a command.
7
7
  */
@@ -1,35 +1,13 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.treeNodeToString = exports.treeNodeChildrenToString = exports.treeNodeChildrenToStringArray = exports.command = void 0;
23
- const core = __importStar(require("@spyglassmc/core"));
24
- const locales_1 = require("@spyglassmc/locales");
25
- const tree_1 = require("../tree");
26
- const argument_1 = require("./argument");
27
- const common_1 = require("./common");
28
- const literal_1 = require("./literal");
1
+ import * as core from '@spyglassmc/core';
2
+ import { localeQuote, localize } from '@spyglassmc/locales';
3
+ import { categorizeTreeChildren, resolveParentTreeNode } from '../tree/index.js';
4
+ import { argumentTreeNodeToString } from './argument.js';
5
+ import { sep } from './common.js';
6
+ import { literal } from './literal.js';
29
7
  /**
30
8
  * @returns A parser that always takes a whole line (excluding line turn characters) and tries to parse it as a command.
31
9
  */
32
- function command(tree, argument) {
10
+ export function command(tree, argument) {
33
11
  return (src, ctx) => {
34
12
  const ans = {
35
13
  type: 'mcfunction:command',
@@ -55,7 +33,6 @@ function command(tree, argument) {
55
33
  return ans;
56
34
  };
57
35
  }
58
- exports.command = command;
59
36
  /**
60
37
  * Dispatch and parse based on the specified command tree node's children.
61
38
  *
@@ -64,19 +41,19 @@ exports.command = command;
64
41
  function dispatch(ans, src, ctx, path, rootTreeNode, parentTreeNode, argument) {
65
42
  // Convention: suffix `Node` is for AST nodes; `TreeNode` is for command tree nodes.
66
43
  function _dispatch(path, parentTreeNode) {
67
- const { treeNode: parent, path: resolvedPath } = (0, tree_1.resolveParentTreeNode)(parentTreeNode, rootTreeNode, path);
44
+ const { treeNode: parent, path: resolvedPath } = resolveParentTreeNode(parentTreeNode, rootTreeNode, path);
68
45
  path = resolvedPath;
69
46
  const children = parent?.children;
70
47
  if (!children) {
71
48
  return false;
72
49
  }
73
- const { literalTreeNodes, argumentTreeNodes } = (0, tree_1.categorizeTreeChildren)(children);
50
+ const { literalTreeNodes, argumentTreeNodes } = categorizeTreeChildren(children);
74
51
  const argumentParsers = argumentTreeNodes.map(([name, treeNode]) => ({
75
52
  name,
76
53
  parser: argument(treeNode) ?? unknown(treeNode),
77
54
  }));
78
55
  const literalParser = literalTreeNodes.length
79
- ? (0, literal_1.literal)(literalTreeNodes.map(([name, _treeNode]) => name), parent.type === 'root')
56
+ ? literal(literalTreeNodes.map(([name, _treeNode]) => name), parent.type === 'root')
80
57
  : undefined;
81
58
  const parsers = [
82
59
  ...literalParser ? [literalParser] : [],
@@ -100,7 +77,7 @@ function dispatch(ans, src, ctx, path, rootTreeNode, parentTreeNode, argument) {
100
77
  }
101
78
  const requiredPermissionLevel = childTreeNode.permission ?? 2;
102
79
  if (ctx.config.env.permissionLevel < requiredPermissionLevel) {
103
- ctx.err.report((0, locales_1.localize)('mcfunction.parser.no-permission', requiredPermissionLevel, ctx.config.env.permissionLevel), result);
80
+ ctx.err.report(localize('mcfunction.parser.no-permission', requiredPermissionLevel, ctx.config.env.permissionLevel), result);
104
81
  }
105
82
  if (result.type === 'mcfunction:command_child/unknown') {
106
83
  // Encountered an unsupported parser. Stop parsing this command.
@@ -108,19 +85,19 @@ function dispatch(ans, src, ctx, path, rootTreeNode, parentTreeNode, argument) {
108
85
  }
109
86
  if (src.canReadInLine()) {
110
87
  // Skip command argument separation (a space).
111
- (0, common_1.sep)(src, ctx);
88
+ sep(src, ctx);
112
89
  return { childPath, childTreeNode };
113
90
  }
114
91
  else {
115
92
  // End-of-command.
116
93
  if (!childTreeNode.executable) {
117
- ctx.err.report((0, locales_1.localize)('mcfunction.parser.eoc-unexpected'), src);
94
+ ctx.err.report(localize('mcfunction.parser.eoc-unexpected'), src);
118
95
  }
119
96
  }
120
97
  }
121
98
  else {
122
99
  // Failed to parse as any arguments.
123
- ctx.err.report((0, locales_1.localize)('expected', treeNodeChildrenToString(children)), core.Range.create(src));
100
+ ctx.err.report(localize('expected', treeNodeChildrenToString(children)), core.Range.create(src));
124
101
  }
125
102
  return false;
126
103
  }
@@ -134,7 +111,7 @@ function unknown(treeNode) {
134
111
  const start = src.cursor;
135
112
  const value = src.readUntilLineEnd();
136
113
  const range = core.Range.create(start, src);
137
- ctx.err.report((0, locales_1.localize)('mcfunction.parser.unknown-parser', (0, locales_1.localeQuote)(treeNode.parser)), range, 0 /* Hint */);
114
+ ctx.err.report(localize('mcfunction.parser.unknown-parser', localeQuote(treeNode.parser)), range, 0 /* core.ErrorSeverity.Hint */);
138
115
  return {
139
116
  type: 'mcfunction:command_child/unknown',
140
117
  range,
@@ -146,7 +123,7 @@ const trailing = (src, ctx) => {
146
123
  const start = src.cursor;
147
124
  const value = src.readUntilLineEnd();
148
125
  const range = core.Range.create(start, src);
149
- ctx.err.report((0, locales_1.localize)('mcfunction.parser.trailing', (0, locales_1.localeQuote)(value)), range);
126
+ ctx.err.report(localize('mcfunction.parser.trailing', localeQuote(value)), range);
150
127
  return {
151
128
  type: 'mcfunction:command_child/trailing',
152
129
  range,
@@ -156,26 +133,23 @@ const trailing = (src, ctx) => {
156
133
  function wrapWithBrackets(syntax, executable) {
157
134
  return executable ? `[${syntax}]` : syntax;
158
135
  }
159
- function treeNodeChildrenToStringArray(children, executable = false) {
136
+ export function treeNodeChildrenToStringArray(children, executable = false) {
160
137
  const entries = Object.entries(children)
161
138
  .map(([name, treeNode]) => wrapWithBrackets(treeNodeToString(name, treeNode), executable));
162
139
  return entries;
163
140
  }
164
- exports.treeNodeChildrenToStringArray = treeNodeChildrenToStringArray;
165
- function treeNodeChildrenToString(children) {
141
+ export function treeNodeChildrenToString(children) {
166
142
  const entries = treeNodeChildrenToStringArray(children);
167
143
  return entries.length > 5
168
144
  ? `${entries.slice(0, 3).join('|')}|...|${entries.slice(-2).join('|')}`
169
145
  : entries.join('|');
170
146
  }
171
- exports.treeNodeChildrenToString = treeNodeChildrenToString;
172
- function treeNodeToString(name, treeNode) {
147
+ export function treeNodeToString(name, treeNode) {
173
148
  if (treeNode.type === 'argument') {
174
- return (0, argument_1.argumentTreeNodeToString)(name, treeNode);
149
+ return argumentTreeNodeToString(name, treeNode);
175
150
  }
176
151
  else {
177
152
  return name;
178
153
  }
179
154
  }
180
- exports.treeNodeToString = treeNodeToString;
181
155
  //# sourceMappingURL=command.js.map
@@ -1,39 +1,16 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.sep = void 0;
23
- const core = __importStar(require("@spyglassmc/core"));
24
- const locales_1 = require("@spyglassmc/locales");
1
+ import * as core from '@spyglassmc/core';
2
+ import { localeQuote, localize } from '@spyglassmc/locales';
25
3
  /**
26
4
  * A parser that takes a continuous sequence of spaces and tabs, and marks an error if it is not a single space.
27
5
  *
28
6
  * @returns The accepted spaces and tabs.
29
7
  */
30
- const sep = (src, ctx) => {
8
+ export const sep = (src, ctx) => {
31
9
  const start = src.cursor;
32
10
  const ans = src.readSpace();
33
11
  if (ans !== ' ') {
34
- ctx.err.report((0, locales_1.localize)('expected', (0, locales_1.localize)('mcfunction.parser.sep', (0, locales_1.localeQuote)(' '))), core.Range.create(start, src));
12
+ ctx.err.report(localize('expected', localize('mcfunction.parser.sep', localeQuote(' '))), core.Range.create(start, src));
35
13
  }
36
14
  return ans;
37
15
  };
38
- exports.sep = sep;
39
16
  //# sourceMappingURL=common.js.map
@@ -1,6 +1,6 @@
1
1
  import * as core from '@spyglassmc/core';
2
- import type { McfunctionNode } from '../node';
3
- import type { ArgumentParserGetter } from './argument';
2
+ import type { McfunctionNode } from '../node/index.js';
3
+ import type { ArgumentParserGetter } from './argument.js';
4
4
  /**
5
5
  * @throws When there's no command tree associated with `commandTreeName`.
6
6
  */
@@ -1,32 +1,10 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.entry = void 0;
23
- const core = __importStar(require("@spyglassmc/core"));
24
- const tree_1 = require("../tree");
25
- const command_1 = require("./command");
1
+ import * as core from '@spyglassmc/core';
2
+ import { CommandTreeRegistry } from '../tree/index.js';
3
+ import { command } from './command.js';
26
4
  /**
27
5
  * @throws When there's no command tree associated with `commandTreeName`.
28
6
  */
29
- function entry(commandTreeName, argument) {
7
+ export function entry(commandTreeName, argument) {
30
8
  return (src, ctx) => {
31
9
  const ans = {
32
10
  type: 'mcfunction:entry',
@@ -39,7 +17,7 @@ function entry(commandTreeName, argument) {
39
17
  result = comment(src, ctx);
40
18
  }
41
19
  else {
42
- result = (0, command_1.command)(tree_1.CommandTreeRegistry.instance.get(commandTreeName), argument)(src, ctx);
20
+ result = command(CommandTreeRegistry.instance.get(commandTreeName), argument)(src, ctx);
43
21
  }
44
22
  ans.children.push(result);
45
23
  src.nextLine();
@@ -48,7 +26,6 @@ function entry(commandTreeName, argument) {
48
26
  return ans;
49
27
  };
50
28
  }
51
- exports.entry = entry;
52
29
  const comment = core.comment({
53
30
  singleLinePrefixes: new Set(['#']),
54
31
  });
@@ -1,6 +1,6 @@
1
- export * from './argument';
2
- export * from './command';
3
- export * from './common';
4
- export * from './entry';
5
- export * from './literal';
1
+ export * from './argument.js';
2
+ export * from './command.js';
3
+ export * from './common.js';
4
+ export * from './entry.js';
5
+ export * from './literal.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,18 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./argument"), exports);
14
- __exportStar(require("./command"), exports);
15
- __exportStar(require("./common"), exports);
16
- __exportStar(require("./entry"), exports);
17
- __exportStar(require("./literal"), exports);
1
+ export * from './argument.js';
2
+ export * from './command.js';
3
+ export * from './common.js';
4
+ export * from './entry.js';
5
+ export * from './literal.js';
18
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
1
  import * as core from '@spyglassmc/core';
2
- import type { LiteralCommandChildNode } from '../node';
2
+ import type { LiteralCommandChildNode } from '../node/index.js';
3
3
  export declare function literal(names: string[], isRoot?: boolean): core.Parser<LiteralCommandChildNode>;
4
4
  //# sourceMappingURL=literal.d.ts.map
@@ -1,28 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.literal = void 0;
23
- const core = __importStar(require("@spyglassmc/core"));
24
- const locales_1 = require("@spyglassmc/locales");
25
- function literal(names, isRoot = false) {
1
+ import * as core from '@spyglassmc/core';
2
+ import { localize } from '@spyglassmc/locales';
3
+ export function literal(names, isRoot = false) {
26
4
  const options = {
27
5
  pool: names,
28
6
  colorTokenType: isRoot ? 'keyword' : 'literal',
@@ -40,10 +18,9 @@ function literal(names, isRoot = false) {
40
18
  value,
41
19
  };
42
20
  if (!names.includes(value)) {
43
- ctx.err.report((0, locales_1.localize)('expected', names), ans);
21
+ ctx.err.report(localize('expected', names), ans);
44
22
  }
45
23
  return ans;
46
24
  };
47
25
  }
48
- exports.literal = literal;
49
26
  //# sourceMappingURL=literal.js.map
@@ -1,4 +1,4 @@
1
- export * from './registry';
2
- export * from './type';
3
- export * from './util';
1
+ export * from './registry.js';
2
+ export * from './type.js';
3
+ export * from './util.js';
4
4
  //# sourceMappingURL=index.d.ts.map
package/lib/tree/index.js CHANGED
@@ -1,16 +1,4 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./registry"), exports);
14
- __exportStar(require("./type"), exports);
15
- __exportStar(require("./util"), exports);
1
+ export * from './registry.js';
2
+ export * from './type.js';
3
+ export * from './util.js';
16
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import type { PartialRootTreeNode, RootTreeNode } from './type';
1
+ import type { PartialRootTreeNode, RootTreeNode } from './type.js';
2
2
  /**
3
3
  * The registry for mcfunction command trees.
4
4
  * This is a singleton; use the `instance` static property to get an instance.
@@ -1,33 +1,11 @@
1
- "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var _CommandTreeRegistry_trees;
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.CommandTreeRegistry = void 0;
10
- const core_1 = require("@spyglassmc/core");
1
+ import { merge } from '@spyglassmc/core';
11
2
  /* istanbul ignore next */
12
3
  /**
13
4
  * The registry for mcfunction command trees.
14
5
  * This is a singleton; use the `instance` static property to get an instance.
15
6
  */
16
- class CommandTreeRegistry {
17
- constructor() {
18
- _CommandTreeRegistry_trees.set(this, new Map()
19
- /**
20
- * Register command tree for an arbitrary version.
21
- *
22
- * @param version The game version. e.g. `1.15-tdn`.
23
- * @param tree The command tree for this version.
24
- * @param treePatch A custom command tree patch that will be merged onto `tree`.
25
- */
26
- );
27
- if (CommandTreeRegistry._instance) {
28
- throw new Error('Use the `instance` static property to get an instance.');
29
- }
30
- }
7
+ export class CommandTreeRegistry {
8
+ #trees = new Map();
31
9
  /**
32
10
  * Register command tree for an arbitrary version.
33
11
  *
@@ -36,13 +14,13 @@ class CommandTreeRegistry {
36
14
  * @param treePatch A custom command tree patch that will be merged onto `tree`.
37
15
  */
38
16
  register(version, tree, treePatch) {
39
- __classPrivateFieldGet(this, _CommandTreeRegistry_trees, "f").set(version, treePatch ? (0, core_1.merge)(tree, treePatch) : tree);
17
+ this.#trees.set(version, treePatch ? merge(tree, treePatch) : tree);
40
18
  }
41
19
  /**
42
20
  * @throws When there's no command tree associated with the version.
43
21
  */
44
22
  get(version) {
45
- const ans = __classPrivateFieldGet(this, _CommandTreeRegistry_trees, "f").get(version);
23
+ const ans = this.#trees.get(version);
46
24
  if (!ans) {
47
25
  throw new Error(`No command tree exist for version “${version}”`);
48
26
  }
@@ -54,7 +32,11 @@ class CommandTreeRegistry {
54
32
  static get instance() {
55
33
  return this._instance ?? (this._instance = new CommandTreeRegistry());
56
34
  }
35
+ constructor() {
36
+ if (CommandTreeRegistry._instance) {
37
+ throw new Error('Use the `instance` static property to get an instance.');
38
+ }
39
+ }
40
+ static _instance;
57
41
  }
58
- exports.CommandTreeRegistry = CommandTreeRegistry;
59
- _CommandTreeRegistry_trees = new WeakMap();
60
42
  //# sourceMappingURL=registry.js.map
package/lib/tree/type.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=type.js.map
@@ -1,4 +1,4 @@
1
- import type { ArgumentTreeNode, LiteralTreeNode, RootTreeNode, TreeNode } from './type';
1
+ import type { ArgumentTreeNode, LiteralTreeNode, RootTreeNode, TreeNode } from './type.js';
2
2
  export declare function redirect(rootTreeNode: TreeNode, path: readonly string[]): TreeNode | undefined;
3
3
  /**
4
4
  * @returns A `TreeNode` whose `children` property, if exists, contains its subsequent `TreeNode`s.
package/lib/tree/util.js CHANGED
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.categorizeTreeChildren = exports.resolveParentTreeNode = exports.redirect = void 0;
4
- function redirect(rootTreeNode, path) {
1
+ export function redirect(rootTreeNode, path) {
5
2
  return path.reduce((p, c) => p?.children?.[c], rootTreeNode);
6
3
  }
7
- exports.redirect = redirect;
8
- function resolveParentTreeNode(parentTreeNode, rootTreeNode, parentPath) {
4
+ export function resolveParentTreeNode(parentTreeNode, rootTreeNode, parentPath) {
9
5
  if (parentTreeNode?.redirect) {
10
6
  return { treeNode: redirect(rootTreeNode, parentTreeNode.redirect), path: [...parentTreeNode.redirect] };
11
7
  }
@@ -18,11 +14,10 @@ function resolveParentTreeNode(parentTreeNode, rootTreeNode, parentPath) {
18
14
  return { treeNode: parentTreeNode, path: parentPath };
19
15
  }
20
16
  }
21
- exports.resolveParentTreeNode = resolveParentTreeNode;
22
17
  /**
23
18
  * Categorize command tree children to literal entries and argument entries.
24
19
  */
25
- function categorizeTreeChildren(children) {
20
+ export function categorizeTreeChildren(children) {
26
21
  const ans = {
27
22
  literalTreeNodes: [],
28
23
  argumentTreeNodes: [],
@@ -38,5 +33,4 @@ function categorizeTreeChildren(children) {
38
33
  }
39
34
  return ans;
40
35
  }
41
- exports.categorizeTreeChildren = categorizeTreeChildren;
42
36
  //# sourceMappingURL=util.js.map
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@spyglassmc/mcfunction",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
+ "type": "module",
4
5
  "main": "lib/index.js",
5
6
  "types": "lib/index.d.ts",
6
7
  "author": "SPGoding",
@@ -24,7 +25,7 @@
24
25
  "url": "https://github.com/SpyglassMC/Spyglass/issues"
25
26
  },
26
27
  "dependencies": {
27
- "@spyglassmc/core": "0.1.1",
28
- "@spyglassmc/locales": "0.1.1"
28
+ "@spyglassmc/core": "0.3.0",
29
+ "@spyglassmc/locales": "0.3.0"
29
30
  }
30
31
  }