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.
Files changed (91) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/dist/YINI.d.ts +143 -27
  3. package/dist/YINI.js +145 -174
  4. package/dist/YINI.js.map +1 -0
  5. package/dist/config/env.js +1 -0
  6. package/dist/config/env.js.map +1 -0
  7. package/dist/core/{ASTBuilder.d.ts → astBuilder.d.ts} +4 -4
  8. package/dist/core/{ASTBuilder.js → astBuilder.js} +81 -68
  9. package/dist/core/astBuilder.js.map +1 -0
  10. package/dist/core/{ErrorDataHandler.d.ts → errorDataHandler.d.ts} +9 -7
  11. package/dist/core/{ErrorDataHandler.js → errorDataHandler.js} +21 -61
  12. package/dist/core/errorDataHandler.js.map +1 -0
  13. package/dist/core/internalTypes.d.ts +121 -0
  14. package/dist/core/{types.js → internalTypes.js} +6 -0
  15. package/dist/core/internalTypes.js.map +1 -0
  16. package/dist/core/objectBuilder.d.ts +2 -2
  17. package/dist/core/objectBuilder.js +1 -0
  18. package/dist/core/objectBuilder.js.map +1 -0
  19. package/dist/core/options/failLevel.d.ts +3 -0
  20. package/dist/core/options/failLevel.js +27 -0
  21. package/dist/core/options/failLevel.js.map +1 -0
  22. package/dist/core/options/normalizeOptions.d.ts +5 -0
  23. package/dist/core/options/normalizeOptions.js +53 -0
  24. package/dist/core/options/normalizeOptions.js.map +1 -0
  25. package/dist/core/options/parserOptionsConstants.d.ts +7 -0
  26. package/dist/core/options/parserOptionsConstants.js +37 -0
  27. package/dist/core/options/parserOptionsConstants.js.map +1 -0
  28. package/dist/core/pipeline.d.ts +18 -0
  29. package/dist/{parseEntry.js → core/pipeline.js} +82 -215
  30. package/dist/core/pipeline.js.map +1 -0
  31. package/dist/core/resultMetadataBuilder.d.ts +19 -0
  32. package/dist/core/resultMetadataBuilder.js +166 -0
  33. package/dist/core/resultMetadataBuilder.js.map +1 -0
  34. package/dist/core/runtime.d.ts +17 -0
  35. package/dist/core/runtime.js +189 -0
  36. package/dist/core/runtime.js.map +1 -0
  37. package/dist/dev/main.d.ts +1 -0
  38. package/dist/dev/main.js +374 -0
  39. package/dist/dev/main.js.map +1 -0
  40. package/dist/grammar/{YiniLexer.js → generated/YiniLexer.js} +1 -0
  41. package/dist/grammar/generated/YiniLexer.js.map +1 -0
  42. package/dist/grammar/{YiniParser.js → generated/YiniParser.js} +1 -0
  43. package/dist/grammar/generated/YiniParser.js.map +1 -0
  44. package/dist/grammar/{YiniParserVisitor.js → generated/YiniParserVisitor.js} +1 -0
  45. package/dist/grammar/generated/YiniParserVisitor.js.map +1 -0
  46. package/dist/index.d.ts +40 -1
  47. package/dist/index.js +60 -359
  48. package/dist/index.js.map +1 -0
  49. package/dist/parsers/extractHeaderParts.d.ts +2 -2
  50. package/dist/parsers/extractHeaderParts.js +2 -1
  51. package/dist/parsers/extractHeaderParts.js.map +1 -0
  52. package/dist/parsers/extractSignificantYiniLine.js +2 -1
  53. package/dist/parsers/extractSignificantYiniLine.js.map +1 -0
  54. package/dist/parsers/parseBoolean.js +1 -0
  55. package/dist/parsers/parseBoolean.js.map +1 -0
  56. package/dist/parsers/parseNull.js +1 -0
  57. package/dist/parsers/parseNull.js.map +1 -0
  58. package/dist/parsers/parseNumber.js +1 -0
  59. package/dist/parsers/parseNumber.js.map +1 -0
  60. package/dist/parsers/parseSectionHeader.d.ts +3 -3
  61. package/dist/parsers/parseSectionHeader.js +2 -1
  62. package/dist/parsers/parseSectionHeader.js.map +1 -0
  63. package/dist/parsers/parseString.js +3 -3
  64. package/dist/parsers/parseString.js.map +1 -0
  65. package/dist/types/index.d.ts +198 -0
  66. package/dist/types/index.js +4 -0
  67. package/dist/types/index.js.map +1 -0
  68. package/dist/utils/number.js +1 -0
  69. package/dist/utils/number.js.map +1 -0
  70. package/dist/utils/object.d.ts +12 -0
  71. package/dist/utils/object.js +41 -1
  72. package/dist/utils/object.js.map +1 -0
  73. package/dist/utils/pathAndFileName.js +1 -0
  74. package/dist/utils/pathAndFileName.js.map +1 -0
  75. package/dist/utils/print.d.ts +2 -2
  76. package/dist/utils/print.js +11 -6
  77. package/dist/utils/print.js.map +1 -0
  78. package/dist/utils/string.d.ts +5 -0
  79. package/dist/utils/string.js +10 -1
  80. package/dist/utils/string.js.map +1 -0
  81. package/dist/utils/system.js +1 -0
  82. package/dist/utils/system.js.map +1 -0
  83. package/dist/{yiniHelpers.d.ts → utils/yiniHelpers.d.ts} +1 -1
  84. package/dist/{yiniHelpers.js → utils/yiniHelpers.js} +3 -2
  85. package/dist/utils/yiniHelpers.js.map +1 -0
  86. package/package.json +7 -5
  87. package/dist/core/types.d.ts +0 -249
  88. package/dist/parseEntry.d.ts +0 -3
  89. /package/dist/grammar/{YiniLexer.d.ts → generated/YiniLexer.d.ts} +0 -0
  90. /package/dist/grammar/{YiniParser.d.ts → generated/YiniParser.d.ts} +0 -0
  91. /package/dist/grammar/{YiniParserVisitor.d.ts → generated/YiniParserVisitor.d.ts} +0 -0
