@tagma/core 0.1.3 → 0.1.4
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.
- package/dist/registry.d.ts +2 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +40 -17
- package/dist/registry.js.map +1 -1
- package/package.json +1 -1
package/dist/registry.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ export declare function readPluginManifest(pkgJson: unknown): PluginManifest | n
|
|
|
33
33
|
*/
|
|
34
34
|
export declare class PluginRegistry {
|
|
35
35
|
private readonly registries;
|
|
36
|
+
private validatePluginRegistration;
|
|
37
|
+
private assertCanRegister;
|
|
36
38
|
/**
|
|
37
39
|
* Register a plugin under (category, type). Returns:
|
|
38
40
|
* - 'registered' on first registration
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAKd,cAAc,EACd,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,KAAK,UAAU,GAAG,iBAAiB,CAAC;AAYpC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAKd,cAAc,EACd,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,KAAK,UAAU,GAAG,iBAAiB,CAAC;AAYpC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AA4FD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AACrE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAKD,eAAO,MAAM,cAAc,QAA4D,CAAC;AAExF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAE/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAwB1E;AA0BD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAKzB;IAEF,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,iBAAiB;IAgBzB;;;;;;;;;OASG;IACH,cAAc,CAAC,CAAC,SAAS,UAAU,EACjC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,EACV,OAAO,GAAE,qBAA0B,GAClC,cAAc;IAWjB,mBAAmB,CACjB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,EAAE;IAwDzB;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAKjE,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAW3E,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3D,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE;IAIlD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBvF"}
|
package/dist/registry.js
CHANGED
|
@@ -167,6 +167,27 @@ export class PluginRegistry {
|
|
|
167
167
|
completions: new Map(),
|
|
168
168
|
middlewares: new Map(),
|
|
169
169
|
};
|
|
170
|
+
validatePluginRegistration(category, type, handler) {
|
|
171
|
+
if (!VALID_CATEGORIES.has(category)) {
|
|
172
|
+
throw new Error(`Unknown plugin category "${category}"`);
|
|
173
|
+
}
|
|
174
|
+
if (typeof type !== 'string' || type.length === 0) {
|
|
175
|
+
throw new Error(`Plugin type must be a non-empty string (category="${category}")`);
|
|
176
|
+
}
|
|
177
|
+
if (!PLUGIN_TYPE_RE.test(type)) {
|
|
178
|
+
throw new Error(`Plugin type "${type}" must match ${PLUGIN_TYPE_RE} (letters, digits, underscores, hyphens; no paths or dots)`);
|
|
179
|
+
}
|
|
180
|
+
validateContract(category, handler);
|
|
181
|
+
}
|
|
182
|
+
assertCanRegister(category, type, handler, options) {
|
|
183
|
+
const registry = this.registries[category];
|
|
184
|
+
const existing = registry.get(type);
|
|
185
|
+
if (existing === undefined || existing === handler)
|
|
186
|
+
return;
|
|
187
|
+
if (options.replace !== true) {
|
|
188
|
+
throw new Error(`Duplicate plugin capability "${category}/${type}". Unregister the existing handler first, or pass { replace: true } for an intentional hot replacement.`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
170
191
|
/**
|
|
171
192
|
* Register a plugin under (category, type). Returns:
|
|
172
193
|
* - 'registered' on first registration
|
|
@@ -178,24 +199,13 @@ export class PluginRegistry {
|
|
|
178
199
|
* already registered for the same category/type without `{ replace: true }`.
|
|
179
200
|
*/
|
|
180
201
|
registerPlugin(category, type, handler, options = {}) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
if (typeof type !== 'string' || type.length === 0) {
|
|
185
|
-
throw new Error(`Plugin type must be a non-empty string (category="${category}")`);
|
|
186
|
-
}
|
|
187
|
-
if (!PLUGIN_TYPE_RE.test(type)) {
|
|
188
|
-
throw new Error(`Plugin type "${type}" must match ${PLUGIN_TYPE_RE} (letters, digits, underscores, hyphens; no paths or dots)`);
|
|
189
|
-
}
|
|
190
|
-
validateContract(category, handler);
|
|
202
|
+
this.validatePluginRegistration(category, type, handler);
|
|
203
|
+
this.assertCanRegister(category, type, handler, options);
|
|
191
204
|
const registry = this.registries[category];
|
|
192
205
|
const existing = registry.get(type);
|
|
193
206
|
if (existing === handler)
|
|
194
207
|
return 'unchanged';
|
|
195
208
|
const wasReplaced = existing !== undefined;
|
|
196
|
-
if (wasReplaced && options.replace !== true) {
|
|
197
|
-
throw new Error(`Duplicate plugin capability "${category}/${type}". Unregister the existing handler first, or pass { replace: true } for an intentional hot replacement.`);
|
|
198
|
-
}
|
|
199
209
|
registry.set(type, handler);
|
|
200
210
|
return wasReplaced ? 'replaced' : 'registered';
|
|
201
211
|
}
|
|
@@ -206,7 +216,7 @@ export class PluginRegistry {
|
|
|
206
216
|
if (!plugin.capabilities) {
|
|
207
217
|
throw new Error(`TagmaPlugin "${plugin.name}" must declare capabilities`);
|
|
208
218
|
}
|
|
209
|
-
const
|
|
219
|
+
const pending = [];
|
|
210
220
|
const capabilities = plugin.capabilities;
|
|
211
221
|
for (const category of CAPABILITY_CATEGORIES) {
|
|
212
222
|
const handlers = capabilities[category];
|
|
@@ -216,13 +226,26 @@ export class PluginRegistry {
|
|
|
216
226
|
throw new Error(`TagmaPlugin "${plugin.name}" capabilities.${category} must be an object map`);
|
|
217
227
|
}
|
|
218
228
|
for (const [type, handler] of Object.entries(handlers)) {
|
|
219
|
-
const
|
|
220
|
-
|
|
229
|
+
const pendingCapability = { category, type, handler: handler };
|
|
230
|
+
this.validatePluginRegistration(pendingCapability.category, pendingCapability.type, pendingCapability.handler);
|
|
231
|
+
pending.push(pendingCapability);
|
|
221
232
|
}
|
|
222
233
|
}
|
|
223
|
-
if (
|
|
234
|
+
if (pending.length === 0) {
|
|
224
235
|
throw new Error(`TagmaPlugin "${plugin.name}" must declare at least one supported capability`);
|
|
225
236
|
}
|
|
237
|
+
for (const capability of pending) {
|
|
238
|
+
this.assertCanRegister(capability.category, capability.type, capability.handler, options);
|
|
239
|
+
}
|
|
240
|
+
const registered = [];
|
|
241
|
+
for (const capability of pending) {
|
|
242
|
+
const result = this.registerPlugin(capability.category, capability.type, capability.handler, options);
|
|
243
|
+
registered.push({
|
|
244
|
+
category: capability.category,
|
|
245
|
+
type: capability.type,
|
|
246
|
+
result,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
226
249
|
return registered;
|
|
227
250
|
}
|
|
228
251
|
/**
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC,MAAM,qBAAqB,GAAG;IAC5B,SAAS;IACT,UAAU;IACV,aAAa;IACb,aAAa;CAC+B,CAAC;AAE/C,MAAM,gBAAgB,GAAgC,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACrF,MAAM,cAAc,GAAG,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|