yini-parser 1.2.0-beta → 1.3.1-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 (57) hide show
  1. package/CHANGELOG.md +40 -2
  2. package/README.md +17 -6
  3. package/dist/YINI.d.ts +35 -23
  4. package/dist/YINI.js +9 -9
  5. package/dist/YINI.js.map +1 -1
  6. package/dist/core/astBuilder.js +9 -9
  7. package/dist/core/astBuilder.js.map +1 -1
  8. package/dist/core/errorDataHandler.d.ts +9 -5
  9. package/dist/core/errorDataHandler.js +99 -53
  10. package/dist/core/errorDataHandler.js.map +1 -1
  11. package/dist/core/internalTypes.d.ts +12 -6
  12. package/dist/core/options/defaultParserOptions.d.ts +17 -0
  13. package/dist/core/options/defaultParserOptions.js +46 -0
  14. package/dist/core/options/defaultParserOptions.js.map +1 -0
  15. package/dist/core/options/optionsFunctions.d.ts +8 -0
  16. package/dist/core/options/{normalizeOptions.js → optionsFunctions.js} +21 -12
  17. package/dist/core/options/optionsFunctions.js.map +1 -0
  18. package/dist/core/parsingRules/modeFromRulesMatcher.d.ts +8 -0
  19. package/dist/core/parsingRules/modeFromRulesMatcher.js +114 -0
  20. package/dist/core/parsingRules/modeFromRulesMatcher.js.map +1 -0
  21. package/dist/core/parsingRules/rulesConstAndGuards.d.ts +7 -0
  22. package/dist/core/parsingRules/rulesConstAndGuards.js +35 -0
  23. package/dist/core/parsingRules/rulesConstAndGuards.js.map +1 -0
  24. package/dist/core/pipeline/errorListeners.d.ts +18 -0
  25. package/dist/core/pipeline/errorListeners.js +107 -0
  26. package/dist/core/pipeline/errorListeners.js.map +1 -0
  27. package/dist/core/{pipeline.d.ts → pipeline/pipeline.d.ts} +3 -3
  28. package/dist/core/{pipeline.js → pipeline/pipeline.js} +70 -149
  29. package/dist/core/pipeline/pipeline.js.map +1 -0
  30. package/dist/core/resultMetadataBuilder.d.ts +2 -2
  31. package/dist/core/resultMetadataBuilder.js +29 -8
  32. package/dist/core/resultMetadataBuilder.js.map +1 -1
  33. package/dist/core/runtime.d.ts +8 -4
  34. package/dist/core/runtime.js +51 -24
  35. package/dist/core/runtime.js.map +1 -1
  36. package/dist/dev/main.js +70 -125
  37. package/dist/dev/main.js.map +1 -1
  38. package/dist/grammar/generated/YiniLexer.js +1 -1
  39. package/dist/grammar/generated/YiniLexer.js.map +1 -1
  40. package/dist/grammar/generated/YiniParser.js +1 -1
  41. package/dist/grammar/generated/YiniParser.js.map +1 -1
  42. package/dist/grammar/generated/YiniParserVisitor.js +1 -1
  43. package/dist/grammar/generated/YiniParserVisitor.js.map +1 -1
  44. package/dist/index.d.ts +2 -2
  45. package/dist/index.js +0 -25
  46. package/dist/index.js.map +1 -1
  47. package/dist/types/index.d.ts +46 -25
  48. package/dist/utils/string.js +4 -0
  49. package/dist/utils/string.js.map +1 -1
  50. package/examples/basic-output.js +12 -12
  51. package/package.json +23 -18
  52. package/dist/core/options/normalizeOptions.d.ts +0 -5
  53. package/dist/core/options/normalizeOptions.js.map +0 -1
  54. package/dist/core/options/parserOptionsConstants.d.ts +0 -7
  55. package/dist/core/options/parserOptionsConstants.js +0 -37
  56. package/dist/core/options/parserOptionsConstants.js.map +0 -1
  57. package/dist/core/pipeline.js.map +0 -1
