xypriss 9.10.0 → 9.10.1

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,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
+ var PluginHookIds = require('../const/PluginHookIds.js');
4
+
3
5
  /**
4
6
  * Plugin API
5
7
  * Public API for plugin management as documented in PLUGIN_SYSTEM_GUIDE.md
6
8
  */
7
- // ─── Internal State ──────────────────────────────────────────────────────────
8
9
  // ─── Blocked / Private members ───────────────────────────────────────────────
9
10
  /**
10
11
  * Methods that must never be accessible from outside the module.
@@ -113,6 +114,14 @@ class PluginAPI {
113
114
  assertNonEmptyString(Sys, "XyPriss Initialization Error: To create a plugin, you MUST provide the plugin's root path or its '__sys__' instance as the second argument to Plugin.create().\n" +
114
115
  "Example: return Plugin.create({ ... }, __sys__.__root__);");
115
116
  plugin.__root__ = Sys;
117
+ if (!plugin.name || typeof plugin.name !== "string") {
118
+ throw new Error(`XyPriss Plugin Error: "name" is missing or invalid.`);
119
+ }
120
+ for (const field of ["description", "version"]) {
121
+ if (!plugin[field] || typeof plugin[field] !== "string") {
122
+ throw new Error(`XyPriss Plugin Error: "${field}" is missing or invalid on plugin "${plugin.name}".`);
123
+ }
124
+ }
116
125
  return plugin;
117
126
  }
118
127
  /**
@@ -168,7 +177,84 @@ class PluginAPI {
168
177
  return {
169
178
  name: `void-plugin-${Math.random().toString(36).slice(2, 9)}`,
170
179
  version: "1.0.0",
180
+ description: "A void plugin for testing purposes.",
181
+ };
182
+ }
183
+ /**
184
+ * Performs a deep inspection of a plugin instance to identify and list all required
185
+ * cryptographic permissions based on implemented hooks.
186
+ *
187
+ * This utility is designed for developers to use during the preparation of their
188
+ * `package.json` manifest (`xfpm.permissions` field).
189
+ *
190
+ * @param plugin - The XyPriss plugin instance to inspect.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * const myPlugin = Plugin.create({ ... }, __sys__.__root__);
195
+ * Plugin.inspect(myPlugin);
196
+ * ```
197
+ */
198
+ inspect(plugin) {
199
+ const header = `[XyPriss Plugin Inspector] ${plugin.name} v${plugin.version}`;
200
+ const line = "═".repeat(header.length);
201
+ const c = {
202
+ reset: "\x1b[0m",
203
+ bold: "\x1b[1m",
204
+ dim: "\x1b[2m",
205
+ cyan: "\x1b[36m",
206
+ green: "\x1b[32m",
207
+ yellow: "\x1b[33m",
208
+ red: "\x1b[31m",
209
+ gray: "\x1b[90m",
210
+ magenta: "\x1b[35m",
171
211
  };
212
+ console.log(`\n${c.cyan}${line}${c.reset}`);
213
+ console.log(`${c.bold}${c.cyan}${header}${c.reset}`);
214
+ console.log(`${c.cyan}${line}${c.reset}`);
215
+ console.log(`${c.bold}Project Root:${c.reset} ${c.gray}${plugin.__root__ || "Not Captured"}${c.reset}`);
216
+ console.log(`\n${c.magenta}${c.bold}Detected Hooks & Authorized Permission IDs:${c.reset}`);
217
+ Object.entries(plugin);
218
+ const hookKeys = Object.keys(PluginHookIds.HOOK_ID_MAP);
219
+ let foundCount = 0;
220
+ // List of privileged IDs that require explicit authorization
221
+ const privilegedIds = [
222
+ "PLG.MANAGEMENT.MANAGE_PLUGINS",
223
+ "XHS.PERM.LOGGING.CONSOLE_INTERCEPT",
224
+ "XHS.PERM.OPS.AUXILIARY_SERVER",
225
+ "XHS.PERM.ROUTING.BYPASS_NAMESPACE",
226
+ "XHS.PERM.ROUTING.OVERWRITE_PROTECTED",
227
+ "XHS.PERM.HTTP.GLOBAL_MIDDLEWARE",
228
+ "XHS.PERM.SECURITY.CONFIGS",
229
+ "XHS.PERM.SECURITY.SENSITIVE_DATA",
230
+ "XHS.HOOK.HTTP.REQUEST",
231
+ "XHS.HOOK.HTTP.RESPONSE",
232
+ ];
233
+ // DEEP SCAN: Check all known hook and permission keys
234
+ for (const key of hookKeys) {
235
+ const hookId = PluginHookIds.HOOK_ID_MAP[key];
236
+ const value = plugin[key];
237
+ // If the key exists on the plugin instance (function, boolean, array, etc.)
238
+ if (value !== undefined) {
239
+ foundCount++;
240
+ const meta = PluginHookIds.HOOK_METADATA[hookId];
241
+ const isPrivileged = privilegedIds.includes(hookId);
242
+ console.log(`\n ${c.cyan}○${c.reset} ${c.bold}Hook/Capability:${c.reset} ${c.green}${key}${c.reset}`);
243
+ console.log(` ${c.bold}ID:${c.reset} ${c.yellow}${hookId}${c.reset} ${isPrivileged ? `${c.red}${c.bold}⚠️ [PRIVILEGED]${c.reset}` : ""}`);
244
+ if (meta) {
245
+ console.log(` ${c.gray}Role:${c.reset} ${meta.action}`);
246
+ console.log(` ${c.gray}Info:${c.reset} ${c.dim}${meta.description}${c.reset}`);
247
+ }
248
+ }
249
+ }
250
+ if (foundCount === 0) {
251
+ console.log(`\n ${c.yellow}No hooks requiring special permissions were detected in this plugin.${c.reset}`);
252
+ }
253
+ else {
254
+ console.log(`\n${c.bold}${c.green}Summary: Found ${foundCount} required permissions.${c.reset}`);
255
+ console.log(`\n${c.bold}${c.cyan}TIP:${c.reset} Copy the IDs above into your package.json's ${c.bold}"xfpm.permissions"${c.reset} array.`);
256
+ }
257
+ console.log(`\n${c.cyan}${line}${c.reset}\n`);
172
258
  }
