@lspeasy/server 4.0.1 → 4.0.2

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.
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Capability validation for server handlers
3
3
  *
4
- * Ensures handlers can only be registered for declared capabilities
4
+ * Ensures handlers can only be registered for declared server capabilities,
5
+ * and that server-to-client messages respect declared client capabilities.
5
6
  */
6
7
  import type { ClientCapabilities, ServerCapabilities } from '@lspeasy/core';
7
8
  import type { Logger } from '@lspeasy/core';
@@ -14,15 +15,7 @@ export declare class CapabilityGuard {
14
15
  private readonly logger;
15
16
  private readonly strict;
16
17
  constructor(capabilities: Partial<ServerCapabilities>, logger: Logger, strict?: boolean);
17
- /**
18
- * Check if handler registration is allowed for this method
19
- *
20
- * @param method - LSP method name
21
- * @returns true if allowed, false otherwise
22
- * @throws Error if strict mode enabled and capability not declared
23
- */
24
18
  canRegisterHandler(method: string): boolean;
25
- getAllowedMethods(): string[];
26
19
  }
27
20
  /**
28
21
  * Validates that server-to-client messages respect declared client capabilities
@@ -32,25 +25,8 @@ export declare class ClientCapabilityGuard {
32
25
  private readonly logger;
33
26
  private readonly strict;
34
27
  constructor(capabilities: Partial<ClientCapabilities>, logger: Logger, strict?: boolean);
35
- /**
36
- * Check if a request can be sent to the client
37
- *
38
- * @param method - LSP method name
39
- * @returns true if allowed, false otherwise
40
- * @throws Error if strict mode enabled and client capability not declared
41
- */
42
28
  canSendRequest(method: string): boolean;
43
- /**
44
- * Check if a notification can be sent to the client
45
- *
46
- * @param method - LSP method name
47
- * @returns true if allowed, false otherwise
48
- * @throws Error if strict mode enabled and client capability not declared
49
- */
50
29
  canSendNotification(method: string): boolean;
51
- /**
52
- * Get list of capabilities the client declared
53
- */
54
30
  getClientCapabilities(): Partial<ClientCapabilities>;
55
31
  }
56
32
  //# sourceMappingURL=capability-guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-guard.d.ts","sourceRoot":"","sources":["../src/capability-guard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA+C5C;;;GAGG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAe,EACtC;IAEJ;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAuD1C;IAED,iBAAiB,IAAI,MAAM,EAAE,CAK5B;CACF;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAe,EACtC;IAEJ;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA2CtC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA2C3C;IAED;;OAEG;IACH,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAEnD;CACF"}