@@ -28,7 +28,9 @@ class ErrorDataHandler {
28
28
  - Level 1 = abort on errors only
29
29
  - Level 2 = abort even on warnings
30
30
  */
31
- constructor(subjectType, fileName = undefined, bailSensitivityLevel = '1-Abort-on-Errors', isAvoidWarningsInConsole = false) {
31
+ constructor(subjectType, fileName = undefined, bailSensitivityLevel = '1-Abort-on-Errors', isQuiet = false, // Reduce output (show only errors, does not effect warnings and etc. in meta data).
32
+ isSilent = false, // Suppress all output (even errors, exit code only).
33
+ isThrowOnError = false) {
32
34
  this.errors = [];
33
35
  this.warnings = [];
34
36
  this.notices = [];
@@ -42,7 +44,9 @@ class ErrorDataHandler {
42
44
  this.subjectType = subjectType;
43
45
  this.fileName = fileName;
44
46
  this.persistThreshold = bailSensitivityLevel;
45
- this.isAvoidWarningsInConsole = isAvoidWarningsInConsole;
47
+ this.isQuiet = isQuiet;
48
+ this.isSilent = isSilent;
49
+ this.isThrowOnError = isThrowOnError;
46
50
  }
47
51
  makeIssue(line, column, type, message, advice = undefined, hint = undefined) {
48
52
  const issue = {
@@ -59,16 +63,16 @@ class ErrorDataHandler {
59
63
  }
60
64
  /**
61
65
  * After pushing processing may continue or exit, depending on the error
62
- * and/or the bail threshold (that can be optionally set my the user).
66
+ * and/or the bail threshold (that can be optionally set by the user).
63
67
  *
64
68
  * @note This function MIGHT result in a return, throw, or exit depending
65
- * on the bail policy (set my the user).
69
+ * on the bail policy (set by the user).
66
70
  *
67
71
  * @param ctx
68
72
  * @param type
69
73
  * @param msgWhat Name of the specific error or what failed. E.g. "Key already exists in this section scope".
70
74
  * @param msgWhy More details and more specific info about the issue/error.
71
- * @param msgHint Hint or HUMBLE description on how to fix the issue.
75
+ * @param msgHint Hint or HUMBLE suggestion on how to fix the issue.
72
76
  */
73
77
  pushOrBail(ctx, type, msgWhat, msgWhy = '', msgHint = '') {
74
78
  (0, print_1.debugPrint)('-> pushOrBail(..)');
@@ -82,12 +86,14 @@ class ErrorDataHandler {
82
86
  (0, print_1.debugPrint)('ctx.stop?.line = ' + ctx?.stop?.line);
83
87
  (0, print_1.debugPrint)('ctx.stop?.column = ' + ctx?.stop?.column);
84
88
  const lineNum = ctx?.start.line || undefined; // Line (1-based).
85
- const startCol = !ctx
86
- ? undefined
87
- : ++ctx.start.column; // Column (0-based).
88
- const endCol = !!ctx?.stop?.column
89
- ? ++ctx.stop.column
90
- : undefined; // Note: Column (0-based).
89
+ // const startCol: number | undefined = !ctx
90
+ // ? undefined
91
+ // : ++ctx.start.column // Column (0-based).
92
+ // const endCol: number | undefined = !!ctx?.stop?.column
93
+ // ? ++ctx.stop.column
94
+ // : undefined // Note: Column (0-based).
95
+ const startCol = ctx?.start?.column != null ? ctx.start.column + 1 : undefined; // Note: Column (0-based).
96
+ const endCol = ctx?.stop?.column != null ? ctx.stop.column + 1 : undefined; // Note: Column (0-based).
91
97
  let colNum = startCol || endCol;
92
98
  let msgWhatWithLineNum = msgWhat;
93
99
  if (lineNum && lineNum > 0) {
@@ -112,61 +118,79 @@ class ErrorDataHandler {
112
118
  lineNum: lineNum || 0, // 1-based, if n/a use 0.
113
119
  colNum: colNum || 0, // 1-based, if n/a use 0.
114
120
  };
115
- console.log(); // Print an empty line before outputting message.
121
+ if (!this.isSilent) {
122
+ console.log(); // Print an empty line before outputting message.
123
+ }
116
124
  switch (type) {
117
125
  case 'Internal-Error':
118
126
  this.numInternalErrors++;
119
127
  this.errors.push(this.makeIssue(lineNum, colNum, type, msgWhat, msgWhy, msgHint));
120
128
  this.emitInternalError(loc, msgWhatWithLineNum, msgWhy, msgHint);
121
- console.log(); // Emit an empty line before outputting message.
122
129
  if (this.persistThreshold === '1-Abort-on-Errors' ||
123
130
  this.persistThreshold === '2-Abort-Even-on-Warnings') {
124
- // In test, throw an error instead of exiting.
125
- throw new Error(`Internal-Error: ${msgWhat}`);
131
+ if (!this.isThrowOnError) {
132
+ (0, print_1.debugPrint)('Skipped throwing');
133
+ }
134
+ else {
135
+ // (?, not if can delete this message now (it may have been superceded), 20250921) In test, throw an error instead of exiting.
136
+ throw new Error(`Internal-Error: ${msgWhat}`);
137
+ }
126
138
  }
127
139
  break;
128
140
  case 'Syntax-Error':
129
141
  this.numSyntaxErrors++;
130
142
  this.errors.push(this.makeIssue(lineNum, colNum, type, msgWhat, msgWhy, msgHint));
131
143
  this.emitSyntaxError(loc, msgWhatWithLineNum, msgWhy, msgHint);
132
- console.log(); // Emit an empty line before outputting message.
133
144
  if (this.persistThreshold === '1-Abort-on-Errors' ||
134
145
  this.persistThreshold === '2-Abort-Even-on-Warnings') {
135
- // In test, throw an error instead of exiting.
136
- throw new Error(`Syntax-Error: ${'' + msgWhat}`);
146
+ if (!this.isThrowOnError) {
147
+ (0, print_1.debugPrint)('Skipped throwing');
148
+ }
149
+ else {
150
+ // (?, not if can delete this message now (it may have been superceded), 20250921) In test, throw an error instead of exiting.
151
+ throw new Error(`Syntax-Error: ${'' + msgWhat}`);
152
+ }
137
153
  }
138
154
  break;
139
155
  case 'Syntax-Warning':
140
156
  this.numSyntaxWarnings++;
141
157
  this.warnings.push(this.makeIssue(lineNum, colNum, type, msgWhat, msgWhy, msgHint));
142
- if (!this.isAvoidWarningsInConsole) {
158
+ if (!this.isQuiet) {
143
159
  this.emitSyntaxWarning(loc, msgWhatWithLineNum, msgWhy, msgHint);
144
- console.log(); // Emit an empty line before outputting message.
145
160
  }
146
161
  if (this.persistThreshold === '2-Abort-Even-on-Warnings') {
147
- // In test, throw an error instead of exiting.
148
- throw new Error(`Syntax-Warning: ${msgWhat}`);
162
+ if (!this.isThrowOnError) {
163
+ (0, print_1.debugPrint)('Skipped throwing');
164
+ }
165
+ else {
166
+ // (?, not if can delete this message now (it may have been superceded), 20250921) In test, throw an error instead of exiting.
167
+ throw new Error(`Syntax-Warning: ${msgWhat}`);
168
+ }
149
169
  }
150
170
  break;
151
171
  case 'Notice':
152
172
  this.numNotices++;
153
173
  this.notices.push(this.makeIssue(lineNum, colNum, type, msgWhat, msgWhy, msgHint));
154
174
  this.emitNotice(loc, msgWhatWithLineNum, msgWhy, msgHint);
155
- console.log(); // Emit an empty line before outputting message.
156
175
  break;
157
176
  case 'Info':
158
177
  this.numInfos++;
159
178
  this.infos.push(this.makeIssue(lineNum, colNum, type, msgWhat, msgWhy, msgHint));
160
179
  this.emitInfo(loc, msgWhatWithLineNum, msgWhy, msgHint);
161
- console.log(); // Emit an empty line before outputting message.
162
180
  break;
163
- default: // Including 'Internal-Error'.
181
+ default: // Unhandled/unknown error type → Fatal.
164
182
  this.numFatalErrors++;
165
183
  this.errors.push(this.makeIssue(lineNum, colNum, type, msgWhat, msgWhy, msgHint));
166
184
  this.emitFatalError(loc, msgWhatWithLineNum, msgWhy, msgHint);
167
- console.log(); // Emit an empty line before outputting message.
168
- // CANNOT recover fatal errors, will lead to an exit!
169
- // In test, throw an error instead of exiting.
185
+ /*
186
+ "Best practises":
187
+ - ONLY on I/O failures: file not found, unreadable file, encoding errors.
188
+ - ONLY on programmer/usage errors: invalid options, conflicting flags.
189
+ - ONLY on internal faults: invariants broken, unexpected exceptions from dependencies.
190
+ */
191
+ // CANNOT recover fatal errors, will lead to an bail!
192
+ // In test, throw an error instead of bailing/exiting.
193
+ // IMPORTANT: Never exit with exit code since this is a library!
170
194
  throw new Error(`Internal-Error: ${msgWhat}`);
171
195
  }
172
196
  }
@@ -194,53 +218,75 @@ class ErrorDataHandler {
194
218
  }
195
219
  }
196
220
  }
221
+ /*
222
+ * - error/warning → console.error / console.warn
223
+ * - notice/info → console.log / console.info
224
+ */
197
225
  emitFatalError(loc, msgWhat = 'Something went wrong!', msgWhy = '', msgHint = '') {
198
226
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[0]);
199
- console.error(messageHeader); // Print the issue title.
200
- msgWhat && console.log(msgWhat);
201
- msgWhy && console.log(msgWhy);
202
- msgHint && console.log(msgHint);
227
+ if (!this.isSilent) {
228
+ console.error(messageHeader); // Print the issue title.
229
+ msgWhat && console.log(msgWhat);
230
+ msgWhy && console.log(msgWhy);
231
+ msgHint && console.log(msgHint);
232
+ console.log(); // Emit an empty line before outputting message.
233
+ }
203
234
  }
204
235
  emitInternalError(loc, msgWhat = 'Something went wrong!', msgWhy = '', msgHint = '') {
205
236
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[1]);
206
- console.error(messageHeader); // Print the issue title.
207
- msgWhat && console.log(msgWhat);
208
- msgWhy && console.log(msgWhy);
209
- msgHint && console.log(msgHint);
237
+ if (!this.isSilent) {
238
+ console.error(messageHeader); // Print the issue title.
239
+ msgWhat && console.log(msgWhat);
240
+ msgWhy && console.log(msgWhy);
241
+ msgHint && console.log(msgHint);
242
+ console.log(); // Emit an empty line before outputting message.
243
+ }
210
244
  }
211
245
  emitSyntaxError(loc, msgWhat, msgWhy = '', msgHint = '') {
212
246
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[2]);
213
- console.error(messageHeader); // Print the issue title.
214
- msgWhat && console.log(msgWhat);
215
- msgWhy && console.log(msgWhy);
216
- msgHint && console.log(msgHint);
247
+ if (!this.isSilent) {
248
+ console.error(messageHeader); // Print the issue title.
249
+ msgWhat && console.log(msgWhat);
250
+ msgWhy && console.log(msgWhy);
251
+ msgHint && console.log(msgHint);
252
+ console.log(); // Emit an empty line before outputting message.
253
+ }
217
254
  }
218
255
  emitSyntaxWarning(loc, msgWhat, msgWhy = '', msgHint = '') {
219
256
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[3]);
220
- console.warn(messageHeader); // Print the issue title.
221
- msgWhat && console.log(msgWhat);
222
- msgWhy && console.log(msgWhy);
223
- msgHint && console.log(msgHint);
257
+ if (!this.isQuiet && !this.isSilent) {
258
+ console.warn(messageHeader); // Print the issue title.
259
+ msgWhat && console.log(msgWhat);
260
+ msgWhy && console.log(msgWhy);
261
+ msgHint && console.log(msgHint);
262
+ console.log(); // Emit an empty line before outputting message.
263
+ }
224
264
  }
225
265
  emitNotice(loc, msgWhat, msgWhy = '', msgHint = '') {
226
266
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[4]);
227
- console.warn(messageHeader); // Print the issue title.
228
- msgWhat && console.log(msgWhat);
229
- msgWhy && console.log(msgWhy);
230
- msgHint && console.log(msgHint);
267
+ if (!this.isQuiet && !this.isSilent) {
268
+ console.log(messageHeader); // Print the issue title.
269
+ msgWhat && console.log(msgWhat);
270
+ msgWhy && console.log(msgWhy);
271
+ msgHint && console.log(msgHint);
272
+ console.log(); // Emit an empty line before outputting message.
273
+ }
231
274
  }
232
275
  emitInfo(loc, msgWhat, msgWhy = '', msgHint = '') {
233
276
  const messageHeader = this.formatSignificantMessageLine(loc, issueTitle[5]);
234
- console.info(messageHeader); // Print the issue title.
235
- msgWhat && console.log(msgWhat);
236
- msgWhy && console.log(msgWhy);
237
- msgHint && console.log(msgHint);
277
+ if (!this.isQuiet && !this.isSilent) {
278
+ console.info(messageHeader); // Print the issue title.
279
+ msgWhat && console.log(msgWhat);
280
+ msgWhy && console.log(msgWhy);
281
+ msgHint && console.log(msgHint);
282
+ console.log(); // Emit an empty line before outputting message.
283
+ }
238
284
  }
239
285
  getNumOfAllMessages() {
240
286
  return (this.getNumOfErrors() +
241
287
  this.getNumOfWarnings() +
242
288
  this.getNumOfNotices() +
243
- this.getNumOfNotices());
289
+ this.getNumOfInfos());
244
290
  }