173
259
  }
174
260
  // ─── Proxy Shield ─────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"PluginAPI.js","sources":["../../../../../src/plugins/api/PluginAPI.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginAPI.js","sources":["../../../../../src/plugins/api/PluginAPI.ts"],"sourcesContent":[null],"names":["HOOK_ID_MAP","HOOK_METADATA"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import { HOOK_ID_MAP, HOOK_METADATA } from '../const/PluginHookIds.js';
2
+
1
3
  /**
2
4
  * Plugin API
3
5
  * Public API for plugin management as documented in PLUGIN_SYSTEM_GUIDE.md
4
6
  */
5
- // ─── Internal State ──────────────────────────────────────────────────────────
6
7
  // ─── Blocked / Private members ───────────────────────────────────────────────
7
8
  /**
8
9
  * Methods that must never be accessible from outside the module.
@@ -111,6 +112,14 @@ class PluginAPI {
111
112
  assertNonEmptyString(Sys, "XyPriss Initialization Error: To create a plugin, you MUST provide the plugin's root path or its '__sys__' instance as the second argument to Plugin.create().\n" +
112
113
  "Example: return Plugin.create({ ... }, __sys__.__root__);");
113
114
  plugin.__root__ = Sys;
115
+ if (!plugin.name || typeof plugin.name !== "string") {
116
+ throw new Error(`XyPriss Plugin Error: "name" is missing or invalid.`);
117
+ }
118
+ for (const field of ["description", "version"]) {
119
+ if (!plugin[field] || typeof plugin[field] !== "string") {
120
+ throw new Error(`XyPriss Plugin Error: "${field}" is missing or invalid on plugin "${plugin.name}".`);
121
+ }
122
+ }
114
123
  return plugin;
115
124
  }
116
125
  /**
@@ -166,7 +175,84 @@ class PluginAPI {
166
175
  return {
167
176
  name: `void-plugin-${Math.random().toString(36).slice(2, 9)}`,
168
177
  version: "1.0.0",
178
+ description: "A void plugin for testing purposes.",
179
+ };
180
+ }
181
+ /**
182
+ * Performs a deep inspection of a plugin instance to identify and list all required
183
+ * cryptographic permissions based on implemented hooks.
184
+ *
185
+ * This utility is designed for developers to use during the preparation of their
186
+ * `package.json` manifest (`xfpm.permissions` field).
187
+ *
188
+ * @param plugin - The XyPriss plugin instance to inspect.
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * const myPlugin = Plugin.create({ ... }, __sys__.__root__);
193
+ * Plugin.inspect(myPlugin);
194
+ * ```
195
+ */
196
+ inspect(plugin) {
197
+ const header = `[XyPriss Plugin Inspector] ${plugin.name} v${plugin.version}`;
198
+ const line = "═".repeat(header.length);
199
+ const c = {
200
+ reset: "\x1b[0m",
201
+ bold: "\x1b[1m",
202
+ dim: "\x1b[2m",
203
+ cyan: "\x1b[36m",
204
+ green: "\x1b[32m",
205
+ yellow: "\x1b[33m",
206
+ red: "\x1b[31m",
207
+ gray: "\x1b[90m",
208
+ magenta: "\x1b[35m",
169
209
  };
210
+ console.log(`\n${c.cyan}${line}${c.reset}`);
211
+ console.log(`${c.bold}${c.cyan}${header}${c.reset}`);
212
+ console.log(`${c.cyan}${line}${c.reset}`);
213
+ console.log(`${c.bold}Project Root:${c.reset} ${c.gray}${plugin.__root__ || "Not Captured"}${c.reset}`);
214
+ console.log(`\n${c.magenta}${c.bold}Detected Hooks & Authorized Permission IDs:${c.reset}`);
215
+ Object.entries(plugin);
216
+ const hookKeys = Object.keys(HOOK_ID_MAP);
217
+ let foundCount = 0;
218
+ // List of privileged IDs that require explicit authorization
219
+ const privilegedIds = [
220
+ "PLG.MANAGEMENT.MANAGE_PLUGINS",
221
+ "XHS.PERM.LOGGING.CONSOLE_INTERCEPT",
222
+ "XHS.PERM.OPS.AUXILIARY_SERVER",
223
+ "XHS.PERM.ROUTING.BYPASS_NAMESPACE",
224
+ "XHS.PERM.ROUTING.OVERWRITE_PROTECTED",
225
+ "XHS.PERM.HTTP.GLOBAL_MIDDLEWARE",
226
+ "XHS.PERM.SECURITY.CONFIGS",
227
+ "XHS.PERM.SECURITY.SENSITIVE_DATA",
228
+ "XHS.HOOK.HTTP.REQUEST",
229
+ "XHS.HOOK.HTTP.RESPONSE",
230
+ ];
231
+ // DEEP SCAN: Check all known hook and permission keys
232
+ for (const key of hookKeys) {
233
+ const hookId = HOOK_ID_MAP[key];
234
+ const value = plugin[key];
235
+ // If the key exists on the plugin instance (function, boolean, array, etc.)
236
+ if (value !== undefined) {
237
+ foundCount++;
238
+ const meta = HOOK_METADATA[hookId];
239
+ const isPrivileged = privilegedIds.includes(hookId);
240
+ console.log(`\n ${c.cyan}○${c.reset} ${c.bold}Hook/Capability:${c.reset} ${c.green}${key}${c.reset}`);
241
+ console.log(` ${c.bold}ID:${c.reset} ${c.yellow}${hookId}${c.reset} ${isPrivileged ? `${c.red}${c.bold}⚠️ [PRIVILEGED]${c.reset}` : ""}`);
242
+ if (meta) {
243
+ console.log(` ${c.gray}Role:${c.reset} ${meta.action}`);
244
+ console.log(` ${c.gray}Info:${c.reset} ${c.dim}${meta.description}${c.reset}`);
245
+ }
246
+ }
247
+ }
248
+ if (foundCount === 0) {
249
+ console.log(`\n ${c.yellow}No hooks requiring special permissions were detected in this plugin.${c.reset}`);
250
+ }
251
+ else {
252
+ console.log(`\n${c.bold}${c.green}Summary: Found ${foundCount} required permissions.${c.reset}`);
253
+ console.log(`\n${c.bold}${c.cyan}TIP:${c.reset} Copy the IDs above into your package.json's ${c.bold}"xfpm.permissions"${c.reset} array.`);
254
+ }
255
+ console.log(`\n${c.cyan}${line}${c.reset}\n`);
170
256
  }
