@birdcc/lsp 0.0.1-alpha.1 → 0.1.0-beta.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 (86) hide show
  1. package/README.md +25 -23
  2. package/dist/asn-completion.d.ts +21 -0
  3. package/dist/asn-completion.d.ts.map +1 -0
  4. package/dist/asn-completion.js +42 -0
  5. package/dist/asn-completion.js.map +1 -0
  6. package/dist/asn-context.d.ts +9 -0
  7. package/dist/asn-context.d.ts.map +1 -0
  8. package/dist/asn-context.js +203 -0
  9. package/dist/asn-context.js.map +1 -0
  10. package/dist/asn-hover.d.ts +11 -0
  11. package/dist/asn-hover.d.ts.map +1 -0
  12. package/dist/asn-hover.js +33 -0
  13. package/dist/asn-hover.js.map +1 -0
  14. package/dist/asn-inlay-hints.d.ts +13 -0
  15. package/dist/asn-inlay-hints.d.ts.map +1 -0
  16. package/dist/asn-inlay-hints.js +47 -0
  17. package/dist/asn-inlay-hints.js.map +1 -0
  18. package/dist/diagnostic.d.ts.map +1 -1
  19. package/dist/diagnostic.js +2 -10
  20. package/dist/diagnostic.js.map +1 -1
  21. package/dist/document-symbol.js +1 -1
  22. package/dist/document-symbol.js.map +1 -1
  23. package/dist/hover-context.d.ts +31 -0
  24. package/dist/hover-context.d.ts.map +1 -0
  25. package/dist/hover-context.js +125 -0
  26. package/dist/hover-context.js.map +1 -0
  27. package/dist/hover-docs/00-base.yaml +5 -0
  28. package/dist/hover-docs/10-global-options.yaml +442 -0
  29. package/dist/hover-docs/20-filter-language.yaml +209 -0
  30. package/dist/hover-docs/30-channel-options.yaml +244 -0
  31. package/dist/hover-docs/40-protocol-common.yaml +59 -0
  32. package/dist/hover-docs/41-protocol-igp.yaml +305 -0
  33. package/dist/hover-docs/42-protocol-kernel-static.yaml +220 -0
  34. package/dist/hover-docs/43-protocol-mpls.yaml +40 -0
  35. package/dist/hover-docs/44-protocol-extended.yaml +635 -0
  36. package/dist/hover-docs/50-protocol-bgp.yaml +482 -0
  37. package/dist/hover-docs/60-protocol-ospf.yaml +527 -0
  38. package/dist/hover-docs.d.ts +5 -1
  39. package/dist/hover-docs.d.ts.map +1 -1
  40. package/dist/hover-docs.js +376 -51
  41. package/dist/hover-docs.js.map +1 -1
  42. package/dist/hover-usage/00-base.yaml +2 -0
  43. package/dist/hover-usage/10-global-usage.yaml +73 -0
  44. package/dist/hover-usage/20-filter-usage.yaml +41 -0
  45. package/dist/hover-usage/30-channel-usage.yaml +41 -0
  46. package/dist/hover-usage/40-protocol-usage.yaml +258 -0
  47. package/dist/hover-usage/50-bgp-usage.yaml +254 -0
  48. package/dist/hover-usage/60-ospf-usage.yaml +340 -0
  49. package/dist/hover.d.ts +10 -0
  50. package/dist/hover.d.ts.map +1 -1
  51. package/dist/hover.js +152 -46
  52. package/dist/hover.js.map +1 -1
  53. package/dist/index.d.ts +7 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +6 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/init/workspace-init.d.ts +28 -0
  58. package/dist/init/workspace-init.d.ts.map +1 -0
  59. package/dist/init/workspace-init.js +72 -0
  60. package/dist/init/workspace-init.js.map +1 -0
  61. package/dist/lsp-server.d.ts +7 -1
  62. package/dist/lsp-server.d.ts.map +1 -1
  63. package/dist/lsp-server.js +277 -65
  64. package/dist/lsp-server.js.map +1 -1
  65. package/dist/project-config.d.ts +22 -0
  66. package/dist/project-config.d.ts.map +1 -0
  67. package/dist/project-config.js +307 -0
  68. package/dist/project-config.js.map +1 -0
  69. package/dist/shared.d.ts +1 -0
  70. package/dist/shared.d.ts.map +1 -1
  71. package/dist/shared.js +4 -24
  72. package/dist/shared.js.map +1 -1
  73. package/dist/symbol-utils.d.ts +6 -6
  74. package/dist/symbol-utils.d.ts.map +1 -1
  75. package/dist/symbol-utils.js +24 -25
  76. package/dist/symbol-utils.js.map +1 -1
  77. package/dist/type-hint-inlay.d.ts +4 -0
  78. package/dist/type-hint-inlay.d.ts.map +1 -0
  79. package/dist/type-hint-inlay.js +27 -0
  80. package/dist/type-hint-inlay.js.map +1 -0
  81. package/dist/utils.d.ts +65 -0
  82. package/dist/utils.d.ts.map +1 -0
  83. package/dist/utils.js +97 -0
  84. package/dist/utils.js.map +1 -0
  85. package/package.json +11 -7
  86. package/dist/hover-docs.yaml +0 -600