245
291
  getNumOfErrors() {
246
292
  return (this.numFatalErrors + this.numInternalErrors + this.numSyntaxErrors);
@@ -1 +1 @@
1
- {"version":3,"file":"errorDataHandler.js","sourceRoot":"","sources":["../../src/core/errorDataHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorDataHandler.js","sourceRoot":"","sources":["../../src/core/errorDataHandler.ts"],"names":[],"mappings":";;;AAAA,uCAAkD;AAGlD,0CAAwD;AACxD,4CAA0E;AAO1E,uEAAuE;AACvE,qEAAqE;AACrE,oBAAoB;AACpB,MAAM,UAAU,GAAa;IACzB,cAAc;IACd,iBAAiB,EAAE,oBAAoB;IACvC,eAAe,EAAE,kBAAkB;IACnC,iBAAiB;IACjB,SAAS;IACT,OAAO;CACV,CAAA;AAOD;;GAEG;AACH,MAAa,gBAAgB;IAoBzB;;;;;;;;OAQG;IACH,YACI,WAAyB,EACzB,WAA+B,SAAS,EACxC,uBAA8C,mBAAmB,EACjE,UAAmB,KAAK,EAAE,oFAAoF;IAC9G,WAAoB,KAAK,EAAE,qDAAqD;IAChF,iBAA0B,KAAK;QA3B3B,WAAM,GAAmB,EAAE,CAAA;QAC3B,aAAQ,GAAmB,EAAE,CAAA;QAC7B,YAAO,GAAmB,EAAE,CAAA;QAC5B,UAAK,GAAmB,EAAE,CAAA;QAE1B,mBAAc,GAAG,CAAC,CAAA;QAClB,sBAAiB,GAAG,CAAC,CAAA;QACrB,oBAAe,GAAG,CAAC,CAAA;QACnB,sBAAiB,GAAG,CAAC,CAAA;QACrB,eAAU,GAAG,CAAC,CAAA;QACd,aAAQ,GAAG,CAAC,CAAA;QAmBhB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAA;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAEO,SAAS,CACb,IAAwB,EACxB,MAA0B,EAC1B,IAAgB,EAChB,OAAe,EACf,SAA6B,SAAS,EACtC,OAA2B,SAAS;QAEpC,MAAM,KAAK,GAAiB;YACxB,IAAI;YACJ,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YACpC,OAAO,EAAE,IAAA,yBAAgB,EAAC,IAAI,CAAC;YAC/B,OAAO;YACP,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,kFAAkF;YAC/G,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE,kFAAkF;SAC9G,CAAA;QAED,IAAA,kBAAU,EAAC,QAAQ,CAAC,CAAA;QACpB,IAAA,aAAO,GAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO,KAAK,CAAA;IAChB,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,UAAU,CACb,GAAQ,EACR,IAAgB,EAChB,OAAe,EACf,SAAiB,EAAE,EACnB,UAAkB,EAAE;QAEpB,IAAA,kBAAU,EAAC,mBAAmB,CAAC,CAAA;QAC/B,IAAA,kBAAU,EAAC,6BAA6B,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAChE,IAAA,kBAAU,EAAC,8BAA8B,GAAG,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QACpE,IAAA,kBAAU,EACN,8BAA8B,GAAG,GAAG,EAAE,SAAS,EAAE,cAAc,CAClE,CAAA;QACD,IAAA,kBAAU,GAAE,CAAA;QACZ,IAAA,kBAAU,EAAC,qBAAqB,GAAG,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACtD,IAAA,kBAAU,EAAC,qBAAqB,GAAG,GAAG,EAAE,SAAS,CAAC,CAAA;QAClD,IAAA,kBAAU,EAAC,qBAAqB,GAAG,GAAG,EAAE,WAAW,CAAC,CAAA;QACpD,IAAA,kBAAU,EAAC,qBAAqB,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACnD,IAAA,kBAAU,EAAC,qBAAqB,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAErD,MAAM,OAAO,GAAuB,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,CAAA,CAAC,kBAAkB;QACnF,4CAA4C;QAC5C,kBAAkB;QAClB,gDAAgD;QAChD,yDAAyD;QACzD,0BAA0B;QAC1B,6CAA6C;QAC7C,MAAM,QAAQ,GACV,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA,CAAC,0BAA0B;QAC5F,MAAM,MAAM,GACR,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA,CAAC,0BAA0B;QAE1F,IAAI,MAAM,GAAuB,QAAQ,IAAI,MAAM,CAAA;QACnD,IAAI,kBAAkB,GAAG,OAAO,CAAA;QAEhC,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACzB,2CAA2C;YAC3C,sBAAsB;YAEtB,gDAAgD;YAChD,kBAAkB,IAAI,WAAW,GAAG,OAAO,CAAA;YAC3C,IAAI,MAAM,EAAE,CAAC;gBACT,kBAAkB,IAAI,WAAW,GAAG,MAAM,CAAA;YAC9C,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAClC,kBAAkB,IAAI,cAAc,OAAO,gBAAgB,QAAQ,IAAI,MAAM,EAAE,CAAA;YACnF,CAAC;QACL,CAAC;QAED,IAAA,kBAAU,EAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACzD,IAAA,kBAAU,EAAC,aAAa,GAAG,OAAO,CAAC,CAAA;QACnC,IAAA,kBAAU,EAAC,aAAa,GAAG,MAAM,CAAC,CAAA;QAClC,IAAA,kBAAU,EAAC,aAAa,GAAG,QAAQ,CAAC,CAAA;QACpC,IAAA,kBAAU,EAAC,aAAa,GAAG,MAAM,CAAC,CAAA;QAClC,IAAA,kBAAU,GAAE,CAAA;QAEZ,MAAM,GAAG,GAAc;YACnB,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,yBAAyB;YAChD,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,yBAAyB;SACjD,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,iDAAiD;QACnE,CAAC;QACD,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,gBAAgB;gBACjB,IAAI,CAAC,iBAAiB,EAAE,CAAA;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,IAAI,CAAC,SAAS,CACV,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,CACV,CACJ,CAAA;gBACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBAChE,IACI,IAAI,CAAC,gBAAgB,KAAK,mBAAmB;oBAC7C,IAAI,CAAC,gBAAgB,KAAK,0BAA0B,EACtD,CAAC;oBACC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;wBACvB,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAA;oBAClC,CAAC;yBAAM,CAAC;wBACJ,8HAA8H;wBAC9H,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAA;oBACjD,CAAC;gBACL,CAAC;gBACD,MAAK;YACT,KAAK,cAAc;gBACf,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,IAAI,CAAC,SAAS,CACV,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,CACV,CACJ,CAAA;gBACD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBAC9D,IACI,IAAI,CAAC,gBAAgB,KAAK,mBAAmB;oBAC7C,IAAI,CAAC,gBAAgB,KAAK,0BAA0B,EACtD,CAAC;oBACC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;wBACvB,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAA;oBAClC,CAAC;yBAAM,CAAC;wBACJ,8HAA8H;wBAC9H,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;oBACpD,CAAC;gBACL,CAAC;gBACD,MAAK;YACT,KAAK,gBAAgB;gBACjB,IAAI,CAAC,iBAAiB,EAAE,CAAA;gBACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,IAAI,CAAC,SAAS,CACV,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,CACV,CACJ,CAAA;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAChB,IAAI,CAAC,iBAAiB,CAClB,GAAG,EACH,kBAAkB,EAClB,MAAM,EACN,OAAO,CACV,CAAA;gBACL,CAAC;gBACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,0BAA0B,EAAE,CAAC;oBACvD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;wBACvB,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAA;oBAClC,CAAC;yBAAM,CAAC;wBACJ,8HAA8H;wBAC9H,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAA;oBACjD,CAAC;gBACL,CAAC;gBACD,MAAK;YACT,KAAK,QAAQ;gBACT,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,IAAI,CAAC,SAAS,CACV,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,CACV,CACJ,CAAA;gBACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBACzD,MAAK;YACT,KAAK,MAAM;gBACP,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACf,IAAI,CAAC,KAAK,CAAC,IAAI,CACX,IAAI,CAAC,SAAS,CACV,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,CACV,CACJ,CAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBACvD,MAAK;YACT,SAAS,wCAAwC;gBAC7C,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,IAAI,CAAC,SAAS,CACV,OAAO,EACP,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,CACV,CACJ,CAAA;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBAC7D;;;;;kBAKE;gBAEF,qDAAqD;gBACrD,sDAAsD;gBACtD,gEAAgE;gBAChE,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAA;QACrD,CAAC;IACL,CAAC;IAEO,4BAA4B,CAChC,GAAc,EACd,UAAkB;QAElB,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,aAAa;gBACd,OAAO,UAAU,CAAA;YACrB,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,4CAA4C;gBAE5C,MAAM,SAAS,GAAW,IAAA,+BAAsB,EAC5C,UAAU,CAAC,IAAI,EAAE,CACpB,CAAA;gBAED,IAAI,IAAI,GAAG,GAAG,SAAS,MAAM,CAAA;gBAE7B,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;oBAChC,IAAI,IAAI,qBAAqB,CAAA;gBACjC,CAAC;qBAAM,CAAC;oBACJ,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC9B,CAAC;gBACD,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;oBACf,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAA;oBACzB,IAAI,GAAG,EAAE,MAAM;wBAAE,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAA;gBAC7C,CAAC;gBAED,OAAO,IAAI,CAAA;YACf,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IAEK,cAAc,CAClB,GAAc,EACd,OAAO,GAAG,uBAAuB,EACjC,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE;QAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACnD,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,CAChB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,CAAC,yBAAyB;YACtD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,gDAAgD;QAClE,CAAC;IACL,CAAC;IAEO,iBAAiB,CACrB,GAAc,EACd,OAAO,GAAG,uBAAuB,EACjC,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE;QAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACnD,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,CAChB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,CAAC,yBAAyB;YACtD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,gDAAgD;QAClE,CAAC;IACL,CAAC;IAEO,eAAe,CACnB,GAAc,EACd,OAAe,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE;QAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACnD,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,CAChB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,CAAC,yBAAyB;YACtD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,gDAAgD;QAClE,CAAC;IACL,CAAC;IAEO,iBAAiB,CACrB,GAAc,EACd,OAAe,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE;QAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACnD,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,CAChB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA,CAAC,yBAAyB;YACrD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,gDAAgD;QAClE,CAAC;IACL,CAAC;IAEO,UAAU,CACd,GAAc,EACd,OAAe,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE;QAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACnD,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,CAChB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA,CAAC,yBAAyB;YACpD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,gDAAgD;QAClE,CAAC;IACL,CAAC;IAEO,QAAQ,CACZ,GAAc,EACd,OAAe,EACf,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE;QAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACnD,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,CAChB,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA,CAAC,yBAAyB;YACrD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,EAAE,CAAA,CAAC,gDAAgD;QAClE,CAAC;IACL,CAAC;IAEM,mBAAmB;QACtB,OAAO,CACH,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CACvB,CAAA;IACL,CAAC;IAEM,cAAc;QACjB,OAAO,CACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CACtE,CAAA;IACL,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IACjC,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ;AAzdD,4CAydC"}
@@ -11,8 +11,9 @@
11
11
  * @note All names of **internal** types and interfaces (shapes) must be
12
12
  * prefixed with `T` or `I`.
13
13
  */
14
- import { OnDuplicateKey, PreferredFailLevel } from '../types';
14
+ import { DocumentTerminatorRule, DuplicateKeyPolicy, EmptyValueRule, OnDuplicateKey, PreferredFailLevel } from '../types';
15
15
  export type TParserMode = 'lenient' | 'strict';
16
+ export type TExactMode = 'custom' | TParserMode;
16
17
  export type TSourceType = 'File' | 'Inline';
17
18
  export type TSubjectType = 'None/Ignore' | TSourceType;
18
19
  export type TBailSensitivityLevel = '0-Ignore-Errors' | '1-Abort-on-Errors' | '2-Abort-Even-on-Warnings';
@@ -87,16 +88,21 @@ export interface IRuntimeInfo extends IMetaBaseInfo {
87
88
  sha256: string | null;
88
89
  }
89
90
  export interface IParseCoreOptions {
90
- isStrict: boolean;
91
+ rules: IParseRuleOptions;
91
92
  bailSensitivity: TBailSensitivityLevel;
92
93
  isIncludeMeta: boolean;
93
94
  isWithDiagnostics: boolean;
94
95
  isWithTiming: boolean;
95
96
  isKeepUndefinedInMeta: boolean;
96
- isAvoidWarningsInConsole: boolean;
97
- requireDocTerminator: 'optional' | 'warn-if-missing' | 'required';
98
- treatEmptyValueAsNull: 'allow' | 'allow-with-warning' | 'disallow';
99
- onDuplicateKey: OnDuplicateKey;
97
+ isQuiet: boolean;
98
+ isSilent: boolean;
99
+ isThrowOnError: boolean;
100
+ }
101
+ export interface IParseRuleOptions {
102
+ initialMode: 'custom' | TParserMode;
103
+ onDuplicateKey: DuplicateKeyPolicy;
104
+ requireDocTerminator: DocumentTerminatorRule;
105
+ treatEmptyValueAsNull: EmptyValueRule;
100
106
  }
101
107
  export interface IYiniAST extends IMetaBaseInfo {
102
108
  root: IYiniSection;
@@ -0,0 +1,17 @@
1
+ import { ParseOptions } from '../../types';
2
+ import { TParserMode } from '../internalTypes';
3
+ export declare const getDefaultUserOptions: (mode: TParserMode) => {
4
+ includeDiagnostics: boolean;
5
+ includeTiming: boolean;
6
+ preserveUndefinedInMeta: boolean;
7
+ onDuplicateKey: import("../../types").OnDuplicateKey;
8
+ requireDocTerminator: import("../../types").DocumentTerminatorRule;
9
+ treatEmptyValueAsNull: import("../../types").EmptyValueRule;
10
+ quiet: boolean;
11
+ silent: boolean;
12
+ throwOnError: boolean;
13
+ strictMode: boolean;
14
+ failLevel: import("../../types").PreferredFailLevel;
15
+ includeMetadata: boolean;
16
+ };
17
+ export type TNormalizedUserOptions = Required<Pick<ParseOptions, 'strictMode' | 'failLevel' | 'includeMetadata' | 'includeDiagnostics' | 'includeTiming' | 'preserveUndefinedInMeta' | 'onDuplicateKey' | 'requireDocTerminator' | 'treatEmptyValueAsNull' | 'quiet' | 'silent' | 'throwOnError'>>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultUserOptions = void 0;
4
+ // export const getDefaultUserOptions = (mode: TParserMode): ParseOptions =>
5
+ // export const getDefaultUserOptions = (mode: TParserMode) =>
6
+ // mode === 'strict' ? DEFAULT_STRICT_OPTS : DEFAULT_LENIENT_OPTS
7
+ const getDefaultUserOptions = (mode) => mode === 'strict' ? { ...DEFAULT_STRICT_OPTS } : { ...DEFAULT_LENIENT_OPTS };
8
+ exports.getDefaultUserOptions = getDefaultUserOptions;
9
+ // Base (mode-agnostic) defaults
10
+ const BASE_DEFAULTS = {
11
+ strictMode: false,
12
+ failLevel: 'auto',
13
+ includeMetadata: false,
14
+ includeDiagnostics: false,
15
+ includeTiming: false,
16
+ preserveUndefinedInMeta: false,
17
+ // suppressWarnings: false, // Suppress warnings in console (does not affect warnings in meta data).
18
+ onDuplicateKey: 'error',
19
+ requireDocTerminator: 'optional',
20
+ treatEmptyValueAsNull: 'allow-with-warning',
21
+ quiet: false, // Suppress warnings in console (does not affect warnings in meta data).
22
+ silent: false,
23
+ //@todo: Change default throwOnError to false
24
+ throwOnError: true, // Will throw on first parse error encountered.
25
+ };
26
+ const DEFAULT_LENIENT_OPTS = {
27
+ ...BASE_DEFAULTS,
28
+ strictMode: false,
29
+ failLevel: 'ignore-errors',
30
+ // suppressWarnings: false, // Suppress warnings in console (does not affect warnings in meta data).
31
+ // Below are options for pure rules:
32
+ onDuplicateKey: 'warn-and-keep-first',
33
+ requireDocTerminator: 'optional',
34
+ treatEmptyValueAsNull: 'allow',
35
+ };
36
+ const DEFAULT_STRICT_OPTS = {
37
+ ...BASE_DEFAULTS,
38
+ strictMode: true,
39
+ failLevel: 'errors',
40
+ // suppressWarnings: false, // Suppress warnings in console (does not affect warnings in meta data).
41
+ // Below are options for pure rules:
42
+ onDuplicateKey: 'error',
43
+ requireDocTerminator: 'optional',
44
+ treatEmptyValueAsNull: 'disallow',
45
+ };
46
+ //# sourceMappingURL=defaultParserOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultParserOptions.js","sourceRoot":"","sources":["../../../src/core/options/defaultParserOptions.ts"],"names":[],"mappings":";;;AAGA,4EAA4E;AAC5E,8DAA8D;AAC9D,qEAAqE;AAE9D,MAAM,qBAAqB,GAAG,CAAC,IAAiB,EAAE,EAAE,CACvD,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,oBAAoB,EAAE,CAAA;AADnE,QAAA,qBAAqB,yBAC8C;AAsBhF,gCAAgC;AAChC,MAAM,aAAa,GAA2B;IAC1C,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,KAAK;IACpB,uBAAuB,EAAE,KAAK;IAC9B,oGAAoG;IACpG,cAAc,EAAE,OAAO;IACvB,oBAAoB,EAAE,UAAU;IAChC,qBAAqB,EAAE,oBAAoB;IAC3C,KAAK,EAAE,KAAK,EAAE,wEAAwE;IACtF,MAAM,EAAE,KAAK;IACb,6CAA6C;IAC7C,YAAY,EAAE,IAAI,EAAE,+CAA+C;CACtE,CAAA;AAED,MAAM,oBAAoB,GAA2B;IACjD,GAAG,aAAa;IAChB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,eAAe;IAC1B,oGAAoG;IACpG,oCAAoC;IACpC,cAAc,EAAE,qBAAqB;IACrC,oBAAoB,EAAE,UAAU;IAChC,qBAAqB,EAAE,OAAO;CACjC,CAAA;AAED,MAAM,mBAAmB,GAA2B;IAChD,GAAG,aAAa;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;IACnB,oGAAoG;IACpG,oCAAoC;IACpC,cAAc,EAAE,OAAO;IACvB,oBAAoB,EAAE,UAAU;IAChC,qBAAqB,EAAE,UAAU;CACpC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { ParseOptions } from '../../types';
2
+ import { IParseCoreOptions, TBailSensitivityLevel, TParserMode } from '../internalTypes';
3
+ /**
4
+ * Map user parse options to core options.
5
+ */
6
+ export declare const toCoreOptions: (userOpts: Required<ParseOptions>, bailLevel?: TBailSensitivityLevel) => IParseCoreOptions;
7
+ export declare const isOptionsObjectForm: (v: unknown) => v is ParseOptions;
8
+ export declare const inferModeFromArgs: (arg2?: boolean | ParseOptions) => TParserMode;
@@ -2,18 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inferModeFromArgs = exports.isOptionsObjectForm = exports.toCoreOptions = void 0;
4
4
  const env_1 = require("../../config/env");
5
- const toCoreOptions = (bailLevel, userOpts) => {
5
+ const failLevel_1 = require("./failLevel");
6
+ /**
7
+ * Map user parse options to core options.
8
+ */
9
+ const toCoreOptions = (userOpts, bailLevel) => {
10
+ const level = bailLevel ?? (0, failLevel_1.mapFailLevelToBail)(userOpts.strictMode, userOpts.failLevel);
6
11
  return {
7
- isStrict: userOpts.strictMode,
8
- bailSensitivity: bailLevel,
12
+ rules: {
13
+ initialMode: userOpts.strictMode ? 'strict' : 'lenient',
14
+ onDuplicateKey: userOpts.onDuplicateKey,
15
+ requireDocTerminator: userOpts.requireDocTerminator,
16
+ treatEmptyValueAsNull: userOpts.treatEmptyValueAsNull,
17
+ },
18
+ bailSensitivity: level,
9
19
  isIncludeMeta: userOpts.includeMetadata,
10
20
  isWithDiagnostics: (0, env_1.isDev)() || (0, env_1.isDebug)() || userOpts.includeDiagnostics,
11
21
  isWithTiming: (0, env_1.isDev)() || (0, env_1.isDebug)() || userOpts.includeTiming,
12
22
  isKeepUndefinedInMeta: (0, env_1.isDebug)() || userOpts.preserveUndefinedInMeta,
13
- isAvoidWarningsInConsole: userOpts.suppressWarnings,
14
- requireDocTerminator: userOpts.requireDocTerminator,
15
- treatEmptyValueAsNull: userOpts.treatEmptyValueAsNull,
16
- onDuplicateKey: userOpts.onDuplicateKey,
23
+ isQuiet: userOpts.quiet, // Dup of suppressWarnings!
24
+ isSilent: userOpts.silent,
25
+ isThrowOnError: userOpts.throwOnError,
17
26
  };
18
27
  };
19
28
  exports.toCoreOptions = toCoreOptions;
@@ -29,14 +38,14 @@ const isOptionsObjectForm = (v) => {
29
38
  'includeDiagnostics' in v ||
30
39
  'includeTiming' in v ||
31
40
  'preserveUndefinedInMeta' in v ||
32
- 'suppressWarnings' in v ||
41
+ 'onDuplicateKey' in v ||
33
42
  'requireDocTerminator' in v ||
34
43
  'treatEmptyValueAsNull' in v ||
35
- 'onDuplicateKey' in v));
44
+ 'quiet' in v ||
45
+ 'silent' in v ||
46
+ 'isThrowOnError' in v));
36
47
  };
