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.
- package/CHANGELOG.md +40 -2
- package/README.md +17 -6
- package/dist/YINI.d.ts +35 -23
- package/dist/YINI.js +9 -9
- package/dist/YINI.js.map +1 -1
- package/dist/core/astBuilder.js +9 -9
- package/dist/core/astBuilder.js.map +1 -1
- package/dist/core/errorDataHandler.d.ts +9 -5
- package/dist/core/errorDataHandler.js +99 -53
- package/dist/core/errorDataHandler.js.map +1 -1
- package/dist/core/internalTypes.d.ts +12 -6
- package/dist/core/options/defaultParserOptions.d.ts +17 -0
- package/dist/core/options/defaultParserOptions.js +46 -0
- package/dist/core/options/defaultParserOptions.js.map +1 -0
- package/dist/core/options/optionsFunctions.d.ts +8 -0
- package/dist/core/options/{normalizeOptions.js → optionsFunctions.js} +21 -12
- package/dist/core/options/optionsFunctions.js.map +1 -0
- package/dist/core/parsingRules/modeFromRulesMatcher.d.ts +8 -0
- package/dist/core/parsingRules/modeFromRulesMatcher.js +114 -0
- package/dist/core/parsingRules/modeFromRulesMatcher.js.map +1 -0
- package/dist/core/parsingRules/rulesConstAndGuards.d.ts +7 -0
- package/dist/core/parsingRules/rulesConstAndGuards.js +35 -0
- package/dist/core/parsingRules/rulesConstAndGuards.js.map +1 -0
- package/dist/core/pipeline/errorListeners.d.ts +18 -0
- package/dist/core/pipeline/errorListeners.js +107 -0
- package/dist/core/pipeline/errorListeners.js.map +1 -0
- package/dist/core/{pipeline.d.ts → pipeline/pipeline.d.ts} +3 -3
- package/dist/core/{pipeline.js → pipeline/pipeline.js} +70 -149
- package/dist/core/pipeline/pipeline.js.map +1 -0
- package/dist/core/resultMetadataBuilder.d.ts +2 -2
- package/dist/core/resultMetadataBuilder.js +29 -8
- package/dist/core/resultMetadataBuilder.js.map +1 -1
- package/dist/core/runtime.d.ts +8 -4
- package/dist/core/runtime.js +51 -24
- package/dist/core/runtime.js.map +1 -1
- package/dist/dev/main.js +70 -125
- package/dist/dev/main.js.map +1 -1
- package/dist/grammar/generated/YiniLexer.js +1 -1
- package/dist/grammar/generated/YiniLexer.js.map +1 -1
- package/dist/grammar/generated/YiniParser.js +1 -1
- package/dist/grammar/generated/YiniParser.js.map +1 -1
- package/dist/grammar/generated/YiniParserVisitor.js +1 -1
- package/dist/grammar/generated/YiniParserVisitor.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +0 -25
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +46 -25
- package/dist/utils/string.js +4 -0
- package/dist/utils/string.js.map +1 -1
- package/examples/basic-output.js +12 -12
- package/package.json +23 -18
- package/dist/core/options/normalizeOptions.d.ts +0 -5
- package/dist/core/options/normalizeOptions.js.map +0 -1
- package/dist/core/options/parserOptionsConstants.d.ts +0 -7
- package/dist/core/options/parserOptionsConstants.js +0 -37
- package/dist/core/options/parserOptionsConstants.js.map +0 -1
- package/dist/core/pipeline.js.map +0 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* 'I' prefixes, due to these are public user-facing.
|
|
8
8
|
*/
|
|
9
9
|
import { TBailSensitivityLevel } from '../core/internalTypes';
|
|
10
|
+
import { DocumentTerminatorRules, DuplicateKeyPolicies, EmptyValueRules } from '../core/parsingRules/rulesConstAndGuards';
|
|
10
11
|
/**
|
|
11
12
|
* JavaScript object produced by parsing a YINI document.
|
|
12
13
|
*/
|
|
@@ -21,11 +22,15 @@ export interface YiniParseResult {
|
|
|
21
22
|
}
|
|
22
23
|
export type FailLevelKey = 'ignore-errors' | 'errors' | 'warnings-and-errors';
|
|
23
24
|
export type PreferredFailLevel = 'auto' | FailLevelKey;
|
|
24
|
-
export type OnDuplicateKey = 'warn-and-keep-first' | 'warn-and-overwrite' | 'keep-first' | 'overwrite' | 'error';
|
|
25
25
|
/** Version tag for the public metadata schema. */
|
|
26
|
-
export type MetaSchemaVersion = '1.1.
|
|
26
|
+
export type MetaSchemaVersion = '1.1.1';
|
|
27
27
|
/** Source of the order guarantee. */
|
|
28
28
|
export type OrderGuarantee = 'spec' | 'language' | 'implementation-defined' | 'none';
|
|
29
|
+
/** @deprecated Use DuplicateKeyPolicy */
|
|
30
|
+
export type OnDuplicateKey = DuplicateKeyPolicy;
|
|
31
|
+
export type DuplicateKeyPolicy = (typeof DuplicateKeyPolicies)[number];
|
|
32
|
+
export type DocumentTerminatorRule = (typeof DocumentTerminatorRules)[number];
|
|
33
|
+
export type EmptyValueRule = (typeof EmptyValueRules)[number];
|
|
29
34
|
/**
|
|
30
35
|
* User-facing options, these are external and should be more user friendly,
|
|
31
36
|
* and shorter, parameter names than the (more descriptive) internal
|
|
@@ -36,51 +41,67 @@ export type OrderGuarantee = 'spec' | 'language' | 'implementation-defined' | 'n
|
|
|
36
41
|
* @note These are the same as in the "simple positional API" function in
|
|
37
42
|
* the YINI class.
|
|
38
43
|
*/
|
|
39
|
-
export interface
|
|
44
|
+
export interface BasicOptions {
|
|
40
45
|
/** Enable stricter syntax and well-formedness checks. */
|
|
41
46
|
strictMode?: boolean;
|
|
42
47
|
/**
|
|
43
|
-
* Minimum severity that should cause parse to fail.
|
|
48
|
+
* Minimum severity that should cause parse to fail and stop.
|
|
44
49
|
* 'auto' | 'ignore-errors' | 'errors' | 'warnings-and-errors'
|
|
45
50
|
*/
|
|
46
51
|
failLevel?: PreferredFailLevel;
|
|
47
52
|
/** Attach metadata to the parse result (timings, diagnostics, etc.). */
|
|
48
53
|
includeMetadata?: boolean;
|
|
49
54
|
}
|
|
55
|
+
/** @deprecated Use ParseOptions */
|
|
56
|
+
export interface PrimaryUserParams extends BasicOptions {
|
|
57
|
+
dummy: null;
|
|
58
|
+
}
|
|
50
59
|
/**
|
|
51
|
-
* @param failLevel -
|
|
60
|
+
* @param options.failLevel - Preferred bail sensitivity level, controls if and when parsing should stop on problems:
|
|
52
61
|
* Accepts:
|
|
53
|
-
* `'ignore-errors'` -
|
|
62
|
+
* `'ignore-errors'` - Continue despite errors, persist and try to recover.
|
|
54
63
|
* `'errors'` - Stop parsing on the first error.
|
|
55
64
|
* `'warnings-and-errors'` - Stop parsing on the first warning or error.
|
|
56
65
|
* (Type: TPreferredFailLevel; exact behavior is implementation-defined.)
|
|
57
|
-
* @param includeDiagnostics - Include diagnostics in the returned metadata.
|
|
66
|
+
* @param options.includeDiagnostics - Include diagnostics in the returned metadata.
|
|
58
67
|
* Requires: `includeMetadata = true`. Ignored otherwise.
|
|
59
|
-
* @param includeMetadata - Attach a metadata object to the parse result
|
|
68
|
+
* @param options.includeMetadata - Attach a metadata object to the parse result
|
|
60
69
|
* (e.g., timings, diagnostics).
|
|
61
|
-
* @param includeTiming - Include timing information for parser phases in metadata.
|
|
70
|
+
* @param options.includeTiming - Include timing information for parser phases in metadata.
|
|
62
71
|
* Requires: `includeMetadata = true`. Ignored otherwise.
|
|
63
|
-
* @param onDuplicateKey - Strategy/handler when encountering a duplicate key.
|
|
72
|
+
* @param options.onDuplicateKey - Strategy/handler when encountering a duplicate key.
|
|
64
73
|
* Allowed values: `'warn-and-keep-first'` | `'warn-and-overwrite'` | `'keep-first'` (silent, first wins) | `'overwrite'` (silent, last wins) | `'error'`.
|
|
65
|
-
* @param preserveUndefinedInMeta - Keep properties with value `undefined` inside
|
|
74
|
+
* @param options.preserveUndefinedInMeta - Keep properties with value `undefined` inside
|
|
66
75
|
* the returned metadata. Requires: `includeMetadata = true`. Ignored otherwise.
|
|
67
|
-
* @param
|
|
68
|
-
*
|
|
69
|
-
* @param
|
|
70
|
-
*
|
|
71
|
-
* @param
|
|
72
|
-
*
|
|
73
|
-
*
|
|
76
|
+
* @param options.quiet - Print **errors only** to the console; warnings and info are not printed.
|
|
77
|
+
* Diagnostics in the returned metadata are unaffected. Silent overrides quiet if both are enabled.
|
|
78
|
+
* @param options.requireDocTerminator - Whether a document terminator is required.
|
|
79
|
+
* One of: 'optional' | 'warn-if-missing' | 'required'.
|
|
80
|
+
* @param options.silent - **No console output** at all (including errors).
|
|
81
|
+
* Use the return value/metadata or the process exit code to detect failures.
|
|
82
|
+
* Silent overrides quiet if both are enabled.
|
|
83
|
+
* @param options.strictMode - Sets the baseline ruleset (true = strict, false = lenient).
|
|
84
|
+
* This is only a starting point: rule-specific options (e.g., `treatEmptyValueAsNull`,
|
|
85
|
+
* `onDuplicateKey`, etc.) can override parts of that ruleset. If any overrides are given,
|
|
86
|
+
* the effective mode becomes **custom** rather than purely strict/lenient.
|
|
87
|
+
* @param options.treatEmptyValueAsNull - How to treat an explicitly empty value on the
|
|
74
88
|
* right-hand side of '='. Allowed values: `'allow'` | `'allow-with-warning'` | `'disallow'`.
|
|
89
|
+
* @param options.throwOnError - Will throw on first parse error encountered.
|
|
75
90
|
*/
|
|
76
|
-
export interface
|
|
91
|
+
export interface ParseOptions extends BasicOptions {
|
|
77
92
|
includeDiagnostics?: boolean;
|
|
78
93
|
includeTiming?: boolean;
|
|
79
94
|
preserveUndefinedInMeta?: boolean;
|
|
80
|
-
suppressWarnings?: boolean;
|
|
81
|
-
requireDocTerminator?: 'optional' | 'warn-if-missing' | 'required';
|
|
82
|
-
treatEmptyValueAsNull?: 'allow' | 'allow-with-warning' | 'disallow';
|
|
83
95
|
onDuplicateKey?: OnDuplicateKey;
|
|
96
|
+
requireDocTerminator?: DocumentTerminatorRule;
|
|
97
|
+
treatEmptyValueAsNull?: EmptyValueRule;
|
|
98
|
+
quiet?: boolean;
|
|
99
|
+
silent?: boolean;
|
|
100
|
+
throwOnError?: boolean;
|
|
101
|
+
}
|
|
102
|
+
/** @deprecated Use ParseOptions */
|
|
103
|
+
export interface AllUserOptions extends ParseOptions {
|
|
104
|
+
dummy: null;
|
|
84
105
|
}
|
|
85
106
|
export interface IssuePayload {
|
|
86
107
|
/** 1-based; use undefined when not applicable. */
|
|
@@ -104,7 +125,7 @@ export interface IssuePayload {
|
|
|
104
125
|
*/
|
|
105
126
|
export interface ResultMetadata {
|
|
106
127
|
parserVersion: string;
|
|
107
|
-
mode: 'lenient' | 'strict';
|
|
128
|
+
mode: 'lenient' | 'strict' | 'custom';
|
|
108
129
|
totalErrors: number;
|
|
109
130
|
totalWarnings: number;
|
|
110
131
|
totalMessages: number;
|
|
@@ -166,8 +187,8 @@ export interface ResultMetadata {
|
|
|
166
187
|
};
|
|
167
188
|
};
|
|
168
189
|
};
|
|
169
|
-
effectiveOptions:
|
|
170
|
-
options:
|
|
190
|
+
effectiveOptions: ParseOptions;
|
|
191
|
+
options: ParseOptions;
|
|
171
192
|
};
|
|
172
193
|
timing?: {
|
|
173
194
|
total: null | {
|
package/dist/utils/string.js
CHANGED
|
@@ -7,6 +7,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.toLowerKebabCase = exports.toLowerSnakeCase = exports.stripNLAndAfter = exports.isDigit = exports.isAlpha = exports.isEnclosedInBackticks = exports.trimBackticks = exports.trimTrailingNonLetters = exports.splitLines = exports.computeSha256 = exports.capitalizeFirst = void 0;
|
|
8
8
|
const crypto_1 = require("crypto");
|
|
9
9
|
const print_1 = require("./print");
|
|
10
|
+
// export const stripBOM = (input: string): string => {
|
|
11
|
+
// // (!) NOTE: slice(1) only because UTF-8 BOM appears as one single Unicode code characte, even though it is 3 bytes (EF BB BF) on disk.
|
|
12
|
+
// return input.startsWith('\uFEFF') ? input.slice(1) : input
|
|
13
|
+
// }
|
|
10
14
|
/**
|
|
11
15
|
* Capitalizes the first character of a string.
|
|
12
16
|
*
|
package/dist/utils/string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"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"}
|
package/examples/basic-output.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Parsed output from examples/basic.yini using YINI.parseFile(...)
|
|
2
2
|
|
|
3
3
|
// JS object
|
|
4
|
-
{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
4
|
+
;({
|
|
5
|
+
App: {
|
|
6
|
+
title: 'My App',
|
|
7
|
+
items: 10,
|
|
8
|
+
debug: true,
|
|
9
|
+
},
|
|
10
|
+
Server: {
|
|
11
|
+
host: 'localhost',
|
|
12
|
+
port: 8080,
|
|
13
|
+
useTLS: false,
|
|
14
|
+
},
|
|
15
|
+
})
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yini-parser",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Node.js parser for YINI —
|
|
3
|
+
"version": "1.3.1-beta",
|
|
4
|
+
"description": "Node.js parser for YINI config format — A clean, structured configuration format with nesting, types, comments, and optional strict parsing.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"yini",
|
|
7
7
|
"yini-parser",
|
|
@@ -47,8 +47,9 @@
|
|
|
47
47
|
"scripts": {
|
|
48
48
|
"start": "npm run build && node dist/index.js",
|
|
49
49
|
"start:debug": "npm run start -- isDebug=1",
|
|
50
|
-
"start:
|
|
51
|
-
"start:dev
|
|
50
|
+
"start:main": "cross-env NODE_ENV=development APP_ENV=local ts-node src/dev/main.ts",
|
|
51
|
+
"start:main:dev": "cross-env npm run start:main -- isDev=1",
|
|
52
|
+
"start:main:dev:debug": "cross-env npm run start:main:dev -- isDebug=1",
|
|
52
53
|
"start-w-clean": "npm run tsc && npm run clean:ts-js && npm run start:dev",
|
|
53
54
|
"test": "cross-env NODE_ENV=test APP_ENV=local jest --bail --verbose --runInBand",
|
|
54
55
|
"test:debug": "cross-env npm run test -- --isDebug=1",
|
|
@@ -63,12 +64,16 @@
|
|
|
63
64
|
"test:issues:debug": "cross-env npm run test:issues -- --isDebug=1",
|
|
64
65
|
"test:gold:debug": "cross-env npm run test:gold -- --isDebug=1",
|
|
65
66
|
"test:esm": "node ./tests/fixtures/test-src-files/esm-smoke.js",
|
|
67
|
+
"test:cov": "jest --coverage",
|
|
68
|
+
"test:cov:lcov": "jest --coverage --coverageReporters=lcov",
|
|
66
69
|
"ci:test": "cross-env NODE_ENV=test APP_ENV=ci jest --verbose --runInBand",
|
|
67
70
|
"ci:test:smoke": "cross-env NODE_ENV=test APP_ENV=ci jest tests/smoke --verbose --runInBand",
|
|
71
|
+
"ci:test:unit": "cross-env NODE_ENV=test APP_ENV=ci jest src/ --verbose --runInBand",
|
|
68
72
|
"tsc": "npx tsc -p ./tsconfig.json",
|
|
69
73
|
"lint": "eslint src --ext .ts",
|
|
70
74
|
"clean:ts-js": "bash scripts/clean-ts-js.sh",
|
|
71
75
|
"antlr": "make generate",
|
|
76
|
+
"ci:antlr": "make ci-generate",
|
|
72
77
|
"build": "tsc -p ./tsconfig.json",
|
|
73
78
|
"prepublishOnly": "npm run lint && npm test && npm run build"
|
|
74
79
|
},
|
|
@@ -77,23 +82,23 @@
|
|
|
77
82
|
"antlr4": "^4.13.2"
|
|
78
83
|
},
|
|
79
84
|
"devDependencies": {
|
|
80
|
-
"@eslint/js": "^9.
|
|
81
|
-
"@ianvs/prettier-plugin-sort-imports": "^4.
|
|
82
|
-
"@types/jest": "^
|
|
85
|
+
"@eslint/js": "^9.39.1",
|
|
86
|
+
"@ianvs/prettier-plugin-sort-imports": "^4.7.0",
|
|
87
|
+
"@types/jest": "^30.0.0",
|
|
83
88
|
"@types/node": "^22.15.3",
|
|
84
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
85
|
-
"@typescript-eslint/parser": "^8.
|
|
86
|
-
"cross-env": "^
|
|
87
|
-
"eslint": "^9.
|
|
88
|
-
"eslint-config-prettier": "^10.1.
|
|
89
|
-
"eslint-plugin-prettier": "^5.4
|
|
89
|
+
"@typescript-eslint/eslint-plugin": "^8.48.1",
|
|
90
|
+
"@typescript-eslint/parser": "^8.48.1",
|
|
91
|
+
"cross-env": "^10.1.0",
|
|
92
|
+
"eslint": "^9.39.1",
|
|
93
|
+
"eslint-config-prettier": "^10.1.8",
|
|
94
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
90
95
|
"husky": "^9.1.7",
|
|
91
|
-
"jest": "^
|
|
92
|
-
"lint-staged": "^16.
|
|
93
|
-
"prettier": "^3.
|
|
94
|
-
"ts-jest": "^29.
|
|
96
|
+
"jest": "^30.2.0",
|
|
97
|
+
"lint-staged": "^16.2.7",
|
|
98
|
+
"prettier": "^3.7.4",
|
|
99
|
+
"ts-jest": "^29.4.6",
|
|
95
100
|
"ts-node": "^10.9.2",
|
|
96
|
-
"typescript": "^5.
|
|
101
|
+
"typescript": "^5.9.3"
|
|
97
102
|
},
|
|
98
103
|
"lint-staged": {
|
|
99
104
|
"src/**/*.{js,jsx,json,ts,tsx,css,scss}": [
|
|
@@ -1,5 +0,0 @@
|
|
|
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;
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
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;
|
|
@@ -1,37 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
|