1
+ {"version":3,"file":"capability-guard.d.ts","sourceRoot":"","sources":["../src/capability-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAa5C;;;GAGG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAe,EACtC;IAEJ,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAe1C;CACF;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAe,EACtC;IAEJ,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAWtC;IAED,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAW3C;IAED,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAEnD;CACF"}
@@ -1,34 +1,10 @@
1
1
  /**
2
2
  * Capability validation for server handlers
3
3
  *
4
- * Ensures handlers can only be registered for declared capabilities
4
+ * Ensures handlers can only be registered for declared server capabilities,
5
+ * and that server-to-client messages respect declared client capabilities.
5
6
  */
6
- import { LSPNotification, LSPRequest, getClientCapabilityForNotificationMethod, getClientCapabilityForRequestMethod, hasServerCapability, hasClientCapability, getCapabilityForNotificationMethod, getCapabilityForRequestMethod } from '@lspeasy/core';
7
- function buildMethodSets(capabilityKey) {
8
- const all = new Set();
9
- const alwaysAllowed = new Set();
10
- for (const namespaceDefinitions of Object.values(LSPRequest)) {
11
- for (const definition of Object.values(namespaceDefinitions)) {
12
- const entry = definition;
13
- all.add(entry.Method);
14
- if (!entry[capabilityKey]) {
15
- alwaysAllowed.add(entry.Method);
16
- }
17
- }
18
- }
19
- for (const namespaceDefinitions of Object.values(LSPNotification)) {
20
- for (const definition of Object.values(namespaceDefinitions)) {
21
- const entry = definition;
22
- all.add(entry.Method);
23
- if (!entry[capabilityKey]) {
24
- alwaysAllowed.add(entry.Method);
25
- }
26
- }
27
- }
28
- return { all, alwaysAllowed };
29
- }
30
- const SERVER_METHODS = buildMethodSets('ServerCapability');
31
- const CLIENT_METHODS = buildMethodSets('ClientCapability');
7
+ import { SERVER_METHODS, CLIENT_METHODS, checkMethod, getClientCapabilityForNotificationMethod, getClientCapabilityForRequestMethod, hasServerCapability, hasClientCapability, getCapabilityForNotificationMethod, getCapabilityForRequestMethod } from '@lspeasy/core';
32
8
  /**
33
9
  * Validates that a handler can be registered for a method
34
10
  * based on declared server capabilities
@@ -42,66 +18,19 @@ export class CapabilityGuard {
42
18
  this.logger = logger;
43
19
  this.strict = strict;
44
20
  }
45
- /**
46
- * Check if handler registration is allowed for this method
47
- *
48
- * @param method - LSP method name
49
- * @returns true if allowed, false otherwise
50
- * @throws Error if strict mode enabled and capability not declared
51
- */
52
21
  canRegisterHandler(method) {
53
- if (!SERVER_METHODS.all.has(method)) {
54
- if (!this.strict) {
55
- this.logger.debug(`Unknown method ${method}, allowing in non-strict mode`);
56
- return true;
57
- }
58
- const error = `Cannot register handler for unknown method: ${method}`;
59
- this.logger.error(error);
60
- if (this.strict) {
61
- throw new Error(error);
62
- }
63
- return false;
64
- }
65
- if (SERVER_METHODS.alwaysAllowed.has(method)) {
66
- return true;
67
- }
68
- // Check if method requires a capability (try both request and notification)
69
- let capabilityKey = getCapabilityForRequestMethod(method);
70
- if (!capabilityKey) {
71
- capabilityKey = getCapabilityForNotificationMethod(method);
72
- }
73
- if (!capabilityKey) {
74
- // Unknown method - allow in non-strict mode
75
- if (!this.strict) {
76
- this.logger.debug(`Unknown method ${method}, allowing in non-strict mode`);
77
- return true;
78
- }
79
- const error = `Cannot register handler for unknown method: ${method}`;
80
- this.logger.error(error);
81
- if (this.strict) {
82
- throw new Error(error);
83
- }
84
- return false;
85
- }
86
- if (capabilityKey === 'alwaysOn') {
87
- return true;
88
- }
89
- // Check if capability is declared
90
- if (!hasServerCapability(this.capabilities, capabilityKey)) {
91
- const error = `Cannot register handler for ${method}: server capability '${capabilityKey}' not declared`;
92
- this.logger.warn(error);
93
- if (this.strict) {
94
- throw new Error(error);
95
- }
96
- return false;
97
- }
98
- return true;
99
- }
100
- getAllowedMethods() {
101
- // This would require iterating through all LSP methods
102
- // For now, return an empty array - can be enhanced if needed
103
- this.logger.warn('getAllowedMethods not fully implemented - returns empty array');
104
- return [];
22
+ return checkMethod({
23
+ method,
24
+ methodSets: SERVER_METHODS,
25
+ getCapabilityKey: (m) => {
26
+ return (getCapabilityForRequestMethod(m) ?? getCapabilityForNotificationMethod(m));
27
+ },
28
+ hasCapability: (key) => hasServerCapability(this.capabilities, key),
29
+ actionLabel: 'register handler',
30
+ capabilityLabel: 'server capability',
31
+ logger: this.logger,
32
+ strict: this.strict
33
+ });
105
34
  }
106
35
  }
