@plexcord-companion/ast-parser 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/util.d.ts ADDED
@@ -0,0 +1,144 @@
1
+ import { type AssignmentExpression, type AssignmentOperatorToken, type BinaryExpression, type DefaultKeyword, type Identifier, type ImportClause, type LiteralToken, type NamespaceImport, type Node, type ObjectLiteralElementLike, type ObjectLiteralExpression, type PlusToken, type PropertyAccessExpression, type PropertyDeclaration, type SourceFile, SyntaxKind, type SyntaxList, type Token, type VariableDeclaration } from "typescript";
2
+ import type { AnyFunction, AssertedType, CBAssertion, Functionish, Import, WithParent } from "./types.js";
3
+ export declare const enum CharCode {
4
+ /**
5
+ * The `\n` character.
6
+ */
7
+ LineFeed = 10,
8
+ /**
9
+ * The `\r` character.
10
+ */
11
+ CarriageReturn = 13
12
+ }
13
+ export declare function isEOL(char: number): boolean;
14
+ /**
15
+ * given a function like this, returns the identifier for x
16
+ * @example function(){
17
+ * // any code here
18
+ * return x;
19
+ * }
20
+ * @param func a function to get the return value of
21
+ * @returns the return identifier, if any
22
+ */
23
+ export declare function findReturnIdentifier(func: Functionish): Identifier | undefined;
24
+ /**
25
+ * given an object literal, returns the property assignment for `prop` if it exists
26
+ *
27
+ * if prop is defined more than once, returns the first
28
+ * @example
29
+ * {
30
+ * exProp: "examplePropValue"
31
+ * }
32
+ * @param prop exProp
33
+ */
34
+ export declare function findObjectLiteralByKey(object: ObjectLiteralExpression, prop: string): ObjectLiteralElementLike | undefined;
35
+ /**
36
+ * first parent
37
+ */
38
+ export declare const findParent: CBAssertion<undefined, undefined>;
39
+ export declare function findParentLimited<F extends (n: Node) => n is Node, R extends Node = AssertedType<F, Node>>(node: Node, func: F extends (n: Node) => n is R ? F : never, limit: number): R | undefined;
40
+ /**
41
+ * @param node the node to start from
42
+ * @param func a function to check if the parent matches
43
+ */
44
+ export declare const lastParent: CBAssertion<undefined, undefined>;
45
+ export declare const lastChild: CBAssertion<undefined>;
46
+ export declare function one<T, F extends (t: T) => t is T, R extends T = AssertedType<F, T>>(arr: readonly T[], func: F extends (t: T) => t is R ? F : never): R | undefined;
47
+ export declare function isDefaultImport(x: Identifier): x is WithParent<typeof x, ImportClause>;
48
+ /**
49
+ * @param node any identifier in an import statment
50
+ */
51
+ export declare function getImportName(node: Identifier): Pick<Import, "orig" | "as">;
52
+ /**
53
+ * given an access chain like `one.b.three.d` \@*returns* — `[one?, b?]`
54
+ *
55
+ * if b is returned, one is gaurenteed to be defined
56
+ * @param node any node in the property access chain
57
+ */
58
+ export declare function getLeadingIdentifier(node: Node | undefined): readonly [Identifier, undefined] | readonly [Identifier, Identifier] | readonly [undefined, undefined];
59
+ export declare function isInImportStatment(x: Node): boolean;
60
+ /**
61
+ * @param x an identifier in the import statment, not just any imported identifier
62
+ * @returns the source of the import statment
63
+ * @example
64
+ * ```
65
+ * import { x } from "source"
66
+ * ```
67
+ * @returns "source"
68
+ */
69
+ export declare function getImportSource(x: Identifier): string;
70
+ export declare function isNamespaceImport(x: Identifier): x is WithParent<typeof x, NamespaceImport>;
71
+ export declare function isDefaultKeyword(n: Node): n is DefaultKeyword;
72
+ export declare function isSyntaxList(node: Node): node is SyntaxList;
73
+ /**
74
+ * given a function like
75
+ * ```ts
76
+ * function myFunc() {
77
+ * // any code here
78
+ * return a.b; // can be anything else, eg a.b.c a.b[anything]
79
+ * }
80
+ * ```
81
+ * @returns the returned property access expression, if any
82
+ **/
83
+ export declare function findReturnPropertyAccessExpression(func: AnyFunction): PropertyAccessExpression | undefined;
84
+ export declare function tryParseStringOrNumberLiteral(node: Node | undefined): string | undefined;
85
+ export declare function isLiteralish(node: Node): node is LiteralToken;
86
+ export declare function isFunctionish(node: Node): node is Functionish;
87
+ /**
88
+ * returns if the node is a directive
89
+ * ```ts
90
+ * "use strict"; // true
91
+ * "use something"; // true
92
+ * "not a directive"; // false
93
+ * 42; // false
94
+ * ```
95
+ */
96
+ export declare function isDirective(node: Node): boolean;
97
+ export declare function isAssignmentExpression(node: Node | undefined): node is AssignmentExpression<AssignmentOperatorToken>;
98
+ export declare function isVariableAssignmentLike(node: Node | undefined): node is (Omit<VariableDeclaration, "name" | "initializer"> & {
99
+ name: Identifier;
100
+ initializer: Exclude<VariableDeclaration["initializer"], undefined>;
101
+ }) | (Omit<AssignmentExpression<AssignmentOperatorToken>, "left"> & {
102
+ left: Identifier;
103
+ });
104
+ export declare function isBinaryPlusExpression(node: Node): node is BinaryExpression & {
105
+ readonly operatorToken: PlusToken;
106
+ };
107
+ /**
108
+ * @license MIT
109
+ * taken from tsutils, license below
110
+ * The MIT License (MIT)
111
+ *
112
+ * Copyright (c) 2017 Klaus Meinhardt
113
+ *
114
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
115
+ * of this software and associated documentation files (the "Software"), to deal
116
+ * in the Software without restriction, including without limitation the rights
117
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
118
+ * copies of the Software, and to permit persons to whom the Software is
119
+ * furnished to do so, subject to the following conditions:
120
+ *
121
+ * The above copyright notice and this permission notice shall be included in all
122
+ * copies or substantial portions of the Software.
123
+ *
124
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
125
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
126
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
127
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
128
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
129
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
130
+ * SOFTWARE.
131
+ */
132
+ /***/
133
+ export declare function getTokenAtPosition(parent: Node, pos: number, sourceFile?: SourceFile, allowJsDoc?: boolean): Node | undefined;
134
+ /** Returns the deepest AST Node at `pos`. Returns undefined if `pos` is outside of the range of `node` */
135
+ export declare function getAstNodeAtPosition(node: Node, pos: number): Node | undefined;
136
+ export declare function nonNull<T>(x: T | null | undefined): x is T;
137
+ export declare function isEmptyObjectLiteral(node: Node): node is ObjectLiteralExpression;
138
+ export declare function isCommaExpression(node: Node): node is BinaryExpression & {
139
+ readonly operatorToken: Token<SyntaxKind.CommaToken>;
140
+ };
141
+ export declare function isInExpression(node: Node): node is BinaryExpression & {
142
+ readonly operatorToken: Token<SyntaxKind.InKeyword>;
143
+ };
144
+ export declare function isStatic(item: PropertyDeclaration): boolean;
package/dist/util.js ADDED
@@ -0,0 +1,404 @@
1
+ import { isStaticKeyword } from "ts-api-utils";
2
+ import { forEachChild, isArrowFunction, isBigIntLiteral, isBinaryExpression, isBlock, isConstructorDeclaration, isExpressionStatement, isFunctionDeclaration, isFunctionExpression, isGetAccessorDeclaration, isIdentifier, isImportClause, isImportDeclaration, isImportSpecifier, isJsxText, isMethodDeclaration, isNamespaceImport as _TS_isNamespaceImport, isNumericLiteral, isObjectLiteralExpression, isPropertyAccessExpression, isRegularExpressionLiteral, isReturnStatement, isSetAccessorDeclaration, isStringLiteral, isStringLiteralLike, isTokenKind, isVariableDeclaration, SyntaxKind, } from "typescript";
3
+ export var CharCode;
4
+ (function (CharCode) {
5
+ /**
6
+ * The `\n` character.
7
+ */
8
+ CharCode[CharCode["LineFeed"] = 10] = "LineFeed";
9
+ /**
10
+ * The `\r` character.
11
+ */
12
+ CharCode[CharCode["CarriageReturn"] = 13] = "CarriageReturn";
13
+ })(CharCode || (CharCode = {}));
14
+ export function isEOL(char) {
15
+ return char === CharCode.CarriageReturn || char === CharCode.LineFeed;
16
+ }
17
+ /**
18
+ * given a function like this, returns the identifier for x
19
+ * @example function(){
20
+ * // any code here
21
+ * return x;
22
+ * }
23
+ * @param func a function to get the return value of
24
+ * @returns the return identifier, if any
25
+ */
26
+ export function findReturnIdentifier(func) {
27
+ if (!func.body)
28
+ return undefined;
29
+ if (isBlock(func.body))
30
+ return _findReturnIdentifier(func.body);
31
+ if (isIdentifier(func.body))
32
+ return func.body;
33
+ }
34
+ function _findReturnIdentifier(func) {
35
+ const lastStatement = func.statements.at(-1);
36
+ if (!lastStatement
37
+ || !isReturnStatement(lastStatement)
38
+ || !lastStatement.expression
39
+ || !isIdentifier(lastStatement.expression))
40
+ return undefined;
41
+ return lastStatement.expression;
42
+ }
43
+ /**
44
+ * given an object literal, returns the property assignment for `prop` if it exists
45
+ *
46
+ * if prop is defined more than once, returns the first
47
+ * @example
48
+ * {
49
+ * exProp: "examplePropValue"
50
+ * }
51
+ * @param prop exProp
52
+ */
53
+ export function findObjectLiteralByKey(object, prop) {
54
+ return object.properties.find((x) => x.name?.getText() === prop);
55
+ }
56
+ /**
57
+ * first parent
58
+ */
59
+ export const findParent = (node, func) => {
60
+ if (!node)
61
+ return undefined;
62
+ while (!func(node)) {
63
+ if (!node.parent)
64
+ return undefined;
65
+ node = node.parent;
66
+ }
67
+ return node;
68
+ };
69
+ export function findParentLimited(node, func, limit) {
70
+ if (!node)
71
+ return undefined;
72
+ limit += 1;
73
+ while (limit-- && !func(node)) {
74
+ if (!node.parent)
75
+ return undefined;
76
+ node = node.parent;
77
+ }
78
+ if (limit < 0) {
79
+ return undefined;
80
+ }
81
+ return node;
82
+ }
83
+ // FIXME: try simplifying this
84
+ /**
85
+ * @param node the node to start from
86
+ * @param func a function to check if the parent matches
87
+ */
88
+ export const lastParent = (node, func) => {
89
+ if (!node)
90
+ return undefined;
91
+ if (!node.parent)
92
+ return undefined;
93
+ while (func(node.parent)) {
94
+ if (!node.parent)
95
+ break;
96
+ node = node.parent;
97
+ }
98
+ return func(node) ? node : undefined;
99
+ };
100
+ export const lastChild = (node, func) => {
101
+ if (!node)
102
+ return undefined;
103
+ const c = node.getChildren();
104
+ if (c.length === 0) {
105
+ if (func(node))
106
+ return node;
107
+ return undefined;
108
+ }
109
+ if (c.length === 1) {
110
+ if (func(c[0]))
111
+ return lastChild(c[0], func);
112
+ if (func(node))
113
+ return node;
114
+ return undefined;
115
+ }
116
+ const x = one(c, func);
117
+ if (x) {
118
+ return lastChild(x, func);
119
+ }
120
+ if (func(node))
121
+ return node;
122
+ return undefined;
123
+ };
124
+ // FIXME: this seems really stupid
125
+ export function one(arr, func) {
126
+ const filter = arr.filter(func);
127
+ return filter.length === 1 ? filter[0] : undefined;
128
+ }
129
+ export function isDefaultImport(x) {
130
+ return isImportClause(x.parent);
131
+ }
132
+ /**
133
+ * @param node any identifier in an import statment
134
+ */
135
+ export function getImportName(node) {
136
+ // default or namespace
137
+ if (isDefaultImport(node) || isNamespaceImport(node))
138
+ return { as: node };
139
+ const specifier = findParent(node, isImportSpecifier);
140
+ if (!specifier)
141
+ throw new Error("x is not in an import statment");
142
+ return {
143
+ orig: specifier.propertyName,
144
+ as: specifier.name,
145
+ };
146
+ }
147
+ // i fucking hate jsdoc
148
+ /**
149
+ * given an access chain like `one.b.three.d` \@*returns* — `[one?, b?]`
150
+ *
151
+ * if b is returned, one is gaurenteed to be defined
152
+ * @param node any node in the property access chain
153
+ */
154
+ export function getLeadingIdentifier(node) {
155
+ if (!node)
156
+ return [node, undefined];
157
+ const { expression: module, name: wpExport } = (() => {
158
+ const lastP = lastParent(node, isPropertyAccessExpression);
159
+ return lastP && lastChild(lastP, isPropertyAccessExpression);
160
+ })() ?? {};
161
+ if (!module || !isIdentifier(module))
162
+ return [undefined, undefined];
163
+ return [
164
+ module,
165
+ wpExport ? isIdentifier(wpExport) ? wpExport : undefined : undefined,
166
+ ];
167
+ }
168
+ export function isInImportStatment(x) {
169
+ return findParent(x, isImportDeclaration) != null;
170
+ }
171
+ /**
172
+ * @param x an identifier in the import statment, not just any imported identifier
173
+ * @returns the source of the import statment
174
+ * @example
175
+ * ```
176
+ * import { x } from "source"
177
+ * ```
178
+ * @returns "source"
179
+ */
180
+ export function getImportSource(x) {
181
+ const clause = findParent(x, isImportDeclaration);
182
+ if (!clause)
183
+ throw new Error("x is not in an import statment");
184
+ // getText returns with quotes, but the prop text does not have them ????
185
+ return clause.moduleSpecifier.getText()
186
+ .slice(1, -1);
187
+ }
188
+ export function isNamespaceImport(x) {
189
+ return _TS_isNamespaceImport(x.parent);
190
+ }
191
+ export function isDefaultKeyword(n) {
192
+ return n.kind === SyntaxKind.DefaultKeyword;
193
+ }
194
+ export function isSyntaxList(node) {
195
+ return node.kind === SyntaxKind.SyntaxList;
196
+ }
197
+ /**
198
+ * given a function like
199
+ * ```ts
200
+ * function myFunc() {
201
+ * // any code here
202
+ * return a.b; // can be anything else, eg a.b.c a.b[anything]
203
+ * }
204
+ * ```
205
+ * @returns the returned property access expression, if any
206
+ **/
207
+ export function findReturnPropertyAccessExpression(func) {
208
+ if (isBlock(func.body))
209
+ return _findReturnPropertyAccessExpression(func.body);
210
+ if (isPropertyAccessExpression(func.body))
211
+ return func.body;
212
+ }
213
+ function _findReturnPropertyAccessExpression(func) {
214
+ const lastStatment = func.statements.at(-1);
215
+ if (!lastStatment
216
+ || !isReturnStatement(lastStatment)
217
+ || !lastStatment.expression
218
+ || !isPropertyAccessExpression(lastStatment.expression))
219
+ return undefined;
220
+ return lastStatment.expression;
221
+ }
222
+ export function tryParseStringOrNumberLiteral(node) {
223
+ if (!node)
224
+ return;
225
+ if (isStringLiteralLike(node) || isNumericLiteral(node)) {
226
+ return node.text;
227
+ }
228
+ }
229
+ export function isLiteralish(node) {
230
+ return isStringLiteralLike(node)
231
+ || isNumericLiteral(node)
232
+ || isBigIntLiteral(node)
233
+ || isJsxText(node)
234
+ || isRegularExpressionLiteral(node);
235
+ }
236
+ export function isFunctionish(node) {
237
+ return (isFunctionDeclaration(node)
238
+ || isMethodDeclaration(node)
239
+ || isGetAccessorDeclaration(node)
240
+ || isSetAccessorDeclaration(node)
241
+ || isConstructorDeclaration(node)
242
+ || isFunctionExpression(node)
243
+ || isArrowFunction(node));
244
+ }
245
+ const DIRECTIVE_PREFIX = "use ";
246
+ /**
247
+ * returns if the node is a directive
248
+ * ```ts
249
+ * "use strict"; // true
250
+ * "use something"; // true
251
+ * "not a directive"; // false
252
+ * 42; // false
253
+ * ```
254
+ */
255
+ export function isDirective(node) {
256
+ if (!isExpressionStatement(node)) {
257
+ return false;
258
+ }
259
+ const { expression } = node;
260
+ if (!isStringLiteral(expression)) {
261
+ return false;
262
+ }
263
+ const { text } = expression;
264
+ if (text.length <= DIRECTIVE_PREFIX.length) {
265
+ return false;
266
+ }
267
+ return text.startsWith(DIRECTIVE_PREFIX);
268
+ }
269
+ const ASSIGNMENT_TOKENS = {
270
+ [SyntaxKind.EqualsToken]: true,
271
+ [SyntaxKind.PlusEqualsToken]: true,
272
+ [SyntaxKind.MinusEqualsToken]: true,
273
+ [SyntaxKind.AsteriskAsteriskEqualsToken]: true,
274
+ [SyntaxKind.AsteriskEqualsToken]: true,
275
+ [SyntaxKind.SlashEqualsToken]: true,
276
+ [SyntaxKind.PercentEqualsToken]: true,
277
+ [SyntaxKind.AmpersandEqualsToken]: true,
278
+ [SyntaxKind.BarEqualsToken]: true,
279
+ [SyntaxKind.CaretEqualsToken]: true,
280
+ [SyntaxKind.LessThanLessThanEqualsToken]: true,
281
+ [SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken]: true,
282
+ [SyntaxKind.GreaterThanGreaterThanEqualsToken]: true,
283
+ [SyntaxKind.BarBarEqualsToken]: true,
284
+ [SyntaxKind.AmpersandAmpersandEqualsToken]: true,
285
+ [SyntaxKind.QuestionQuestionEqualsToken]: true,
286
+ };
287
+ export function isAssignmentExpression(node) {
288
+ if (!node || !isBinaryExpression(node))
289
+ return false;
290
+ return ASSIGNMENT_TOKENS[node.operatorToken.kind] === true;
291
+ }
292
+ export function isVariableAssignmentLike(node) {
293
+ if (!node)
294
+ return false;
295
+ if (isVariableDeclaration(node)) {
296
+ return isIdentifier(node.name) && !!node.initializer;
297
+ }
298
+ else if (isBinaryExpression(node)) {
299
+ return isAssignmentExpression(node);
300
+ }
301
+ return false;
302
+ }
303
+ export function isBinaryPlusExpression(node) {
304
+ if (!isBinaryExpression(node)) {
305
+ return false;
306
+ }
307
+ if (node.operatorToken.kind !== SyntaxKind.PlusToken) {
308
+ return false;
309
+ }
310
+ return true;
311
+ }
312
+ /**
313
+ * @license MIT
314
+ * taken from tsutils, license below
315
+ * The MIT License (MIT)
316
+ *
317
+ * Copyright (c) 2017 Klaus Meinhardt
318
+ *
319
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
320
+ * of this software and associated documentation files (the "Software"), to deal
321
+ * in the Software without restriction, including without limitation the rights
322
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
323
+ * copies of the Software, and to permit persons to whom the Software is
324
+ * furnished to do so, subject to the following conditions:
325
+ *
326
+ * The above copyright notice and this permission notice shall be included in all
327
+ * copies or substantial portions of the Software.
328
+ *
329
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
330
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
331
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
332
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
333
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
334
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
335
+ * SOFTWARE.
336
+ */
337
+ // empty comment so the license doesn't become the doc comment for this func
338
+ /***/
339
+ export function getTokenAtPosition(parent, pos, sourceFile, allowJsDoc) {
340
+ if (pos < parent.pos || pos >= parent.end) {
341
+ return;
342
+ }
343
+ if (isTokenKind(parent.kind)) {
344
+ return parent;
345
+ }
346
+ return _getTokenAtPosition(parent, pos, sourceFile ?? parent.getSourceFile(), allowJsDoc === true);
347
+ }
348
+ function _getTokenAtPosition(node, pos, sourceFile, allowJsDoc) {
349
+ if (!allowJsDoc) {
350
+ // if we are not interested in JSDoc, we can skip to the deepest AST node at the given position
351
+ node = getAstNodeAtPosition(node, pos);
352
+ if (isTokenKind(node.kind)) {
353
+ return node;
354
+ }
355
+ }
356
+ outer: while (true) {
357
+ for (const child of node.getChildren()) {
358
+ if (child.end > pos && (allowJsDoc || child.kind !== SyntaxKind.JSDoc)) {
359
+ if (isTokenKind(child.kind)) {
360
+ return child;
361
+ }
362
+ node = child;
363
+ continue outer;
364
+ }
365
+ }
366
+ return;
367
+ }
368
+ }
369
+ /** Returns the deepest AST Node at `pos`. Returns undefined if `pos` is outside of the range of `node` */
370
+ export function getAstNodeAtPosition(node, pos) {
371
+ if (node.pos > pos || node.end <= pos) {
372
+ return;
373
+ }
374
+ while (isNodeKind(node.kind)) {
375
+ const nested = forEachChild(node, (child) => (child.pos <= pos && child.end > pos ? child : undefined));
376
+ if (nested === undefined) {
377
+ break;
378
+ }
379
+ node = nested;
380
+ }
381
+ return node;
382
+ }
383
+ /**
384
+ * stolen form tsutils, seems sketchy
385
+ */
386
+ function isNodeKind(kind) {
387
+ return kind >= SyntaxKind.FirstNode;
388
+ }
389
+ export function nonNull(x) {
390
+ return x != null;
391
+ }
392
+ export function isEmptyObjectLiteral(node) {
393
+ return isObjectLiteralExpression(node) && node.properties.length === 0;
394
+ }
395
+ export function isCommaExpression(node) {
396
+ return isBinaryExpression(node) && node.operatorToken.kind === SyntaxKind.CommaToken;
397
+ }
398
+ export function isInExpression(node) {
399
+ return isBinaryExpression(node) && node.operatorToken.kind === SyntaxKind.InKeyword;
400
+ }
401
+ export function isStatic(item) {
402
+ return item.modifiers?.some((mod) => isStaticKeyword(mod)) ?? false;
403
+ }
404
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@plexcord-companion/ast-parser",
3
+ "version": "2.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "keywords": [],
7
+ "author": {
8
+ "name": "MutanPlex",
9
+ "url": "https://mutanplex.com"
10
+ },
11
+ "license": "LGPL-3.0-or-later",
12
+ "dependencies": {
13
+ "@sadan4/devtools-pretty-printer": "^1.0.4",
14
+ "@plexcord-companion/shared": "2.0.0"
15
+ },
16
+ "exports": {
17
+ "./*": "./dist/*.js",
18
+ ".": "./dist/index.js"
19
+ },
20
+ "peerDependencies": {
21
+ "ts-api-utils": "^2.1.0",
22
+ "typescript": "^5.9.0"
23
+ },
24
+ "devDependencies": {
25
+ "vitest": "^3.2.4"
26
+ },
27
+ "scripts": {
28
+ "preversion": "mkdir .git || :",
29
+ "bump": "npm version",
30
+ "postversion": "rmdir .git",
31
+ "build": "tsc -b && tsc-alias -f"
32
+ }
33
+ }