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
@@ -0,0 +1,198 @@
1
+ /**
2
+ *
3
+ * Public (user-facing) types (shapes) here only.
4
+ *
5
+ * @note Internal-only types (shapes) should go into core/internalTypes.ts.
6
+ * @note These types and interface (shapes) should NOT include the 'T' and,
7
+ * 'I' prefixes, due to these are public user-facing.
8
+ */
9
+ import { TBailSensitivityLevel } from '../core/internalTypes';
10
+ /**
11
+ * JavaScript object produced by parsing a YINI document.
12
+ */
13
+ export type ParsedObject = any;
14
+ /**
15
+ * Result returned from `parse(..)` and `parseFile(..)`,
16
+ * containing both the parsed object and associated metadata.
17
+ */
18
+ export interface YiniParseResult {
19
+ result: ParsedObject;
20
+ meta: ResultMetadata;
21
+ }
22
+ export type FailLevelKey = 'ignore-errors' | 'errors' | 'warnings-and-errors';
23
+ export type PreferredFailLevel = 'auto' | FailLevelKey;
24
+ export type OnDuplicateKey = 'warn-and-keep-first' | 'warn-and-overwrite' | 'keep-first' | 'overwrite' | 'error';
25
+ /** Version tag for the public metadata schema. */
26
+ export type MetaSchemaVersion = '1.1.0';
27
+ /** Source of the order guarantee. */
28
+ export type OrderGuarantee = 'spec' | 'language' | 'implementation-defined' | 'none';
29
+ /**
30
+ * User-facing options, these are external and should be more user friendly,
31
+ * and shorter, parameter names than the (more descriptive) internal
32
+ * engine option names.
33
+ *
34
+ * @note These parameters are emphasizes a bit more than the other options,
35
+ * therefor these are kept a bit shorter for usability-purposes.
36
+ * @note These are the same as in the "simple positional API" function in
37
+ * the YINI class.
38
+ */
39
+ export interface PrimaryUserParams {
40
+ /** Enable stricter syntax and well-formedness checks. */
41
+ strictMode?: boolean;
42
+ /**
43
+ * Minimum severity that should cause parse to fail.
44
+ * 'auto' | 'ignore-errors' | 'errors' | 'warnings-and-errors'
45
+ */
46
+ failLevel?: PreferredFailLevel;
47
+ /** Attach metadata to the parse result (timings, diagnostics, etc.). */
48
+ includeMetadata?: boolean;
49
+ }
50
+ /**
51
+ * @param failLevel - Minimum severity that should cause the parse to fail.
52
+ * Accepts:
53
+ * `'ignore-errors'` - Don't bail/fail on error, persist and try to recover.
54
+ * `'errors'` - Stop parsing on the first error.
55
+ * `'warnings-and-errors'` - Stop parsing on the first warning or error.
56
+ * (Type: TPreferredFailLevel; exact behavior is implementation-defined.)
57
+ * @param includeDiagnostics - Include diagnostics in the returned metadata.
58
+ * Requires: `includeMetadata = true`. Ignored otherwise.
59
+ * @param includeMetadata - Attach a metadata object to the parse result
60
+ * (e.g., timings, diagnostics).
61
+ * @param includeTiming - Include timing information for parser phases in metadata.
62
+ * Requires: `includeMetadata = true`. Ignored otherwise.
63
+ * @param onDuplicateKey - Strategy/handler when encountering a duplicate key.
64
+ * 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
66
+ * the returned metadata. Requires: `includeMetadata = true`. Ignored otherwise.
67
+ * @param requireDocTerminator - Controls whether a document terminator is required.
68
+ * Allowed values: `'optional'` | `'warn-if-missing'` | `'required'`.
69
+ * @param strictMode - Enable stricter syntax and well-formedness checks according
70
+ * to the spec (exact rules are implementation-defined).
71
+ * @param suppressWarnings - Suppress warnings sent to the console/log.
72
+ * Does not affect warnings included in returned metadata.
73
+ * @param treatEmptyValueAsNull - How to treat an explicitly empty value on the
74
+ * right-hand side of '='. Allowed values: `'allow'` | `'allow-with-warning'` | `'disallow'`.
75
+ */
76
+ export interface AllUserOptions extends PrimaryUserParams {
77
+ includeDiagnostics?: boolean;
78
+ includeTiming?: boolean;
79
+ preserveUndefinedInMeta?: boolean;
80
+ suppressWarnings?: boolean;
81
+ requireDocTerminator?: 'optional' | 'warn-if-missing' | 'required';
82
+ treatEmptyValueAsNull?: 'allow' | 'allow-with-warning' | 'disallow';
83
+ onDuplicateKey?: OnDuplicateKey;
84
+ }
85
+ export interface IssuePayload {
86
+ /** 1-based; use undefined when not applicable. */
87
+ line: number | undefined;
88
+ /** 1-based; use undefined when not applicable. */
89
+ column: number | undefined;
90
+ /** Lowercase key for easy tooling. */
91
+ typeKey: string;
92
+ message: string;
93
+ advice: string | undefined;
94
+ hint: string | undefined;
95
+ }
96
+ /**
97
+ * @note NOTE: USE NO TYPES here (or neither in nested structures), they
98
+ * should only be strings (and content MUST be transformed from the
99
+ * types to lower snake case)
100
+ *
101
+ * *** DUE TO make easier for tooling ***
102
+ *
103
+ * @note UPDATE 'metaSchemaVersion' on any edits to the meta structure.
104
+ */
105
+ export interface ResultMetadata {
106
+ parserVersion: string;
107
+ mode: 'lenient' | 'strict';
108
+ totalErrors: number;
109
+ totalWarnings: number;
110
+ totalMessages: number;
111
+ runStartedAt: string;
112
+ runFinishedAt: string;
113
+ durationMs: number;
114
+ preservesOrder: boolean;
115
+ orderGuarantee: OrderGuarantee;
116
+ orderNotes?: string;
117
+ source: {
118
+ sourceType: string;
119
+ fileName: undefined | string;
120
+ hasDocumentTerminator: boolean;
121
+ hasYiniMarker: boolean;
122
+ byteSize: null | number;
123
+ lineCount: null | number;
124
+ sha256: null | string;
125
+ };
126
+ structure: {
127
+ maxDepth: null | number;
128
+ sectionCount: null | number;
129
+ memberCount: null | number;
130
+ keysParsedCount: null | number;
131
+ sectionNamePaths: string[] | null;
132
+ };
133
+ metaSchemaVersion: MetaSchemaVersion;
134
+ diagnostics?: {
135
+ failLevel: {
136
+ preferredLevel: null | PreferredFailLevel;
137
+ usedLevelType: TBailSensitivityLevel;
138
+ usedLevelKey: FailLevelKey;
139
+ levelDescription: string | null;
140
+ };
141
+ errors: {
142
+ errorCount: number;
143
+ payload: IssuePayload[];
144
+ };
145
+ warnings: {
146
+ warningCount: number;
147
+ payload: IssuePayload[];
148
+ };
149
+ notices: {
150
+ noticeCount: number;
151
+ payload: IssuePayload[];
152
+ };
153
+ infos: {
154
+ infoCount: number;
155
+ payload: IssuePayload[];
156
+ };
157
+ environment: {
158
+ NODE_ENV: undefined | string;
159
+ APP_ENV: undefined | string;
160
+ lib: {
161
+ nodeEnv: undefined | string;
162
+ appEnv: undefined | string;
163
+ flags: {
164
+ isDev: boolean;
165
+ isDebug: boolean;
166
+ };
167
+ };
168
+ };
169
+ effectiveOptions: AllUserOptions;
170
+ options: AllUserOptions;
171
+ };
172
+ timing?: {
173
+ total: null | {
174
+ timeMs: number;
175
+ name: string;
176
+ };
177
+ phase0: undefined | {
178
+ timeMs: number;
179
+ name: string;
180
+ };
181
+ phase1: null | {
182
+ timeMs: number;
183
+ name: string;
184
+ };
185
+ phase2: null | {
186
+ timeMs: number;
187
+ name: string;
188
+ };
189
+ phase3: null | {
190
+ timeMs: number;
191
+ name: string;
192
+ };
193
+ phase4: null | {
194
+ timeMs: number;
195
+ name: string;
196
+ };
197
+ };
198
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // File: src/types/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA,2BAA2B"}
@@ -16,3 +16,4 @@ const isValidJSNumber = (str) => {
16
16
  return !Number.isNaN(n); // True only if parse succeeded.
17
17
  };
18
18
  exports.isValidJSNumber = isValidJSNumber;
19
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/utils/number.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,CAAS,EAAW,EAAE;IAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC1B,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB;AAEM,MAAM,eAAe,GAAG,CAAC,CAAS,EAAW,EAAE;IAClD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;AAC5C,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAEM,MAAM,eAAe,GAAG,CAAC,GAAW,EAAW,EAAE;IACpD,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA,CAAC,mCAAmC;IACvE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,gCAAgC;AAC5D,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B"}
@@ -1,3 +1,14 @@
1
+ interface SortOptions {
2
+ /** Sort nested objects too (default: false) */
3
+ deep?: boolean;
4
+ /** Custom key comparator (default: a.localeCompare(b)) */
5
+ comparator?: (a: string, b: string) => number;
6
+ }
7
+ /**
8
+ * Returns a new object with keys sorted alphabetically.
9
+ * Arrays and non-plain objects are preserved as-is (unless deep + they contain plain objects).
10
+ */
11
+ export declare const sortObjectKeys: <T>(obj: T, options?: SortOptions) => T;
1
12
  /**
2
13
  * Removes top-level properties with value `undefined`.
3
14
  * Does not recurse into nested objects or arrays.
@@ -53,3 +64,4 @@ export declare const removeUndefinedShallow: <T extends object>(obj: T) => Parti
53
64
  * }
54
65
  */
55
66
  export declare const removeUndefinedDeep: <T>(obj: T) => T;
67
+ export {};
@@ -1,6 +1,45 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeUndefinedDeep = exports.removeUndefinedShallow = void 0;
3
+ exports.removeUndefinedDeep = exports.removeUndefinedShallow = exports.sortObjectKeys = void 0;
4
+ const isPlainObject = (value) => {
5
+ return (typeof value === 'object' &&
6
+ value !== null &&
7
+ !Array.isArray(value) &&
8
+ Object.prototype.toString.call(value) === '[object Object]');
9
+ };
10
+ /**
11
+ * Returns a new object with keys sorted alphabetically.
12
+ * Arrays and non-plain objects are preserved as-is (unless deep + they contain plain objects).
13
+ */
14
+ const sortObjectKeys = (obj, options = {}) => {
15
+ const { deep = false, comparator } = options;
16
+ if (!isPlainObject(obj)) {
17
+ // If it's not a plain object (array, Date, null, primitive), return as-is.
18
+ return obj;
19
+ }
20
+ const keys = Object.keys(obj).sort(comparator ?? ((a, b) => a.localeCompare(b)));
21
+ const sortedEntries = keys.map((k) => {
22
+ const value = obj[k];
23
+ if (deep) {
24
+ if (isPlainObject(value)) {
25
+ return [k, (0, exports.sortObjectKeys)(value, options)];
26
+ }
27
+ if (Array.isArray(value)) {
28
+ // Deep-sort any plain objects inside arrays, leave others as-is.
29
+ return [
30
+ k,
31
+ value.map((item) => isPlainObject(item)
32
+ ? (0, exports.sortObjectKeys)(item, options)
33
+ : item),
34
+ ];
35
+ }
36
+ }
37
+ return [k, value];
38
+ });
39
+ // Preserve the original type T structurally.
40
+ return Object.fromEntries(sortedEntries);
41
+ };
42
+ exports.sortObjectKeys = sortObjectKeys;
4
43
  /**
5
44
  * Removes top-level properties with value `undefined`.
6
45
  * Does not recurse into nested objects or arrays.
@@ -83,3 +122,4 @@ const removeUndefinedDeep = (obj) => {
83
122
  return cleaned;
84
123
  };
85
124
  exports.removeUndefinedDeep = removeUndefinedDeep;
125
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/utils/object.ts"],"names":[],"mappings":"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"}
@@ -13,3 +13,4 @@ const getFileNameExtension = (fullPath) => {
13
13
  return path_1.default.extname(fullPath);
14
14
  };
15
15
  exports.getFileNameExtension = getFileNameExtension;
16
+ //# sourceMappingURL=pathAndFileName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathAndFileName.js","sourceRoot":"","sources":["../../src/utils/pathAndFileName.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,gDAAuB;AAEhB,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAU,EAAE;IAC7D,OAAO,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACjC,CAAC,CAAA;AAFY,QAAA,oBAAoB,wBAEhC"}
@@ -4,10 +4,10 @@ export declare const toPrettyJSON: (obj: any) => string;
4
4
  /** Pretty-prints a JavaScript object as formatted JSON to the console.
5
5
  * Strict JSON, all keys are enclosed in ", etc.
6
6
  */
7
- export declare const printJSON: (obj: any) => void;
7
+ export declare const printJSON: (obj: any, isForce?: boolean) => void;
8
8
  /**
9
9
  * Print a full JavaScript object in a human-readable way (not as JSON).
10
10
  * Not strict JSON, and shows functions, symbols, getters/setters, and class names.
11
11
  * @param isColors If true, the output is styled with ANSI color codes.
12
12
  */
13
- export declare const printObject: (obj: any, isColors?: boolean) => void;
13
+ export declare const printObject: (obj: any, isForce?: boolean, isColors?: boolean) => void;
@@ -26,9 +26,11 @@ exports.toPrettyJSON = toPrettyJSON;
26
26
  /** Pretty-prints a JavaScript object as formatted JSON to the console.
27
27
  * Strict JSON, all keys are enclosed in ", etc.
28
28
  */
29
- const printJSON = (obj) => {
30
- if ((0, env_1.isProdEnv)() || ((0, env_1.isTestEnv)() && !(0, env_1.isDebug)()))
31
- return;
29
+ const printJSON = (obj, isForce = false) => {
30
+ if (!isForce) {
31
+ if ((0, env_1.isProdEnv)() || ((0, env_1.isTestEnv)() && !(0, env_1.isDebug)()))
32
+ return;
33
+ }
32
34
  const str = (0, exports.toPrettyJSON)(obj);
33
35
  console.log(str);
34
36
  };
@@ -38,9 +40,12 @@ exports.printJSON = printJSON;
38
40
  * Not strict JSON, and shows functions, symbols, getters/setters, and class names.
39
41
  * @param isColors If true, the output is styled with ANSI color codes.
40
42
  */
41
- const printObject = (obj, isColors = true) => {
42
- if ((0, env_1.isProdEnv)() || ((0, env_1.isTestEnv)() && !(0, env_1.isDebug)()))
43
- return;
43
+ const printObject = (obj, isForce = false, isColors = true) => {
44
+ if (!isForce) {
45
+ if ((0, env_1.isProdEnv)() || ((0, env_1.isTestEnv)() && !(0, env_1.isDebug)()))
46
+ return;
47
+ }
44
48
  console.log(util_1.default.inspect(obj, { depth: null, colors: isColors }));
45
49
  };
46
50
  exports.printObject = printObject;
51
+ //# sourceMappingURL=print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print.js","sourceRoot":"","sources":["../../src/utils/print.ts"],"names":[],"mappings":";;;;;;AAAA;;;GAGG;AACH,gDAAuB;AACvB,uCAAoE;AAE7D,MAAM,UAAU,GAAG,CAAC,MAAW,EAAE,EAAE,EAAE;IACxC,IAAA,aAAO,GAAE,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAA;AAC/C,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB;AAEM,MAAM,QAAQ,GAAG,CAAC,MAAW,EAAE,EAAE,EAAE;IACtC,IAAA,WAAK,GAAE,IAAI,CAAC,IAAA,eAAS,GAAE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;AACzD,CAAC,CAAA;AAFY,QAAA,QAAQ,YAEpB;AAEM,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAU,EAAE;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxC,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAHY,QAAA,YAAY,gBAGxB;AAED;;GAEG;AACI,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,EAAE;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,IAAI,IAAA,eAAS,GAAE,IAAI,CAAC,IAAA,eAAS,GAAE,IAAI,CAAC,IAAA,aAAO,GAAE,CAAC;YAAE,OAAM;IAC1D,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC,CAAA;AAPY,QAAA,SAAS,aAOrB;AAED;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,IAAI,IAAA,eAAS,GAAE,IAAI,CAAC,IAAA,eAAS,GAAE,IAAI,CAAC,IAAA,aAAO,GAAE,CAAC;YAAE,OAAM;IAC1D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;AACrE,CAAC,CAAA;AANY,QAAA,WAAW,eAMvB"}
@@ -60,3 +60,8 @@ export declare const stripNLAndAfter: (line: string) => string;
60
60
  * Replaces all '-' to '_', and returns rusult in lower case.
61
61
  */
62
62
  export declare const toLowerSnakeCase: (txt: string) => string;
63
+ /**
64
+ * Transforms strings such as 'Id-Name' to 'id-name'.
65
+ * Replaces all '_' to '-', and returns rusult in lower case.
66
+ */
67
+ export declare const toLowerKebabCase: (txt: string) => string;
@@ -4,7 +4,7 @@
4
4
  * @note More specific YINI helper functions should go into yiniHelpers.ts-file.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.toLowerSnakeCase = exports.stripNLAndAfter = exports.isDigit = exports.isAlpha = exports.isEnclosedInBackticks = exports.trimBackticks = exports.trimTrailingNonLetters = exports.splitLines = exports.computeSha256 = exports.capitalizeFirst = void 0;
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
10
  /**
@@ -130,3 +130,12 @@ const toLowerSnakeCase = (txt) => {
130
130
  return txt.trim().toLowerCase().replace(/[-]/g, '_');
131
131
  };
132
132
  exports.toLowerSnakeCase = toLowerSnakeCase;
133
+ /**
134
+ * Transforms strings such as 'Id-Name' to 'id-name'.
135
+ * Replaces all '_' to '-', and returns rusult in lower case.
136
+ */
137
+ const toLowerKebabCase = (txt) => {
138
+ return txt.trim().toLowerCase().replace(/[_]/g, '-');
139
+ };
140
+ exports.toLowerKebabCase = toLowerKebabCase;
141
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"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"}
@@ -19,3 +19,4 @@ const isError = (e) => {
19
19
  return e instanceof Error;
20
20
  };
21
21
  exports.isError = isError;
22
+ //# sourceMappingURL=system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/utils/system.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACI,MAAM,OAAO,GAAG,CAAC,CAAU,EAAc,EAAE;IAC9C,OAAO,CAAC,YAAY,KAAK,CAAA;AAC7B,CAAC,CAAA;AAFY,QAAA,OAAO,WAEnB"}
@@ -2,7 +2,7 @@
2
2
  * This file contains specific YINI helper functions (utils).
3
3
  * @note More general helper functions should go into the dir "src/utils/".
4
4
  */
5
- import { TScalarValue, TValueLiteral } from './core/types';
5
+ import { TScalarValue, TValueLiteral } from '../core/internalTypes';
6
6
  /**
7
7
  * Check if the character is a section marker character.
8
8
  * @param character A character in a string.
@@ -5,8 +5,8 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.isScalar = exports.printLiteral = exports.isValidBacktickedIdent = exports.isValidSimpleIdent = exports.stripCommentsAndAfter = exports.isMarkerCharacter = void 0;
8
- const print_1 = require("./utils/print");
9
- const string_1 = require("./utils/string");
8
+ const print_1 = require("./print");
9
+ const string_1 = require("./string");
10
10
  const SECTION_MARKER1 = '^';
11
11
  const SECTION_MARKER2 = '<';
12
12
  const SECTION_MARKER3 = '\u00A7'; // Section sign §.
@@ -175,3 +175,4 @@ exports.isScalar = isScalar;
175
175
  // export const isList = (v: TValueLiteral): v is TListValue => v.type === 'List'
176
176
  // export const isObject = (v: TValueLiteral): v is TObjectValue =>
177
177
  // v.type === 'Object'
178
+ //# sourceMappingURL=yiniHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yiniHelpers.js","sourceRoot":"","sources":["../../src/utils/yiniHelpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yini-parser",
3
- "version": "1.1.0-beta",
3
+ "version": "1.2.0-beta",
4
4
  "description": "Node.js parser for YINI — a clean, structured INI alternative with types, simple section nesting, comments, and strict mode.",
5
5
  "keywords": [
6
6
  "yini",
@@ -23,6 +23,7 @@
23
23
  "license": "Apache-2.0",
24
24
  "files": [
25
25
  "dist/",
26
+ "!dist/**/*.test.*",
26
27
  "package.json",
27
28
  "README.md",
28
29
  "LICENSE",
@@ -40,19 +41,19 @@
40
41
  },
41
42
  "repository": {
42
43
  "type": "git",
43
- "url": "https://github.com/YINI-lang/yini-parser-typescript.git"
44
+ "url": "git+https://github.com/YINI-lang/yini-parser-typescript.git"
44
45
  },
45
46
  "private": false,
46
47
  "scripts": {
47
48
  "start": "npm run build && node dist/index.js",
48
49
  "start:debug": "npm run start -- isDebug=1",
49
- "start:dev": "cross-env NODE_ENV=development APP_ENV=local ts-node src/index.ts isDev=1",
50
+ "start:dev": "cross-env NODE_ENV=development APP_ENV=local ts-node src/dev/main.ts isDev=1",
50
51
  "start:dev:debug": "cross-env npm run start:dev -- isDebug=1",
51
52
  "start-w-clean": "npm run tsc && npm run clean:ts-js && npm run start:dev",
52
53
  "test": "cross-env NODE_ENV=test APP_ENV=local jest --bail --verbose --runInBand",
53
54
  "test:debug": "cross-env npm run test -- --isDebug=1",
54
55
  "test:smoke": "cross-env NODE_ENV=test APP_ENV=local jest tests/smoke --bail --verbose --runInBand",
55
- "test:unit": "cross-env NODE_ENV=test APP_ENV=local jest tests/unit --bail --verbose --runInBand",
56
+ "test:unit": "cross-env NODE_ENV=test APP_ENV=local jest src/ --bail --verbose --runInBand",
56
57
  "test:integr": "cross-env NODE_ENV=test APP_ENV=local jest tests/integration --bail --verbose --runInBand",
57
58
  "test:issues": "cross-env NODE_ENV=test APP_ENV=local jest tests/fixed-issues --bail --verbose --runInBand",
58
59
  "test:gold": "cross-env NODE_ENV=test APP_ENV=local jest tests/golden --bail --verbose --runInBand",
@@ -100,7 +101,8 @@
100
101
  ]
101
102
  },
102
103
  "engines": {
103
- "node": ">=16"
104
+ "node": ">=20"
104
105
  },
106
+ "sideEffects": false,
105
107
  "type": "commonjs"
106
108
  }