trigger_system 1.0.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 (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +127 -0
  3. package/dist/browser/index.browser.js +48 -0
  4. package/dist/browser/index.browser.js.map +122 -0
  5. package/dist/cli/lsp-server.d.ts +3 -0
  6. package/dist/cli/lsp-server.d.ts.map +1 -0
  7. package/dist/cli/validate.d.ts +2 -0
  8. package/dist/cli/validate.d.ts.map +1 -0
  9. package/dist/core/action-registry.d.ts +12 -0
  10. package/dist/core/action-registry.d.ts.map +1 -0
  11. package/dist/core/context-adapter.d.ts +23 -0
  12. package/dist/core/context-adapter.d.ts.map +1 -0
  13. package/dist/core/dependency-graph.d.ts +18 -0
  14. package/dist/core/dependency-graph.d.ts.map +1 -0
  15. package/dist/core/engine.d.ts +24 -0
  16. package/dist/core/engine.d.ts.map +1 -0
  17. package/dist/core/event-queue.d.ts +25 -0
  18. package/dist/core/event-queue.d.ts.map +1 -0
  19. package/dist/core/expression-engine.d.ts +31 -0
  20. package/dist/core/expression-engine.d.ts.map +1 -0
  21. package/dist/core/index.d.ts +10 -0
  22. package/dist/core/index.d.ts.map +1 -0
  23. package/dist/core/persistence-browser.d.ts +20 -0
  24. package/dist/core/persistence-browser.d.ts.map +1 -0
  25. package/dist/core/persistence.d.ts +34 -0
  26. package/dist/core/persistence.d.ts.map +1 -0
  27. package/dist/core/persistence.node.d.ts +18 -0
  28. package/dist/core/persistence.node.d.ts.map +1 -0
  29. package/dist/core/plugin-manager.d.ts +15 -0
  30. package/dist/core/plugin-manager.d.ts.map +1 -0
  31. package/dist/core/rule-engine.d.ts +39 -0
  32. package/dist/core/rule-engine.d.ts.map +1 -0
  33. package/dist/core/state-manager.d.ts +41 -0
  34. package/dist/core/state-manager.d.ts.map +1 -0
  35. package/dist/domain/index.d.ts +2 -0
  36. package/dist/domain/index.d.ts.map +1 -0
  37. package/dist/domain/validator.d.ts +2433 -0
  38. package/dist/domain/validator.d.ts.map +1 -0
  39. package/dist/index.browser.d.ts +6 -0
  40. package/dist/index.browser.d.ts.map +1 -0
  41. package/dist/index.d.ts +7 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/io/index.d.ts +2 -0
  44. package/dist/io/index.d.ts.map +1 -0
  45. package/dist/io/loader.node.d.ts +14 -0
  46. package/dist/io/loader.node.d.ts.map +1 -0
  47. package/dist/lsp/completions.d.ts +6 -0
  48. package/dist/lsp/completions.d.ts.map +1 -0
  49. package/dist/lsp/completions.js +624 -0
  50. package/dist/lsp/completions.js.map +1 -0
  51. package/dist/lsp/data-context.d.ts +60 -0
  52. package/dist/lsp/data-context.d.ts.map +1 -0
  53. package/dist/lsp/data-context.js +172 -0
  54. package/dist/lsp/data-context.js.map +1 -0
  55. package/dist/lsp/diagnostics.d.ts +7 -0
  56. package/dist/lsp/diagnostics.d.ts.map +1 -0
  57. package/dist/lsp/diagnostics.js +373 -0
  58. package/dist/lsp/diagnostics.js.map +1 -0
  59. package/dist/lsp/directives.d.ts +44 -0
  60. package/dist/lsp/directives.d.ts.map +1 -0
  61. package/dist/lsp/directives.js +232 -0
  62. package/dist/lsp/directives.js.map +1 -0
  63. package/dist/lsp/domain/index.d.ts +2 -0
  64. package/dist/lsp/domain/index.d.ts.map +1 -0
  65. package/dist/lsp/domain/index.js +18 -0
  66. package/dist/lsp/domain/index.js.map +1 -0
  67. package/dist/lsp/domain/validator.d.ts +2433 -0
  68. package/dist/lsp/domain/validator.d.ts.map +1 -0
  69. package/dist/lsp/domain/validator.js +225 -0
  70. package/dist/lsp/domain/validator.js.map +1 -0
  71. package/dist/lsp/hover.d.ts +7 -0
  72. package/dist/lsp/hover.d.ts.map +1 -0
  73. package/dist/lsp/hover.js +462 -0
  74. package/dist/lsp/hover.js.map +1 -0
  75. package/dist/lsp/lsp/completions.d.ts +6 -0
  76. package/dist/lsp/lsp/completions.d.ts.map +1 -0
  77. package/dist/lsp/lsp/completions.js +624 -0
  78. package/dist/lsp/lsp/completions.js.map +1 -0
  79. package/dist/lsp/lsp/data-context.d.ts +60 -0
  80. package/dist/lsp/lsp/data-context.d.ts.map +1 -0
  81. package/dist/lsp/lsp/data-context.js +172 -0
  82. package/dist/lsp/lsp/data-context.js.map +1 -0
  83. package/dist/lsp/lsp/diagnostics.d.ts +7 -0
  84. package/dist/lsp/lsp/diagnostics.d.ts.map +1 -0
  85. package/dist/lsp/lsp/diagnostics.js +373 -0
  86. package/dist/lsp/lsp/diagnostics.js.map +1 -0
  87. package/dist/lsp/lsp/directives.d.ts +44 -0
  88. package/dist/lsp/lsp/directives.d.ts.map +1 -0
  89. package/dist/lsp/lsp/directives.js +232 -0
  90. package/dist/lsp/lsp/directives.js.map +1 -0
  91. package/dist/lsp/lsp/hover.d.ts +7 -0
  92. package/dist/lsp/lsp/hover.d.ts.map +1 -0
  93. package/dist/lsp/lsp/hover.js +462 -0
  94. package/dist/lsp/lsp/hover.js.map +1 -0
  95. package/dist/lsp/lsp/semantic_tokens.d.ts +4 -0
  96. package/dist/lsp/lsp/semantic_tokens.d.ts.map +1 -0
  97. package/dist/lsp/lsp/semantic_tokens.js +158 -0
  98. package/dist/lsp/lsp/semantic_tokens.js.map +1 -0
  99. package/dist/lsp/lsp/server.d.ts +2 -0
  100. package/dist/lsp/lsp/server.d.ts.map +1 -0
  101. package/dist/lsp/lsp/server.js +216 -0
  102. package/dist/lsp/lsp/server.js.map +1 -0
  103. package/dist/lsp/semantic_tokens.d.ts +4 -0
  104. package/dist/lsp/semantic_tokens.d.ts.map +1 -0
  105. package/dist/lsp/semantic_tokens.js +158 -0
  106. package/dist/lsp/semantic_tokens.js.map +1 -0
  107. package/dist/lsp/server.bundle.d.ts +2 -0
  108. package/dist/lsp/server.bundle.d.ts.map +1 -0
  109. package/dist/lsp/server.bundle.js +256 -0
  110. package/dist/lsp/server.d.ts +2 -0
  111. package/dist/lsp/server.d.ts.map +1 -0
  112. package/dist/lsp/server.js +216 -0
  113. package/dist/lsp/server.js.map +1 -0
  114. package/dist/lsp/types.d.ts +71 -0
  115. package/dist/lsp/types.d.ts.map +1 -0
  116. package/dist/lsp/types.js +4 -0
  117. package/dist/lsp/types.js.map +1 -0
  118. package/dist/node/index.js +186 -0
  119. package/dist/node/index.js.map +196 -0
  120. package/dist/node/node.js +187 -0
  121. package/dist/node/node.js.map +198 -0
  122. package/dist/node.d.ts +4 -0
  123. package/dist/node.d.ts.map +1 -0
  124. package/dist/sdk/builder.d.ts +39 -0
  125. package/dist/sdk/builder.d.ts.map +1 -0
  126. package/dist/sdk/exporter.d.ts +13 -0
  127. package/dist/sdk/exporter.d.ts.map +1 -0
  128. package/dist/sdk/index.d.ts +3 -0
  129. package/dist/sdk/index.d.ts.map +1 -0
  130. package/dist/types.d.ts +71 -0
  131. package/dist/types.d.ts.map +1 -0
  132. package/dist/utils/emitter.d.ts +25 -0
  133. package/dist/utils/emitter.d.ts.map +1 -0
  134. package/dist/utils/utils.d.ts +18 -0
  135. package/dist/utils/utils.d.ts.map +1 -0
  136. package/package.json +91 -0
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseDirectives = parseDirectives;
4
+ exports.isDiagnosticSuppressed = isDiagnosticSuppressed;
5
+ exports.processRangeDirectives = processRangeDirectives;
6
+ exports.getImportDirectives = getImportDirectives;
7
+ const path_1 = require("path");
8
+ /**
9
+ * Parse directives from document comments
10
+ * Supported formats:
11
+ * - @disable-lint
12
+ * - @enable-lint
13
+ * - @disable-next-line
14
+ * - @disable-line
15
+ * - @disable-rule rule-name, rule-name2
16
+ * - @enable-rule rule-name
17
+ * - @import alias from './path/to/file.json'
18
+ * - @import alias from './path/to/file.yaml'
19
+ */
20
+ function parseDirectives(document) {
21
+ const text = document.getText();
22
+ const lines = text.split('\n');
23
+ const directives = [];
24
+ let globalLintEnabled = true;
25
+ for (let i = 0; i < lines.length; i++) {
26
+ const line = lines[i] || '';
27
+ const trimmed = line.trim();
28
+ // Check if line is a comment
29
+ if (!trimmed.startsWith('#'))
30
+ continue;
31
+ // Extract directive
32
+ const directiveMatch = trimmed.match(/#\s*@([\w-]+)(?:\s+(.+))?/);
33
+ if (!directiveMatch)
34
+ continue;
35
+ const [, directiveName, args] = directiveMatch;
36
+ const directive = parseDirective(directiveName, args, i);
37
+ if (directive) {
38
+ directives.push(directive);
39
+ // Update global state
40
+ if (directive.type === 'disable-lint') {
41
+ globalLintEnabled = false;
42
+ }
43
+ else if (directive.type === 'enable-lint') {
44
+ globalLintEnabled = true;
45
+ }
46
+ }
47
+ }
48
+ // Apply global lint state to all lines if disabled
49
+ if (!globalLintEnabled && directives.length > 0) {
50
+ const disableLintDirective = directives.find(d => d.type === 'disable-lint');
51
+ if (disableLintDirective) {
52
+ // Extend affected lines to all subsequent lines
53
+ const startLine = disableLintDirective.line;
54
+ const endLine = lines.length - 1;
55
+ disableLintDirective.affectedLines = Array.from({ length: endLine - startLine + 1 }, (_, i) => startLine + i);
56
+ }
57
+ }
58
+ return directives;
59
+ }
60
+ function parseDirective(name, args, lineNumber) {
61
+ const type = name;
62
+ switch (type) {
63
+ case 'disable-lint':
64
+ return {
65
+ type,
66
+ line: lineNumber,
67
+ affectedLines: [lineNumber] // Will be extended later
68
+ };
69
+ case 'enable-lint':
70
+ return {
71
+ type,
72
+ line: lineNumber,
73
+ affectedLines: []
74
+ };
75
+ case 'disable-next-line':
76
+ return {
77
+ type,
78
+ line: lineNumber,
79
+ affectedLines: [lineNumber + 1]
80
+ };
81
+ case 'disable-line':
82
+ return {
83
+ type,
84
+ line: lineNumber,
85
+ affectedLines: [lineNumber]
86
+ };
87
+ case 'disable-rule':
88
+ case 'enable-rule':
89
+ const rules = args?.split(',').map(r => r.trim()).filter(Boolean);
90
+ return {
91
+ type,
92
+ line: lineNumber,
93
+ rules,
94
+ affectedLines: [lineNumber + 1]
95
+ };
96
+ case 'import':
97
+ if (!args)
98
+ return null;
99
+ // Parse: alias from './path/to/file.json'
100
+ const importMatch = args.match(/^\s*(\w+)\s+from\s+['"](.+)['"]\s*$/);
101
+ if (!importMatch)
102
+ return null;
103
+ const [, alias, filePath] = importMatch;
104
+ return {
105
+ type,
106
+ line: lineNumber,
107
+ importAlias: alias,
108
+ importPath: filePath,
109
+ affectedLines: [] // Import directives don't affect linting
110
+ };
111
+ default:
112
+ return null;
113
+ }
114
+ }
115
+ /**
116
+ * Check if diagnostics should be suppressed for a given line
117
+ */
118
+ function isDiagnosticSuppressed(line, directives, diagnosticSource) {
119
+ for (const directive of directives) {
120
+ // Check if line is affected by this directive
121
+ if (!directive.affectedLines.includes(line))
122
+ continue;
123
+ switch (directive.type) {
124
+ case 'disable-lint':
125
+ return true;
126
+ case 'disable-next-line':
127
+ case 'disable-line':
128
+ return true;
129
+ case 'disable-rule':
130
+ // If specific rules are listed, check if diagnostic source matches
131
+ if (directive.rules && diagnosticSource) {
132
+ return directive.rules.some(rule => diagnosticSource.includes(rule) ||
133
+ rule.includes(diagnosticSource));
134
+ }
135
+ return false;
136
+ default:
137
+ continue;
138
+ }
139
+ }
140
+ return false;
141
+ }
142
+ /**
143
+ * Process directives that affect ranges
144
+ * This handles block-level directives like @disable-lint ... @enable-lint
145
+ */
146
+ function processRangeDirectives(directives) {
147
+ const processed = [];
148
+ let currentDisable = null;
149
+ for (let i = 0; i < directives.length; i++) {
150
+ const directive = directives[i];
151
+ if (directive.type === 'disable-lint') {
152
+ currentDisable = directive;
153
+ processed.push(directive);
154
+ }
155
+ else if (directive.type === 'enable-lint' && currentDisable) {
156
+ // Update the disable directive to cover the range
157
+ currentDisable.affectedLines = [];
158
+ for (let line = currentDisable.line; line < directive.line; line++) {
159
+ currentDisable.affectedLines.push(line);
160
+ }
161
+ currentDisable = null;
162
+ processed.push(directive);
163
+ }
164
+ else {
165
+ processed.push(directive);
166
+ }
167
+ }
168
+ // If there's still an active disable directive, extend it to the end
169
+ if (currentDisable) {
170
+ // This will be handled in parseDirectives
171
+ }
172
+ return processed;
173
+ }
174
+ /**
175
+ * Extract import directives from a document
176
+ * Returns array of import directives with resolved paths
177
+ */
178
+ function getImportDirectives(document, documentUri) {
179
+ const directives = parseDirectives(document);
180
+ const imports = [];
181
+ for (const directive of directives) {
182
+ if (directive.type === 'import' && directive.importAlias && directive.importPath) {
183
+ try {
184
+ let documentDir;
185
+ if (documentUri === 'file://test' || documentUri === 'file:///test') {
186
+ // For test documents, use the directory where test files are located
187
+ documentDir = (0, path_1.join)(process.cwd(), 'tests', 'rules', 'examples');
188
+ console.log(`[LSP] Test document detected in getImportDirectives, using test directory: ${documentDir}`);
189
+ }
190
+ else {
191
+ // Decode URI components and resolve relative paths
192
+ const decodedUri = decodeURIComponent(documentUri);
193
+ // Handle Windows file URIs properly
194
+ let documentPath;
195
+ if (decodedUri.startsWith('file:///')) {
196
+ // Remove file:/// prefix
197
+ documentPath = decodedUri.substring(8);
198
+ // Handle Windows drive letters (C:, D:, etc.)
199
+ if (documentPath.match(/^[A-Za-z]:/)) {
200
+ // Already has drive letter, just replace forward slashes
201
+ documentPath = documentPath.replace(/\//g, '\\');
202
+ }
203
+ else if (documentPath.match(/^\/[A-Za-z]:/)) {
204
+ // Has leading slash before drive letter, remove it
205
+ documentPath = documentPath.substring(1).replace(/\//g, '\\');
206
+ }
207
+ else {
208
+ // Unix-style path, keep as is
209
+ documentPath = documentPath.replace(/\//g, '/');
210
+ }
211
+ }
212
+ else {
213
+ // Fallback for non-file URIs
214
+ documentPath = decodedUri.replace('file:///', '');
215
+ }
216
+ documentDir = (0, path_1.dirname)(documentPath);
217
+ }
218
+ const resolvedPath = (0, path_1.join)(documentDir, directive.importPath);
219
+ imports.push({
220
+ alias: directive.importAlias,
221
+ path: resolvedPath
222
+ });
223
+ console.log(`[LSP] Import directive resolved: ${directive.importAlias} -> ${resolvedPath}`);
224
+ }
225
+ catch (error) {
226
+ console.error(`[LSP] Error resolving import directive:`, error);
227
+ }
228
+ }
229
+ }
230
+ return imports;
231
+ }
232
+ //# sourceMappingURL=directives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../../src/lsp/directives.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Hover, Position } from 'vscode-languageserver/node';
2
+ import type { TextDocument } from 'vscode-languageserver-textdocument';
3
+ /**
4
+ * Get hover information for a position in the document
5
+ */
6
+ export declare function getHover(document: TextDocument, position: Position): Hover | null;
7
+ //# sourceMappingURL=hover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../../../src/lsp/hover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAiB,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AA8NvE;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAwEjF"}