37
48
  exports.isOptionsObjectForm = isOptionsObjectForm;
38
- // const mode: TParserMode =
39
- // ((arg2 as any)?.strictMode ?? (arg2 as boolean | undefined)) ===
40
49
  const inferModeFromArgs = (arg2) => {
41
50
  if (typeof arg2 === 'boolean') {
42
51
  return arg2 ? 'strict' : 'lenient';
@@ -50,4 +59,4 @@ const inferModeFromArgs = (arg2) => {
50
59
  return 'lenient';
51
60
  };
52
61
  exports.inferModeFromArgs = inferModeFromArgs;
53
- //# sourceMappingURL=normalizeOptions.js.map
62
+ //# sourceMappingURL=optionsFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optionsFunctions.js","sourceRoot":"","sources":["../../../src/core/options/optionsFunctions.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AAOjD,2CAAgD;AAEhD;;GAEG;AACI,MAAM,aAAa,GAAG,CACzB,QAAgC,EAChC,SAAiC,EAChB,EAAE;IACnB,MAAM,KAAK,GACP,SAAS,IAAI,IAAA,8BAAkB,EAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;IAE5E,OAAO;QACH,KAAK,EAAE;YACH,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACvD,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;YACnD,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;SACxD;QACD,eAAe,EAAE,KAAK;QACtB,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,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,2BAA2B;QACpD,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,cAAc,EAAE,QAAQ,CAAC,YAAY;KACxC,CAAA;AACL,CAAC,CAAA;AAvBY,QAAA,aAAa,iBAuBzB;AAED,0DAA0D;AACnD,MAAM,mBAAmB,GAAG,CAAC,CAAU,EAAqB,EAAE;IACjE,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,gBAAgB,IAAK,CAAS;YAC9B,sBAAsB,IAAK,CAAS;YACpC,uBAAuB,IAAK,CAAS;YACrC,OAAO,IAAK,CAAS;YACrB,QAAQ,IAAK,CAAS;YACtB,gBAAgB,IAAK,CAAS,CAAC,CACtC,CAAA;AACL,CAAC,CAAA;AAnBY,QAAA,mBAAmB,uBAmB/B;AAEM,MAAM,iBAAiB,GAAG,CAC7B,IAA6B,EAClB,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,IAAqB,CAAC,UAAU,CAAA;QAC5C,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,8 @@
1
+ import { ParseOptions } from 'querystring';
2
+ import { IParseCoreOptions, TExactMode } from '../internalTypes';
3
+ export declare const matchModeFromParseOptions: (parserOptions: ParseOptions) => TExactMode;
4
+ /**
5
+ * Determines the effective parse mode from the current options (option rules).
6
+ * @returns 'custom' if no exact match exists, otherwise the matched mode.
7
+ */
8
+ export declare const matchModeFromCoreOptions: (coreOptions: IParseCoreOptions) => TExactMode;
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matchModeFromCoreOptions = exports.matchModeFromParseOptions = void 0;
4
+ const env_1 = require("../../config/env");
5
+ const print_1 = require("../../utils/print");
6
+ const errorDataHandler_1 = require("../errorDataHandler");
7
+ const optionsFunctions_1 = require("../options/optionsFunctions");
8
+ const MODE_PROFILES = {
9
+ lenient: [0, 0, 0],
10
+ // moderate: [1, 0, 1],
11
+ strict: [2, 0, 2],
12
+ //'pedantic'
13
+ //'paranoid'
14
+ };
15
+ const matchModeFromParseOptions = (parserOptions) => (0, exports.matchModeFromCoreOptions)((0, optionsFunctions_1.toCoreOptions)(parserOptions));
16
+ exports.matchModeFromParseOptions = matchModeFromParseOptions;
17
+ /**
18
+ * Determines the effective parse mode from the current options (option rules).
19
+ * @returns 'custom' if no exact match exists, otherwise the matched mode.
20
+ */
21
+ const matchModeFromCoreOptions = (coreOptions) => {
22
+ (0, print_1.debugPrint)('-> matchModeFromRules(..):');
23
+ if (!coreOptions?.rules) {
24
+ // Note, after pushing processing may continue or exit, depending on the error and/or the bail threshold.
25
+ new errorDataHandler_1.ErrorDataHandler('None/Ignore').pushOrBail(null, 'Fatal-Error', `The passed input object is missing rules object.`, 'Option might be of wrong type, it must be core options.');
26
+ }
27
+ // debugPrint(
28
+ // 'coreOptions.rules.?onDuplicateKey = ' +
29
+ // coreOptions.rules?.onDuplicateKey,
30
+ // )
31
+ // debugPrint(
32
+ // 'coreOptions.rules.?requireDocTerminator = ' +
33
+ // coreOptions.rules?.requireDocTerminator,
34
+ // )
35
+ // debugPrint(
36
+ // 'coreOptions.rules.?treatEmptyValueAsNull = ' +
37
+ // coreOptions.rules?.treatEmptyValueAsNull,
38
+ // )
39
+ const rules = { ...coreOptions.rules };
40
+ // if (rules.onDuplicateKey === 'error') {
41
+ // if (rules.treatEmptyValueAsNull == 'disallow') {
42
+ // return 'strict'
43
+ // }
44
+ // return 'lenient'
45
+ // }
46
+ // return 'custom'
47
+ const res = inferTParserModeExact(rules);
48
+ (0, print_1.debugPrint)(' mode = ' + res.mode);
49
+ (0, print_1.debugPrint)(' vector = ' + res.vector);
50
+ (0, print_1.debugPrint)('matchedProfile = ' + res.matchedProfile);
51
+ return res.mode;
52
+ };
53
+ exports.matchModeFromCoreOptions = matchModeFromCoreOptions;
54
+ /**
55
+ * Infer mode by **exact vector match** to a canonical profile (option rules).
56
+ * If no exact match exists, returns 'custom'.
57
+ */
58
+ const inferTParserModeExact = (rules) => {
59
+ // debugPrint('-> inferTParserModeExact(..):')
60
+ // debugPrint('rules.onDuplicateKey = ' + rules.onDuplicateKey)
61
+ // debugPrint('rules.requireDocTerminator = ' + rules.requireDocTerminator)
62
+ // debugPrint('rules.treatEmptyValueAsNull = ' + rules.treatEmptyValueAsNull)
63
+ // Note, **each rule** is scored on a strictness scale (0 = lenient, 1 = medium, 2 = strict).
64
+ const vector = [
65
+ scoreDupl(rules.onDuplicateKey),
66
+ scoreTerm(rules.requireDocTerminator),
67
+ scoreEmpty(rules.treatEmptyValueAsNull),
68
+ ];
69
+ (0, print_1.debugPrint)('** vector:');
70
+ // isDebug() && printObject(vector)
71
+ (0, env_1.isDebug)() && console.log(vector);
72
+ for (const mode of Object.keys(MODE_PROFILES)) {
73
+ if (vecEquals(vector, MODE_PROFILES[mode])) {
74
+ return { mode, vector, matchedProfile: mode };
75
+ }
76
+ }
77
+ return { mode: 'custom', vector };
78
+ };
79
+ const scoreDupl = (v) => {
80
+ switch (v) {
81
+ case 'keep-first':
82
+ case 'warn-and-keep-first':
83
+ return 0; // Rule in lenient mode.
84
+ case 'overwrite':
85
+ case 'warn-and-overwrite':
86
+ return 1;
87
+ case 'error':
88
+ return 2; // Rule in strict mode.
89
+ }
90
+ };
91
+ const scoreTerm = (v) => {
92
+ switch (v) {
93
+ case 'optional':
94
+ return 0; // Rule in lenient and strict mode.
95
+ case 'warn-if-missing':
96
+ return 1;
97
+ case 'required':
98
+ return 2;
99
+ }
100
+ };
101
+ const scoreEmpty = (v) => {
102
+ switch (v) {
103
+ case 'allow':
104
+ return 0; // Rule in lenient mode.
105
+ case 'allow-with-warning':
106
+ return 1;
107
+ case 'disallow':
108
+ return 2; // Rule in strict mode.
109
+ }
110
+ };
111
+ const vecEquals = (a, b) => {
112
+ return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];
113
+ };
114
+ //# sourceMappingURL=modeFromRulesMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modeFromRulesMatcher.js","sourceRoot":"","sources":["../../../src/core/parsingRules/modeFromRulesMatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { DocumentTerminatorRule, DuplicateKeyPolicy, EmptyValueRule } from '../../types';
2
+ export declare const DuplicateKeyPolicies: readonly ["error", "warn-and-keep-first", "warn-and-overwrite", "keep-first", "overwrite"];
3
+ export declare const DocumentTerminatorRules: readonly ["optional", "warn-if-missing", "required"];
4
+ export declare const EmptyValueRules: readonly ["allow", "allow-with-warning", "disallow"];
5
+ export declare const isDuplicateKeyPolicy: (v: unknown) => v is DuplicateKeyPolicy;
6
+ export declare const isDocumentTerminatorRule: (v: unknown) => v is DocumentTerminatorRule;
7
+ export declare const isEmptyValueRule: (v: unknown) => v is EmptyValueRule;