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,189 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _YiniRuntime_runtime;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.YiniRuntime = void 0;
19
+ const fs_1 = __importDefault(require("fs"));
20
+ const env_1 = require("../config/env");
21
+ const pathAndFileName_1 = require("../utils/pathAndFileName");
22
+ const print_1 = require("../utils/print");
23
+ const string_1 = require("../utils/string");
24
+ const failLevel_1 = require("./options/failLevel");
25
+ const normalizeOptions_1 = require("./options/normalizeOptions");
26
+ const parserOptionsConstants_1 = require("./options/parserOptionsConstants");
27
+ const pipeline_1 = require("./pipeline");
28
+ /**
29
+ * Private class representing a runtime context for a single parse call.
30
+ *
31
+ * @note This design prevents race conditions: each call gets its own
32
+ * runtimeInfo and related state. Without this, multiple calls
33
+ * (especially in parallel) could overwrite each other's data.
34
+ */
35
+ class YiniRuntime {
36
+ // constructor(sourceType: 'Inline' | 'File', seed?: Partial<IRuntimeInfo>) {
37
+ constructor(sourceType) {
38
+ /**
39
+ * @note Leading # makes the property "truly private" at runtime.
40
+ */
41
+ _YiniRuntime_runtime.set(this, void 0);
42
+ // this.#runtime = { sourceType, fileName: undefined, ...seed }
43
+ __classPrivateFieldSet(this, _YiniRuntime_runtime, this.makeRuntimeInfo(), "f");
44
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").sourceType = sourceType;
45
+ }
46
+ makeRuntimeInfo() {
47
+ return {
48
+ sourceType: 'Inline',
49
+ fileName: undefined,
50
+ fileByteSize: null,
51
+ lineCount: null,
52
+ timeIoMs: null,
53
+ preferredBailSensitivity: null,
54
+ sha256: null,
55
+ };
56
+ }
57
+ // --- Single implementation --------------------------------------------
58
+ // Implementation method (not declared with arrow function) for both method overload signatures.
59
+ // NOTE: Must be method declaration with NO =, arrow functions not (currently) supported for this type of method overloading.
60
+ doParse(yiniContent, arg2, // strictMode | options
61
+ failLevel = 'auto', includeMetadata = false) {
62
+ (0, print_1.debugPrint)('-> Entered doParse(..) in YiniRuntime class\n');
63
+ // Runtime guard to catch illegal/ambiguous calls coming from JS or any-cast code
64
+ if ((0, normalizeOptions_1.isOptionsObjectForm)(arg2) &&
65
+ (failLevel !== 'auto' || includeMetadata !== false)) {
66
+ throw new TypeError('Invalid call: when providing an options object, do not also pass positional parameters.');
67
+ }
68
+ const mode = (0, normalizeOptions_1.inferModeFromArgs)(arg2);
69
+ const defaultOptions = (0, parserOptionsConstants_1.getDefaultOptions)(mode);
70
+ // Normalize to a fully-required options object.
71
+ let userOpts;
72
+ // Required, makes all properties in T required, no undefined.
73
+ if ((0, normalizeOptions_1.isOptionsObjectForm)(arg2)) {
74
+ userOpts = {
75
+ ...defaultOptions, // Sets the default options.
76
+ ...arg2,
77
+ };
78
+ }
79
+ else {
80
+ // Positional form.
81
+ userOpts = {
82
+ ...defaultOptions, // Sets the default options.
83
+ strictMode: arg2 ?? defaultOptions.strictMode,
84
+ failLevel,
85
+ includeMetadata,
86
+ };
87
+ }
88
+ if (userOpts.includeMetadata && __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").sourceType === 'Inline') {
89
+ const lineCount = yiniContent.split(/\r?\n/).length; // Counts the lines.
90
+ const sha256 = (0, string_1.computeSha256)(yiniContent); // NOTE: Compute BEFORE any possible tampering of content.
91
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").lineCount = lineCount;
92
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").preferredBailSensitivity = userOpts.failLevel;
93
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").sha256 = sha256;
94
+ }
95
+ // NOTE: Important: Do not trim or mutate the yiniContent here, due
96
+ // to it will mess up the line numbers in error reporting.
97
+ if (!yiniContent) {
98
+ throw new Error('Syntax-Error: Unexpected blank YINI input');
99
+ }
100
+ if (!yiniContent.endsWith('\n')) {
101
+ yiniContent += '\n';
102
+ }
103
+ let level = (0, failLevel_1.mapFailLevelToBail)(userOpts.strictMode, userOpts.failLevel);
104
+ const coreOpts = (0, normalizeOptions_1.toCoreOptions)(level, userOpts);
105
+ (0, print_1.debugPrint)();
106
+ (0, print_1.debugPrint)('==== Call runPipeline(..) ==========================');
107
+ const result = (0, pipeline_1.runPipeline)(yiniContent, coreOpts, __classPrivateFieldGet(this, _YiniRuntime_runtime, "f"), userOpts);
108
+ (0, print_1.debugPrint)('==== End call runPipeline ==========================\n');
109
+ if ((0, env_1.isDev)()) {
110
+ console.log();
111
+ (0, print_1.devPrint)('YINI.parse(..): result:');
112
+ console.log(result);
113
+ (0, print_1.devPrint)('Complete result:');
114
+ (0, print_1.printObject)(result);
115
+ }
116
+ return result;
117
+ }
118
+ // --- Single implementation --------------------------------------------
119
+ // Implementation method (not declared with arrow function) for both method overload signatures.
120
+ // NOTE: Must be method declaration with NO =, arrow functions not (currently) supported for this type of method overloading.
121
+ doParseFile(filePath, arg2, // strictMode | options
122
+ failLevel = 'auto', includeMetadata = false) {
123
+ (0, print_1.debugPrint)('-> Entered doParseFile(..) in YiniRuntime class\n');
124
+ (0, print_1.debugPrint)('Current directory = ' + process.cwd());
125
+ // Runtime guard to catch illegal/ambiguous calls coming from JS or any-cast code
126
+ if ((0, normalizeOptions_1.isOptionsObjectForm)(arg2) &&
127
+ (failLevel !== 'auto' || includeMetadata !== false)) {
128
+ throw new TypeError('Invalid call: when providing an options object, do not also pass positional parameters.');
129
+ }
130
+ const mode = (0, normalizeOptions_1.inferModeFromArgs)(arg2);
131
+ const defaultOptions = (0, parserOptionsConstants_1.getDefaultOptions)(mode);
132
+ // Normalize to a fully-required options object.
133
+ let userOpts;
134
+ // Required, makes all properties in T required, no undefined.
135
+ if ((0, normalizeOptions_1.isOptionsObjectForm)(arg2)) {
136
+ // Options-object Form.
137
+ userOpts = {
138
+ ...defaultOptions, // Sets the default options.
139
+ ...arg2,
140
+ };
141
+ }
142
+ else {
143
+ // Positional form.
144
+ userOpts = {
145
+ ...defaultOptions, // Sets the default options.
146
+ strictMode: arg2 ?? defaultOptions.strictMode,
147
+ failLevel,
148
+ includeMetadata,
149
+ };
150
+ }
151
+ if ((0, pathAndFileName_1.getFileNameExtension)(filePath).toLowerCase() !== '.yini') {
152
+ console.error('Invalid file extension for YINI file:');
153
+ console.error(`"${filePath}"`);
154
+ console.log('File does not have a valid ".yini" extension (case-insensitive).');
155
+ throw new Error('Error: Unexpected file extension for YINI file');
156
+ }
157
+ // ---- Phase 0: I/O ----
158
+ const timeStartMs = performance.now();
159
+ // let content = fs.readFileSync(filePath, 'utf8')
160
+ const rawBuffer = fs_1.default.readFileSync(filePath); // Raw buffer for size.
161
+ const fileByteSize = rawBuffer.byteLength; // Byte size in UTF-8.
162
+ let content = rawBuffer.toString('utf8');
163
+ const timeEndMs = performance.now();
164
+ // this.#runtime.sourceType = 'File'
165
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").fileName = filePath;
166
+ if (userOpts.includeMetadata) {
167
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").lineCount = content.split(/\r?\n/).length; // Counts the lines.
168
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").fileByteSize = fileByteSize;
169
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").timeIoMs = +(timeEndMs - timeStartMs).toFixed(3);
170
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").preferredBailSensitivity = userOpts.failLevel;
171
+ __classPrivateFieldGet(this, _YiniRuntime_runtime, "f").sha256 = (0, string_1.computeSha256)(content); // NOTE: Compute BEFORE any possible tampering of content.
172
+ }
173
+ let hasNoNewlineAtEOF = false;
174
+ if (!content.endsWith('\n')) {
175
+ content += '\n';
176
+ hasNoNewlineAtEOF = true;
177
+ }
178
+ const result = this.doParse(content, {
179
+ ...userOpts,
180
+ });
181
+ if (hasNoNewlineAtEOF && !userOpts.suppressWarnings) {
182
+ console.warn(`No newline at end of file, it's recommended to end a file with a newline. File:\n"${filePath}"`);
183
+ }
184
+ return result;
185
+ }
186
+ }
187
+ exports.YiniRuntime = YiniRuntime;
188
+ _YiniRuntime_runtime = new WeakMap();
189
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,374 @@
1
+ "use strict";
2
+ /*
3
+ * This includes of dev / debug / demo / custom-tesing code.
4
+ *
5
+ * https://github.com/YINI-lang/yini-parser-typescript/blob/main/docs/Project-Setup.md
6
+ *
7
+ * Run this code with the following commands:
8
+ * npm run start:dev
9
+ * or
10
+ * npm run start:dev:debug
11
+ */
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const env_1 = require("../config/env");
17
+ const print_1 = require("../utils/print");
18
+ const YINI_1 = __importDefault(require("../YINI"));
19
+ (0, print_1.debugPrint)();
20
+ (0, print_1.debugPrint)('-> Entered dev/main.ts');
21
+ (0, print_1.debugPrint)();
22
+ if ((0, env_1.isDev)() || (0, env_1.isDebug)()) {
23
+ console.log(`process.env?.NODE_ENV = '${process.env?.NODE_ENV}'`);
24
+ console.log(`process.env?.APP_ENV = '${process.env?.APP_ENV}'`);
25
+ console.log(`process.env?.IS_DEBUG = '${process.env?.IS_DEBUG}'`);
26
+ (0, print_1.debugPrint)();
27
+ console.log(`localNodeEnv = '${env_1.localNodeEnv}'`);
28
+ console.log(` localAppEnv = '${env_1.localAppEnv}'`);
29
+ console.log(' isProdEnv() = ' + (0, env_1.isProdEnv)());
30
+ console.log(' isDevEnv() = ' + (0, env_1.isDevEnv)());
31
+ console.log(' isTestEnv() = ' + (0, env_1.isTestEnv)());
32
+ console.log();
33
+ console.log(' isDev() = ' + (0, env_1.isDev)());
34
+ console.log(' isDebug() = ' + (0, env_1.isDebug)());
35
+ console.log();
36
+ }
37
+ const debugTestObj = {
38
+ name: 'e_test',
39
+ lang: 'TypeScript',
40
+ };
41
+ (0, print_1.debugPrint)('debugTestObj:');
42
+ (0, print_1.debugPrint)(debugTestObj);
43
+ (0, print_1.debugPrint)();
44
+ if ((0, env_1.isProdEnv)()) {
45
+ // Do nothing, and exit.
46
+ }
47
+ else {
48
+ if (env_1.localAppEnv === 'local' && env_1.localNodeEnv !== 'test') {
49
+ // parseUntilError(`^1 SectionName`, false, 2)
50
+ // const validYini = `
51
+ // < user
52
+ // username = 'tester two'
53
+ // isSysOp = YES
54
+ // << prefs
55
+ // theme = "light"
56
+ // notifications = OFF
57
+ // ^1 user2
58
+ // ^2 prefs
59
+ // ^3 deepSection
60
+ // ^4 deeperSection
61
+ // key = "Level 4 section"
62
+ // ^5 yetDeeperSection
63
+ // key = "Level 5 section"
64
+ // item = 77
65
+ // <1 user3
66
+ // username = 'tester three'
67
+ // isSysOp = NO
68
+ // <<2 prefs
69
+ // theme = "special-dark"
70
+ // notifications = ON
71
+ // `
72
+ // // Act.
73
+ // const result = parseUntilError(validYini)
74
+ // debugPrint(result)
75
+ // const validYini = `^ App
76
+ // id = 32403 # The correct app id.
77
+ // title = "My Program"
78
+ // `
79
+ /*
80
+ const yini = `
81
+ @yini
82
+
83
+ ^ NumberFormats
84
+
85
+ ^^ HexFormat // Hexadecimal (base-16)
86
+ hex = #FF0066 // Default notation
87
+ altHex = 0xFF0066 // Alternative notation
88
+ ^^ BinFormat // Binary (base-2)
89
+ bin = %10101111 // Default notation
90
+ altBin = 0b10101111 // Alternative notation
91
+ ^^ OctFormat // Octal (base-8)
92
+ oct = 0o755 // ( = decimal 493)
93
+ ^^ DozFormat // Duodecimal (base-12)
94
+ doz = 0z10XE // Default notation: X=10, E=11
95
+ altDoz = 0z10AB // Alternative notation: A=10, B=11
96
+ ` // End.
97
+ */
98
+ /*
99
+ const yini = `
100
+ @yini
101
+ @YINI ///dfsf
102
+
103
+ < User
104
+ nullKey =
105
+ nullKey2 = NULL
106
+ username = 'tester two'
107
+ userId = 234
108
+ userColor = #ffaa99
109
+ userPerm = 0O733
110
+ userFearues = %01101
111
+ isSysOp = YES
112
+
113
+ map = {
114
+ a: 3,
115
+ b: 4,
116
+ cc: 5,
117
+ \`d d\`: 3453
118
+ }
119
+
120
+ listValueB: 3, 4, 5
121
+ listValue2 = ["a", "b"]
122
+ listValue3 = [434]
123
+ listValue4 = []
124
+ listValue5 = [1, ["a", "b", "c", [null, TRUE]], 3]
125
+
126
+ --listObject = { a: 1, b: 2}
127
+
128
+ colonList:
129
+ 1,
130
+ 2,
131
+ 3,
132
+
133
+ << Prefs
134
+ theme = "light"
135
+ notifications = OFF
136
+ nullValue = NULL
137
+
138
+ ^1 User2
139
+ ^2 PrefsOfUser2
140
+ ^3 DeepSection
141
+ ^4 DeeperSection
142
+ key = "Level 4 section"
143
+ ^5 YetDeeperSection
144
+ key = "Level 5 section"
145
+ item = 77
146
+
147
+ <1 User3
148
+ username = 'tester three'
149
+ isSysOp = NO
150
+
151
+ <2 Prefs2
152
+ theme = "special-dark"
153
+ notifications = ON
154
+
155
+ <2 Special
156
+ value = 123
157
+ `
158
+ */
159
+ // npm run start:dev
160
+ // "timing": {
161
+ // "totalMs": 158.421,
162
+ // "phase1Ms": 151.36,
163
+ // "phase2Ms": 6.92,
164
+ // "phase3Ms": 0.14
165
+ // }
166
+ //console.log(toPrettyJSON(YINI.parse(yini, false, 'auto', true)))
167
+ // const yini = `
168
+ // < SubTitle
169
+ // theme = "special-dark"
170
+ // notifications = ON
171
+ // < SubTitle // NOT OK, SubTitle already exists
172
+ // theme2 = "special-dark"
173
+ // `
174
+ // Arrange.
175
+ /*
176
+ const yini = `
177
+ @yini
178
+ // Example: Strict-friendly YINI document (no trailing commas, explicit /END)
179
+
180
+ ^ App
181
+ name = 'YINI Demo Service'
182
+ version = '1.4.0'
183
+ description = 'Demo service for showcasing the YINI format'
184
+ owners = ['dev-team', 'ops-team']
185
+
186
+ // String concatenation (the '+' joins adjacent STRING tokens)
187
+ -- longNote = 'This text is split across ' +
188
+ -- 'two strings and then concatenated.'
189
+
190
+ // Case-insensitive booleans
191
+ enabled = YES
192
+ experimentalMode = off
193
+
194
+ // Numbers (ints, floats, scientific)
195
+ retries = 3
196
+ requestTimeoutMs = 2500
197
+ backoffFactor = 1.25
198
+ maxPayloadMB = 1.0e2
199
+
200
+ ^ Server
201
+ host = '127.0.0.1'
202
+ port = 8080
203
+ useTLS = false
204
+
205
+ ^^ CORS
206
+ allowedOrigins: 'https://example.com', 'https://admin.example.com'
207
+ allowCredentials = true
208
+
209
+ ^^ Headers
210
+ // Object literal with key:value pairs
211
+ defaults = {
212
+ \`X-Frame-Options\`: 'DENY',
213
+ \`X-Content-Type-Options\`: 'nosniff'
214
+ }
215
+
216
+ ^ Database
217
+ engine = 'postgres'
218
+ host = 'db.internal'
219
+ port = 5432
220
+ username = 'app_user'
221
+ password = 'change_me'
222
+ pool = {
223
+ min: 2,
224
+ max: 16
225
+ }
226
+
227
+ ^^ Replicas
228
+ // Colon-form list (values only)
229
+ endpoints: 'db-replica-1.internal', 'db-replica-2.internal'
230
+ readPreference = 'nearest'
231
+
232
+ ^ Features
233
+ // Mixed data types
234
+ betaFlags = ['new-ui', 'fast-path']
235
+ darkLaunch = NO
236
+ uploadLimitMB = 128
237
+
238
+ ^ Integrations
239
+ // List of objects
240
+ webhooks = [
241
+ { name: 'audit', url: 'https://hooks.example.com/audit', active: true },
242
+ { name: 'metrics', url: 'https://hooks.example.com/metric', active: true }
243
+ ]
244
+
245
+ ^ Users
246
+ // Simple table-ish list using colon form
247
+ admins: 'alice', 'bob', 'carol'
248
+ reviewers: 'dave', 'erin'
249
+
250
+ ^^ Profiles
251
+ // Object-of-objects
252
+ alice = {
253
+ email: 'alice@example.com',
254
+ roles: ['admin', 'dev'],
255
+ mfa: true
256
+ }
257
+ bob = {
258
+ email: 'bob@example.com',
259
+ roles: ['admin'],
260
+ mfa: false
261
+ }
262
+
263
+ ^ Paths
264
+ logs = '/var/log/yini-demo/'
265
+ data = '/srv/yini-demo/data'
266
+
267
+ ^^ \`Backups\`
268
+ // Empty value -> null in lenient mode; in strict mode, supply explicit null:
269
+ lastFull = null
270
+ targets: '/mnt/backup1', '/mnt/backup2'
271
+ ^^^ Backups2
272
+ value = 23
273
+
274
+ ^ Security
275
+ allowedIPs: '10.0.0.0/24', '10.1.0.0/24'
276
+
277
+ ^ Logging
278
+ level = 'info'
279
+ format = 'json'
280
+ sinks = ['stdout']
281
+
282
+ /END
283
+ `*/
284
+ // const yini = `
285
+ // /*sdfsdf*/
286
+ // @yini
287
+ // @include 'sdf'
288
+ // --@invalid
289
+ // @deprecated
290
+ // ^ window
291
+ // --^^ window2
292
+ // title = 'Sample Window' // Strings can be enclosed in either ' or ".
293
+ // @deprecated
294
+ // id = 'window_main'
295
+ // // @bla
296
+ // --@include 'wrongplace'
297
+ // --@yini // This is an error should be catched in the parser.
298
+ // /end
299
+ // `
300
+ // YINI.setTabSize(2)
301
+ // debugPrint('tab size = ' + YINI.getTabSize())
302
+ // const yini = ` @yini
303
+ // --@yini
304
+ // ^ Header // INVALID: Must start with atleast one 1-level section.
305
+ // key = 33254
306
+ // /END
307
+ // --/END
308
+ // `
309
+ // console.log(
310
+ // toPrettyJSON(
311
+ // YINI.parse(yini, {
312
+ // strictMode: false,
313
+ // failLevel: 'errors',
314
+ // includeMetadata: false,
315
+ // requireDocTerminator: 'optional',
316
+ // }),
317
+ // ),
318
+ // )
319
+ // const yini = `
320
+ // ^ Booleans
321
+ // bool1 = true
322
+ // bool2 = false
323
+ // bool3 = on
324
+ // bool4 = off
325
+ // bool5 = yes
326
+ // bool6 = no
327
+ // `
328
+ // console.log(
329
+ // toPrettyJSON(
330
+ // YINI.parse(yini, {
331
+ // strictMode: true,
332
+ // failLevel: 'auto',
333
+ // includeMetadata: false,
334
+ // requireDocTerminator: 'optional',
335
+ // }),
336
+ // ),
337
+ // )
338
+ // console.log(
339
+ // toPrettyJSON(
340
+ // YINI.parseFile(
341
+ // 'comprehensive-example.yini',
342
+ // false,
343
+ // 'auto',
344
+ // true,
345
+ // ),
346
+ // ),
347
+ // )
348
+ const result = YINI_1.default.parseFile('comprehensive-example.yini', { includeMetadata: true });
349
+ console.log((0, print_1.toPrettyJSON)('' + result.meta));
350
+ // console.log(
351
+ // toPrettyJSON(
352
+ // YINI.parseFile('comprehensive-example.yini', {
353
+ // strictMode: false,
354
+ // failLevel: 'auto',
355
+ // includeMetadata: true,
356
+ // }),
357
+ // ),
358
+ // )
359
+ // const fileName = './tests/fixtures/valid/common/common-config-2.yini'
360
+ // YINI.parseFile(fileName, {
361
+ // strictMode: false,
362
+ // failLevel: 'auto',
363
+ // includeMetadata: true,
364
+ // })
365
+ // const fileName =
366
+ // './tests/fixtures/invalid/bad-user-profile-config-2.yini'
367
+ // YINI.parseFile(fileName, {
368
+ // strictMode: true,
369
+ // failLevel: 'auto',
370
+ // includeMetadata: true,
371
+ // })
372
+ }
373
+ }
374
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/dev/main.ts"],"names":[],"mappings":"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"}
@@ -412,3 +412,4 @@ YiniLexer._serializedATN = [4, 0, 50, 705, 6, -1, 2, 0,
412
412
  636, 645, 650, 655, 666, 668, 673, 682, 691, 696, 702, 1, 6, 0, 0];
413
413
  YiniLexer.DecisionsToDFA = YiniLexer._ATN.decisionToState.map((ds, index) => new antlr4_1.DFA(ds, index));
414
414
  exports.default = YiniLexer;
415
+ //# sourceMappingURL=YiniLexer.js.map