@@ -0,0 +1,209 @@
1
+ entries:
2
+ - keyword: .asn
3
+ description: Extract AS number from pair
4
+ detail: Get the AS number component from an AS path pair.
5
+ diff: same
6
+ version: v2+
7
+ anchor: filter-pair
8
+ path: filter
9
+ related:
10
+ - .data
11
+ parameters:
12
+ - name: pair
13
+ description: Pair value exposing ASN component.
14
+ - keyword: .data
15
+ description: Extract data from pair
16
+ detail: Get the data component from an AS path pair.
17
+ diff: same
18
+ version: v2+
19
+ anchor: filter-pair
20
+ path: filter
21
+ related:
22
+ - .asn
23
+ parameters:
24
+ - name: pair
25
+ description: Pair value exposing data component.
26
+ - keyword: .ip
27
+ description: Extract IP from prefix
28
+ detail: Get the network address part of a prefix.
29
+ diff: same
30
+ version: v2+
31
+ anchor: filter-prefix
32
+ path: filter
33
+ related:
34
+ - .len
35
+ - .mask
36
+ parameters:
37
+ - name: prefix
38
+ description: Prefix value exposing network IP.
39
+ - keyword: .len
40
+ description: Prefix length operator
41
+ detail: Get the prefix length of a prefix value.
42
+ diff: same
43
+ version: v2+
44
+ anchor: filter-prefix
45
+ path: filter
46
+ related:
47
+ - .ip
48
+ - .mask
49
+ parameters:
50
+ - name: prefix
51
+ description: Prefix value exposing mask length.
52
+ - keyword: .mask
53
+ description: IP mask operator
54
+ detail: Get the subnet mask as an IP address.
55
+ diff: same
56
+ version: v2+
57
+ anchor: filter-ip
58
+ path: filter
59
+ related:
60
+ - .ip
61
+ - .len
62
+ parameters:
63
+ - name: ip-or-prefix
64
+ description: Address value exposing netmask.
65
+ - keyword: accept
66
+ description: Accept route
67
+ detail: Accept the current route and stop processing the filter.
68
+ diff: same
69
+ version: v2+
70
+ anchor: filter-control
71
+ path: filter
72
+ related:
73
+ - reject
74
+ - return
75
+ - keyword: case
76
+ description: Case statement
77
+ detail: Multi-way branch based on expression value.
78
+ diff: same
79
+ version: v2+
80
+ anchor: filter-control
81
+ path: filter
82
+ related:
83
+ - if
84
+ - else
85
+ parameters:
86
+ - name: expression
87
+ description: Expression used for case dispatch.
88
+ required: true
89
+ - keyword: defined
90
+ description: Check if symbol is defined
91
+ detail: Test whether a symbol (attribute, route property) is defined.
92
+ diff: same
93
+ version: v2+
94
+ anchor: filter-operators
95
+ path: filter
96
+ related:
97
+ - if
98
+ parameters:
99
+ - name: symbol
100
+ description: Route attribute or symbol name.
101
+ required: true
102
+ - keyword: else
103
+ description: Else clause
104
+ detail: Marks the beginning of statements to execute when condition is false.
105
+ diff: same
106
+ version: v2+
107
+ anchor: filter-control
108
+ path: filter
109
+ related:
110
+ - if
111
+ - then
112
+ parameters:
113
+ - name: statement
114
+ description: Statement block for false branch.
115
+ - keyword: if
116
+ description: Conditional statement
117
+ detail: Execute statements conditionally based on a boolean expression.
118
+ diff: same
119
+ version: v2+
120
+ anchor: filter-control
121
+ path: filter
122
+ related:
123
+ - then
124
+ - else
125
+ - case
126
+ parameters:
127
+ - name: condition
128
+ description: Boolean expression for branch entry.
129
+ required: true
130
+ - keyword: int
131
+ description: Integer data type
132
+ detail: A signed 32-bit integer.
133
+ diff: same
134
+ version: v2+
135
+ anchor: filter-data-types
136
+ path: filter
137
+ parameters:
138
+ - name: value
139
+ description: Signed 32-bit integer value.
140
+ - keyword: ip
141
+ description: IP address data type
142
+ detail: An IPv4 or IPv6 address.
143
+ diff: same
144
+ version: v2+
145
+ anchor: filter-data-types
146
+ path: filter
147
+ parameters:
148
+ - name: value
149
+ description: IPv4 or IPv6 address value.
150
+ - keyword: prefix
151
+ description: Prefix data type
152
+ detail: An IP address prefix consisting of an IP address and a prefix length.
153
+ diff: same
154
+ version: v2+
155
+ anchor: filter-data-types
156
+ path: filter
157
+ parameters:
158
+ - name: value
159
+ description: Prefix value (address/length).
160
+ - keyword: print
161
+ description: Print debug output
162
+ detail: Output debug information during filter execution.
163
+ diff: same
164
+ version: v2+
165
+ anchor: filter-functions
166
+ path: filter
167
+ parameters:
168
+ - name: values
169
+ description: One or more values to print.
170
+ - keyword: reject
171
+ description: Reject route
172
+ detail: Reject the current route and stop processing the filter.
173
+ diff: same
174
+ version: v2+
175
+ anchor: filter-control
176
+ path: filter
177
+ related:
178
+ - accept
179
+ - return
180
+ - keyword: return
181
+ description: Return from function
182
+ detail: Return a value from a filter function.
183
+ diff: same
184
+ version: v2+
185
+ anchor: filter-functions
186
+ path: filter
187
+ related:
188
+ - accept
189
+ - reject
190
+ - keyword: string
191
+ description: String data type
192
+ detail: A sequence of characters.
193
+ diff: same
194
+ version: v2+
195
+ anchor: filter-data-types
196
+ path: filter
197
+ - keyword: then
198
+ description: Then clause
199
+ detail: Marks the beginning of statements to execute when condition is true.
200
+ diff: same
201
+ version: v2+
202
+ anchor: filter-control
203
+ path: filter
204
+ related:
205
+ - if
206
+ - else
207
+ parameters:
208
+ - name: statement
209
+ description: Statement block for true branch.
@@ -0,0 +1,244 @@
1
+ entries:
2
+ - keyword: export
3
+ description: Export filter for channel
4
+ detail: Specify filter for routes exported from the routing table to the protocol.
5
+ diff: modified
6
+ version: v2-v3
7
+ anchor: channel-export
8
+ path:
9
+ - protocol.bgp.channel
10
+ - protocol.babel.channel
11
+ - protocol.rip.channel
12
+ - protocol.kernel.channel
13
+ - protocol.static.channel
14
+ - protocol.pipe.channel
15
+ - protocol.ospf.channel
16
+ related:
17
+ - import
18
+ - export limit
19
+ parameters:
20
+ - name: policy
21
+ description: Export policy such as all, none, or a named filter.
22
+ notes:
23
+ v3: "v3 Enhanced: Supports 'export in prefix' syntax for selective export."
24
+ - keyword: export block
25
+ description: Export block size (v3 only)
26
+ detail: Configure bulk export block size for improved performance.
27
+ diff: added
28
+ version: v3+
29
+ anchor: channel-export-block
30
+ path:
31
+ - protocol.bgp.channel
32
+ - protocol.babel.channel
33
+ - protocol.rip.channel
34
+ - protocol.kernel.channel
35
+ - protocol.static.channel
36
+ - protocol.pipe.channel
37
+ - protocol.ospf.channel
38
+ related:
39
+ - export
40
+ - export limit
41
+ parameters:
42
+ - name: number
43
+ description: Block size for batched export processing.
44
+ notes:
45
+ v3: "v3 only: Bulk export optimization."
46
+ - keyword: export limit
47
+ description: Export route limit
48
+ detail: Set maximum number of routes that can be exported to the peer.
49
+ diff: same
50
+ version: v2+
51
+ anchor: channel-export-limit
52
+ path:
53
+ - protocol.bgp.channel
54
+ - protocol.babel.channel
55
+ - protocol.rip.channel
56
+ - protocol.kernel.channel
57
+ - protocol.static.channel
58
+ - protocol.pipe.channel
59
+ - protocol.ospf.channel
60
+ related:
61
+ - export
62
+ - receive limit
63
+ parameters:
64
+ - name: number
65
+ description: Maximum exported route count.
66
+ - name: action
67
+ description: Action when limit is reached, such as warn or disable.
68
+ - keyword: import
69
+ description: Import filter for channel
70
+ detail: Specify filter for routes imported from the protocol to the routing table.
71
+ diff: same
72
+ version: v2+
73
+ anchor: channel-import
74
+ path:
75
+ - protocol.bgp.channel
76
+ - protocol.babel.channel
77
+ - protocol.rip.channel
78
+ - protocol.kernel.channel
79
+ - protocol.static.channel
80
+ - protocol.pipe.channel
81
+ - protocol.ospf.channel
82
+ related:
83
+ - export
84
+ - import limit
85
+ parameters:
86
+ - name: policy
87
+ description: Import policy such as all, none, or a named filter.
88
+ - keyword: import keep filtered
89
+ description: Keep filtered routes
90
+ detail: Store routes that were filtered out during import, allowing them to be examined.
91
+ diff: same
92
+ version: v2+
93
+ anchor: channel-import-keep-filtered
94
+ path:
95
+ - protocol.bgp.channel
96
+ - protocol.babel.channel
97
+ - protocol.rip.channel
98
+ - protocol.kernel.channel
99
+ - protocol.static.channel
100
+ - protocol.pipe.channel
101
+ - protocol.ospf.channel
102
+ related:
103
+ - import
104
+ parameters:
105
+ - name: switch
106
+ description: Enable or disable preservation of filtered routes.
107
+ - keyword: import limit
108
+ description: Import route limit
109
+ detail: Set maximum number of routes that can be imported from this channel.
110
+ diff: same
111
+ version: v2+
112
+ anchor: channel-import-limit
113
+ path:
114
+ - protocol.bgp.channel
115
+ - protocol.babel.channel
116
+ - protocol.rip.channel
117
+ - protocol.kernel.channel
118
+ - protocol.static.channel
119
+ - protocol.pipe.channel
120
+ - protocol.ospf.channel
121
+ related:
122
+ - import
123
+ - receive limit
124
+ parameters:
125
+ - name: number
126
+ description: Maximum imported route count.
127
+ - name: action
128
+ description: Action when limit is reached, such as warn or block.
129
+ - keyword: ipv4
130
+ description: IPv4 channel
131
+ detail: Define an IPv4 address family channel for route exchange.
132
+ diff: same
133
+ version: v2+
134
+ anchor: channel-opts
135
+ path:
136
+ - protocol.bgp
137
+ - protocol.babel
138
+ - protocol.rip
139
+ - protocol.kernel
140
+ - protocol.static
141
+ - protocol.pipe
142
+ - protocol.ospf
143
+ related:
144
+ - ipv6
145
+ - import
146
+ - export
147
+ - keyword: ipv6
148
+ description: IPv6 channel
149
+ detail: Define an IPv6 address family channel for route exchange.
150
+ diff: same
151
+ version: v2+
152
+ anchor: channel-opts
153
+ path:
154
+ - protocol.bgp
155
+ - protocol.babel
156
+ - protocol.rip
157
+ - protocol.kernel
158
+ - protocol.static
159
+ - protocol.pipe
160
+ - protocol.ospf
161
+ related:
162
+ - ipv4
163
+ - import
164
+ - export
165
+ - keyword: preference
166
+ description: Route preference value
167
+ detail: Set the preference value for routes from this channel. Higher values are preferred.
168
+ diff: same
169
+ version: v2+
170
+ anchor: channel-preference
171
+ path:
172
+ - protocol.bgp.channel
173
+ - protocol.babel.channel
174
+ - protocol.rip.channel
175
+ - protocol.kernel.channel
176
+ - protocol.static.channel
177
+ - protocol.pipe.channel
178
+ - protocol.ospf.channel
179
+ related:
180
+ - table
181
+ - import
182
+ - export
183
+ parameters:
184
+ - name: number
185
+ description: Channel preference value.
186
+ - keyword: receive limit
187
+ description: Receive route limit
188
+ detail: Set maximum number of routes that can be received from the peer.
189
+ diff: same
190
+ version: v2+
191
+ anchor: channel-receive-limit
192
+ path:
193
+ - protocol.bgp.channel
194
+ - protocol.babel.channel
195
+ - protocol.rip.channel
196
+ - protocol.kernel.channel
197
+ - protocol.static.channel
198
+ - protocol.pipe.channel
199
+ - protocol.ospf.channel
200
+ related:
201
+ - import limit
202
+ - export limit
203
+ parameters:
204
+ - name: number
205
+ description: Maximum received route count.
206
+ - name: action
207
+ description: Action when limit is reached.
208
+ - keyword: rpki reload
209
+ description: RPKI reload behavior
210
+ detail: Configure how routes are reloaded when RPKI validation state changes.
211
+ diff: modified
212
+ version: v2-v3
213
+ anchor: channel-rpki-reload
214
+ path:
215
+ - protocol.bgp.channel
216
+ related:
217
+ - import
218
+ - export
219
+ parameters:
220
+ - name: switch
221
+ description: Enable or disable route reload on RPKI state changes.
222
+ notes:
223
+ v3: "v3 Enhanced: Supports both ROA and ASPA validation reload."
224
+ - keyword: table
225
+ description: Associate channel with routing table
226
+ detail: Specify which routing table this channel imports to and exports from.
227
+ diff: same
228
+ version: v2+
229
+ anchor: channel-table
230
+ path:
231
+ - protocol.bgp.channel
232
+ - protocol.babel.channel
233
+ - protocol.rip.channel
234
+ - protocol.kernel.channel
235
+ - protocol.static.channel
236
+ - protocol.pipe.channel
237
+ - protocol.ospf.channel
238
+ related:
239
+ - preference
240
+ - import
241
+ - export
242
+ parameters:
243
+ - name: table-name
244
+ description: Target routing table for this channel.
@@ -0,0 +1,59 @@
1
+ entries:
2
+ - keyword: description
3
+ description: Protocol description
4
+ detail: Add a human-readable description to the protocol for administrative purposes.
5
+ diff: same
6
+ version: v2+
7
+ anchor: proto-description
8
+ path: protocol
9
+ parameters:
10
+ - name: text
11
+ description: Human-readable protocol description.
12
+ - keyword: device
13
+ description: Device scan protocol
14
+ detail:
15
+ Scan network interfaces for link state changes and generate routes for directly connected
16
+ networks.
17
+ diff: same
18
+ version: v2+
19
+ anchor: proto-device
20
+ - keyword: direct
21
+ description: Direct routes protocol
22
+ detail: Generate routes for directly connected networks based on interface addresses.
23
+ diff: same
24
+ version: v2+
25
+ anchor: proto-direct
26
+ - keyword: disabled
27
+ description: Disable protocol on startup
28
+ detail: Start the protocol in disabled state. Can be enabled later via CLI.
29
+ diff: same
30
+ version: v2+
31
+ anchor: proto-disabled
32
+ path: protocol
33
+ parameters:
34
+ - name: switch
35
+ description: Enable or disable protocol startup state.
36
+ - keyword: restart time limit
37
+ description: Automatic restart time limit (v3 only)
38
+ detail: Configure automatic restart of the protocol after failure within specified time limit.
39
+ diff: added
40
+ version: v3+
41
+ anchor: proto-restart-time-limit
42
+ path: protocol
43
+ related:
44
+ - disabled
45
+ parameters:
46
+ - name: seconds
47
+ description: Restart deadline before giving up recovery.
48
+ notes:
49
+ v3: "v3 only: Automatic protocol restart on failure."
50
+ - keyword: vrf
51
+ description: Bind protocol to VRF
52
+ detail: Associate this protocol with a specific Virtual Routing and Forwarding instance.
53
+ diff: same
54
+ version: v2+
55
+ anchor: proto-vrf
56
+ path: protocol
57
+ parameters:
58
+ - name: vrf-name
59
+ description: Target VRF instance name.