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,462 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHover = getHover;
4
+ const yaml_1 = require("yaml");
5
+ const data_context_1 = require("./data-context");
6
+ const directives_1 = require("./directives");
7
+ /**
8
+ * Field documentation with descriptions and allowed values
9
+ */
10
+ const FIELD_DOCS = {
11
+ id: {
12
+ description: 'Unique identifier for this rule',
13
+ examples: ['my-rule-1', 'donation-handler', 'user-login-tracker']
14
+ },
15
+ name: {
16
+ description: 'Human-readable name for the rule',
17
+ examples: ['Donation Handler', 'User Login Tracker']
18
+ },
19
+ description: {
20
+ description: 'Detailed description of what this rule does',
21
+ },
22
+ on: {
23
+ description: 'The event name that triggers this rule',
24
+ values: 'String event name (e.g., `Donation`, `UserLogin`, `minecraft:player_join`)',
25
+ examples: ['Donation', 'UserLogin', 'minecraft:player_join', 'COMMAND']
26
+ },
27
+ if: {
28
+ description: 'Condition(s) that must be met for the rule to execute',
29
+ values: 'Single condition object, array of conditions, or condition group with AND/OR operator'
30
+ },
31
+ do: {
32
+ description: 'Action(s) to execute when conditions are met',
33
+ values: 'Single action object, array of actions, or action group with mode (ALL, SEQUENCE, EITHER)'
34
+ },
35
+ priority: {
36
+ description: 'Execution priority (higher values execute first)',
37
+ values: 'Integer number',
38
+ examples: ['1', '10', '100']
39
+ },
40
+ enabled: {
41
+ description: 'Whether this rule is active',
42
+ values: 'Boolean: `true` or `false`',
43
+ examples: ['true', 'false']
44
+ },
45
+ cooldown: {
46
+ description: 'Minimum time in milliseconds between executions',
47
+ values: 'Non-negative integer (milliseconds)',
48
+ examples: ['1000', '5000', '60000']
49
+ },
50
+ tags: {
51
+ description: 'Tags for categorizing and organizing rules',
52
+ values: 'Array of strings',
53
+ examples: ['["gameplay", "monetization"]', '["debug", "test"]']
54
+ },
55
+ comment: {
56
+ description: 'Internal developer note (not used in execution)',
57
+ },
58
+ };
59
+ const OPERATOR_DOCS = {
60
+ EQ: {
61
+ description: 'Equal to (==)',
62
+ valueType: 'Any value',
63
+ examples: ['value: 100', 'value: "hello"', 'value: true']
64
+ },
65
+ '==': {
66
+ description: 'Equal to (same as EQ)',
67
+ valueType: 'Any value',
68
+ examples: ['value: 100', 'value: "hello"']
69
+ },
70
+ NEQ: {
71
+ description: 'Not equal to (!=)',
72
+ valueType: 'Any value',
73
+ examples: ['value: 0', 'value: "goodbye"']
74
+ },
75
+ '!=': {
76
+ description: 'Not equal to (same as NEQ)',
77
+ valueType: 'Any value',
78
+ examples: ['value: 0']
79
+ },
80
+ GT: {
81
+ description: 'Greater than (>)',
82
+ valueType: 'Number or expression string',
83
+ examples: ['value: 100', 'value: "${state.count}"']
84
+ },
85
+ '>': {
86
+ description: 'Greater than (same as GT)',
87
+ valueType: 'Number or expression string',
88
+ examples: ['value: 50']
89
+ },
90
+ GTE: {
91
+ description: 'Greater than or equal to (>=)',
92
+ valueType: 'Number or expression string',
93
+ examples: ['value: 100']
94
+ },
95
+ '>=': {
96
+ description: 'Greater than or equal to (same as GTE)',
97
+ valueType: 'Number or expression string',
98
+ examples: ['value: 100']
99
+ },
100
+ LT: {
101
+ description: 'Less than (<)',
102
+ valueType: 'Number or expression string',
103
+ examples: ['value: 100']
104
+ },
105
+ '<': {
106
+ description: 'Less than (same as LT)',
107
+ valueType: 'Number or expression string',
108
+ examples: ['value: 50']
109
+ },
110
+ LTE: {
111
+ description: 'Less than or equal to (<=)',
112
+ valueType: 'Number or expression string',
113
+ examples: ['value: 100']
114
+ },
115
+ '<=': {
116
+ description: 'Less than or equal to (same as LTE)',
117
+ valueType: 'Number or expression string',
118
+ examples: ['value: 100']
119
+ },
120
+ IN: {
121
+ description: 'Value is in the given list',
122
+ valueType: 'Array of values',
123
+ examples: ['value: [1, 2, 3]', 'value: ["a", "b", "c"]']
124
+ },
125
+ NOT_IN: {
126
+ description: 'Value is not in the given list',
127
+ valueType: 'Array of values',
128
+ examples: ['value: [0, null]']
129
+ },
130
+ CONTAINS: {
131
+ description: 'String contains substring, or array includes item',
132
+ valueType: 'String (for substring) or Array (for item check)',
133
+ examples: ['value: "hello"', 'value: ["item1", "item2"]']
134
+ },
135
+ MATCHES: {
136
+ description: 'Value matches the regular expression pattern',
137
+ valueType: 'String (regex pattern)',
138
+ examples: ['value: "^[A-Z].*"', 'value: "\\\\d{3}-\\\\d{4}"']
139
+ },
140
+ RANGE: {
141
+ description: 'Value is within the specified range [min, max] (inclusive)',
142
+ valueType: 'Array of exactly 2 numbers: [min, max]',
143
+ examples: ['value: [0, 100]', 'value: [1, 10]']
144
+ },
145
+ SINCE: {
146
+ description: 'Date/time is after or equal to the specified value',
147
+ valueType: 'Date string or timestamp',
148
+ examples: ['value: "2024-01-01"']
149
+ },
150
+ AFTER: {
151
+ description: 'Date/time is after the specified value (alias for SINCE)',
152
+ valueType: 'Date string or timestamp',
153
+ examples: ['value: "2024-01-01T00:00:00Z"']
154
+ },
155
+ BEFORE: {
156
+ description: 'Date/time is before the specified value',
157
+ valueType: 'Date string or timestamp',
158
+ examples: ['value: "2024-12-31"']
159
+ },
160
+ UNTIL: {
161
+ description: 'Date/time is before or equal to the specified value (alias for BEFORE)',
162
+ valueType: 'Date string or timestamp',
163
+ examples: ['value: "2024-12-31T23:59:59Z"']
164
+ },
165
+ AND: {
166
+ description: 'Logical AND - all conditions must be true',
167
+ valueType: 'Used in condition groups',
168
+ examples: ['operator: AND\nconditions:\n - field: data.x\n operator: GT\n value: 0']
169
+ },
170
+ OR: {
171
+ description: 'Logical OR - at least one condition must be true',
172
+ valueType: 'Used in condition groups',
173
+ examples: ['operator: OR\nconditions:\n - field: data.x\n operator: EQ\n value: 1']
174
+ }
175
+ };
176
+ const CONDITION_FIELD_DOCS = {
177
+ field: {
178
+ description: 'The field path to check (e.g., `data.amount`, `event.user.id`)',
179
+ values: 'String path using dot notation'
180
+ },
181
+ operator: {
182
+ description: 'The comparison operator to use',
183
+ values: 'One of: EQ, ==, NEQ, !=, GT, >, GTE, >=, LT, <, LTE, <=, IN, NOT_IN, CONTAINS, MATCHES, RANGE, SINCE, AFTER, BEFORE, UNTIL'
184
+ },
185
+ value: {
186
+ description: 'The value to compare against (type depends on operator)',
187
+ values: 'Varies by operator - see operator documentation for details'
188
+ },
189
+ conditions: {
190
+ description: 'Array of sub-conditions for AND/OR groups',
191
+ values: 'Array of condition objects'
192
+ }
193
+ };
194
+ const ACTION_FIELD_DOCS = {
195
+ type: {
196
+ description: 'The type of action to perform',
197
+ values: 'String action type (e.g., `log`, `execute`, `http`, `STATE_SET`, `EMIT_EVENT`)'
198
+ },
199
+ params: {
200
+ description: 'Parameters for the action (varies by action type)',
201
+ values: 'Object with action-specific parameters'
202
+ },
203
+ delay: {
204
+ description: 'Delay in milliseconds before executing this action',
205
+ values: 'Non-negative integer (milliseconds)'
206
+ },
207
+ probability: {
208
+ description: 'Probability of executing this action (0.0 to 1.0)',
209
+ values: 'Number between 0 and 1 (e.g., 0.5 for 50% chance)'
210
+ },
211
+ mode: {
212
+ description: 'Execution mode for action groups',
213
+ values: 'ALL (execute all), SEQUENCE (execute in order), or EITHER (execute one randomly)'
214
+ },
215
+ actions: {
216
+ description: 'Array of sub-actions for action groups',
217
+ values: 'Array of action objects'
218
+ }
219
+ };
220
+ /**
221
+ * Get hover information for a position in the document
222
+ */
223
+ function getHover(document, position) {
224
+ // Load data from import directives only (declarative approach)
225
+ const imports = (0, directives_1.getImportDirectives)(document, document.uri);
226
+ if (imports.length > 0) {
227
+ (0, data_context_1.loadDataFromImports)(imports);
228
+ }
229
+ else {
230
+ // Clear data context when no imports are defined
231
+ data_context_1.globalDataContext.clear();
232
+ }
233
+ const text = document.getText();
234
+ const offset = document.offsetAt(position);
235
+ const doc = (0, yaml_1.parseDocument)(text);
236
+ if (!doc.contents)
237
+ return null;
238
+ // Check if we're hovering over a template variable
239
+ const lines = text.split('\n');
240
+ const line = lines[position.line] || '';
241
+ const templateHover = checkTemplateVariableHover(line, position.character);
242
+ if (templateHover) {
243
+ return templateHover;
244
+ }
245
+ // Find the node at the cursor position
246
+ const path = findPathAtOffset(doc.contents, offset);
247
+ if (!path || path.length === 0)
248
+ return null;
249
+ const targetNode = path[path.length - 1];
250
+ // Check if we're hovering on a key
251
+ if ('key' in targetNode && targetNode.key) {
252
+ const keyNode = targetNode.key;
253
+ if ((0, yaml_1.isScalar)(keyNode) && keyNode.range) {
254
+ const [keyStart, keyEnd] = keyNode.range;
255
+ if (offset >= keyStart && offset <= keyEnd) {
256
+ const keyValue = String(keyNode.value);
257
+ const hoverContent = getKeyDocumentation(keyValue, path);
258
+ if (hoverContent) {
259
+ return {
260
+ contents: hoverContent
261
+ };
262
+ }
263
+ }
264
+ }
265
+ }
266
+ // Check if we're hovering on a value that is an operator
267
+ if ((0, yaml_1.isScalar)(targetNode) && targetNode.range) {
268
+ const [valueStart, valueEnd] = targetNode.range;
269
+ if (offset >= valueStart && offset <= valueEnd) {
270
+ const value = String(targetNode.value);
271
+ // Check if this is an operator value
272
+ if (OPERATOR_DOCS[value]) {
273
+ const opDoc = OPERATOR_DOCS[value];
274
+ const markdown = {
275
+ kind: 'markdown',
276
+ value: [
277
+ `**Operator: \`${value}\`**`,
278
+ '',
279
+ opDoc.description,
280
+ '',
281
+ `**Value Type:** ${opDoc.valueType}`,
282
+ ...(opDoc.examples ? ['', '**Examples:**', ...opDoc.examples.map(ex => `\`\`\`yaml\n${ex}\n\`\`\``)] : [])
283
+ ].join('\n')
284
+ };
285
+ return { contents: markdown };
286
+ }
287
+ }
288
+ }
289
+ return null;
290
+ }
291
+ /**
292
+ * Check if hovering over a template variable and return hover info
293
+ */
294
+ function checkTemplateVariableHover(line, character) {
295
+ const regex = /\$\{([^}]+)\}/g;
296
+ let match;
297
+ while ((match = regex.exec(line)) !== null) {
298
+ const start = match.index;
299
+ const end = match.index + match[0].length;
300
+ // Check if cursor is inside this template
301
+ if (character >= start && character <= end) {
302
+ const variablePath = match[1].trim();
303
+ // Try to get value from data context
304
+ const value = data_context_1.globalDataContext.getValue(variablePath);
305
+ if (value !== undefined) {
306
+ const formattedValue = data_context_1.globalDataContext.getFormattedValue(value);
307
+ const valueType = typeof value === 'object' && value !== null
308
+ ? (Array.isArray(value) ? 'array' : 'object')
309
+ : typeof value;
310
+ const markdown = {
311
+ kind: 'markdown',
312
+ value: [
313
+ `**Template Variable: \`\${${variablePath}}\`**`,
314
+ '',
315
+ `**Type:** \`${valueType}\``,
316
+ '',
317
+ '**Test Value:**',
318
+ '```json',
319
+ formattedValue,
320
+ '```'
321
+ ].join('\n')
322
+ };
323
+ return { contents: markdown };
324
+ }
325
+ else {
326
+ // Variable not found in data context
327
+ const markdown = {
328
+ kind: 'markdown',
329
+ value: [
330
+ `**Template Variable: \`\${${variablePath}}\`**`,
331
+ '',
332
+ '_No test data available for this variable._',
333
+ '',
334
+ 'Add a `data.json` or `data.yaml` file in your workspace to provide test values.'
335
+ ].join('\n')
336
+ };
337
+ return { contents: markdown };
338
+ }
339
+ }
340
+ }
341
+ return null;
342
+ }
343
+ /**
344
+ * Get documentation for a specific key based on its context
345
+ */
346
+ function getKeyDocumentation(key, path) {
347
+ // Try to determine context
348
+ const parentContext = getParentContext(path);
349
+ let doc;
350
+ // Check in order of specificity
351
+ if (parentContext === 'action') {
352
+ doc = ACTION_FIELD_DOCS[key];
353
+ }
354
+ else if (parentContext === 'condition') {
355
+ doc = CONDITION_FIELD_DOCS[key];
356
+ }
357
+ // Fall back to general field docs
358
+ if (!doc) {
359
+ doc = FIELD_DOCS[key];
360
+ }
361
+ if (!doc)
362
+ return null;
363
+ const parts = [
364
+ `**${key}**`,
365
+ '',
366
+ doc.description
367
+ ];
368
+ if (doc.values) {
369
+ parts.push('', `**Allowed Values:** ${doc.values}`);
370
+ }
371
+ if (doc.examples && doc.examples.length > 0) {
372
+ parts.push('', '**Examples:**');
373
+ doc.examples.forEach(example => {
374
+ parts.push(`\`\`\`yaml\n${example}\n\`\`\``);
375
+ });
376
+ }
377
+ return {
378
+ kind: 'markdown',
379
+ value: parts.join('\n')
380
+ };
381
+ }
382
+ /**
383
+ * Determine the parent context (rule, condition, action) from the path
384
+ */
385
+ function getParentContext(path) {
386
+ // Walk up the path to find context clues
387
+ for (let i = path.length - 1; i >= 0; i--) {
388
+ const node = path[i];
389
+ if (!('key' in node) || !node.key)
390
+ continue;
391
+ if (!(0, yaml_1.isScalar)(node.key))
392
+ continue;
393
+ const keyValue = String(node.key.value);
394
+ // If we're inside an 'if' or 'conditions', we're in condition context
395
+ if (keyValue === 'if' || keyValue === 'conditions') {
396
+ return 'condition';
397
+ }
398
+ // If we're inside a 'do' or 'actions', we're in action context
399
+ if (keyValue === 'do' || keyValue === 'actions') {
400
+ return 'action';
401
+ }
402
+ }
403
+ return 'rule';
404
+ }
405
+ function findPathAtOffset(node, offset, currentPath = []) {
406
+ if (!node)
407
+ return null;
408
+ // For Pair types, we need to check manually if they can be processed
409
+ // Pairs are used in Maps, and we need different logic for them
410
+ const isPair = (n) => 'key' in n && 'value' in n;
411
+ if (isPair(node)) {
412
+ // Pair doesn't have range, but we can check its key and value
413
+ const pair = node;
414
+ const newPath = [...currentPath, node];
415
+ // Check if key has range and if offset is within it
416
+ if (pair.key && typeof pair.key === 'object' && 'range' in pair.key) {
417
+ const keyNode = pair.key;
418
+ if (keyNode.range) {
419
+ const [keyStart, keyEnd] = keyNode.range;
420
+ if (offset >= keyStart && offset <= keyEnd) {
421
+ return newPath;
422
+ }
423
+ }
424
+ }
425
+ // Check value recursively
426
+ if (pair.value) {
427
+ const valuePath = findPathAtOffset(pair.value, offset, newPath);
428
+ if (valuePath)
429
+ return valuePath;
430
+ }
431
+ return null;
432
+ }
433
+ // From here, we're dealing with Node types that should have range
434
+ if (!('range' in node) || !node.range)
435
+ return null;
436
+ const [start, end] = node.range;
437
+ if (offset < start || offset > end)
438
+ return null;
439
+ // Add current node to path
440
+ const newPath = [...currentPath, node];
441
+ // If it's a Map, check items (which are Pairs)
442
+ if ((0, yaml_1.isMap)(node)) {
443
+ for (const item of node.items) {
444
+ const itemPath = findPathAtOffset(item, offset, newPath);
445
+ if (itemPath)
446
+ return itemPath;
447
+ }
448
+ return newPath;
449
+ }
450
+ // If it's a Seq, check items
451
+ if ('items' in node && Array.isArray(node.items)) {
452
+ for (const item of node.items) {
453
+ const itemPath = findPathAtOffset(item, offset, newPath);
454
+ if (itemPath)
455
+ return itemPath;
456
+ }
457
+ return newPath;
458
+ }
459
+ // Scalar or other leaf node
460
+ return newPath;
461
+ }
462
+ //# sourceMappingURL=hover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover.js","sourceRoot":"","sources":["../../src/lsp/hover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CompletionItem, Position } from 'vscode-languageserver/node';
2
+ import { TextDocument } from 'vscode-languageserver-textdocument';
3
+ import { type Node, Pair } from 'yaml';
4
+ export declare function getCompletionItems(document: TextDocument, position: Position): CompletionItem[];
5
+ export declare function findPathAtOffset(node: Node | Pair | null, offset: number, currentPath?: (Node | Pair)[]): (Node | Pair)[] | null;
6
+ //# sourceMappingURL=completions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../../src/lsp/completions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,cAAc,EACd,QAAQ,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAiD,KAAK,IAAI,EAAmB,IAAI,EAAW,MAAM,MAAM,CAAC;AAqJhH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,EAAE,CA8D/F;AAqRD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAyDpI"}