@loj-lang/rdsl-compiler 0.5.0

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 (78) hide show
  1. package/README.md +23 -0
  2. package/dist/cache-signature.d.ts +2 -0
  3. package/dist/cache-signature.d.ts.map +1 -0
  4. package/dist/cache-signature.js +17 -0
  5. package/dist/cache-signature.js.map +1 -0
  6. package/dist/codegen.d.ts +37 -0
  7. package/dist/codegen.d.ts.map +1 -0
  8. package/dist/codegen.js +6394 -0
  9. package/dist/codegen.js.map +1 -0
  10. package/dist/dependency-graph.d.ts +23 -0
  11. package/dist/dependency-graph.d.ts.map +1 -0
  12. package/dist/dependency-graph.js +516 -0
  13. package/dist/dependency-graph.js.map +1 -0
  14. package/dist/expr.d.ts +24 -0
  15. package/dist/expr.d.ts.map +1 -0
  16. package/dist/expr.js +359 -0
  17. package/dist/expr.js.map +1 -0
  18. package/dist/flow-proof.d.ts +68 -0
  19. package/dist/flow-proof.d.ts.map +1 -0
  20. package/dist/flow-proof.js +487 -0
  21. package/dist/flow-proof.js.map +1 -0
  22. package/dist/host-files.d.ts +27 -0
  23. package/dist/host-files.d.ts.map +1 -0
  24. package/dist/host-files.js +441 -0
  25. package/dist/host-files.js.map +1 -0
  26. package/dist/index.d.ts +120 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +948 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/ir.d.ts +451 -0
  31. package/dist/ir.d.ts.map +1 -0
  32. package/dist/ir.js +13 -0
  33. package/dist/ir.js.map +1 -0
  34. package/dist/manifest.d.ts +104 -0
  35. package/dist/manifest.d.ts.map +1 -0
  36. package/dist/manifest.js +635 -0
  37. package/dist/manifest.js.map +1 -0
  38. package/dist/node-inspect.d.ts +23 -0
  39. package/dist/node-inspect.d.ts.map +1 -0
  40. package/dist/node-inspect.js +475 -0
  41. package/dist/node-inspect.js.map +1 -0
  42. package/dist/normalize.d.ts +101 -0
  43. package/dist/normalize.d.ts.map +1 -0
  44. package/dist/normalize.js +1771 -0
  45. package/dist/normalize.js.map +1 -0
  46. package/dist/page-table-block.d.ts +69 -0
  47. package/dist/page-table-block.d.ts.map +1 -0
  48. package/dist/page-table-block.js +241 -0
  49. package/dist/page-table-block.js.map +1 -0
  50. package/dist/parser.d.ts +262 -0
  51. package/dist/parser.d.ts.map +1 -0
  52. package/dist/parser.js +1335 -0
  53. package/dist/parser.js.map +1 -0
  54. package/dist/project-paths.d.ts +6 -0
  55. package/dist/project-paths.d.ts.map +1 -0
  56. package/dist/project-paths.js +84 -0
  57. package/dist/project-paths.js.map +1 -0
  58. package/dist/relation-projection.d.ts +60 -0
  59. package/dist/relation-projection.d.ts.map +1 -0
  60. package/dist/relation-projection.js +121 -0
  61. package/dist/relation-projection.js.map +1 -0
  62. package/dist/rules-proof.d.ts +95 -0
  63. package/dist/rules-proof.d.ts.map +1 -0
  64. package/dist/rules-proof.js +537 -0
  65. package/dist/rules-proof.js.map +1 -0
  66. package/dist/source-files.d.ts +9 -0
  67. package/dist/source-files.d.ts.map +1 -0
  68. package/dist/source-files.js +27 -0
  69. package/dist/source-files.js.map +1 -0
  70. package/dist/style-proof.d.ts +70 -0
  71. package/dist/style-proof.d.ts.map +1 -0
  72. package/dist/style-proof.js +640 -0
  73. package/dist/style-proof.js.map +1 -0
  74. package/dist/validator.d.ts +51 -0
  75. package/dist/validator.d.ts.map +1 -0
  76. package/dist/validator.js +2487 -0
  77. package/dist/validator.js.map +1 -0
  78. package/package.json +40 -0