171
257
  }
172
258
  // ─── Proxy Shield ─────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"PluginAPI.js","sources":["../../../../../src/plugins/api/PluginAPI.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginAPI.js","sources":["../../../../../src/plugins/api/PluginAPI.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7427,7 +7427,7 @@ interface XyPrissPlugin {
7427
7427
  name: string;
7428
7428
  version: string;
7429
7429
  type?: string;
7430
- description?: string;
7430
+ description: string;
7431
7431
  /**
7432
7432
  * @internal - Captured project root of the plugin.
7433
7433
  * Used for contract security verification.
@@ -11004,6 +11004,22 @@ declare class PluginAPI {
11004
11004
  * Useful for testing or conditional plugin slots.
11005
11005
  */
11006
11006
  void(): XyPrissPlugin;
11007
+ /**
11008
+ * Performs a deep inspection of a plugin instance to identify and list all required
11009
+ * cryptographic permissions based on implemented hooks.
11010
+ *
11011
+ * This utility is designed for developers to use during the preparation of their
11012
+ * `package.json` manifest (`xfpm.permissions` field).
11013
+ *
11014
+ * @param plugin - The XyPriss plugin instance to inspect.
11015
+ *
11016
+ * @example
11017
+ * ```typescript
11018
+ * const myPlugin = Plugin.create({ ... }, __sys__.__root__);
11019
+ * Plugin.inspect(myPlugin);
11020
+ * ```
11021
+ */
11022
+ inspect(plugin: XyPrissPlugin): void;
11007
11023
  }
11008
11024
  declare const Plugin: Readonly<Omit<PluginAPI, "register">>;
11009
11025
 
package/package.json CHANGED
@@ -70,5 +70,5 @@
70
70
  },
71
71
  "type": "module",
72
72
  "types": "./dist/index.d.ts",
73
- "version": "9.10.0"
73
+ "version": "9.10.1"
74
74
  }