107
36
  /**
@@ -116,95 +45,30 @@ export class ClientCapabilityGuard {
116
45
  this.logger = logger;
117
46
  this.strict = strict;
118
47
  }
119
- /**
120
- * Check if a request can be sent to the client
121
- *
122
- * @param method - LSP method name
123
- * @returns true if allowed, false otherwise
124
- * @throws Error if strict mode enabled and client capability not declared
125
- */
126
48
  canSendRequest(method) {
127
- if (!CLIENT_METHODS.all.has(method)) {
128
- if (!this.strict) {
129
- this.logger.debug(`Unknown request method ${method}, allowing in non-strict mode`);
130
- return true;
131
- }
132
- const error = `Cannot send request for unknown method: ${method}`;
133
- this.logger.error(error);
134
- throw new Error(error);
135
- }
136
- if (CLIENT_METHODS.alwaysAllowed.has(method)) {
137
- return true;
138
- }
139
- const capabilityKey = getClientCapabilityForRequestMethod(method);
140
- if (!capabilityKey) {
141
- if (!this.strict) {
142
- this.logger.debug(`Unknown request method ${method}, allowing in non-strict mode`);
143
- return true;
144
- }
145
- const error = `Cannot send request for unknown method: ${method}`;
146
- this.logger.error(error);
147
- throw new Error(error);
148
- }
149
- if (capabilityKey === 'alwaysOn') {
150
- return true;
151
- }
152
- if (!hasClientCapability(this.capabilities, capabilityKey)) {
153
- const error = `Cannot send request ${method}: client capability '${capabilityKey}' not declared`;
154
- this.logger.warn(error);
155
- if (this.strict) {
156
- throw new Error(error);
157
- }
158
- return false;
159
- }
160
- return true;
49
+ return checkMethod({
50
+ method,
51
+ methodSets: CLIENT_METHODS,
52
+ getCapabilityKey: (m) => getClientCapabilityForRequestMethod(m),
53
+ hasCapability: (key) => hasClientCapability(this.capabilities, key),
54
+ actionLabel: 'send request',
55
+ capabilityLabel: 'client capability',
56
+ logger: this.logger,
57
+ strict: this.strict
58
+ });
161
59
  }
162
- /**
163
- * Check if a notification can be sent to the client
164
- *
165
- * @param method - LSP method name
166
- * @returns true if allowed, false otherwise
167
- * @throws Error if strict mode enabled and client capability not declared
168
- */
169
60
  canSendNotification(method) {
170
- if (!CLIENT_METHODS.all.has(method)) {
171
- if (!this.strict) {
172
- this.logger.debug(`Unknown notification method ${method}, allowing in non-strict mode`);
173
- return true;
174
- }
175
- const error = `Cannot send notification for unknown method: ${method}`;
176
- this.logger.error(error);
177
- throw new Error(error);
178
- }
179
- if (CLIENT_METHODS.alwaysAllowed.has(method)) {
180
- return true;
181
- }
182
- const capabilityKey = getClientCapabilityForNotificationMethod(method);
183
- if (!capabilityKey) {
184
- if (!this.strict) {
185
- this.logger.debug(`Unknown notification method ${method}, allowing in non-strict mode`);
186
- return true;
187
- }
188
- const error = `Cannot send notification for unknown method: ${method}`;
189
- this.logger.error(error);
190
- throw new Error(error);
191
- }
192
- if (capabilityKey === 'alwaysOn') {
193
- return true;
194
- }
195
- if (!hasClientCapability(this.capabilities, capabilityKey)) {
196
- const error = `Cannot send notification ${method}: client capability '${capabilityKey}' not declared`;
197
- this.logger.warn(error);
198
- if (this.strict) {
199
- throw new Error(error);
200
- }
201
- return false;
202
- }
203
- return true;
61
+ return checkMethod({
62
+ method,
63
+ methodSets: CLIENT_METHODS,
64
+ getCapabilityKey: (m) => getClientCapabilityForNotificationMethod(m),
65
+ hasCapability: (key) => hasClientCapability(this.capabilities, key),
66
+ actionLabel: 'send notification',
67
+ capabilityLabel: 'client capability',
68
+ logger: this.logger,
69
+ strict: this.strict
70
+ });
204
71
  }