@@ -0,0 +1,537 @@
1
+ import { parseExpr } from './expr.js';
2
+ import { LineCounter, isMap, isPair, isScalar, isSeq, parseDocument, } from 'yaml';
3
+ const RULES_OPERATIONS = ['list', 'get', 'create', 'update', 'delete'];
4
+ export function countRulesEntries(program) {
5
+ return program.rules.length + program.eligibility.length + program.validation.length + program.derivations.length;
6
+ }
7
+ export function isRulesSourceFile(fileName) {
8
+ return fileName.endsWith('.rules.loj');
9
+ }
10
+ export function buildRulesManifestFileName(fileName) {
11
+ const normalizedFileName = fileName.replace(/\\/g, '/');
12
+ const baseName = normalizedFileName.slice(normalizedFileName.lastIndexOf('/') + 1);
13
+ if (baseName.endsWith('.rules.loj')) {
14
+ return `${baseName.slice(0, -'.rules.loj'.length)}.rules.manifest.json`;
15
+ }
16
+ const withoutExtension = baseName.replace(/\.[^.]+$/, '');
17
+ return `${withoutExtension}.rules.manifest.json`;
18
+ }
19
+ export function compileRulesSource(source, fileName = 'policy.rules.loj') {
20
+ const errors = [];
21
+ const warnings = [];
22
+ const lineCounter = new LineCounter();
23
+ const document = parseDocument(source, {
24
+ merge: false,
25
+ uniqueKeys: true,
26
+ lineCounter,
27
+ });
28
+ for (const error of document.errors) {
29
+ errors.push({
30
+ message: error.message,
31
+ file: fileName,
32
+ });
33
+ }
34
+ if (errors.length > 0) {
35
+ return { success: false, errors, warnings };
36
+ }
37
+ const root = document.contents;
38
+ if (!isMap(root)) {
39
+ return {
40
+ success: false,
41
+ errors: [{ message: 'Root document must be a YAML mapping', file: fileName }],
42
+ warnings,
43
+ };
44
+ }
45
+ let program;
46
+ for (const pair of root.items) {
47
+ if (!isPair(pair) || !isScalar(pair.key)) {
48
+ continue;
49
+ }
50
+ const key = String(pair.key.value);
51
+ const sourceSpan = getPairSpan(pair, fileName, lineCounter);
52
+ if (!key.startsWith('rules ')) {
53
+ pushError(errors, `Unknown top-level key: "${key}"`, sourceSpan);
54
+ continue;
55
+ }
56
+ if (program) {
57
+ pushError(errors, 'Only one top-level "rules <name>" block is supported in the first slice', sourceSpan);
58
+ continue;
59
+ }
60
+ const name = key.slice('rules '.length).trim();
61
+ if (!name) {
62
+ pushError(errors, 'Top-level rules block must be named: rules <name>', sourceSpan);
63
+ continue;
64
+ }
65
+ program = parseRulesBlock(name, pair.value, fileName, lineCounter, errors, sourceSpan);
66
+ }
67
+ if (!program) {
68
+ if (errors.length === 0) {
69
+ errors.push({
70
+ message: 'Document must contain one top-level "rules <name>" block',
71
+ file: fileName,
72
+ });
73
+ }
74
+ return { success: false, errors, warnings };
75
+ }
76
+ if (errors.length > 0) {
77
+ return { success: false, errors, warnings };
78
+ }
79
+ const manifest = {
80
+ artifact: 'loj.rules.manifest',
81
+ schemaVersion: 2,
82
+ ruleSet: program.name,
83
+ rules: program.rules.map((rule) => ({
84
+ effect: rule.effect,
85
+ operation: rule.operation,
86
+ when: rule.when,
87
+ or: rule.or.length > 0 ? rule.or : undefined,
88
+ message: rule.message,
89
+ scopeWhen: rule.scopeWhen,
90
+ scope: rule.scope,
91
+ })),
92
+ eligibility: program.eligibility.map((rule) => ({
93
+ kind: rule.kind,
94
+ name: rule.name,
95
+ when: rule.when,
96
+ or: rule.or.length > 0 ? rule.or : undefined,
97
+ message: rule.message,
98
+ })),
99
+ validation: program.validation.map((rule) => ({
100
+ kind: rule.kind,
101
+ name: rule.name,
102
+ when: rule.when,
103
+ or: rule.or.length > 0 ? rule.or : undefined,
104
+ message: rule.message,
105
+ })),
106
+ derivations: program.derivations.map((rule) => ({
107
+ kind: rule.kind,
108
+ field: rule.field,
109
+ when: rule.when,
110
+ value: rule.value,
111
+ })),
112
+ };
113
+ return {
114
+ success: true,
115
+ program,
116
+ manifest,
117
+ errors,
118
+ warnings,
119
+ };
120
+ }
121
+ function parseRulesBlock(name, value, fileName, lineCounter, errors, sourceSpan) {
122
+ if (!isMap(value)) {
123
+ pushError(errors, `rules ${name} must be a YAML mapping`, sourceSpan);
124
+ return {
125
+ name,
126
+ rules: [],
127
+ eligibility: [],
128
+ validation: [],
129
+ derivations: [],
130
+ };
131
+ }
132
+ const rules = [];
133
+ const eligibility = [];
134
+ const validation = [];
135
+ const derivations = [];
136
+ for (const pair of value.items) {
137
+ if (!isPair(pair) || !isScalar(pair.key)) {
138
+ continue;
139
+ }
140
+ const key = String(pair.key.value).trim();
141
+ const pairSpan = getPairSpan(pair, fileName, lineCounter);
142
+ if (key.startsWith('allow ') || key.startsWith('deny ')) {
143
+ const entry = parseAllowDenyEntry(key, pair.value, fileName, lineCounter, errors, pairSpan);
144
+ if (entry) {
145
+ rules.push(entry);
146
+ }
147
+ continue;
148
+ }
149
+ if (key.startsWith('eligibility ')) {
150
+ const entry = parseEligibilityEntry(key, pair.value, fileName, lineCounter, errors, pairSpan);
151
+ if (entry) {
152
+ eligibility.push(entry);
153
+ }
154
+ continue;
155
+ }
156
+ if (key.startsWith('validate ')) {
157
+ const entry = parseValidationEntry(key, pair.value, fileName, lineCounter, errors, pairSpan);
158
+ if (entry) {
159
+ validation.push(entry);
160
+ }
161
+ continue;
162
+ }
163
+ if (key.startsWith('derive ')) {
164
+ const entry = parseDerivationEntry(key, pair.value, fileName, lineCounter, errors, pairSpan);
165
+ if (entry) {
166
+ derivations.push(entry);
167
+ }
168
+ continue;
169
+ }
170
+ pushError(errors, `rules ${name} has unsupported key "${key}"`, pairSpan);
171
+ }
172
+ if (rules.length === 0 && eligibility.length === 0 && validation.length === 0 && derivations.length === 0) {
173
+ pushError(errors, `rules ${name} must define at least one allow/deny, eligibility, validate, or derive entry`, sourceSpan);
174
+ }
175
+ return {
176
+ name,
177
+ rules,
178
+ eligibility,
179
+ validation,
180
+ derivations,
181
+ };
182
+ }
183
+ function parseAllowDenyEntry(key, value, fileName, lineCounter, errors, sourceSpan) {
184
+ const [effectRaw, ...operationParts] = key.split(/\s+/);
185
+ const effect = effectRaw;
186
+ const operation = operationParts.join(' ').trim();
187
+ if (!RULES_OPERATIONS.includes(operation)) {
188
+ pushError(errors, `Unsupported operation "${operation}" in "${key}"`, sourceSpan);
189
+ return undefined;
190
+ }
191
+ if (!isMap(value)) {
192
+ pushError(errors, `"${key}" must be a YAML mapping`, sourceSpan);
193
+ return undefined;
194
+ }
195
+ let when;
196
+ const or = [];
197
+ let message;
198
+ let scopeWhen;
199
+ let scope;
200
+ for (const pair of value.items) {
201
+ if (!isPair(pair) || !isScalar(pair.key)) {
202
+ continue;
203
+ }
204
+ const pairKey = String(pair.key.value);
205
+ const pairSpan = getPairSpan(pair, fileName, lineCounter);
206
+ switch (pairKey) {
207
+ case 'when': {
208
+ const source = parseRequiredExprSource(pair.value, errors, pairSpan, `${key} when`);
209
+ when = source ? parseRulesExpr(source, errors, pairSpan, `${key} when`) : undefined;
210
+ break;
211
+ }
212
+ case 'or':
213
+ or.push(...parseExprList(pair.value, fileName, lineCounter, errors, `${key} or`, pairSpan));
214
+ break;
215
+ case 'message':
216
+ message = parseMessageValue(pair.value, fileName, lineCounter, errors, `${key} message`, pairSpan);
217
+ break;
218
+ case 'scopeWhen': {
219
+ const source = parseRequiredExprSource(pair.value, errors, pairSpan, `${key} scopeWhen`);
220
+ scopeWhen = source ? parseRulesExpr(source, errors, pairSpan, `${key} scopeWhen`) : undefined;
221
+ break;
222
+ }
223
+ case 'scope': {
224
+ const source = parseRequiredExprSource(pair.value, errors, pairSpan, `${key} scope`);
225
+ scope = source ? parseRulesExpr(source, errors, pairSpan, `${key} scope`) : undefined;
226
+ break;
227
+ }
228
+ default:
229
+ pushError(errors, `${key} has unsupported key "${pairKey}"`, pairSpan);
230
+ break;
231
+ }
232
+ }
233
+ if (!when) {
234
+ pushError(errors, `${key} must set when`, sourceSpan);
235
+ return undefined;
236
+ }
237
+ if ((scopeWhen && !scope) || (!scopeWhen && scope)) {
238
+ pushError(errors, `${key} must set both scopeWhen and scope together`, sourceSpan);
239
+ }
240
+ if (operation !== 'list' && (scopeWhen || scope)) {
241
+ pushError(errors, `${key} supports scopeWhen/scope only for list`, sourceSpan);
242
+ }
243
+ return {
244
+ effect,
245
+ operation,
246
+ when,
247
+ or,
248
+ message,
249
+ scopeWhen,
250
+ scope,
251
+ };
252
+ }
253
+ function parseEligibilityEntry(key, value, fileName, lineCounter, errors, sourceSpan) {
254
+ const name = key.slice('eligibility '.length).trim();
255
+ if (!name) {
256
+ pushError(errors, `eligibility entry must be named: eligibility <name>`, sourceSpan);
257
+ return undefined;
258
+ }
259
+ if (!isMap(value)) {
260
+ pushError(errors, `"${key}" must be a YAML mapping`, sourceSpan);
261
+ return undefined;
262
+ }
263
+ let when;
264
+ const or = [];
265
+ let message;
266
+ for (const pair of value.items) {
267
+ if (!isPair(pair) || !isScalar(pair.key)) {
268
+ continue;
269
+ }
270
+ const pairKey = String(pair.key.value);
271
+ const pairSpan = getPairSpan(pair, fileName, lineCounter);
272
+ switch (pairKey) {
273
+ case 'when': {
274
+ const source = parseRequiredExprSource(pair.value, errors, pairSpan, `${key} when`);
275
+ when = source ? parseRulesExpr(source, errors, pairSpan, `${key} when`) : undefined;
276
+ break;
277
+ }
278
+ case 'or':
279
+ or.push(...parseExprList(pair.value, fileName, lineCounter, errors, `${key} or`, pairSpan));
280
+ break;
281
+ case 'message':
282
+ message = parseMessageValue(pair.value, fileName, lineCounter, errors, `${key} message`, pairSpan);
283
+ break;
284
+ default:
285
+ pushError(errors, `${key} has unsupported key "${pairKey}"`, pairSpan);
286
+ break;
287
+ }
288
+ }
289
+ if (!when) {
290
+ pushError(errors, `${key} must set when`, sourceSpan);
291
+ return undefined;
292
+ }
293
+ return {
294
+ kind: 'eligibility',
295
+ name,
296
+ when,
297
+ or,
298
+ message,
299
+ };
300
+ }
301
+ function parseValidationEntry(key, value, fileName, lineCounter, errors, sourceSpan) {
302
+ const name = key.slice('validate '.length).trim();
303
+ if (!name) {
304
+ pushError(errors, `validate entry must be named: validate <name>`, sourceSpan);
305
+ return undefined;
306
+ }
307
+ if (!isMap(value)) {
308
+ pushError(errors, `"${key}" must be a YAML mapping`, sourceSpan);
309
+ return undefined;
310
+ }
311
+ let when;
312
+ const or = [];
313
+ let message;
314
+ for (const pair of value.items) {
315
+ if (!isPair(pair) || !isScalar(pair.key)) {
316
+ continue;
317
+ }
318
+ const pairKey = String(pair.key.value);
319
+ const pairSpan = getPairSpan(pair, fileName, lineCounter);
320
+ switch (pairKey) {
321
+ case 'when': {
322
+ const source = parseRequiredExprSource(pair.value, errors, pairSpan, `${key} when`);
323
+ when = source ? parseRulesExpr(source, errors, pairSpan, `${key} when`) : undefined;
324
+ break;
325
+ }
326
+ case 'or':
327
+ or.push(...parseExprList(pair.value, fileName, lineCounter, errors, `${key} or`, pairSpan));
328
+ break;
329
+ case 'message':
330
+ message = parseMessageValue(pair.value, fileName, lineCounter, errors, `${key} message`, pairSpan);
331
+ break;
332
+ default:
333
+ pushError(errors, `${key} has unsupported key "${pairKey}"`, pairSpan);
334
+ break;
335
+ }
336
+ }
337
+ if (!when) {
338
+ pushError(errors, `${key} must set when`, sourceSpan);
339
+ return undefined;
340
+ }
341
+ return {
342
+ kind: 'validation',
343
+ name,
344
+ when,
345
+ or,
346
+ message,
347
+ };
348
+ }
349
+ function parseDerivationEntry(key, value, fileName, lineCounter, errors, sourceSpan) {
350
+ const field = key.slice('derive '.length).trim();
351
+ if (!field) {
352
+ pushError(errors, `derive entry must target a field: derive <field>`, sourceSpan);
353
+ return undefined;
354
+ }
355
+ if (!isMap(value)) {
356
+ pushError(errors, `"${key}" must be a YAML mapping`, sourceSpan);
357
+ return undefined;
358
+ }
359
+ let when;
360
+ let derivationValue;
361
+ for (const pair of value.items) {
362
+ if (!isPair(pair) || !isScalar(pair.key)) {
363
+ continue;
364
+ }
365
+ const pairKey = String(pair.key.value);
366
+ const pairSpan = getPairSpan(pair, fileName, lineCounter);
367
+ switch (pairKey) {
368
+ case 'when': {
369
+ const source = parseRequiredExprSource(pair.value, errors, pairSpan, `${key} when`);
370
+ when = source ? parseRulesExpr(source, errors, pairSpan, `${key} when`) : undefined;
371
+ break;
372
+ }
373
+ case 'value': {
374
+ const source = parseRequiredExprSource(pair.value, errors, pairSpan, `${key} value`);
375
+ derivationValue = source ? parseRulesExpr(source, errors, pairSpan, `${key} value`) : undefined;
376
+ break;
377
+ }
378
+ default:
379
+ pushError(errors, `${key} has unsupported key "${pairKey}"`, pairSpan);
380
+ break;
381
+ }
382
+ }
383
+ if (!derivationValue) {
384
+ pushError(errors, `${key} must set value`, sourceSpan);
385
+ return undefined;
386
+ }
387
+ return {
388
+ kind: 'derive',
389
+ field,
390
+ when,
391
+ value: derivationValue,
392
+ };
393
+ }
394
+ function parseExprList(value, fileName, lineCounter, errors, label, sourceSpan) {
395
+ if (!isSeq(value)) {
396
+ pushError(errors, `${label} must be a YAML sequence`, sourceSpan);
397
+ return [];
398
+ }
399
+ const exprs = [];
400
+ for (const item of value.items) {
401
+ const itemSpan = getNodeSpan(item, fileName, lineCounter);
402
+ const source = parseRequiredExprSource(item, errors, itemSpan, label);
403
+ if (!source) {
404
+ continue;
405
+ }
406
+ exprs.push(parseRulesExpr(source, errors, itemSpan, label));
407
+ }
408
+ return exprs;
409
+ }
410
+ function parseRequiredExprSource(value, errors, sourceSpan, label) {
411
+ if (!isScalar(value)) {
412
+ pushError(errors, `${label} must be a scalar expression`, sourceSpan);
413
+ return undefined;
414
+ }
415
+ const raw = value.value;
416
+ const trimmed = String(raw ?? '').trim();
417
+ if (!trimmed) {
418
+ pushError(errors, `${label} must not be empty`, sourceSpan);
419
+ return undefined;
420
+ }
421
+ return trimmed;
422
+ }
423
+ function parseRulesExpr(source, errors, sourceSpan, label) {
424
+ try {
425
+ return parseExpr(source.replace(/\bin\s*\[([^\]]*)\]/g, 'in ($1)'));
426
+ }
427
+ catch (error) {
428
+ pushError(errors, `${label} could not be parsed: ${error.message}`, sourceSpan);
429
+ return { type: 'literal', value: false };
430
+ }
431
+ }
432
+ function parseMessageValue(value, fileName, lineCounter, errors, label, sourceSpan) {
433
+ if (isScalar(value)) {
434
+ const scalarValue = value.value;
435
+ if (typeof scalarValue === 'string' && scalarValue.trim()) {
436
+ return scalarValue;
437
+ }
438
+ pushError(errors, `${label} must be a non-empty string`, sourceSpan);
439
+ return undefined;
440
+ }
441
+ if (!isMap(value)) {
442
+ pushError(errors, `${label} must be a string or YAML mapping`, sourceSpan);
443
+ return undefined;
444
+ }
445
+ const descriptor = {};
446
+ for (const pair of value.items) {
447
+ if (!isPair(pair) || !isScalar(pair.key)) {
448
+ continue;
449
+ }
450
+ const key = String(pair.key.value);
451
+ const pairSpan = getPairSpan(pair, fileName, lineCounter);
452
+ switch (key) {
453
+ case 'key': {
454
+ const raw = parseRequiredString(pair.value, errors, pairSpan, `${label} key`);
455
+ if (raw) {
456
+ descriptor.key = raw;
457
+ }
458
+ break;
459
+ }
460
+ case 'defaultMessage': {
461
+ const raw = parseRequiredString(pair.value, errors, pairSpan, `${label} defaultMessage`);
462
+ if (raw) {
463
+ descriptor.defaultMessage = raw;
464
+ }
465
+ break;
466
+ }
467
+ case 'values': {
468
+ descriptor.values = parseMessageValues(pair.value, fileName, lineCounter, errors, `${label} values`, pairSpan);
469
+ break;
470
+ }
471
+ default:
472
+ pushError(errors, `${label} has unsupported key "${key}"`, pairSpan);
473
+ break;
474
+ }
475
+ }
476
+ if (!descriptor.key && !descriptor.defaultMessage) {
477
+ pushError(errors, `${label} descriptor must set key and/or defaultMessage`, sourceSpan);
478
+ return undefined;
479
+ }
480
+ return descriptor;
481
+ }
482
+ function parseMessageValues(value, fileName, lineCounter, errors, label, sourceSpan) {
483
+ if (!isMap(value)) {
484
+ pushError(errors, `${label} must be a YAML mapping`, sourceSpan);
485
+ return undefined;
486
+ }
487
+ const result = {};
488
+ for (const pair of value.items) {
489
+ if (!isPair(pair) || !isScalar(pair.key)) {
490
+ continue;
491
+ }
492
+ const key = String(pair.key.value);
493
+ const pairSpan = getPairSpan(pair, fileName, lineCounter);
494
+ const parsed = parseRequiredString(pair.value, errors, pairSpan, `${label}.${key}`);
495
+ if (parsed !== undefined) {
496
+ result[key] = parsed;
497
+ }
498
+ }
499
+ return result;
500
+ }
501
+ function parseRequiredString(value, errors, sourceSpan, label) {
502
+ if (!isScalar(value) || typeof value.value !== 'string' || !value.value.trim()) {
503
+ pushError(errors, `${label} must be a non-empty string`, sourceSpan);
504
+ return undefined;
505
+ }
506
+ return value.value.trim();
507
+ }
508
+ function pushError(errors, message, sourceSpan) {
509
+ errors.push({
510
+ message,
511
+ file: sourceSpan?.file,
512
+ line: sourceSpan?.startLine,
513
+ col: sourceSpan?.startCol,
514
+ });
515
+ }
516
+ function getPairSpan(pair, fileName, lineCounter) {
517
+ return getNodeSpan(pair, fileName, lineCounter);
518
+ }
519
+ function getNodeSpan(node, fileName, lineCounter) {
520
+ if (!node || typeof node !== 'object' || !('range' in node)) {
521
+ return undefined;
522
+ }
523
+ const range = node.range;
524
+ if (!range) {
525
+ return undefined;
526
+ }
527
+ const start = lineCounter.linePos(range[0]);
528
+ const end = lineCounter.linePos(range[1]);
529
+ return {
530
+ file: fileName,
531
+ startLine: start.line,
532
+ startCol: start.col,
533
+ endLine: end.line,
534
+ endCol: end.col,
535
+ };
536
+ }
537
+ //# sourceMappingURL=rules-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-proof.js","sourceRoot":"","sources":["../src/rules-proof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const CANONICAL_RDSL_SOURCE_SUFFIX = ".web.loj";
2
+ export declare const LEGACY_RDSL_SOURCE_SUFFIX = ".rdsl";
3
+ export declare const RDSL_SOURCE_SUFFIXES: readonly [".web.loj", ".rdsl"];
4
+ export declare function isRdslSourceFile(fileName: string): boolean;
5
+ export declare function isLegacyRdslSourceFile(fileName: string): boolean;
6
+ export declare function isRdslImportPath(path: string): boolean;
7
+ export declare function stripRdslSourceSuffix(fileName: string): string;
8
+ export declare function describeRdslSourceSuffixes(): string;
9
+ //# sourceMappingURL=source-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-files.d.ts","sourceRoot":"","sources":["../src/source-files.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,aAAa,CAAC;AACvD,eAAO,MAAM,yBAAyB,UAAU,CAAC;AACjD,eAAO,MAAM,oBAAoB,gCAGvB,CAAC;AAEX,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD"}
@@ -0,0 +1,27 @@
1
+ export const CANONICAL_RDSL_SOURCE_SUFFIX = '.web.loj';
2
+ export const LEGACY_RDSL_SOURCE_SUFFIX = '.rdsl';
3
+ export const RDSL_SOURCE_SUFFIXES = [
4
+ CANONICAL_RDSL_SOURCE_SUFFIX,
5
+ LEGACY_RDSL_SOURCE_SUFFIX,
6
+ ];
7
+ export function isRdslSourceFile(fileName) {
8
+ return RDSL_SOURCE_SUFFIXES.some((suffix) => fileName.endsWith(suffix));
9
+ }
10
+ export function isLegacyRdslSourceFile(fileName) {
11
+ return fileName.toLowerCase().endsWith(LEGACY_RDSL_SOURCE_SUFFIX);
12
+ }
13
+ export function isRdslImportPath(path) {
14
+ return path.endsWith('/') || isRdslSourceFile(path);
15
+ }
16
+ export function stripRdslSourceSuffix(fileName) {
17
+ for (const suffix of RDSL_SOURCE_SUFFIXES) {
18
+ if (fileName.toLowerCase().endsWith(suffix.toLowerCase())) {
19
+ return fileName.slice(0, -suffix.length);
20
+ }
21
+ }
22
+ return fileName;
23
+ }
24
+ export function describeRdslSourceSuffixes() {
25
+ return `${CANONICAL_RDSL_SOURCE_SUFFIX} or ${LEGACY_RDSL_SOURCE_SUFFIX}`;
26
+ }
27
+ //# sourceMappingURL=source-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-files.js","sourceRoot":"","sources":["../src/source-files.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CAAC;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,4BAA4B;IAC5B,yBAAyB;CACjB,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,GAAG,4BAA4B,OAAO,yBAAyB,EAAE,CAAC;AAC3E,CAAC"}