@dbml/parse 6.0.0 → 6.2.0-alpha.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/__tests__/examples/compiler/stringUtils.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/data.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/fk.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/increment.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/multi_records.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/pk.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/table_partial.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/type_compatibility.test.d.ts +1 -0
- package/dist/__tests__/examples/interpreter/record/unique.test.d.ts +1 -0
- package/dist/__tests__/examples/lexer/scientific-notation.test.d.ts +1 -0
- package/dist/__tests__/examples/services/definition/general.test.d.ts +1 -0
- package/dist/__tests__/examples/services/definition/records.test.d.ts +1 -0
- package/dist/__tests__/examples/services/references/general.test.d.ts +1 -0
- package/dist/__tests__/examples/services/references/records.test.d.ts +1 -0
- package/dist/__tests__/examples/services/suggestions/general.test.d.ts +1 -0
- package/dist/__tests__/examples/services/suggestions/suggestions_records.test.d.ts +1 -0
- package/dist/__tests__/examples/validator/records.test.d.ts +1 -0
- package/dist/__tests__/utils/compiler.d.ts +5 -5
- package/dist/__tests__/utils/mocks.d.ts +1 -0
- package/dist/__tests__/utils/testHelpers.d.ts +2 -2
- package/dist/dbml-parse.js +28 -26
- package/dist/dbml-parse.mjs +13766 -6576
- package/dist/src/compiler/index.d.ts +8 -4
- package/dist/src/compiler/queries/parse.d.ts +2 -1
- package/dist/src/compiler/queries/transform/index.d.ts +2 -1
- package/dist/src/compiler/queries/transform/renameTable.d.ts +1 -4
- package/dist/src/compiler/queries/transform/utils.d.ts +22 -0
- package/dist/src/compiler/queries/utils.d.ts +95 -0
- package/dist/src/compiler/types.d.ts +2 -1
- package/dist/src/core/analyzer/analyzer.d.ts +2 -3
- package/dist/src/core/analyzer/binder/binder.d.ts +1 -2
- package/dist/src/core/analyzer/binder/elementBinder/records.d.ts +22 -0
- package/dist/src/core/analyzer/binder/utils.d.ts +2 -1
- package/dist/src/core/analyzer/types.d.ts +2 -1
- package/dist/src/core/analyzer/utils.d.ts +11 -1
- package/dist/src/core/analyzer/validator/elementValidators/records.d.ts +26 -0
- package/dist/src/core/analyzer/validator/utils.d.ts +3 -3
- package/dist/src/core/analyzer/validator/validator.d.ts +1 -2
- package/dist/src/core/errors.d.ts +15 -1
- package/dist/src/core/interpreter/interpreter.d.ts +1 -2
- package/dist/src/core/interpreter/records/index.d.ts +10 -0
- package/dist/src/core/interpreter/records/utils/constraints/fk.d.ts +3 -0
- package/dist/src/core/interpreter/records/utils/constraints/helper.d.ts +10 -0
- package/dist/src/core/interpreter/records/utils/constraints/index.d.ts +3 -0
- package/dist/src/core/interpreter/records/utils/constraints/pk.d.ts +3 -0
- package/dist/src/core/interpreter/records/utils/constraints/unique.d.ts +3 -0
- package/dist/src/core/interpreter/records/utils/data/index.d.ts +2 -0
- package/dist/src/core/interpreter/records/utils/data/sqlTypes.d.ts +19 -0
- package/dist/src/core/interpreter/records/utils/data/values.d.ts +14 -0
- package/dist/src/core/interpreter/records/utils/index.d.ts +2 -0
- package/dist/src/core/interpreter/types.d.ts +39 -2
- package/dist/src/core/interpreter/utils.d.ts +4 -3
- package/dist/src/core/lexer/lexer.d.ts +1 -2
- package/dist/src/core/parser/nodes.d.ts +17 -6
- package/dist/src/core/parser/parser.d.ts +6 -4
- package/dist/src/core/parser/utils.d.ts +3 -3
- package/dist/src/core/report.d.ts +8 -5
- package/dist/src/core/utils.d.ts +0 -1
- package/dist/src/index.d.ts +3 -4
- package/dist/src/services/diagnostics/provider.d.ts +34 -0
- package/dist/src/services/index.d.ts +2 -1
- package/dist/src/services/suggestions/recordRowSnippet.d.ts +3 -0
- package/dist/src/services/suggestions/utils.d.ts +27 -1
- package/dist/src/services/types.d.ts +13 -2
- package/package.json +5 -3
- package/dist/src/core/serialization/serialize.d.ts +0 -4
- /package/dist/__tests__/examples/{services/definition.test.d.ts → binder/records.test.d.ts} +0 -0
- /package/dist/__tests__/examples/{services/references.test.d.ts → compiler/identifierUtils.test.d.ts} +0 -0
- /package/dist/__tests__/examples/{services/suggestions.test.d.ts → compiler/splitQualifiedIdentifier.test.d.ts} +0 -0
|
@@ -38,15 +38,18 @@ export declare enum SyntaxNodeKind {
|
|
|
38
38
|
CALL_EXPRESSION = "<call-expression>",
|
|
39
39
|
PRIMARY_EXPRESSION = "<primary-expression>",
|
|
40
40
|
GROUP_EXPRESSION = "<group-expression>",
|
|
41
|
-
|
|
41
|
+
COMMA_EXPRESSION = "<comma-expression>",
|
|
42
|
+
EMPTY = "<dummy>",
|
|
42
43
|
ARRAY = "<array>"
|
|
43
44
|
}
|
|
44
45
|
export declare class ProgramNode extends SyntaxNode {
|
|
45
46
|
body: ElementDeclarationNode[];
|
|
46
47
|
eof?: SyntaxToken;
|
|
47
|
-
|
|
48
|
+
source: string;
|
|
49
|
+
constructor({ body, eof, source }: {
|
|
48
50
|
body?: ElementDeclarationNode[];
|
|
49
51
|
eof?: SyntaxToken;
|
|
52
|
+
source: string;
|
|
50
53
|
}, id: SyntaxNodeId);
|
|
51
54
|
}
|
|
52
55
|
export declare class ElementDeclarationNode extends SyntaxNode {
|
|
@@ -84,7 +87,7 @@ export declare class AttributeNode extends SyntaxNode {
|
|
|
84
87
|
value?: NormalExpressionNode | IdentiferStreamNode;
|
|
85
88
|
}, id: SyntaxNodeId);
|
|
86
89
|
}
|
|
87
|
-
export type NormalExpressionNode = PrefixExpressionNode | InfixExpressionNode | PostfixExpressionNode | BlockExpressionNode | ListExpressionNode | TupleExpressionNode | CallExpressionNode | PrimaryExpressionNode | FunctionExpressionNode |
|
|
90
|
+
export type NormalExpressionNode = PrefixExpressionNode | InfixExpressionNode | PostfixExpressionNode | BlockExpressionNode | ListExpressionNode | TupleExpressionNode | CommaExpressionNode | CallExpressionNode | PrimaryExpressionNode | FunctionExpressionNode | EmptyNode | ArrayNode;
|
|
88
91
|
export type ExpressionNode = ElementDeclarationNode | NormalExpressionNode | FunctionApplicationNode;
|
|
89
92
|
export declare class PrefixExpressionNode extends SyntaxNode {
|
|
90
93
|
op?: SyntaxToken;
|
|
@@ -160,6 +163,14 @@ export declare class TupleExpressionNode extends SyntaxNode {
|
|
|
160
163
|
tupleCloseParen?: SyntaxToken;
|
|
161
164
|
}, id: SyntaxNodeId);
|
|
162
165
|
}
|
|
166
|
+
export declare class CommaExpressionNode extends SyntaxNode {
|
|
167
|
+
elementList: NormalExpressionNode[];
|
|
168
|
+
commaList: SyntaxToken[];
|
|
169
|
+
constructor({ elementList, commaList, }: {
|
|
170
|
+
elementList?: NormalExpressionNode[];
|
|
171
|
+
commaList?: SyntaxToken[];
|
|
172
|
+
}, id: SyntaxNodeId);
|
|
173
|
+
}
|
|
163
174
|
export declare class GroupExpressionNode extends TupleExpressionNode {
|
|
164
175
|
constructor({ groupOpenParen, expression, groupCloseParen, }: {
|
|
165
176
|
groupOpenParen?: SyntaxToken;
|
|
@@ -193,9 +204,9 @@ export declare class PrimaryExpressionNode extends SyntaxNode {
|
|
|
193
204
|
expression?: LiteralNode | VariableNode;
|
|
194
205
|
}, id: SyntaxNodeId);
|
|
195
206
|
}
|
|
196
|
-
export declare class
|
|
197
|
-
constructor({
|
|
198
|
-
|
|
207
|
+
export declare class EmptyNode extends SyntaxNode {
|
|
208
|
+
constructor({ prevToken }: {
|
|
209
|
+
prevToken: Readonly<SyntaxNode> | Readonly<SyntaxToken>;
|
|
199
210
|
}, id: SyntaxNodeId);
|
|
200
211
|
}
|
|
201
212
|
export declare class ArrayNode extends SyntaxNode {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CompileError } from '../errors';
|
|
2
1
|
import { SyntaxToken } from '../lexer/tokens';
|
|
3
2
|
import { default as Report } from '../report';
|
|
4
3
|
import { ProgramNode, SyntaxNodeIdGenerator } from './nodes';
|
|
@@ -8,7 +7,8 @@ export default class Parser {
|
|
|
8
7
|
private errors;
|
|
9
8
|
private contextStack;
|
|
10
9
|
private nodeFactory;
|
|
11
|
-
|
|
10
|
+
private source;
|
|
11
|
+
constructor(source: string, tokens: SyntaxToken[], nodeIdGenerator: SyntaxNodeIdGenerator);
|
|
12
12
|
private isAtEnd;
|
|
13
13
|
private advance;
|
|
14
14
|
private peek;
|
|
@@ -22,7 +22,7 @@ export default class Parser {
|
|
|
22
22
|
parse(): Report<{
|
|
23
23
|
ast: ProgramNode;
|
|
24
24
|
tokens: SyntaxToken[];
|
|
25
|
-
}
|
|
25
|
+
}>;
|
|
26
26
|
private program;
|
|
27
27
|
private synchronizeProgram;
|
|
28
28
|
private elementDeclaration;
|
|
@@ -30,7 +30,9 @@ export default class Parser {
|
|
|
30
30
|
private synchronizeElementDeclarationAlias;
|
|
31
31
|
private fieldDeclaration;
|
|
32
32
|
private expression;
|
|
33
|
-
private
|
|
33
|
+
private shouldStopFunctionApplication;
|
|
34
|
+
private commaExpression;
|
|
35
|
+
private shouldStopCommaExpression;
|
|
34
36
|
private normalExpression;
|
|
35
37
|
private expression_bp;
|
|
36
38
|
private leftExpression_bp;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SyntaxToken, SyntaxTokenKind } from '../lexer/tokens';
|
|
2
2
|
import { Option } from '../option';
|
|
3
3
|
import { default as NodeFactory } from './factory';
|
|
4
|
-
import { ElementDeclarationNode, ExpressionNode, IdentiferStreamNode, InfixExpressionNode, LiteralNode, NormalExpressionNode, PrimaryExpressionNode, SyntaxNode, VariableNode } from './nodes';
|
|
5
|
-
export declare function convertFuncAppToElem(
|
|
4
|
+
import { CommaExpressionNode, ElementDeclarationNode, ExpressionNode, IdentiferStreamNode, InfixExpressionNode, LiteralNode, NormalExpressionNode, PrimaryExpressionNode, SyntaxNode, VariableNode } from './nodes';
|
|
5
|
+
export declare function convertFuncAppToElem(_callee: ExpressionNode | CommaExpressionNode | undefined, _args: (NormalExpressionNode | CommaExpressionNode)[], factory: NodeFactory): Option<ElementDeclarationNode>;
|
|
6
6
|
export declare function isAsKeyword(token?: SyntaxToken): token is SyntaxToken & {
|
|
7
7
|
kind: SyntaxTokenKind.IDENTIFIER;
|
|
8
8
|
value: 'as';
|
|
@@ -49,5 +49,5 @@ type DotDelimitedIdentifier = PrimaryExpressionNode | (AccessExpression & {
|
|
|
49
49
|
export declare function isAccessExpression(node?: SyntaxNode): node is AccessExpression;
|
|
50
50
|
export declare function isDotDelimitedIdentifier(node?: SyntaxNode): node is DotDelimitedIdentifier;
|
|
51
51
|
export declare function extractStringFromIdentifierStream(stream?: IdentiferStreamNode): Option<string>;
|
|
52
|
-
export declare function
|
|
52
|
+
export declare function getElementNameString(element?: ElementDeclarationNode): Option<string>;
|
|
53
53
|
export {};
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { CompileError, CompileWarning } from './errors';
|
|
2
|
+
export default class Report<T> {
|
|
2
3
|
private value;
|
|
3
4
|
private errors;
|
|
4
|
-
|
|
5
|
+
private warnings?;
|
|
6
|
+
constructor(value: T, errors?: CompileError[], warnings?: CompileWarning[]);
|
|
5
7
|
getValue(): T;
|
|
6
|
-
getErrors():
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
getErrors(): CompileError[];
|
|
9
|
+
getWarnings(): CompileWarning[];
|
|
10
|
+
chain<U>(fn: (_: T) => Report<U>): Report<U>;
|
|
11
|
+
map<U>(fn: (_: T) => U): Report<U>;
|
|
9
12
|
}
|
package/dist/src/core/utils.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export declare function isAlphaOrUnderscore(char: string): boolean;
|
|
|
4
4
|
export declare function isDigit(char: string): boolean;
|
|
5
5
|
export declare function isHexChar(char: string): boolean;
|
|
6
6
|
export declare function isAlphaNumeric(char: string): boolean;
|
|
7
|
-
export declare function addQuoteIfNeeded(s: string): string;
|
|
8
7
|
export declare function alternateLists<T, S>(firstList: T[], secondList: S[]): (T | S)[];
|
|
9
8
|
export declare function isOffsetWithinFullSpan(offset: number, nodeOrToken: SyntaxNode | SyntaxToken): boolean;
|
|
10
9
|
export declare function isOffsetWithinSpan(offset: number, nodeOrToken: SyntaxNode | SyntaxToken): boolean;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { serialize } from './core/serialization/serialize';
|
|
2
1
|
import { default as Compiler } from './compiler/index';
|
|
3
2
|
import * as services from '@/services/index';
|
|
4
3
|
export { ElementKind, } from './core/analyzer/types';
|
|
4
|
+
export * from './core/interpreter/records/utils';
|
|
5
5
|
export { SyntaxNode, ElementDeclarationNode, ProgramNode, SyntaxNodeKind, type SyntaxNodeId, } from './core/parser/nodes';
|
|
6
6
|
export { SyntaxToken, SyntaxTokenKind, } from './core/lexer/tokens';
|
|
7
7
|
export { CompileError, CompileErrorCode, } from './core/errors';
|
|
8
8
|
export { type Position, } from './core/types';
|
|
9
|
-
export {
|
|
10
|
-
export { ScopeKind, } from './compiler/index';
|
|
9
|
+
export { ScopeKind, splitQualifiedIdentifier, unescapeString, escapeString, formatRecordValue, isValidIdentifier, addDoubleQuoteIfNeeded, } from './compiler/index';
|
|
11
10
|
export { type Database, type Table, type Column, type Enum, type Ref, type Project, type TableGroup, type TablePartial, } from './core/interpreter/types';
|
|
12
|
-
export {
|
|
11
|
+
export { Compiler, services };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { default as Compiler } from '../../compiler';
|
|
2
|
+
import { MarkerData } from '../types';
|
|
3
|
+
interface Diagnostic {
|
|
4
|
+
type: 'error' | 'warning';
|
|
5
|
+
text: string;
|
|
6
|
+
startRow: number;
|
|
7
|
+
startColumn: number;
|
|
8
|
+
endRow: number;
|
|
9
|
+
endColumn: number;
|
|
10
|
+
code?: string | number;
|
|
11
|
+
}
|
|
12
|
+
export default class DBMLDiagnosticsProvider {
|
|
13
|
+
private compiler;
|
|
14
|
+
constructor(compiler: Compiler);
|
|
15
|
+
/**
|
|
16
|
+
* Get all diagnostics (errors and warnings) from the current compilation
|
|
17
|
+
*/
|
|
18
|
+
provideDiagnostics(): Diagnostic[];
|
|
19
|
+
/**
|
|
20
|
+
* Get only errors from the current compilation
|
|
21
|
+
*/
|
|
22
|
+
provideErrors(): Diagnostic[];
|
|
23
|
+
/**
|
|
24
|
+
* Get only warnings from the current compilation
|
|
25
|
+
*/
|
|
26
|
+
provideWarnings(): Diagnostic[];
|
|
27
|
+
/**
|
|
28
|
+
* Convert Monaco markers format (for editor integration)
|
|
29
|
+
*/
|
|
30
|
+
provideMarkers(): MarkerData[];
|
|
31
|
+
private createDiagnostic;
|
|
32
|
+
private getSeverityValue;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { default as DBMLCompletionItemProvider } from './suggestions/provider';
|
|
2
2
|
import { default as DBMLDefinitionProvider } from './definition/provider';
|
|
3
3
|
import { default as DBMLReferencesProvider } from './references/provider';
|
|
4
|
+
import { default as DBMLDiagnosticsProvider } from './diagnostics/provider';
|
|
4
5
|
export * from './types';
|
|
5
|
-
export { DBMLCompletionItemProvider, DBMLDefinitionProvider, DBMLReferencesProvider, };
|
|
6
|
+
export { DBMLCompletionItemProvider, DBMLDefinitionProvider, DBMLReferencesProvider, DBMLDiagnosticsProvider, };
|
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
import { SymbolKind } from '../../core/analyzer/symbol/symbolIndex';
|
|
2
2
|
import { CompletionItemKind, CompletionList } from '../types';
|
|
3
3
|
import { SyntaxToken } from '../../core/lexer/tokens';
|
|
4
|
+
import { SyntaxNode, TupleExpressionNode } from '../../core/parser/nodes';
|
|
5
|
+
import { default as Compiler } from '../../compiler';
|
|
6
|
+
import { ColumnSymbol, TablePartialInjectedColumnSymbol, TablePartialSymbol, TableSymbol } from '../../core/analyzer/symbol/symbols';
|
|
4
7
|
export declare function pickCompletionItemKind(symbolKind: SymbolKind): CompletionItemKind;
|
|
5
8
|
export declare function shouldPrependSpace(token: SyntaxToken | undefined, offset: number): boolean;
|
|
6
9
|
export declare function noSuggestions(): CompletionList;
|
|
7
10
|
export declare function prependSpace(completionList: CompletionList): CompletionList;
|
|
8
|
-
export declare function
|
|
11
|
+
export declare function addQuoteToSuggestionIfNeeded(completionList: CompletionList): CompletionList;
|
|
12
|
+
export declare function addSuggestAllSuggestion(completionList: CompletionList, separator?: string): CompletionList;
|
|
13
|
+
export declare function getNodeOrTokenSource(compiler: Compiler, tokenOrNode: SyntaxToken | SyntaxNode): string;
|
|
14
|
+
/**
|
|
15
|
+
* Checks if the offset is within the element's header
|
|
16
|
+
* (within the element, but outside the body)
|
|
17
|
+
*/
|
|
18
|
+
export declare function isOffsetWithinElementHeader(offset: number, element: SyntaxNode & {
|
|
19
|
+
body?: SyntaxNode;
|
|
20
|
+
}): boolean;
|
|
21
|
+
export declare function isTupleEmpty(tuple: TupleExpressionNode): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Get columns from a table symbol
|
|
24
|
+
* @param tableSymbol The table symbol to extract columns from
|
|
25
|
+
* @returns Array of column objects with name and type information
|
|
26
|
+
*/
|
|
27
|
+
export declare function getColumnsFromTableSymbol(tableSymbol: TableSymbol | TablePartialSymbol): Array<{
|
|
28
|
+
name: string;
|
|
29
|
+
type: string;
|
|
30
|
+
}> | null;
|
|
31
|
+
export declare function extractNameAndTypeOfColumnSymbol(columnSymbol: ColumnSymbol | TablePartialInjectedColumnSymbol, columnName: string): {
|
|
32
|
+
name: string;
|
|
33
|
+
type: string;
|
|
34
|
+
} | null;
|
|
@@ -12,8 +12,12 @@ export interface CompletionItemProvider {
|
|
|
12
12
|
provideCompletionItems(model: TextModel, position: Position, context: CompletionContext, token: CancellationToken): ProviderResult<CompletionList>;
|
|
13
13
|
resolveCompletionItem?(item: CompletionItem, token: CancellationToken): ProviderResult<CompletionItem>;
|
|
14
14
|
}
|
|
15
|
-
export type CompletionItem = languages.CompletionItem
|
|
16
|
-
|
|
15
|
+
export type CompletionItem = languages.CompletionItem & {
|
|
16
|
+
quoted?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export interface CompletionList extends languages.CompletionList {
|
|
19
|
+
suggestions: CompletionItem[];
|
|
20
|
+
}
|
|
17
21
|
export declare enum CompletionItemKind {
|
|
18
22
|
Function = 1,
|
|
19
23
|
Constructor = 2,
|
|
@@ -57,3 +61,10 @@ export type Definition = languages.Definition;
|
|
|
57
61
|
export type CodeActionList = languages.CodeActionList;
|
|
58
62
|
export type SignatureHelpResult = languages.SignatureHelpResult;
|
|
59
63
|
export type ReferenceProvider = languages.ReferenceProvider;
|
|
64
|
+
export declare enum MarkerSeverity {
|
|
65
|
+
Hint = 1,
|
|
66
|
+
Info = 2,
|
|
67
|
+
Warning = 4,
|
|
68
|
+
Error = 8
|
|
69
|
+
}
|
|
70
|
+
export type MarkerData = editor.IMarkerData;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@dbml/parse",
|
|
4
|
-
"version": "6.0.0",
|
|
4
|
+
"version": "6.2.0-alpha.0",
|
|
5
5
|
"description": "DBML parser v2",
|
|
6
6
|
"author": "Holistics <dev@holistics.io>",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@stylistic/eslint-plugin": "^5.5.0",
|
|
40
40
|
"@types/lodash-es": "^4.17.12",
|
|
41
|
+
"@types/luxon": "^3.7.1",
|
|
41
42
|
"@types/node": "^20.8.8",
|
|
42
43
|
"@typescript-eslint/eslint-plugin": "^8.46.3",
|
|
43
44
|
"@typescript-eslint/parser": "^8.46.3",
|
|
@@ -49,10 +50,11 @@
|
|
|
49
50
|
"vite-plugin-dts": "^4.5.4"
|
|
50
51
|
},
|
|
51
52
|
"dependencies": {
|
|
52
|
-
"lodash-es": "^4.17.21"
|
|
53
|
+
"lodash-es": "^4.17.21",
|
|
54
|
+
"luxon": "^3.7.2"
|
|
53
55
|
},
|
|
54
56
|
"engines": {
|
|
55
57
|
"node": ">=18"
|
|
56
58
|
},
|
|
57
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "00865dc46e1cbab39233ad010c6b5e120131476c"
|
|
58
60
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|