yini-parser 1.1.0-beta → 1.2.0-beta
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/CHANGELOG.md +23 -1
- package/dist/YINI.d.ts +143 -27
- package/dist/YINI.js +145 -174
- package/dist/YINI.js.map +1 -0
- package/dist/config/env.js +1 -0
- package/dist/config/env.js.map +1 -0
- package/dist/core/{ASTBuilder.d.ts → astBuilder.d.ts} +4 -4
- package/dist/core/{ASTBuilder.js → astBuilder.js} +81 -68
- package/dist/core/astBuilder.js.map +1 -0
- package/dist/core/{ErrorDataHandler.d.ts → errorDataHandler.d.ts} +9 -7
- package/dist/core/{ErrorDataHandler.js → errorDataHandler.js} +21 -61
- package/dist/core/errorDataHandler.js.map +1 -0
- package/dist/core/internalTypes.d.ts +121 -0
- package/dist/core/{types.js → internalTypes.js} +6 -0
- package/dist/core/internalTypes.js.map +1 -0
- package/dist/core/objectBuilder.d.ts +2 -2
- package/dist/core/objectBuilder.js +1 -0
- package/dist/core/objectBuilder.js.map +1 -0
- package/dist/core/options/failLevel.d.ts +3 -0
- package/dist/core/options/failLevel.js +27 -0
- package/dist/core/options/failLevel.js.map +1 -0
- package/dist/core/options/normalizeOptions.d.ts +5 -0
- package/dist/core/options/normalizeOptions.js +53 -0
- package/dist/core/options/normalizeOptions.js.map +1 -0
- package/dist/core/options/parserOptionsConstants.d.ts +7 -0
- package/dist/core/options/parserOptionsConstants.js +37 -0
- package/dist/core/options/parserOptionsConstants.js.map +1 -0
- package/dist/core/pipeline.d.ts +18 -0
- package/dist/{parseEntry.js → core/pipeline.js} +82 -215
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/resultMetadataBuilder.d.ts +19 -0
- package/dist/core/resultMetadataBuilder.js +166 -0
- package/dist/core/resultMetadataBuilder.js.map +1 -0
- package/dist/core/runtime.d.ts +17 -0
- package/dist/core/runtime.js +189 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/dev/main.d.ts +1 -0
- package/dist/dev/main.js +374 -0
- package/dist/dev/main.js.map +1 -0
- package/dist/grammar/{YiniLexer.js → generated/YiniLexer.js} +1 -0
- package/dist/grammar/generated/YiniLexer.js.map +1 -0
- package/dist/grammar/{YiniParser.js → generated/YiniParser.js} +1 -0
- package/dist/grammar/generated/YiniParser.js.map +1 -0
- package/dist/grammar/{YiniParserVisitor.js → generated/YiniParserVisitor.js} +1 -0
- package/dist/grammar/generated/YiniParserVisitor.js.map +1 -0
- package/dist/index.d.ts +40 -1
- package/dist/index.js +60 -359
- package/dist/index.js.map +1 -0
- package/dist/parsers/extractHeaderParts.d.ts +2 -2
- package/dist/parsers/extractHeaderParts.js +2 -1
- package/dist/parsers/extractHeaderParts.js.map +1 -0
- package/dist/parsers/extractSignificantYiniLine.js +2 -1
- package/dist/parsers/extractSignificantYiniLine.js.map +1 -0
- package/dist/parsers/parseBoolean.js +1 -0
- package/dist/parsers/parseBoolean.js.map +1 -0
- package/dist/parsers/parseNull.js +1 -0
- package/dist/parsers/parseNull.js.map +1 -0
- package/dist/parsers/parseNumber.js +1 -0
- package/dist/parsers/parseNumber.js.map +1 -0
- package/dist/parsers/parseSectionHeader.d.ts +3 -3
- package/dist/parsers/parseSectionHeader.js +2 -1
- package/dist/parsers/parseSectionHeader.js.map +1 -0
- package/dist/parsers/parseString.js +3 -3
- package/dist/parsers/parseString.js.map +1 -0
- package/dist/types/index.d.ts +198 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/number.js +1 -0
- package/dist/utils/number.js.map +1 -0
- package/dist/utils/object.d.ts +12 -0
- package/dist/utils/object.js +41 -1
- package/dist/utils/object.js.map +1 -0
- package/dist/utils/pathAndFileName.js +1 -0
- package/dist/utils/pathAndFileName.js.map +1 -0
- package/dist/utils/print.d.ts +2 -2
- package/dist/utils/print.js +11 -6
- package/dist/utils/print.js.map +1 -0
- package/dist/utils/string.d.ts +5 -0
- package/dist/utils/string.js +10 -1
- package/dist/utils/string.js.map +1 -0
- package/dist/utils/system.js +1 -0
- package/dist/utils/system.js.map +1 -0
- package/dist/{yiniHelpers.d.ts → utils/yiniHelpers.d.ts} +1 -1
- package/dist/{yiniHelpers.js → utils/yiniHelpers.js} +3 -2
- package/dist/utils/yiniHelpers.js.map +1 -0
- package/package.json +7 -5
- package/dist/core/types.d.ts +0 -249
- package/dist/parseEntry.d.ts +0 -3
- /package/dist/grammar/{YiniLexer.d.ts → generated/YiniLexer.d.ts} +0 -0
- /package/dist/grammar/{YiniParser.d.ts → generated/YiniParser.d.ts} +0 -0
- /package/dist/grammar/{YiniParserVisitor.d.ts → generated/YiniParserVisitor.d.ts} +0 -0
package/dist/core/types.d.ts
DELETED
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @note
|
|
3
|
-
* The use of null vs undefined
|
|
4
|
-
* ----------------------------
|
|
5
|
-
* The convention here (in this file) is:
|
|
6
|
-
* - undefined is used where a value is missing, or does not apply.
|
|
7
|
-
* - null is used where a value is missing or has not yet been computed.
|
|
8
|
-
*/
|
|
9
|
-
export type TJSObject = any;
|
|
10
|
-
export type TSourceType = 'File' | 'Inline';
|
|
11
|
-
export type TSubjectType = 'None/Ignore' | TSourceType;
|
|
12
|
-
export type TBailSensitivityLevel = 0 | 1 | 2;
|
|
13
|
-
export type TPreferredFailLevel = 'auto' | 0 | 1 | 2;
|
|
14
|
-
export type TPersistThreshold = '0-Ignore-Errors' | '1-Abort-on-Errors' | '2-Abort-Even-on-Warnings';
|
|
15
|
-
/**
|
|
16
|
-
* Only for returned meta data to user.
|
|
17
|
-
* NOTE: Only use lower case snake_case for keys.
|
|
18
|
-
*/
|
|
19
|
-
export type TFailLevelKey = 'ignore_errors' | 'abort_on_errors' | 'abort_on_warnings';
|
|
20
|
-
/**
|
|
21
|
-
* Scalar literal, a single, indivisible piece of data:
|
|
22
|
-
* string, number, boolean, and null.
|
|
23
|
-
* @property {string | undefined} [tag]
|
|
24
|
-
* Its contents may change at any time and should not
|
|
25
|
-
* be relied upon for any significant purpose.
|
|
26
|
-
* @note Undefined is included here despite that JSON cannot represent
|
|
27
|
-
* it (undefined), but JS objects can (it's sometimes useful in
|
|
28
|
-
* debugging etc), it will later get stripped if converted into JSON.
|
|
29
|
-
*/
|
|
30
|
-
export type TScalarValue = {
|
|
31
|
-
type: 'String';
|
|
32
|
-
value: string;
|
|
33
|
-
tag: string | undefined;
|
|
34
|
-
} | {
|
|
35
|
-
type: 'Number';
|
|
36
|
-
value: number;
|
|
37
|
-
tag: string | undefined;
|
|
38
|
-
} | {
|
|
39
|
-
type: 'Boolean';
|
|
40
|
-
value: boolean;
|
|
41
|
-
tag: string | undefined;
|
|
42
|
-
} | {
|
|
43
|
-
type: 'Null';
|
|
44
|
-
value: null;
|
|
45
|
-
tag: string | undefined;
|
|
46
|
-
} | {
|
|
47
|
-
type: 'Undefined';
|
|
48
|
-
value: undefined;
|
|
49
|
-
tag: string | undefined;
|
|
50
|
-
};
|
|
51
|
-
/** Any literal value in YINI: scalar, list, or object. */
|
|
52
|
-
export type TValueLiteral = TScalarValue | TListValue | TObjectValue;
|
|
53
|
-
/**
|
|
54
|
-
* @property {string | undefined} [tag]
|
|
55
|
-
* Debugging only. Its contents may change at any time and
|
|
56
|
-
* must not be relied upon for any functional purpose.
|
|
57
|
-
*/
|
|
58
|
-
export type TListValue = {
|
|
59
|
-
type: 'List';
|
|
60
|
-
elems: readonly TValueLiteral[];
|
|
61
|
-
tag: string | undefined;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* @property {string | undefined} [tag]
|
|
65
|
-
* Debugging only. Its contents may change at any time and
|
|
66
|
-
* must not be relied upon for any functional purpose.
|
|
67
|
-
*/
|
|
68
|
-
export type TObjectValue = {
|
|
69
|
-
type: 'Object';
|
|
70
|
-
entries: Readonly<Record<string, TValueLiteral>>;
|
|
71
|
-
tag: string | undefined;
|
|
72
|
-
};
|
|
73
|
-
export type TSectionHeaderType = undefined | 'Classic-Header-Marker' | 'Numeric-Header-Marker';
|
|
74
|
-
export type TIssueType = 'Fatal-Error' | 'Internal-Error' | 'Syntax-Error' | 'Syntax-Warning' | 'Notice' | 'Info';
|
|
75
|
-
interface IMetaBaseInfo {
|
|
76
|
-
sourceType: TSourceType;
|
|
77
|
-
fileName: string | undefined;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Internal runtime info / meta data.
|
|
81
|
-
* @note Used for internal diagnostics, bookkeeping, state, etc.
|
|
82
|
-
*/
|
|
83
|
-
export interface IRuntimeInfo extends IMetaBaseInfo {
|
|
84
|
-
lineCount: number | null;
|
|
85
|
-
fileByteSize: number | null;
|
|
86
|
-
timeIoMs: number | null;
|
|
87
|
-
preferredBailSensitivity: null | TPreferredFailLevel;
|
|
88
|
-
sha256: string | null;
|
|
89
|
-
}
|
|
90
|
-
export interface IParseCoreOptions {
|
|
91
|
-
isStrict: boolean;
|
|
92
|
-
bailSensitivity: TBailSensitivityLevel;
|
|
93
|
-
isIncludeMeta: boolean;
|
|
94
|
-
isWithDiagnostics: boolean;
|
|
95
|
-
isWithTiming: boolean;
|
|
96
|
-
isKeepUndefinedInMeta: boolean;
|
|
97
|
-
isRequireDocTerminator: boolean;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* User-facing options, these are external and should be more user friendly,
|
|
101
|
-
* and shorter, parameter names than the (more descriptive) internal
|
|
102
|
-
* engine option names.
|
|
103
|
-
*
|
|
104
|
-
* @note These parameters are emphasizes a bit more than the other options,
|
|
105
|
-
* therefor these are kept a bit shorter for usability-purposes.
|
|
106
|
-
* @note These are the same as in the "simple positional API" function in
|
|
107
|
-
* the YINI class.
|
|
108
|
-
*/
|
|
109
|
-
interface IPrimaryUserParams {
|
|
110
|
-
strictMode?: boolean;
|
|
111
|
-
failLevel?: TPreferredFailLevel;
|
|
112
|
-
includeMetaData?: boolean;
|
|
113
|
-
}
|
|
114
|
-
export interface IAllUserOptions extends IPrimaryUserParams {
|
|
115
|
-
includeDiagnostics?: boolean;
|
|
116
|
-
includeTiming?: boolean;
|
|
117
|
-
preserveUndefinedInMeta?: boolean;
|
|
118
|
-
requireDocTerminator?: boolean;
|
|
119
|
-
}
|
|
120
|
-
export interface IYiniAST extends IMetaBaseInfo {
|
|
121
|
-
root: IYiniSection;
|
|
122
|
-
isStrict: boolean;
|
|
123
|
-
terminatorSeen: boolean;
|
|
124
|
-
yiniMarkerSeen: boolean;
|
|
125
|
-
maxDepth: number | null;
|
|
126
|
-
numOfSections: number;
|
|
127
|
-
numOfMembers: number;
|
|
128
|
-
sectionNamePaths: string[] | null;
|
|
129
|
-
}
|
|
130
|
-
export interface IYiniSection {
|
|
131
|
-
sectionName: string;
|
|
132
|
-
level: number;
|
|
133
|
-
members: Map<string, TValueLiteral>;
|
|
134
|
-
children: IYiniSection[];
|
|
135
|
-
}
|
|
136
|
-
export interface IBuildOptions {
|
|
137
|
-
mode?: 'lenient' | 'strict';
|
|
138
|
-
onDuplicateKey?: 'error' | 'warn' | 'keep-first' | 'overwrite';
|
|
139
|
-
}
|
|
140
|
-
export interface IIssuePayload {
|
|
141
|
-
line: number | undefined;
|
|
142
|
-
column: number | undefined;
|
|
143
|
-
typeKey: string;
|
|
144
|
-
message: string;
|
|
145
|
-
advice: string | undefined;
|
|
146
|
-
hint: string | undefined;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* @note NOTE: USE NO TYPES here (or neither in nested structures), they
|
|
150
|
-
* should only be strings (and content MUST be transformed from the
|
|
151
|
-
* types to lower snake case)
|
|
152
|
-
*
|
|
153
|
-
* *** DUE TO make easier for tooling ***
|
|
154
|
-
*
|
|
155
|
-
* @note UPDATE 'metaSchemaVersion' on any edits to the meta structure.
|
|
156
|
-
*/
|
|
157
|
-
export interface IResultMetaData {
|
|
158
|
-
parserVersion: string;
|
|
159
|
-
mode: 'lenient' | 'strict';
|
|
160
|
-
orderPreserved: boolean;
|
|
161
|
-
totalErrors: number;
|
|
162
|
-
totalWarnings: number;
|
|
163
|
-
totalMessages: number;
|
|
164
|
-
runStartedAt: string;
|
|
165
|
-
runFinishedAt: string;
|
|
166
|
-
durationMs: number;
|
|
167
|
-
source: {
|
|
168
|
-
sourceType: string;
|
|
169
|
-
fileName: undefined | string;
|
|
170
|
-
hasDocumentTerminator: boolean;
|
|
171
|
-
hasYiniMarker: boolean;
|
|
172
|
-
byteSize: null | number;
|
|
173
|
-
lineCount: null | number;
|
|
174
|
-
sha256: null | string;
|
|
175
|
-
};
|
|
176
|
-
structure: {
|
|
177
|
-
maxDepth: null | number;
|
|
178
|
-
sectionCount: null | number;
|
|
179
|
-
memberCount: null | number;
|
|
180
|
-
keysParsedCount: null | number;
|
|
181
|
-
sectionNamePaths: string[] | null;
|
|
182
|
-
};
|
|
183
|
-
metaSchemaVersion: '1.0.0';
|
|
184
|
-
diagnostics?: {
|
|
185
|
-
failLevel: {
|
|
186
|
-
preferredLevel: null | 'auto' | 0 | 1 | 2;
|
|
187
|
-
levelUsed: TBailSensitivityLevel;
|
|
188
|
-
levelKey: TFailLevelKey;
|
|
189
|
-
levelLabel: TPersistThreshold;
|
|
190
|
-
levelDescription: string | null;
|
|
191
|
-
};
|
|
192
|
-
errors: {
|
|
193
|
-
errorCount: number;
|
|
194
|
-
payload: IIssuePayload[];
|
|
195
|
-
};
|
|
196
|
-
warnings: {
|
|
197
|
-
warningCount: number;
|
|
198
|
-
payload: IIssuePayload[];
|
|
199
|
-
};
|
|
200
|
-
notices: {
|
|
201
|
-
noticeCount: number;
|
|
202
|
-
payload: IIssuePayload[];
|
|
203
|
-
};
|
|
204
|
-
infos: {
|
|
205
|
-
infoCount: number;
|
|
206
|
-
payload: IIssuePayload[];
|
|
207
|
-
};
|
|
208
|
-
environment: {
|
|
209
|
-
NODE_ENV: undefined | string;
|
|
210
|
-
APP_ENV: undefined | string;
|
|
211
|
-
lib: {
|
|
212
|
-
nodeEnv: undefined | string;
|
|
213
|
-
appEnv: undefined | string;
|
|
214
|
-
flags: {
|
|
215
|
-
isDev: boolean;
|
|
216
|
-
isDebug: boolean;
|
|
217
|
-
};
|
|
218
|
-
};
|
|
219
|
-
};
|
|
220
|
-
optionsUsed: IAllUserOptions;
|
|
221
|
-
};
|
|
222
|
-
timing?: {
|
|
223
|
-
total: null | {
|
|
224
|
-
timeMs: number;
|
|
225
|
-
name: string;
|
|
226
|
-
};
|
|
227
|
-
phase0: undefined | {
|
|
228
|
-
timeMs: number;
|
|
229
|
-
name: string;
|
|
230
|
-
};
|
|
231
|
-
phase1: null | {
|
|
232
|
-
timeMs: number;
|
|
233
|
-
name: string;
|
|
234
|
-
};
|
|
235
|
-
phase2: null | {
|
|
236
|
-
timeMs: number;
|
|
237
|
-
name: string;
|
|
238
|
-
};
|
|
239
|
-
phase3: null | {
|
|
240
|
-
timeMs: number;
|
|
241
|
-
name: string;
|
|
242
|
-
};
|
|
243
|
-
phase4: null | {
|
|
244
|
-
timeMs: number;
|
|
245
|
-
name: string;
|
|
246
|
-
};
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
export {};
|
package/dist/parseEntry.d.ts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|