205
- /**
206
- * Get list of capabilities the client declared
207
- */
208
72
  getClientCapabilities() {
209
73
  return { ...this.capabilities };
210
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"capability-guard.js","sourceRoot":"","sources":["../src/capability-guard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,eAAe,EACf,UAAU,EACV,wCAAwC,EACxC,mCAAmC,EACnC,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AAIvB,SAAS,eAAe,CAAC,aAA4B,EAGnD;IACA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAA4E,CAAC;YAC3F,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAA4E,CAAC;YAC3F,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAC3D,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAE3D;;;GAGG;AACH,MAAM,OAAO,eAAe;IAEP,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK,EACxC;4BAHiB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAc,EAAW;QAC1C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,+BAA+B,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,+CAA+C,MAAM,EAAE,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4EAA4E;QAC5E,IAAI,aAAa,GAAG,6BAA6B,CAAC,MAAa,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,kCAAkC,CAAC,MAAa,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,4CAA4C;YAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,+BAA+B,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,+CAA+C,MAAM,EAAE,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,+BAA+B,MAAM,wBAAwB,aAAa,gBAAgB,CAAC;YACzG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IAAA,CACb;IAED,iBAAiB,GAAa;QAC5B,uDAAuD;QACvD,6DAA6D;QAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IAAA,CACX;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAEb,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK,EACxC;4BAHiB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ;;;;;;OAMG;IACH,cAAc,CAAC,MAAc,EAAW;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,+BAA+B,CAAC,CAAC;gBACnF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,2CAA2C,MAAM,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,mCAAmC,CAAC,MAAa,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,+BAA+B,CAAC,CAAC;gBACnF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,2CAA2C,MAAM,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAoB,CAAC,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,uBAAuB,MAAM,wBAAwB,aAAa,gBAAgB,CAAC;YACjG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IAAA,CACb;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,MAAc,EAAW;QAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,+BAA+B,CAAC,CAAC;gBACxF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,gDAAgD,MAAM,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,wCAAwC,CAAC,MAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,+BAA+B,CAAC,CAAC;gBACxF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,gDAAgD,MAAM,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAoB,CAAC,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,4BAA4B,MAAM,wBAAwB,aAAa,gBAAgB,CAAC;YACtG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IAAA,CACb;IAED;;OAEG;IACH,qBAAqB,GAAgC;QACnD,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAAA,CACjC;CACF"}
1
+ {"version":3,"file":"capability-guard.js","sourceRoot":"","sources":["../src/capability-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,wCAAwC,EACxC,mCAAmC,EACnC,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,OAAO,eAAe;IAEP,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK,EACxC;4BAHiB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ,kBAAkB,CAAC,MAAc,EAAW;QAC1C,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBACvB,OAAO,CACL,6BAA6B,CAAC,CAAQ,CAAC,IAAI,kCAAkC,CAAC,CAAQ,CAAC,CACxF,CAAC;YAAA,CACH;YACD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,kBAAkB;YAC/B,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IAAA,CACJ;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAEb,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK,EACxC;4BAHiB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ,cAAc,CAAC,MAAc,EAAW;QACtC,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,mCAAmC,CAAC,CAAQ,CAAC;YACtE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,cAAc;YAC3B,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IAAA,CACJ;IAED,mBAAmB,CAAC,MAAc,EAAW;QAC3C,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,wCAAwC,CAAC,CAAQ,CAAC;YAC3E,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,mBAAmB;YAChC,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IAAA,CACJ;IAED,qBAAqB,GAAgC;QACnD,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAAA,CACjC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lspeasy/server",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Build LSP servers with simple, typed API",
5
5
  "private": false,
6
6
  "keywords": [
@@ -37,7 +37,7 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "@lspeasy/core": "2.1.1"
40
+ "@lspeasy/core": "2.1.2"
41
41
  },
42
42
  "optionalDependencies": {
43
43
  "zod": "^4.3.6"