@@ -28,7 +28,7 @@ class ErrorDataHandler {
28
28
  - Level 1 = abort on errors only
29
29
  - Level 2 = abort even on warnings
30
30
  */
31
- constructor(subjectType, threshold = '1-Abort-on-Errors', fileName = undefined) {
31
+ constructor(subjectType, fileName = undefined, bailSensitivityLevel = '1-Abort-on-Errors', isAvoidWarningsInConsole = false) {
32
32
  this.errors = [];
33
33
  this.warnings = [];
34
34
  this.notices = [];
@@ -40,8 +40,9 @@ class ErrorDataHandler {
40
40
  this.numNotices = 0;
41
41
  this.numInfos = 0;
42
42
  this.subjectType = subjectType;
43
- this.persistThreshold = threshold;
44
43
  this.fileName = fileName;
44
+ this.persistThreshold = bailSensitivityLevel;
45
+ this.isAvoidWarningsInConsole = isAvoidWarningsInConsole;
45
46
  }
46
47
  makeIssue(line, column, type, message, advice = undefined, hint = undefined) {
47
48
  const issue = {
@@ -70,36 +71,29 @@ class ErrorDataHandler {
70
71
  * @param msgHint Hint or HUMBLE description on how to fix the issue.
71
72
  */
72
73
  pushOrBail(ctx, type, msgWhat, msgWhy = '', msgHint = '') {
73
- var _a, _b, _c, _d, _e, _f;
74
74
  (0, print_1.debugPrint)('-> pushOrBail(..)');
75
- (0, print_1.debugPrint)('ctx.exception?.name =' + ((_a = ctx === null || ctx === void 0 ? void 0 : ctx.exception) === null || _a === void 0 ? void 0 : _a.name));
76
- (0, print_1.debugPrint)('ctx.exception?.message = ' + ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.exception) === null || _b === void 0 ? void 0 : _b.message));
77
- (0, print_1.debugPrint)('exception?.offendingToken = ' + ((_c = ctx === null || ctx === void 0 ? void 0 : ctx.exception) === null || _c === void 0 ? void 0 : _c.offendingToken));
75
+ (0, print_1.debugPrint)('ctx.exception?.name =' + ctx?.exception?.name);
76
+ (0, print_1.debugPrint)('ctx.exception?.message = ' + ctx?.exception?.message);
77
+ (0, print_1.debugPrint)('exception?.offendingToken = ' + ctx?.exception?.offendingToken);
78
78
  (0, print_1.debugPrint)();
79
- (0, print_1.debugPrint)('ctx.ruleIndex = ' + (ctx === null || ctx === void 0 ? void 0 : ctx.start.channel));
80
- (0, print_1.debugPrint)('ctx.ruleIndex = ' + (ctx === null || ctx === void 0 ? void 0 : ctx.ruleIndex));
81
- (0, print_1.debugPrint)('ctx.ruleContext = ' + (ctx === null || ctx === void 0 ? void 0 : ctx.ruleContext));
82
- (0, print_1.debugPrint)('ctx.stop?.line = ' + ((_d = ctx === null || ctx === void 0 ? void 0 : ctx.stop) === null || _d === void 0 ? void 0 : _d.line));
83
- (0, print_1.debugPrint)('ctx.stop?.column = ' + ((_e = ctx === null || ctx === void 0 ? void 0 : ctx.stop) === null || _e === void 0 ? void 0 : _e.column));
84
- const lineNum = (ctx === null || ctx === void 0 ? void 0 : ctx.start.line) || undefined; // Line (1-based).
85
- // const startCol = !ctx ? 0 : ++ctx.start.column // Column (0-based).
79
+ (0, print_1.debugPrint)('ctx.ruleIndex = ' + ctx?.start.channel);
80
+ (0, print_1.debugPrint)('ctx.ruleIndex = ' + ctx?.ruleIndex);
81
+ (0, print_1.debugPrint)('ctx.ruleContext = ' + ctx?.ruleContext);
82
+ (0, print_1.debugPrint)('ctx.stop?.line = ' + ctx?.stop?.line);
83
+ (0, print_1.debugPrint)('ctx.stop?.column = ' + ctx?.stop?.column);
84
+ const lineNum = ctx?.start.line || undefined; // Line (1-based).
86
85
  const startCol = !ctx
87
86
  ? undefined
88
87
  : ++ctx.start.column; // Column (0-based).
89
- // const endCol = (ctx?.stop?.column || 0) + 1 // Column (0-based).
90
- const endCol = !!((_f = ctx === null || ctx === void 0 ? void 0 : ctx.stop) === null || _f === void 0 ? void 0 : _f.column)
88
+ const endCol = !!ctx?.stop?.column
91
89
  ? ++ctx.stop.column
92
90
  : undefined; // Note: Column (0-based).
93
91
  let colNum = startCol || endCol;
94
- // if (colNum === 0) {
95
- // colNum = undefined
96
- // }
97
92
  let msgWhatWithLineNum = msgWhat;
98
93
  if (lineNum && lineNum > 0) {
99
94
  //@todo func that removes possible . at end
100
95
  //msgWhatWithLineNum =
101
96
  // Patch message with the offending line number.
102
- // msgWhatWithLineNum += ', at line: ' + lineNum
103
97
  msgWhatWithLineNum += ' at line ' + lineNum;
104
98
  if (colNum) {
105
99
  msgWhatWithLineNum += ', column ' + colNum;
@@ -127,12 +121,8 @@ class ErrorDataHandler {
127
121
  console.log(); // Emit an empty line before outputting message.
128
122
  if (this.persistThreshold === '1-Abort-on-Errors' ||
129
123
  this.persistThreshold === '2-Abort-Even-on-Warnings') {
130
- // if (process.env.NODE_ENV === 'test') {
131
124
  // In test, throw an error instead of exiting.
132
125
  throw new Error(`Internal-Error: ${msgWhat}`);
133
- // } else {
134
- // process.exit(2)
135
- // }
136
126
  }
137
127
  break;
138
128
  case 'Syntax-Error':
@@ -142,26 +132,20 @@ class ErrorDataHandler {
142
132
  console.log(); // Emit an empty line before outputting message.
143
133
  if (this.persistThreshold === '1-Abort-on-Errors' ||
144
134
  this.persistThreshold === '2-Abort-Even-on-Warnings') {
145
- // if (process.env.NODE_ENV === 'test') {
146
135
  // In test, throw an error instead of exiting.
147
136
  throw new Error(`Syntax-Error: ${'' + msgWhat}`);
148
- // } else {
149
- // process.exit(3)
150
- // }
151
137
  }
152
138
  break;
153
139
  case 'Syntax-Warning':
154
140
  this.numSyntaxWarnings++;
155
141
  this.warnings.push(this.makeIssue(lineNum, colNum, type, msgWhat, msgWhy, msgHint));
156
- this.emitSyntaxWarning(loc, msgWhatWithLineNum, msgWhy, msgHint);
157
- console.log(); // Emit an empty line before outputting message.
142
+ if (!this.isAvoidWarningsInConsole) {
143
+ this.emitSyntaxWarning(loc, msgWhatWithLineNum, msgWhy, msgHint);
144
+ console.log(); // Emit an empty line before outputting message.
145
+ }
158
146
  if (this.persistThreshold === '2-Abort-Even-on-Warnings') {
159
- // if (process.env.NODE_ENV === 'test') {
160
147
  // In test, throw an error instead of exiting.
161
148
  throw new Error(`Syntax-Warning: ${msgWhat}`);
162
- // } else {
163
- // process.exit(4)
164
- // }
165
149
  }
166
150
  break;
167
151
  case 'Notice':
@@ -182,22 +166,11 @@ class ErrorDataHandler {
182
166
  this.emitFatalError(loc, msgWhatWithLineNum, msgWhy, msgHint);
183
167
  console.log(); // Emit an empty line before outputting message.
184
168
  // CANNOT recover fatal errors, will lead to an exit!
185
- // if (process.env.NODE_ENV === 'test') {
186
169
  // In test, throw an error instead of exiting.
187
170
  throw new Error(`Internal-Error: ${msgWhat}`);
188
- // } else {
189
- // process.exit(1)
190
- // (!) Not sure about the below yet, if it's preferable in this case...
191
- // Use this instead of process.exit(1), this will
192
- // lead to that the current thread(s) will exit as well.
193
- // process.exitCode = 1
194
- // }
195
171
  }
196
172
  }
197
173
  formatSignificantMessageLine(loc, issueTitle) {
198
- // if (this.subjectType === 'None/Ignore') {
199
- // return issueTitle
200
- // }
201
174
  switch (this.subjectType) {
202
175
  case 'None/Ignore':
203
176
  return issueTitle;
@@ -208,21 +181,13 @@ class ErrorDataHandler {
208
181
  let line = `${titlePart} in `;
209
182
  if (this.subjectType === 'Inline') {
210
183
  line += 'inline YINI content';
211
- // if (loc?.lineNum) {
212
- // line += `, ${loc.lineNum}`
213
- // if (loc?.colNum) line += `:${loc.colNum}`
214
- // }
215
184
  }
216
185
  else {
217
- line += `in ${this.fileName}`;
218
- // if (loc?.lineNum) {
219
- // line += `:${loc.lineNum}`
220
- // if (loc?.colNum) line += `:${loc.colNum}`
221
- // }
186
+ line += `${this.fileName}`;
222
187
  }
223
- if (loc === null || loc === void 0 ? void 0 : loc.lineNum) {
188
+ if (loc?.lineNum) {
224
189
  line += `:${loc.lineNum}`;
225
- if (loc === null || loc === void 0 ? void 0 : loc.colNum)
190
+ if (loc?.colNum)
226
191
  line += `:${loc.colNum}`;
227
192
  }
228
193
  return line;
@@ -230,7 +195,6 @@ class ErrorDataHandler {
230
195
  }
231
196
  }
232
197
  emitFatalError(loc, msgWhat = 'Something went wrong!', msgWhy = '', msgHint = '') {
233
- // console.error(issueTitle[0]) // Print the issue title.
234
198
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[0]);
235
199
  console.error(messageHeader); // Print the issue title.
236
200
  msgWhat && console.log(msgWhat);
@@ -238,7 +202,6 @@ class ErrorDataHandler {
238
202
  msgHint && console.log(msgHint);
239
203
  }
240
204
  emitInternalError(loc, msgWhat = 'Something went wrong!', msgWhy = '', msgHint = '') {
241
- // console.error(issueTitle[1]) // Print the issue title.
242
205
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[1]);
243
206
  console.error(messageHeader); // Print the issue title.
244
207
  msgWhat && console.log(msgWhat);
@@ -246,7 +209,6 @@ class ErrorDataHandler {
246
209
  msgHint && console.log(msgHint);
247
210
  }
248
211
  emitSyntaxError(loc, msgWhat, msgWhy = '', msgHint = '') {
249
- // console.error(issueTitle[2]) // Print the issue title.
250
212
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[2]);
251
213
  console.error(messageHeader); // Print the issue title.
252
214
  msgWhat && console.log(msgWhat);
@@ -254,7 +216,6 @@ class ErrorDataHandler {
254
216
  msgHint && console.log(msgHint);
255
217
  }
256
218
  emitSyntaxWarning(loc, msgWhat, msgWhy = '', msgHint = '') {
257
- // console.warn(issueTitle[3]) // Print the issue title.
258
219
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[3]);
259
220
  console.warn(messageHeader); // Print the issue title.
260
221
  msgWhat && console.log(msgWhat);
@@ -262,7 +223,6 @@ class ErrorDataHandler {
262
223
  msgHint && console.log(msgHint);
263
224
  }
264
225
  emitNotice(loc, msgWhat, msgWhy = '', msgHint = '') {
265
- // console.warn(issueTitle[4]) // Print the issue title.
266
226
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[4]);
267
227
  console.warn(messageHeader); // Print the issue title.
268
228
  msgWhat && console.log(msgWhat);
@@ -270,7 +230,6 @@ class ErrorDataHandler {
270
230
  msgHint && console.log(msgHint);
271
231
  }
272
232
  emitInfo(loc, msgWhat, msgWhy = '', msgHint = '') {
273
- // console.info(issueTitle[5]) // Print the issue title.
274
233
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[5]);
275
234
  console.info(messageHeader); // Print the issue title.
276
235
  msgWhat && console.log(msgWhat);
@@ -309,3 +268,4 @@ class ErrorDataHandler {
309
268
  }
310
269
  }
311
270
  exports.ErrorDataHandler = ErrorDataHandler;
271
+ //# sourceMappingURL=errorDataHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorDataHandler.js","sourceRoot":"","sources":["../../src/core/errorDataHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Internal types ONLY, public (user-facing) type should go into src/types/index.ts.
3
+ *
4
+ * @note
5
+ * The use of null vs undefined
6
+ * ----------------------------
7
+ * The convention here (in this file) is:
8
+ * - undefined is used where a value is missing, or does not apply.
9
+ * - null is used where a value is missing or has not yet been computed.
10
+ *
11
+ * @note All names of **internal** types and interfaces (shapes) must be
12
+ * prefixed with `T` or `I`.
13
+ */
14
+ import { OnDuplicateKey, PreferredFailLevel } from '../types';
15
+ export type TParserMode = 'lenient' | 'strict';
16
+ export type TSourceType = 'File' | 'Inline';
17
+ export type TSubjectType = 'None/Ignore' | TSourceType;
18
+ export type TBailSensitivityLevel = '0-Ignore-Errors' | '1-Abort-on-Errors' | '2-Abort-Even-on-Warnings';
19
+ /**
20
+ * Scalar literal, a single, indivisible piece of data:
21
+ * string, number, boolean, and null.
22
+ * @property {string | undefined} [tag]
23
+ * Its contents may change at any time and should not
24
+ * be relied upon for any significant purpose.
25
+ * @note Undefined is included here despite that JSON cannot represent
26
+ * it (undefined), but JS objects can (it's sometimes useful in
27
+ * debugging etc), it will later get stripped if converted into JSON.
28
+ */
29
+ export type TScalarValue = {
30
+ type: 'String';
31
+ value: string;
32
+ tag: string | undefined;
33
+ } | {
34
+ type: 'Number';
35
+ value: number;
36
+ tag: string | undefined;
37
+ } | {
38
+ type: 'Boolean';
39
+ value: boolean;
40
+ tag: string | undefined;
41
+ } | {
42
+ type: 'Null';
43
+ value: null;
44
+ tag: string | undefined;
45
+ } | {
46
+ type: 'Undefined';
47
+ value: undefined;
48
+ tag: string | undefined;
49
+ };
50
+ /** Any literal value in YINI: scalar, list, or object. */
51
+ export type TValueLiteral = TScalarValue | TListValue | TObjectValue;
52
+ /**
53
+ * @property {string | undefined} [tag]
54
+ * Debugging only. Its contents may change at any time and
55
+ * must not be relied upon for any functional purpose.
56
+ */
57
+ export type TListValue = {
58
+ type: 'List';
59
+ elems: readonly TValueLiteral[];
60
+ tag: string | undefined;
61
+ };
62
+ /**
63
+ * @property {string | undefined} [tag]
64
+ * Debugging only. Its contents may change at any time and
65
+ * must not be relied upon for any functional purpose.
66
+ */
67
+ export type TObjectValue = {
68
+ type: 'Object';
69
+ entries: Readonly<Record<string, TValueLiteral>>;
70
+ tag: string | undefined;
71
+ };
72
+ export type TSectionHeaderType = undefined | 'Classic-Header-Marker' | 'Numeric-Header-Marker';
73
+ export type TIssueType = 'Fatal-Error' | 'Internal-Error' | 'Syntax-Error' | 'Syntax-Warning' | 'Notice' | 'Info';
74
+ interface IMetaBaseInfo {
75
+ sourceType: TSourceType;
76
+ fileName: string | undefined;
77
+ }
78
+ /**
79
+ * Internal runtime info / meta data.
80
+ * @note Used for internal diagnostics, bookkeeping, state, etc.
81
+ */
82
+ export interface IRuntimeInfo extends IMetaBaseInfo {
83
+ lineCount: number | null;
84
+ fileByteSize: number | null;
85
+ timeIoMs: number | null;
86
+ preferredBailSensitivity: null | PreferredFailLevel;
87
+ sha256: string | null;
88
+ }
89
+ export interface IParseCoreOptions {
90
+ isStrict: boolean;
91
+ bailSensitivity: TBailSensitivityLevel;
92
+ isIncludeMeta: boolean;
93
+ isWithDiagnostics: boolean;
94
+ isWithTiming: boolean;
95
+ isKeepUndefinedInMeta: boolean;
96
+ isAvoidWarningsInConsole: boolean;
97
+ requireDocTerminator: 'optional' | 'warn-if-missing' | 'required';
98
+ treatEmptyValueAsNull: 'allow' | 'allow-with-warning' | 'disallow';
99
+ onDuplicateKey: OnDuplicateKey;
100
+ }
101
+ export interface IYiniAST extends IMetaBaseInfo {
102
+ root: IYiniSection;
103
+ isStrict: boolean;
104
+ terminatorSeen: boolean;
105
+ yiniMarkerSeen: boolean;
106
+ maxDepth: number | null;
107
+ numOfSections: number;
108
+ numOfMembers: number;
109
+ sectionNamePaths: string[] | null;
110
+ }
111
+ export interface IYiniSection {
112
+ sectionName: string;
113
+ level: number;
114
+ members: Map<string, TValueLiteral>;
115
+ children: IYiniSection[];
116
+ }
117
+ export interface IBuildOptions {
118
+ mode?: 'lenient' | 'strict';
119
+ onDuplicateKey?: OnDuplicateKey;
120
+ }
121
+ export {};
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  /**
3
+ * Internal types ONLY, public (user-facing) type should go into src/types/index.ts.
4
+ *
3
5
  * @note
4
6
  * The use of null vs undefined
5
7
  * ----------------------------
6
8
  * The convention here (in this file) is:
7
9
  * - undefined is used where a value is missing, or does not apply.
8
10
  * - null is used where a value is missing or has not yet been computed.
11
+ *
12
+ * @note All names of **internal** types and interfaces (shapes) must be
13
+ * prefixed with `T` or `I`.
9
14
  */
10
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
+ //# sourceMappingURL=internalTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalTypes.js","sourceRoot":"","sources":["../../src/core/internalTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG"}
@@ -1,5 +1,5 @@
1
- import { IYiniAST } from '../core/types';
2
- import { ErrorDataHandler } from './ErrorDataHandler';
1
+ import { ErrorDataHandler } from './errorDataHandler';
2
+ import { IYiniAST } from './internalTypes';
3
3
  /**
4
4
  * Construct the final JavaScript Object.
5
5
  * Transforms the AST to the plain JS object.
@@ -146,3 +146,4 @@ const define = (obj, key, value) => {
146
146
  writable: true,
147
147
  });
148
148
  };
149
+ //# sourceMappingURL=objectBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectBuilder.js","sourceRoot":"","sources":["../../src/core/objectBuilder.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,0CAAsE;AAItE;;;;;;;;GAQG;AACI,MAAM,WAAW,GAAG,CACvB,GAAa,EACb,YAA8B,EAEP,EAAE;IACzB,IAAA,kBAAU,EAAC,6BAA6B,CAAC,CAAA;IACzC,2CAA2C;IAE3C,MAAM,GAAG,GAA4B,EAAE,CAAA;IACvC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAbY,QAAA,WAAW,eAavB;AAED,kFAAkF;AAClF,oCAAoC;AACpC,4BAA4B;AAC5B,+BAA+B;AAC/B,8CAA8C;AAC9C,8CAA8C;AAC9C,0DAA0D;AAC1D,QAAQ;AACR,iBAAiB;AACjB,IAAI;AAEJ,2EAA2E;AAC3E,yEAAyE;AACzE,8CAA8C;AAE9C,8BAA8B;AAC9B,yDAAyD;AACzD,sCAAsC;AACtC,QAAQ;AAER,+DAA+D;AAC/D,2CAA2C;AAC3C,0DAA0D;AAC1D,QAAQ;AAER,iBAAiB;AACjB,IAAI;AACJ;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,IAAkB,EAA2B,EAAE;IACpE,MAAM,GAAG,GAA4B,EAAE,CAAA;IAEvC,8CAA8C;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAC,CAAgB,EAAW,EAAE;IAC9C,MAAM,cAAc,GAAY,KAAK,CAAA;IACrC,IAAA,kBAAU,EAAC,oBAAoB,CAAC,CAAA;IAChC,YAAY;IACZ,kDAAkD;IAClD,wDAAwD;IACxD,gCAAgC;IAChC,uBAAuB;IACvB,IAAI;IAEJ,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,MAAM;YACP,OAAO,CAAC,CAAC,KAAK,CAAA;QAClB,KAAK,WAAW;YACZ,OAAO,SAAS,CAAA;QAEpB,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,IAAI,cAAc,EAAE,CAAC;gBACjB,IAAA,kBAAU,EAAC,cAAc,CAAC,CAAA;gBAC1B,IAAI,IAAA,aAAO,GAAE,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;oBACrB,IAAA,mBAAW,EAAC,CAAC,CAAC,CAAA;gBAClB,CAAC;YACL,CAAC;YAED,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAC7B,IAAI,cAAc,EAAE,CAAC;oBACjB,IAAI,IAAA,aAAO,GAAE,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;wBACpB,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;oBACrB,CAAC;gBACL,CAAC;gBACD,OAAO,GAAG,CAAA;YACd,CAAC,CAAC,CAAA;YAEF,IAAI,cAAc,EAAE,CAAC;gBACjB,IAAI,IAAA,aAAO,GAAE,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;oBACzB,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;YACL,CAAC;YACD,OAAO,GAAG,CAAA;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAA4B,EAAE,CAAA;YACvC,8CAA8C;YAC9C,mCAAmC;YACnC,6BAA6B;YAC7B,sDAAsD;YACtD,iEAAiE;YACjE,iCAAiC;YACjC,0CAA0C;YAC1C,kDAAkD;YAClD,eAAe;YACf,iEAAiE;YACjE,QAAQ;YACR,IAAI;YACJ,mEAAmE;YACnE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7C,CAAC;YACD,OAAO,GAAG,CAAA;QACd,CAAC;IACL,CAAC;AACL,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,GAAG,CACX,GAAM,EACN,GAAM,EACN,KAAc,EACV,EAAE;IACN,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,KAAK;QACL,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { PreferredFailLevel } from '../../types';
2
+ import { TBailSensitivityLevel } from '../internalTypes';
3
+ export declare function mapFailLevelToBail(isStrict: boolean, failLevel: PreferredFailLevel): TBailSensitivityLevel;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapFailLevelToBail = mapFailLevelToBail;
4
+ function mapFailLevelToBail(isStrict, failLevel) {
5
+ let bailLevel = '0-Ignore-Errors';
6
+ if (failLevel === 'auto') {
7
+ if (!isStrict)
8
+ bailLevel = '0-Ignore-Errors';
9
+ if (isStrict)
10
+ bailLevel = '1-Abort-on-Errors';
11
+ }
12
+ else {
13
+ switch (failLevel) {
14
+ case 'ignore-errors':
15
+ bailLevel = '0-Ignore-Errors';
16
+ break;
17
+ case 'errors':
18
+ bailLevel = '1-Abort-on-Errors';
19
+ break;
20
+ case 'warnings-and-errors':
21
+ bailLevel = '2-Abort-Even-on-Warnings';
22
+ break;
23
+ }
24
+ }
25
+ return bailLevel;
26
+ }
27
+ //# sourceMappingURL=failLevel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failLevel.js","sourceRoot":"","sources":["../../../src/core/options/failLevel.ts"],"names":[],"mappings":";;AAKA,gDAwBC;AAxBD,SAAgB,kBAAkB,CAC9B,QAAiB,EACjB,SAA6B;IAE7B,IAAI,SAAS,GAA0B,iBAAiB,CAAA;IAExD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ;YAAE,SAAS,GAAG,iBAAiB,CAAA;QAC5C,IAAI,QAAQ;YAAE,SAAS,GAAG,mBAAmB,CAAA;IACjD,CAAC;SAAM,CAAC;QACJ,QAAQ,SAAS,EAAE,CAAC;YAChB,KAAK,eAAe;gBAChB,SAAS,GAAG,iBAAiB,CAAA;gBAC7B,MAAK;YACT,KAAK,QAAQ;gBACT,SAAS,GAAG,mBAAmB,CAAA;gBAC/B,MAAK;YACT,KAAK,qBAAqB;gBACtB,SAAS,GAAG,0BAA0B,CAAA;gBACtC,MAAK;QACb,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAA;AACpB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { AllUserOptions } from '../../types';
2
+ import { IParseCoreOptions, TBailSensitivityLevel, TParserMode } from '../internalTypes';
3
+ export declare const toCoreOptions: (bailLevel: TBailSensitivityLevel, userOpts: Required<AllUserOptions>) => IParseCoreOptions;
4
+ export declare const isOptionsObjectForm: (v: unknown) => v is AllUserOptions;
5
+ export declare const inferModeFromArgs: (arg2?: boolean | AllUserOptions) => TParserMode;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inferModeFromArgs = exports.isOptionsObjectForm = exports.toCoreOptions = void 0;
4
+ const env_1 = require("../../config/env");
5
+ const toCoreOptions = (bailLevel, userOpts) => {
6
+ return {
7
+ isStrict: userOpts.strictMode,
8
+ bailSensitivity: bailLevel,
9
+ isIncludeMeta: userOpts.includeMetadata,
10
+ isWithDiagnostics: (0, env_1.isDev)() || (0, env_1.isDebug)() || userOpts.includeDiagnostics,
11
+ isWithTiming: (0, env_1.isDev)() || (0, env_1.isDebug)() || userOpts.includeTiming,
12
+ isKeepUndefinedInMeta: (0, env_1.isDebug)() || userOpts.preserveUndefinedInMeta,
13
+ isAvoidWarningsInConsole: userOpts.suppressWarnings,
14
+ requireDocTerminator: userOpts.requireDocTerminator,
15
+ treatEmptyValueAsNull: userOpts.treatEmptyValueAsNull,
16
+ onDuplicateKey: userOpts.onDuplicateKey,
17
+ };
18
+ };
19
+ exports.toCoreOptions = toCoreOptions;
20
+ // Type guard: did the caller use the options-object form?
21
+ const isOptionsObjectForm = (v) => {
22
+ return (v != null &&
23
+ typeof v === 'object' &&
24
+ // Note: If one wants, this can be relax to "typeof v === 'object'"
25
+ // but this keeps accidental booleans/strings out.
26
+ ('strictMode' in v ||
27
+ 'failLevel' in v ||
28
+ 'includeMetadata' in v ||
29
+ 'includeDiagnostics' in v ||
30
+ 'includeTiming' in v ||
31
+ 'preserveUndefinedInMeta' in v ||
32
+ 'suppressWarnings' in v ||
33
+ 'requireDocTerminator' in v ||
34
+ 'treatEmptyValueAsNull' in v ||
35
+ 'onDuplicateKey' in v));
36
+ };
37
+ exports.isOptionsObjectForm = isOptionsObjectForm;
38
+ // const mode: TParserMode =
39
+ // ((arg2 as any)?.strictMode ?? (arg2 as boolean | undefined)) ===
40
+ const inferModeFromArgs = (arg2) => {
41
+ if (typeof arg2 === 'boolean') {
42
+ return arg2 ? 'strict' : 'lenient';
43
+ }
44
+ if (arg2 && typeof arg2 === 'object') {
45
+ const sm = arg2.strictMode;
46
+ if (typeof sm === 'boolean') {
47
+ return sm ? 'strict' : 'lenient';
48
+ }
49
+ }
50
+ return 'lenient';
51
+ };
52
+ exports.inferModeFromArgs = inferModeFromArgs;
53
+ //# sourceMappingURL=normalizeOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeOptions.js","sourceRoot":"","sources":["../../../src/core/options/normalizeOptions.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AAQ1C,MAAM,aAAa,GAAG,CACzB,SAAgC,EAChC,QAAkC,EACjB,EAAE;IACnB,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,eAAe,EAAE,SAAS;QAC1B,aAAa,EAAE,QAAQ,CAAC,eAAe;QACvC,iBAAiB,EAAE,IAAA,WAAK,GAAE,IAAI,IAAA,aAAO,GAAE,IAAI,QAAQ,CAAC,kBAAkB;QACtE,YAAY,EAAE,IAAA,WAAK,GAAE,IAAI,IAAA,aAAO,GAAE,IAAI,QAAQ,CAAC,aAAa;QAC5D,qBAAqB,EAAE,IAAA,aAAO,GAAE,IAAI,QAAQ,CAAC,uBAAuB;QACpE,wBAAwB,EAAE,QAAQ,CAAC,gBAAgB;QACnD,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,cAAc,EAAE,QAAQ,CAAC,cAAc;KAC1C,CAAA;AACL,CAAC,CAAA;AAhBY,QAAA,aAAa,iBAgBzB;AAED,0DAA0D;AACnD,MAAM,mBAAmB,GAAG,CAAC,CAAU,EAAuB,EAAE;IACnE,OAAO,CACH,CAAC,IAAI,IAAI;QACT,OAAO,CAAC,KAAK,QAAQ;QACrB,mEAAmE;QACnE,kDAAkD;QAClD,CAAC,YAAY,IAAK,CAAS;YACvB,WAAW,IAAK,CAAS;YACzB,iBAAiB,IAAK,CAAS;YAC/B,oBAAoB,IAAK,CAAS;YAClC,eAAe,IAAK,CAAS;YAC7B,yBAAyB,IAAK,CAAS;YACvC,kBAAkB,IAAK,CAAS;YAChC,sBAAsB,IAAK,CAAS;YACpC,uBAAuB,IAAK,CAAS;YACrC,gBAAgB,IAAK,CAAS,CAAC,CACtC,CAAA;AACL,CAAC,CAAA;AAjBY,QAAA,mBAAmB,uBAiB/B;AAED,4BAA4B;AAC5B,mEAAmE;AAE5D,MAAM,iBAAiB,GAAG,CAC7B,IAA+B,EACpB,EAAE;IACb,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IACtC,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,EAAE,GAAI,IAAuB,CAAC,UAAU,CAAA;QAC9C,IAAI,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;QACpC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAA;AACpB,CAAC,CAAA;AAbY,QAAA,iBAAiB,qBAa7B"}
@@ -0,0 +1,7 @@
1
+ import { AllUserOptions } from '../../types';
2
+ import { TParserMode } from '../internalTypes';
3
+ export declare const getDefaultOptions: (mode: TParserMode) => Required<Pick<AllUserOptions, "includeDiagnostics" | "includeTiming" | "preserveUndefinedInMeta" | "suppressWarnings" | "requireDocTerminator" | "treatEmptyValueAsNull" | "onDuplicateKey" | "strictMode" | "failLevel" | "includeMetadata">>;
4
+ export type NormalizedOptions = Required<Pick<AllUserOptions, 'strictMode' | 'failLevel' | 'includeMetadata' | 'includeDiagnostics' | 'includeTiming' | 'preserveUndefinedInMeta' | 'suppressWarnings' | 'requireDocTerminator' | 'treatEmptyValueAsNull' | 'onDuplicateKey'>>;
5
+ export declare const BASE_DEFAULTS: NormalizedOptions;
6
+ export declare const DEFAULT_LENIENT_OPTS: NormalizedOptions;
7
+ export declare const DEFAULT_STRICT_OPTS: NormalizedOptions;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_STRICT_OPTS = exports.DEFAULT_LENIENT_OPTS = exports.BASE_DEFAULTS = exports.getDefaultOptions = void 0;
4
+ const getDefaultOptions = (mode) => mode === 'strict' ? exports.DEFAULT_STRICT_OPTS : exports.DEFAULT_LENIENT_OPTS;
5
+ exports.getDefaultOptions = getDefaultOptions;
6
+ // Base (mode-agnostic) defaults
7
+ exports.BASE_DEFAULTS = {
8
+ strictMode: false,
9
+ failLevel: 'auto',
10
+ includeMetadata: false,
11
+ includeDiagnostics: false,
12
+ includeTiming: false,
13
+ preserveUndefinedInMeta: false,
14
+ suppressWarnings: false, // Suppress warnings in console (does not affect warnings in meta data).
15
+ requireDocTerminator: 'optional',
16
+ treatEmptyValueAsNull: 'allow-with-warning',
17
+ onDuplicateKey: 'error',
18
+ };
19
+ exports.DEFAULT_LENIENT_OPTS = {
20
+ ...exports.BASE_DEFAULTS,
21
+ strictMode: false,
22
+ failLevel: 'ignore-errors',
23
+ suppressWarnings: false, // Suppress warnings in console (does not affect warnings in meta data).
24
+ requireDocTerminator: 'optional',
25
+ treatEmptyValueAsNull: 'allow-with-warning',
26
+ onDuplicateKey: 'warn-and-keep-first',
27
+ };
28
+ exports.DEFAULT_STRICT_OPTS = {
29
+ ...exports.BASE_DEFAULTS,
30
+ strictMode: true,
31
+ failLevel: 'errors',
32
+ suppressWarnings: false, // Suppress warnings in console (does not affect warnings in meta data).
33
+ requireDocTerminator: 'optional',
34
+ treatEmptyValueAsNull: 'disallow',
35
+ onDuplicateKey: 'error',
36
+ };
37
+ //# sourceMappingURL=parserOptionsConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parserOptionsConstants.js","sourceRoot":"","sources":["../../../src/core/options/parserOptionsConstants.ts"],"names":[],"mappings":";;;AAGO,MAAM,iBAAiB,GAAG,CAAC,IAAiB,EAAE,EAAE,CACnD,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,2BAAmB,CAAC,CAAC,CAAC,4BAAoB,CAAA;AADrD,QAAA,iBAAiB,qBACoC;AAkBlE,gCAAgC;AACnB,QAAA,aAAa,GAAsB;IAC5C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,KAAK;IAC9B,gBAAgB,EAAE,KAAK,EAAE,wEAAwE;IACjG,oBAAoB,EAAE,UAAU;IAChC,qBAAqB,EAAE,oBAAoB;IAC3C,cAAc,EAAE,OAAO;CAC1B,CAAA;AAEY,QAAA,oBAAoB,GAAsB;IACnD,GAAG,qBAAa;IAChB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,eAAe;IAC1B,gBAAgB,EAAE,KAAK,EAAE,wEAAwE;IACjG,oBAAoB,EAAE,UAAU;IAChC,qBAAqB,EAAE,oBAAoB;IAC3C,cAAc,EAAE,qBAAqB;CACxC,CAAA;AAEY,QAAA,mBAAmB,GAAsB;IAClD,GAAG,qBAAa;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;IACnB,gBAAgB,EAAE,KAAK,EAAE,wEAAwE;IACjG,oBAAoB,EAAE,UAAU;IAChC,qBAAqB,EAAE,UAAU;IACjC,cAAc,EAAE,OAAO;CAC1B,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file is the orchestrator that wires up the pipeline (lexer → parser →
3
+ * astBuilder → objectBuilder, etc.)
4
+ */
5
+ import { AllUserOptions, ParsedObject, YiniParseResult } from '../types';
6
+ import { IParseCoreOptions, IRuntimeInfo } from './internalTypes';
7
+ /**
8
+ * @internal Single source of truth.
9
+ *
10
+ * Entrypoint for the YINI parsing pipeline:
11
+ * tokenization → grammar parse → AST build → object build → result.
12
+ *
13
+ * @param _meta_userOpts The user options from which the core options were
14
+ * derived/resolved from. This object is provided only for debugging
15
+ * and metadata purposes and should not be relied upon in
16
+ * application logic.
17
+ */
18
+ export declare const runPipeline: (yiniContent: string, coreOptions: IParseCoreOptions, runtimeInfo: IRuntimeInfo, _meta_userOpts: AllUserOptions) => ParsedObject | YiniParseResult;