xypriss-swagger 1.0.20 → 1.0.26

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/.ts ADDED
@@ -0,0 +1,14 @@
1
+ import * as crypto from "node:crypto";
2
+ const privateKeyHex =
3
+ "302e020100300506032b6570042204209e313d8086c485206e5f74673a77df2105929b6134e8acdd36445a0b931747fd";
4
+ const privateKey = crypto.createPrivateKey({
5
+ key: Buffer.from(privateKeyHex, "hex"),
6
+ format: "der",
7
+ type: "pkcs8",
8
+ });
9
+ const data =
10
+ "xypriss-swagger:1.0.22:/home/idevo/Documents/projects/XyPriss/mods/swagger";
11
+ const signature = crypto
12
+ .sign(undefined, Buffer.from(data), privateKey)
13
+ .toString("hex");
14
+ console.log(signature);
package/README.md CHANGED
@@ -8,9 +8,17 @@ Auto-documentation execution plugin for XyPriss Router V2.
8
8
  - Securely sandboxed within the XyPriss ecosystem.
9
9
  - Caller-aware dependency injection with strict route filtering.
10
10
 
11
+ ## Security Identity & Verification
12
+
13
+ > [!IMPORTANT]
14
+ > This plugin is secured with the XyPriss G3 Zero-Trust protocol. You MUST manually verify this Public Key during installation.
15
+
16
+ **Developer ID (Public Key):**
17
+ `ed25519:a58b17a3e46302dd3ae5538bc9b8b991c57f4c5fe2e7d8ac41803de818d947f4`
18
+
11
19
  ## Usage
12
20
 
13
- This module is designed to be loaded natively by the XyPriss plugin manager. Ensure that it is authorized in your `xypriss.config.json` inside the `$internal` block.
21
+ This module is designed to be loaded natively by the XyPriss plugin manager. Ensure that it is authorized in your `xypriss.config.jsonc` inside the `$internal` block, including the cryptographic signature.
14
22
 
15
23
  ```json
16
24
  {
@@ -18,19 +26,21 @@ This module is designed to be loaded natively by the XyPriss plugin manager. Ens
18
26
  "xypriss-swagger": {
19
27
  "type": "plugin",
20
28
  "__meta__": {
21
- "path": "ROOT://",
29
+ "path": "ROOT://"
22
30
  },
23
31
  "__xfs__": {
24
- "path": "CWD://",
32
+ "path": "CWD://"
25
33
  },
26
34
  "permissions": {
27
- "allowedHooks": ["PLG.OPS.AUXILIARY_SERVER", "PLG.SECURITY.ACCESS_CONFIGS"],
28
- "policy": "allow",
29
- },
30
- },
31
- },
35
+ "allowedHooks": [
36
+ "PLG.OPS.AUXILIARY_SERVER",
37
+ "PLG.SECURITY.ACCESS_CONFIGS"
38
+ ],
39
+ "policy": "allow"
40
+ }
41
+ }
42
+ }
32
43
  }
33
-
34
44
  ```
35
45
 
36
46
  > [!NOTE]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import { logger, Logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { SwaggerServer } from \"./server\";\nimport { SwaggerConfig } from \"./types\";\nimport { Plugin } from \"xypriss\";\n\nconst pluginName = toPascalCase(meta.name);\nexport function SwaggerPlugin(config: SwaggerConfig) {\n return Plugin.create(\n {\n name: meta.name,\n version: meta.version,\n description: meta.description,\n onRegister(_error) {\n const log = Logger.for(\"Bootstrap\");\n log.info(\"Starting swagger plugin...\");\n if (_error) {\n log.error(pluginName + \" plugin failed to start:\", _error);\n }\n },\n onServerStart(server) {\n logger.success(pluginName + \" plugin has started\");\n\n server.app.get(\"/swagger\", (_req: any, res: any) => {\n res.redirect(`http://localhost:${config.port}`);\n });\n },\n onAuxiliaryServerDeploy(ops, server) {\n SwaggerServer(config, ops, server);\n },\n }, \n __sys__.__root__,\n );\n}\n\n"],"names":["pluginName","toPascalCase","meta","name","config","Plugin","create","version","description","onRegister","_error","log","Logger","for","info","error","onServerStart","server","logger","success","app","get","_req","res","redirect","port","onAuxiliaryServerDeploy","ops","SwaggerServer","__sys__","__root__"],"mappings":"+HAMA,MAAMA,EAAaC,EAAAA,aAAaC,EAAAA,KAAKC,4BAC/B,SAAwBC,GAC1B,OAAOC,EAAAA,OAAOC,OACV,CACIH,KAAMD,EAAAA,KAAKC,KACXI,QAASL,EAAAA,KAAKK,QACdC,YAAaN,EAAAA,KAAKM,YAClB,UAAAC,CAAWC,GACP,MAAMC,EAAMC,EAAAA,OAAOC,IAAI,aACvBF,EAAIG,KAAK,8BACLJ,GACAC,EAAII,MAAMf,EAAa,2BAA4BU,EAE3D,EACA,aAAAM,CAAcC,GACVC,SAAOC,QAAQnB,EAAa,uBAE5BiB,EAAOG,IAAIC,IAAI,WAAY,CAACC,EAAWC,KACnCA,EAAIC,SAAS,oBAAoBpB,EAAOqB,SAEhD,EACA,uBAAAC,CAAwBC,EAAKV,GACzBW,EAAAA,cAAcxB,EAAQuB,EAC1B,GAEJE,QAAQC,SAEhB"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import { logger, Logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { SwaggerServer } from \"./server\";\nimport { SwaggerConfig } from \"./types\";\nimport { Plugin } from \"xypriss\";\n\nconst pluginName = toPascalCase(meta.name);\nexport function SwaggerPlugin(config: SwaggerConfig) {\n return Plugin.create(\n {\n name: meta.name,\n version: meta.version,\n description: meta.description,\n onRegister(_error) {\n const log = Logger.for(\"Bootstrap\");\n log.info(\"Starting swagger plugin...\");\n if (_error) {\n log.error(pluginName + \" plugin failed to start:\", _error);\n }\n },\n onServerStart(server) {\n logger.success(pluginName + \" plugin has started\");\n\n server.app.get(\"/swagger\", (_req: any, res: any) => {\n res.redirect(`http://localhost:${config.port}`);\n });\n },\n onAuxiliaryServerDeploy(ops, server) {\n SwaggerServer(config, ops, server);\n },\n }, \n __sys__.__root__,\n );\n}"],"names":["pluginName","toPascalCase","meta","name","config","Plugin","create","version","description","onRegister","_error","log","Logger","for","info","error","onServerStart","server","logger","success","app","get","_req","res","redirect","port","onAuxiliaryServerDeploy","ops","SwaggerServer","__sys__","__root__"],"mappings":"+HAMA,MAAMA,EAAaC,EAAAA,aAAaC,EAAAA,KAAKC,4BAC/B,SAAwBC,GAC1B,OAAOC,EAAAA,OAAOC,OACV,CACIH,KAAMD,EAAAA,KAAKC,KACXI,QAASL,EAAAA,KAAKK,QACdC,YAAaN,EAAAA,KAAKM,YAClB,UAAAC,CAAWC,GACP,MAAMC,EAAMC,EAAAA,OAAOC,IAAI,aACvBF,EAAIG,KAAK,8BACLJ,GACAC,EAAII,MAAMf,EAAa,2BAA4BU,EAE3D,EACA,aAAAM,CAAcC,GACVC,SAAOC,QAAQnB,EAAa,uBAE5BiB,EAAOG,IAAIC,IAAI,WAAY,CAACC,EAAWC,KACnCA,EAAIC,SAAS,oBAAoBpB,EAAOqB,SAEhD,EACA,uBAAAC,CAAwBC,EAAKV,GACzBW,EAAAA,cAAcxB,EAAQuB,EAC1B,GAEJE,QAAQC,SAEhB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./configs/Logger.js"),o=require("./configs/meta.js"),t=require("./openapi.js"),r=require("./ui.js");exports.SwaggerServer=function(s,n,i){const a=s.path||"/docs",_=`${a}/swagger.json`;console.log("plugin root path: ",__sys__.__root__),console.log("😇 env de HELLO depuis le plugin: ",__sys__.__env__.get("HELLO")),console.log("🤧 env de COMMON_VAR du root du project (devrait être undefined): ",__sys__.__env__.get("COMMON_VAR")),console.log("🤠 env from root using __sys__ (devrait être strictement undefined vue que ici, sys.__root__ devrait conduire vers '/home/idevo/Documents/projects/XyPriss/mods/swagger') pourtant le .env de cette root n'a pas de name: ",__sys__.__env__.get("NAME"));const g=__sys__.plugins.get(o.meta.name);if(!g)throw new Error(o.toPascalCase(o.meta.name,"-")+" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add ");console.log("🤠 env from root using workspaceSYS (devrait être undefined selon la config de l'utilisateur: en mode ROOT:// ça devrait conduire vers _sys__.root ('/home/idevo/Documents/projects/XyPriss/mods/swagger') et CWD:// devrait envoyer process.cwd() ('/home/idevo/Documents/projects/XyPriss' (vue qu'on excute la cmd ici))): ",g.__env__.get("NAME")),console.log("😝 root path: ",g.__root__),console.log("😅 listing directory path: ",g.fs.ls("."));const c=s.port||7070,d=n.createAuxiliaryServer({server:{port:c},security:{enabled:!1}});d.get(_,(o,r)=>{try{let e=[];n.getRouteRegistry&&(e=n.getRouteRegistry());const o=t.generateOpenAPI(e,s);r.json(o)}catch(o){e.logger.error("Error generating OpenAPI spec:",o),r.status(500).json({error:"Failed to generate documentation"})}}),d.get(a,(e,o)=>{const t=s.title||g?.vars?.__name__||"API Documentation",n=r.getSwaggerUIStream(_,t);o.setHeader("Content-Type","text/html"),n.pipe(o)}),d.redirect("/",a,301);const l=`http://localhost:${c}${a}`;d.start(()=>{e.logger.swagger(`${o.toPascalCase(o.meta.name)} Server isolated on port ${c}`),e.logger.http(`GET ${l}`)})};
1
+ "use strict";var e=require("./configs/Logger.js"),t=require("./configs/meta.js"),r=require("./openapi.js"),o=require("./ui.js");exports.SwaggerServer=function(s,a,n){const g=s.path||"/docs",i=`${g}/swagger.json`,c=__sys__.plugins.get(t.meta.name);if(!c)throw new Error(t.toPascalCase(t.meta.name,"-")+" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add ");const p=s.port||7070,u=a.createAuxiliaryServer({server:{port:p},security:{enabled:!1}});u.get(i,(t,o)=>{try{let e=[];a.getRouteRegistry&&(e=a.getRouteRegistry());const t=r.generateOpenAPI(e,s);o.json(t)}catch(t){e.logger.error("Error generating OpenAPI spec:",t),o.status(500).json({error:"Failed to generate documentation"})}}),u.get(g,(e,t)=>{const r=s.title||c?.vars?.__name__||"API Documentation",a=o.getSwaggerUIStream(i,r);t.setHeader("Content-Type","text/html"),a.pipe(t)}),u.redirect("/",g,301);const l=`http://localhost:${p}${g}`;u.start(()=>{e.logger.swagger(`${t.toPascalCase(t.meta.name)} Server isolated on port ${p}`),e.logger.http(`GET ${l}`)})};
2
2
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sources":["../../../../src/server.ts"],"sourcesContent":["import { logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { generateOpenAPI } from \"./openapi\";\nimport { SwaggerConfig } from \"./types\";\nimport { getSwaggerUIStream } from \"./ui\";\nimport { Plugin } from \"xypriss\";\n\ntype auxis = NonNullable<\n ReturnType<typeof Plugin.create>[\"onAuxiliaryServerDeploy\"]\n>;\nexport type OpsServerManager = Parameters<auxis>[\"0\"] & {\n getRouteRegistry?: () => any[];\n};\n\nexport type XyPrissServer = Parameters<auxis>[\"1\"];\n\nexport function SwaggerServer(\n config: SwaggerConfig,\n ops: OpsServerManager,\n _XServer: XyPrissServer,\n) {\n const docPath = config.path || \"/docs\";\n const specPath = `${docPath}/swagger.json`;\n console.log(\"plugin root path: \", __sys__.__root__);\n\n console.log(\n \"😇 env de HELLO depuis le plugin: \",\n __sys__.__env__.get(\"HELLO\"),\n );\n console.log(\n \"🤧 env de COMMON_VAR du root du project (devrait être undefined): \",\n __sys__.__env__.get(\"COMMON_VAR\"),\n );\n\n console.log(\n \"🤠 env from root using __sys__ (devrait être strictement undefined vue que ici, sys.__root__ devrait conduire vers '/home/idevo/Documents/projects/XyPriss/mods/swagger') pourtant le .env de cette root n'a pas de name: \",\n __sys__.__env__.get(\"NAME\"),\n );\n\n const workspaceSYS = __sys__.plugins.get(meta.name);\n\n // console.log(\"workspaceFS: \", workspaceFS);\n\n if (!workspaceSYS) {\n throw new Error(\n toPascalCase(meta.name, \"-\") +\n \" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add \",\n );\n }\n console.log(\n \"🤠 env from root using workspaceSYS (devrait être undefined selon la config de l'utilisateur: en mode ROOT:// ça devrait conduire vers _sys__.root ('/home/idevo/Documents/projects/XyPriss/mods/swagger') et CWD:// devrait envoyer process.cwd() ('/home/idevo/Documents/projects/XyPriss' (vue qu'on excute la cmd ici))): \",\n workspaceSYS.__env__.get(\"NAME\"),\n );\n console.log(\"😝 root path: \", workspaceSYS.__root__);\n console.log(\"😅 listing directory path: \", workspaceSYS.fs.ls(\".\"));\n\n const port = config.port || 7070;\n const server = ops.createAuxiliaryServer({\n server: { port },\n security: {\n enabled: false,\n },\n });\n\n // Serve the raw OpenAPI JSON specification\n server.get(specPath, (_req, res) => {\n try {\n let registry: any[] = [];\n\n if (ops.getRouteRegistry) {\n registry = ops.getRouteRegistry();\n }\n\n const spec = generateOpenAPI(registry, config);\n res.json(spec);\n } catch (error) {\n logger.error(\"Error generating OpenAPI spec:\", error);\n res.status(500).json({\n error: \"Failed to generate documentation\",\n });\n }\n });\n\n // Serve the Swagger HTML Viewer\n server.get(docPath, (_req, res) => {\n const title =\n config.title || workspaceSYS?.vars?.__name__ || \"API Documentation\";\n const stream = getSwaggerUIStream(specPath, title);\n\n res.setHeader(\"Content-Type\", \"text/html\");\n stream.pipe(res);\n });\n\n // Redirect root path of the sub-server to docPath\n server.redirect(\"/\", docPath, 301);\n\n // Boot the auxiliary server immediately\n const url = `http://localhost:${port}${docPath}`;\n server.start(() => {\n logger.swagger(\n `${toPascalCase(meta.name)} Server isolated on port ${port}`,\n );\n logger.http(`GET ${url}`);\n });\n}\n"],"names":["config","ops","_XServer","docPath","path","specPath","console","log","__sys__","__root__","__env__","get","workspaceSYS","plugins","meta","name","Error","toPascalCase","fs","ls","port","server","createAuxiliaryServer","security","enabled","_req","res","registry","getRouteRegistry","spec","generateOpenAPI","json","error","logger","status","title","vars","__name__","stream","getSwaggerUIStream","setHeader","pipe","redirect","url","start","swagger","http"],"mappings":"+JAiBIA,EACAC,EACAC,GAEA,MAAMC,EAAUH,EAAOI,MAAQ,QACzBC,EAAW,GAAGF,iBACpBG,QAAQC,IAAI,qBAAsBC,QAAQC,UAE1CH,QAAQC,IACJ,qCACAC,QAAQE,QAAQC,IAAI,UAExBL,QAAQC,IACJ,qEACAC,QAAQE,QAAQC,IAAI,eAGxBL,QAAQC,IACJ,6NACAC,QAAQE,QAAQC,IAAI,SAGxB,MAAMC,EAAeJ,QAAQK,QAAQF,IAAIG,EAAAA,KAAKC,MAI9C,IAAKH,EACD,MAAM,IAAII,MACNC,EAAAA,aAAaH,EAAAA,KAAKC,KAAM,KACpB,uFAGZT,QAAQC,IACJ,iUACAK,EAAaF,QAAQC,IAAI,SAE7BL,QAAQC,IAAI,iBAAkBK,EAAaH,UAC3CH,QAAQC,IAAI,8BAA+BK,EAAaM,GAAGC,GAAG,MAE9D,MAAMC,EAAOpB,EAAOoB,MAAQ,KACtBC,EAASpB,EAAIqB,sBAAsB,CACrCD,OAAQ,CAAED,QACVG,SAAU,CACNC,SAAS,KAKjBH,EAAOV,IAAIN,EAAU,CAACoB,EAAMC,KACxB,IACI,IAAIC,EAAkB,GAElB1B,EAAI2B,mBACJD,EAAW1B,EAAI2B,oBAGnB,MAAMC,EAAOC,EAAAA,gBAAgBH,EAAU3B,GACvC0B,EAAIK,KAAKF,EACb,CAAE,MAAOG,GACLC,SAAOD,MAAM,iCAAkCA,GAC/CN,EAAIQ,OAAO,KAAKH,KAAK,CACjBC,MAAO,oCAEf,IAIJX,EAAOV,IAAIR,EAAS,CAACsB,EAAMC,KACvB,MAAMS,EACFnC,EAAOmC,OAASvB,GAAcwB,MAAMC,UAAY,oBAC9CC,EAASC,EAAAA,mBAAmBlC,EAAU8B,GAE5CT,EAAIc,UAAU,eAAgB,aAC9BF,EAAOG,KAAKf,KAIhBL,EAAOqB,SAAS,IAAKvC,EAAS,KAG9B,MAAMwC,EAAM,oBAAoBvB,IAAOjB,IACvCkB,EAAOuB,MAAM,KACTX,SAAOY,QACH,GAAG5B,eAAaH,EAAAA,KAAKC,iCAAiCK,KAE1Da,EAAAA,OAAOa,KAAK,OAAOH,MAE3B"}
1
+ {"version":3,"file":"server.js","sources":["../../../../src/server.ts"],"sourcesContent":["import { logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { generateOpenAPI } from \"./openapi\";\nimport { SwaggerConfig } from \"./types\";\nimport { getSwaggerUIStream } from \"./ui\";\nimport { Plugin } from \"xypriss\";\n\ntype auxis = NonNullable<\n ReturnType<typeof Plugin.create>[\"onAuxiliaryServerDeploy\"]\n>;\nexport type OpsServerManager = Parameters<auxis>[\"0\"] & {\n getRouteRegistry?: () => any[];\n};\n\nexport type XyPrissServer = Parameters<auxis>[\"1\"];\n\nexport function SwaggerServer(\n config: SwaggerConfig,\n ops: OpsServerManager,\n _XServer: XyPrissServer,\n) {\n const docPath = config.path || \"/docs\";\n const specPath = `${docPath}/swagger.json`;\n\n const workspaceSYS = __sys__.plugins.get(meta.name);\n\n if (!workspaceSYS) {\n throw new Error(\n toPascalCase(meta.name, \"-\") +\n \" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add \",\n );\n }\n\n const port = config.port || 7070;\n const server = ops.createAuxiliaryServer({\n server: { port },\n security: {\n enabled: false,\n },\n });\n\n // Serve the raw OpenAPI JSON specification\n server.get(specPath, (_req, res) => {\n try {\n let registry: any[] = [];\n\n if (ops.getRouteRegistry) {\n registry = ops.getRouteRegistry();\n }\n\n const spec = generateOpenAPI(registry, config);\n res.json(spec);\n } catch (error) {\n logger.error(\"Error generating OpenAPI spec:\", error);\n res.status(500).json({\n error: \"Failed to generate documentation\",\n });\n }\n });\n\n // Serve the Swagger HTML Viewer\n server.get(docPath, (_req, res) => {\n const title =\n config.title || workspaceSYS?.vars?.__name__ || \"API Documentation\";\n const stream = getSwaggerUIStream(specPath, title);\n\n res.setHeader(\"Content-Type\", \"text/html\");\n stream.pipe(res);\n });\n\n // Redirect root path of the sub-server to docPath\n server.redirect(\"/\", docPath, 301);\n\n // Boot the auxiliary server immediately\n const url = `http://localhost:${port}${docPath}`;\n server.start(() => {\n logger.swagger(\n `${toPascalCase(meta.name)} Server isolated on port ${port}`,\n );\n logger.http(`GET ${url}`);\n });\n}\n\n"],"names":["config","ops","_XServer","docPath","path","specPath","workspaceSYS","__sys__","plugins","get","meta","name","Error","toPascalCase","port","server","createAuxiliaryServer","security","enabled","_req","res","registry","getRouteRegistry","spec","generateOpenAPI","json","error","logger","status","title","vars","__name__","stream","getSwaggerUIStream","setHeader","pipe","redirect","url","start","swagger","http"],"mappings":"+JAiBIA,EACAC,EACAC,GAEA,MAAMC,EAAUH,EAAOI,MAAQ,QACzBC,EAAW,GAAGF,iBAEdG,EAAeC,QAAQC,QAAQC,IAAIC,EAAAA,KAAKC,MAE9C,IAAKL,EACD,MAAM,IAAIM,MACNC,EAAAA,aAAaH,EAAAA,KAAKC,KAAM,KACpB,uFAIZ,MAAMG,EAAOd,EAAOc,MAAQ,KACtBC,EAASd,EAAIe,sBAAsB,CACrCD,OAAQ,CAAED,QACVG,SAAU,CACNC,SAAS,KAKjBH,EAAON,IAAIJ,EAAU,CAACc,EAAMC,KACxB,IACI,IAAIC,EAAkB,GAElBpB,EAAIqB,mBACJD,EAAWpB,EAAIqB,oBAGnB,MAAMC,EAAOC,EAAAA,gBAAgBH,EAAUrB,GACvCoB,EAAIK,KAAKF,EACb,CAAE,MAAOG,GACLC,SAAOD,MAAM,iCAAkCA,GAC/CN,EAAIQ,OAAO,KAAKH,KAAK,CACjBC,MAAO,oCAEf,IAIJX,EAAON,IAAIN,EAAS,CAACgB,EAAMC,KACvB,MAAMS,EACF7B,EAAO6B,OAASvB,GAAcwB,MAAMC,UAAY,oBAC9CC,EAASC,EAAAA,mBAAmB5B,EAAUwB,GAE5CT,EAAIc,UAAU,eAAgB,aAC9BF,EAAOG,KAAKf,KAIhBL,EAAOqB,SAAS,IAAKjC,EAAS,KAG9B,MAAMkC,EAAM,oBAAoBvB,IAAOX,IACvCY,EAAOuB,MAAM,KACTX,SAAOY,QACH,GAAG1B,eAAaH,EAAAA,KAAKC,iCAAiCG,KAE1Da,EAAAA,OAAOa,KAAK,OAAOH,MAE3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import { logger, Logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { SwaggerServer } from \"./server\";\nimport { SwaggerConfig } from \"./types\";\nimport { Plugin } from \"xypriss\";\n\nconst pluginName = toPascalCase(meta.name);\nexport function SwaggerPlugin(config: SwaggerConfig) {\n return Plugin.create(\n {\n name: meta.name,\n version: meta.version,\n description: meta.description,\n onRegister(_error) {\n const log = Logger.for(\"Bootstrap\");\n log.info(\"Starting swagger plugin...\");\n if (_error) {\n log.error(pluginName + \" plugin failed to start:\", _error);\n }\n },\n onServerStart(server) {\n logger.success(pluginName + \" plugin has started\");\n\n server.app.get(\"/swagger\", (_req: any, res: any) => {\n res.redirect(`http://localhost:${config.port}`);\n });\n },\n onAuxiliaryServerDeploy(ops, server) {\n SwaggerServer(config, ops, server);\n },\n }, \n __sys__.__root__,\n );\n}\n\n"],"names":["pluginName","toPascalCase","meta","name","SwaggerPlugin","config","Plugin","create","version","description","onRegister","_error","log","Logger","for","info","error","onServerStart","server","logger","success","app","get","_req","res","redirect","port","onAuxiliaryServerDeploy","ops","SwaggerServer","__sys__","__root__"],"mappings":"iMAMA,MAAMA,EAAaC,EAAaC,EAAKC,MAC/B,SAAUC,EAAcC,GAC1B,OAAOC,EAAOC,OACV,CACIJ,KAAMD,EAAKC,KACXK,QAASN,EAAKM,QACdC,YAAaP,EAAKO,YAClB,UAAAC,CAAWC,GACP,MAAMC,EAAMC,EAAOC,IAAI,aACvBF,EAAIG,KAAK,8BACLJ,GACAC,EAAII,MAAMhB,EAAa,2BAA4BW,EAE3D,EACA,aAAAM,CAAcC,GACVC,EAAOC,QAAQpB,EAAa,uBAE5BkB,EAAOG,IAAIC,IAAI,WAAY,CAACC,EAAWC,KACnCA,EAAIC,SAAS,oBAAoBpB,EAAOqB,SAEhD,EACA,uBAAAC,CAAwBC,EAAKV,GACzBW,EAAcxB,EAAQuB,EAC1B,GAEJE,QAAQC,SAEhB"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":["import { logger, Logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { SwaggerServer } from \"./server\";\nimport { SwaggerConfig } from \"./types\";\nimport { Plugin } from \"xypriss\";\n\nconst pluginName = toPascalCase(meta.name);\nexport function SwaggerPlugin(config: SwaggerConfig) {\n return Plugin.create(\n {\n name: meta.name,\n version: meta.version,\n description: meta.description,\n onRegister(_error) {\n const log = Logger.for(\"Bootstrap\");\n log.info(\"Starting swagger plugin...\");\n if (_error) {\n log.error(pluginName + \" plugin failed to start:\", _error);\n }\n },\n onServerStart(server) {\n logger.success(pluginName + \" plugin has started\");\n\n server.app.get(\"/swagger\", (_req: any, res: any) => {\n res.redirect(`http://localhost:${config.port}`);\n });\n },\n onAuxiliaryServerDeploy(ops, server) {\n SwaggerServer(config, ops, server);\n },\n }, \n __sys__.__root__,\n );\n}"],"names":["pluginName","toPascalCase","meta","name","SwaggerPlugin","config","Plugin","create","version","description","onRegister","_error","log","Logger","for","info","error","onServerStart","server","logger","success","app","get","_req","res","redirect","port","onAuxiliaryServerDeploy","ops","SwaggerServer","__sys__","__root__"],"mappings":"iMAMA,MAAMA,EAAaC,EAAaC,EAAKC,MAC/B,SAAUC,EAAcC,GAC1B,OAAOC,EAAOC,OACV,CACIJ,KAAMD,EAAKC,KACXK,QAASN,EAAKM,QACdC,YAAaP,EAAKO,YAClB,UAAAC,CAAWC,GACP,MAAMC,EAAMC,EAAOC,IAAI,aACvBF,EAAIG,KAAK,8BACLJ,GACAC,EAAII,MAAMhB,EAAa,2BAA4BW,EAE3D,EACA,aAAAM,CAAcC,GACVC,EAAOC,QAAQpB,EAAa,uBAE5BkB,EAAOG,IAAIC,IAAI,WAAY,CAACC,EAAWC,KACnCA,EAAIC,SAAS,oBAAoBpB,EAAOqB,SAEhD,EACA,uBAAAC,CAAwBC,EAAKV,GACzBW,EAAcxB,EAAQuB,EAC1B,GAEJE,QAAQC,SAEhB"}
@@ -1,2 +1,2 @@
1
- import{logger as e}from"./configs/Logger.js";import{meta as o,toPascalCase as t}from"./configs/meta.js";import{generateOpenAPI as r}from"./openapi.js";import{getSwaggerUIStream as s}from"./ui.js";function n(n,i,_){const c=n.path||"/docs",a=`${c}/swagger.json`;console.log("plugin root path: ",__sys__.__root__),console.log("😇 env de HELLO depuis le plugin: ",__sys__.__env__.get("HELLO")),console.log("🤧 env de COMMON_VAR du root du project (devrait être undefined): ",__sys__.__env__.get("COMMON_VAR")),console.log("🤠 env from root using __sys__ (devrait être strictement undefined vue que ici, sys.__root__ devrait conduire vers '/home/idevo/Documents/projects/XyPriss/mods/swagger') pourtant le .env de cette root n'a pas de name: ",__sys__.__env__.get("NAME"));const g=__sys__.plugins.get(o.name);if(!g)throw new Error(t(o.name,"-")+" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add ");console.log("🤠 env from root using workspaceSYS (devrait être undefined selon la config de l'utilisateur: en mode ROOT:// ça devrait conduire vers _sys__.root ('/home/idevo/Documents/projects/XyPriss/mods/swagger') et CWD:// devrait envoyer process.cwd() ('/home/idevo/Documents/projects/XyPriss' (vue qu'on excute la cmd ici))): ",g.__env__.get("NAME")),console.log("😝 root path: ",g.__root__),console.log("😅 listing directory path: ",g.fs.ls("."));const d=n.port||7070,l=i.createAuxiliaryServer({server:{port:d},security:{enabled:!1}});l.get(a,(o,t)=>{try{let e=[];i.getRouteRegistry&&(e=i.getRouteRegistry());const o=r(e,n);t.json(o)}catch(o){e.error("Error generating OpenAPI spec:",o),t.status(500).json({error:"Failed to generate documentation"})}}),l.get(c,(e,o)=>{const t=n.title||g?.vars?.__name__||"API Documentation",r=s(a,t);o.setHeader("Content-Type","text/html"),r.pipe(o)}),l.redirect("/",c,301);const p=`http://localhost:${d}${c}`;l.start(()=>{e.swagger(`${t(o.name)} Server isolated on port ${d}`),e.http(`GET ${p}`)})}export{n as SwaggerServer};
1
+ import{logger as t}from"./configs/Logger.js";import{meta as e,toPascalCase as r}from"./configs/meta.js";import{generateOpenAPI as o}from"./openapi.js";import{getSwaggerUIStream as s}from"./ui.js";function n(n,i,a){const c=n.path||"/docs",g=`${c}/swagger.json`,p=__sys__.plugins.get(e.name);if(!p)throw new Error(r(e.name,"-")+" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add ");const m=n.port||7070,u=i.createAuxiliaryServer({server:{port:m},security:{enabled:!1}});u.get(g,(e,r)=>{try{let t=[];i.getRouteRegistry&&(t=i.getRouteRegistry());const e=o(t,n);r.json(e)}catch(e){t.error("Error generating OpenAPI spec:",e),r.status(500).json({error:"Failed to generate documentation"})}}),u.get(c,(t,e)=>{const r=n.title||p?.vars?.__name__||"API Documentation",o=s(g,r);e.setHeader("Content-Type","text/html"),o.pipe(e)}),u.redirect("/",c,301);const l=`http://localhost:${m}${c}`;u.start(()=>{t.swagger(`${r(e.name)} Server isolated on port ${m}`),t.http(`GET ${l}`)})}export{n as SwaggerServer};
2
2
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sources":["../../../../src/server.ts"],"sourcesContent":["import { logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { generateOpenAPI } from \"./openapi\";\nimport { SwaggerConfig } from \"./types\";\nimport { getSwaggerUIStream } from \"./ui\";\nimport { Plugin } from \"xypriss\";\n\ntype auxis = NonNullable<\n ReturnType<typeof Plugin.create>[\"onAuxiliaryServerDeploy\"]\n>;\nexport type OpsServerManager = Parameters<auxis>[\"0\"] & {\n getRouteRegistry?: () => any[];\n};\n\nexport type XyPrissServer = Parameters<auxis>[\"1\"];\n\nexport function SwaggerServer(\n config: SwaggerConfig,\n ops: OpsServerManager,\n _XServer: XyPrissServer,\n) {\n const docPath = config.path || \"/docs\";\n const specPath = `${docPath}/swagger.json`;\n console.log(\"plugin root path: \", __sys__.__root__);\n\n console.log(\n \"😇 env de HELLO depuis le plugin: \",\n __sys__.__env__.get(\"HELLO\"),\n );\n console.log(\n \"🤧 env de COMMON_VAR du root du project (devrait être undefined): \",\n __sys__.__env__.get(\"COMMON_VAR\"),\n );\n\n console.log(\n \"🤠 env from root using __sys__ (devrait être strictement undefined vue que ici, sys.__root__ devrait conduire vers '/home/idevo/Documents/projects/XyPriss/mods/swagger') pourtant le .env de cette root n'a pas de name: \",\n __sys__.__env__.get(\"NAME\"),\n );\n\n const workspaceSYS = __sys__.plugins.get(meta.name);\n\n // console.log(\"workspaceFS: \", workspaceFS);\n\n if (!workspaceSYS) {\n throw new Error(\n toPascalCase(meta.name, \"-\") +\n \" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add \",\n );\n }\n console.log(\n \"🤠 env from root using workspaceSYS (devrait être undefined selon la config de l'utilisateur: en mode ROOT:// ça devrait conduire vers _sys__.root ('/home/idevo/Documents/projects/XyPriss/mods/swagger') et CWD:// devrait envoyer process.cwd() ('/home/idevo/Documents/projects/XyPriss' (vue qu'on excute la cmd ici))): \",\n workspaceSYS.__env__.get(\"NAME\"),\n );\n console.log(\"😝 root path: \", workspaceSYS.__root__);\n console.log(\"😅 listing directory path: \", workspaceSYS.fs.ls(\".\"));\n\n const port = config.port || 7070;\n const server = ops.createAuxiliaryServer({\n server: { port },\n security: {\n enabled: false,\n },\n });\n\n // Serve the raw OpenAPI JSON specification\n server.get(specPath, (_req, res) => {\n try {\n let registry: any[] = [];\n\n if (ops.getRouteRegistry) {\n registry = ops.getRouteRegistry();\n }\n\n const spec = generateOpenAPI(registry, config);\n res.json(spec);\n } catch (error) {\n logger.error(\"Error generating OpenAPI spec:\", error);\n res.status(500).json({\n error: \"Failed to generate documentation\",\n });\n }\n });\n\n // Serve the Swagger HTML Viewer\n server.get(docPath, (_req, res) => {\n const title =\n config.title || workspaceSYS?.vars?.__name__ || \"API Documentation\";\n const stream = getSwaggerUIStream(specPath, title);\n\n res.setHeader(\"Content-Type\", \"text/html\");\n stream.pipe(res);\n });\n\n // Redirect root path of the sub-server to docPath\n server.redirect(\"/\", docPath, 301);\n\n // Boot the auxiliary server immediately\n const url = `http://localhost:${port}${docPath}`;\n server.start(() => {\n logger.swagger(\n `${toPascalCase(meta.name)} Server isolated on port ${port}`,\n );\n logger.http(`GET ${url}`);\n });\n}\n"],"names":["SwaggerServer","config","ops","_XServer","docPath","path","specPath","console","log","__sys__","__root__","__env__","get","workspaceSYS","plugins","meta","name","Error","toPascalCase","fs","ls","port","server","createAuxiliaryServer","security","enabled","_req","res","registry","getRouteRegistry","spec","generateOpenAPI","json","error","logger","status","title","vars","__name__","stream","getSwaggerUIStream","setHeader","pipe","redirect","url","start","swagger","http"],"mappings":"6MAgBgBA,EACZC,EACAC,EACAC,GAEA,MAAMC,EAAUH,EAAOI,MAAQ,QACzBC,EAAW,GAAGF,iBACpBG,QAAQC,IAAI,qBAAsBC,QAAQC,UAE1CH,QAAQC,IACJ,qCACAC,QAAQE,QAAQC,IAAI,UAExBL,QAAQC,IACJ,qEACAC,QAAQE,QAAQC,IAAI,eAGxBL,QAAQC,IACJ,6NACAC,QAAQE,QAAQC,IAAI,SAGxB,MAAMC,EAAeJ,QAAQK,QAAQF,IAAIG,EAAKC,MAI9C,IAAKH,EACD,MAAM,IAAII,MACNC,EAAaH,EAAKC,KAAM,KACpB,uFAGZT,QAAQC,IACJ,iUACAK,EAAaF,QAAQC,IAAI,SAE7BL,QAAQC,IAAI,iBAAkBK,EAAaH,UAC3CH,QAAQC,IAAI,8BAA+BK,EAAaM,GAAGC,GAAG,MAE9D,MAAMC,EAAOpB,EAAOoB,MAAQ,KACtBC,EAASpB,EAAIqB,sBAAsB,CACrCD,OAAQ,CAAED,QACVG,SAAU,CACNC,SAAS,KAKjBH,EAAOV,IAAIN,EAAU,CAACoB,EAAMC,KACxB,IACI,IAAIC,EAAkB,GAElB1B,EAAI2B,mBACJD,EAAW1B,EAAI2B,oBAGnB,MAAMC,EAAOC,EAAgBH,EAAU3B,GACvC0B,EAAIK,KAAKF,EACb,CAAE,MAAOG,GACLC,EAAOD,MAAM,iCAAkCA,GAC/CN,EAAIQ,OAAO,KAAKH,KAAK,CACjBC,MAAO,oCAEf,IAIJX,EAAOV,IAAIR,EAAS,CAACsB,EAAMC,KACvB,MAAMS,EACFnC,EAAOmC,OAASvB,GAAcwB,MAAMC,UAAY,oBAC9CC,EAASC,EAAmBlC,EAAU8B,GAE5CT,EAAIc,UAAU,eAAgB,aAC9BF,EAAOG,KAAKf,KAIhBL,EAAOqB,SAAS,IAAKvC,EAAS,KAG9B,MAAMwC,EAAM,oBAAoBvB,IAAOjB,IACvCkB,EAAOuB,MAAM,KACTX,EAAOY,QACH,GAAG5B,EAAaH,EAAKC,iCAAiCK,KAE1Da,EAAOa,KAAK,OAAOH,MAE3B"}
1
+ {"version":3,"file":"server.js","sources":["../../../../src/server.ts"],"sourcesContent":["import { logger } from \"./configs/Logger\";\nimport { meta, toPascalCase } from \"./configs/meta\";\nimport { generateOpenAPI } from \"./openapi\";\nimport { SwaggerConfig } from \"./types\";\nimport { getSwaggerUIStream } from \"./ui\";\nimport { Plugin } from \"xypriss\";\n\ntype auxis = NonNullable<\n ReturnType<typeof Plugin.create>[\"onAuxiliaryServerDeploy\"]\n>;\nexport type OpsServerManager = Parameters<auxis>[\"0\"] & {\n getRouteRegistry?: () => any[];\n};\n\nexport type XyPrissServer = Parameters<auxis>[\"1\"];\n\nexport function SwaggerServer(\n config: SwaggerConfig,\n ops: OpsServerManager,\n _XServer: XyPrissServer,\n) {\n const docPath = config.path || \"/docs\";\n const specPath = `${docPath}/swagger.json`;\n\n const workspaceSYS = __sys__.plugins.get(meta.name);\n\n if (!workspaceSYS) {\n throw new Error(\n toPascalCase(meta.name, \"-\") +\n \" is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add \",\n );\n }\n\n const port = config.port || 7070;\n const server = ops.createAuxiliaryServer({\n server: { port },\n security: {\n enabled: false,\n },\n });\n\n // Serve the raw OpenAPI JSON specification\n server.get(specPath, (_req, res) => {\n try {\n let registry: any[] = [];\n\n if (ops.getRouteRegistry) {\n registry = ops.getRouteRegistry();\n }\n\n const spec = generateOpenAPI(registry, config);\n res.json(spec);\n } catch (error) {\n logger.error(\"Error generating OpenAPI spec:\", error);\n res.status(500).json({\n error: \"Failed to generate documentation\",\n });\n }\n });\n\n // Serve the Swagger HTML Viewer\n server.get(docPath, (_req, res) => {\n const title =\n config.title || workspaceSYS?.vars?.__name__ || \"API Documentation\";\n const stream = getSwaggerUIStream(specPath, title);\n\n res.setHeader(\"Content-Type\", \"text/html\");\n stream.pipe(res);\n });\n\n // Redirect root path of the sub-server to docPath\n server.redirect(\"/\", docPath, 301);\n\n // Boot the auxiliary server immediately\n const url = `http://localhost:${port}${docPath}`;\n server.start(() => {\n logger.swagger(\n `${toPascalCase(meta.name)} Server isolated on port ${port}`,\n );\n logger.http(`GET ${url}`);\n });\n}\n\n"],"names":["SwaggerServer","config","ops","_XServer","docPath","path","specPath","workspaceSYS","__sys__","plugins","get","meta","name","Error","toPascalCase","port","server","createAuxiliaryServer","security","enabled","_req","res","registry","getRouteRegistry","spec","generateOpenAPI","json","error","logger","status","title","vars","__name__","stream","getSwaggerUIStream","setHeader","pipe","redirect","url","start","swagger","http"],"mappings":"6MAgBgBA,EACZC,EACAC,EACAC,GAEA,MAAMC,EAAUH,EAAOI,MAAQ,QACzBC,EAAW,GAAGF,iBAEdG,EAAeC,QAAQC,QAAQC,IAAIC,EAAKC,MAE9C,IAAKL,EACD,MAAM,IAAIM,MACNC,EAAaH,EAAKC,KAAM,KACpB,uFAIZ,MAAMG,EAAOd,EAAOc,MAAQ,KACtBC,EAASd,EAAIe,sBAAsB,CACrCD,OAAQ,CAAED,QACVG,SAAU,CACNC,SAAS,KAKjBH,EAAON,IAAIJ,EAAU,CAACc,EAAMC,KACxB,IACI,IAAIC,EAAkB,GAElBpB,EAAIqB,mBACJD,EAAWpB,EAAIqB,oBAGnB,MAAMC,EAAOC,EAAgBH,EAAUrB,GACvCoB,EAAIK,KAAKF,EACb,CAAE,MAAOG,GACLC,EAAOD,MAAM,iCAAkCA,GAC/CN,EAAIQ,OAAO,KAAKH,KAAK,CACjBC,MAAO,oCAEf,IAIJX,EAAON,IAAIN,EAAS,CAACgB,EAAMC,KACvB,MAAMS,EACF7B,EAAO6B,OAASvB,GAAcwB,MAAMC,UAAY,oBAC9CC,EAASC,EAAmB5B,EAAUwB,GAE5CT,EAAIc,UAAU,eAAgB,aAC9BF,EAAOG,KAAKf,KAIhBL,EAAOqB,SAAS,IAAKjC,EAAS,KAG9B,MAAMkC,EAAM,oBAAoBvB,IAAOX,IACvCY,EAAOuB,MAAM,KACTX,EAAOY,QACH,GAAG1B,EAAaH,EAAKC,iCAAiCG,KAE1Da,EAAOa,KAAK,OAAOH,MAE3B"}
package/package.json CHANGED
@@ -1,40 +1,40 @@
1
1
  {
2
- "name": "xypriss-swagger",
3
- "version": "1.0.20",
4
- "description": "Auto-documentation plugin for XyPriss Router V2",
5
- "type": "module",
6
- "main": "dist/cjs/index.js",
7
- "module": "dist/esm/index.js",
8
- "types": "dist/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "import": "./dist/esm/index.js",
12
- "require": "./dist/cjs/index.js",
13
- "types": "./dist/index.d.ts"
14
- }
15
- },
16
- "scripts": {
17
- "build": "rm -rf dist \u0026\u0026 NODE_OPTIONS='--max-old-space-size=4096' npx rollup -c rollup.config.js",
18
- "dev": "rollup -c -w",
19
- "prepublishOnly": "npm run build"
20
- },
21
- "dependencies": {
22
- "nehoid": "^2.1.4",
23
- "xypriss-security": "^2.1.13"
24
- },
25
- "devDependencies": {
26
- "@rollup/plugin-commonjs": "^29.0.2",
27
- "@rollup/plugin-json": "^6.1.0",
28
- "@rollup/plugin-node-resolve": "^16.0.3",
29
- "@rollup/plugin-terser": "^1.0.0",
30
- "@rollup/plugin-typescript": "^12.3.0",
31
- "glob": "^13.0.6",
32
- "rollup": "^4.60.1",
33
- "rollup-plugin-dts": "^6.4.1",
34
- "tslib": "^2.8.1",
35
- "typescript": "^5.0.0"
36
- },
37
- "peerDependencies": {
38
- "xypriss": ">=9.6.80"
39
- }
40
- }
2
+ "name": "xypriss-swagger",
3
+ "version": "1.0.26",
4
+ "description": "Auto-documentation plugin for XyPriss Router V2",
5
+ "type": "module",
6
+ "main": "dist/cjs/index.js",
7
+ "module": "dist/esm/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/esm/index.js",
12
+ "require": "./dist/cjs/index.js",
13
+ "types": "./dist/index.d.ts"
14
+ }
15
+ },
16
+ "scripts": {
17
+ "build": "rm -rf dist && NODE_OPTIONS='--max-old-space-size=4096' npx rollup -c rollup.config.js",
18
+ "dev": "rollup -c -w",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "dependencies": {
22
+ "nehoid": "^2.1.4",
23
+ "xypriss-security": "^2.1.13",
24
+ "xypriss": "^9.7.0"
25
+ },
26
+ "devDependencies": {
27
+ "@rollup/plugin-commonjs": "^29.0.2",
28
+ "@rollup/plugin-json": "^6.1.0",
29
+ "@rollup/plugin-node-resolve": "^16.0.3",
30
+ "@rollup/plugin-terser": "^1.0.0",
31
+ "@rollup/plugin-typescript": "^12.3.0",
32
+ "glob": "^13.0.6",
33
+ "rollup": "^4.60.1",
34
+ "rollup-plugin-dts": "^6.4.1",
35
+ "tslib": "^2.8.1",
36
+ "typescript": "^5.0.0"
37
+ },
38
+ "peerDependencies": {}
39
+ }
40
+
package/src/index.ts CHANGED
@@ -31,5 +31,4 @@ export function SwaggerPlugin(config: SwaggerConfig) {
31
31
  },
32
32
  __sys__.__root__,
33
33
  );
34
- }
35
-
34
+ }
package/src/server.ts CHANGED
@@ -21,38 +21,15 @@ export function SwaggerServer(
21
21
  ) {
22
22
  const docPath = config.path || "/docs";
23
23
  const specPath = `${docPath}/swagger.json`;
24
- console.log("plugin root path: ", __sys__.__root__);
25
-
26
- console.log(
27
- "😇 env de HELLO depuis le plugin: ",
28
- __sys__.__env__.get("HELLO"),
29
- );
30
- console.log(
31
- "🤧 env de COMMON_VAR du root du project (devrait être undefined): ",
32
- __sys__.__env__.get("COMMON_VAR"),
33
- );
34
-
35
- console.log(
36
- "🤠 env from root using __sys__ (devrait être strictement undefined vue que ici, sys.__root__ devrait conduire vers '/home/idevo/Documents/projects/XyPriss/mods/swagger') pourtant le .env de cette root n'a pas de name: ",
37
- __sys__.__env__.get("NAME"),
38
- );
39
24
 
40
25
  const workspaceSYS = __sys__.plugins.get(meta.name);
41
26
 
42
- // console.log("workspaceFS: ", workspaceFS);
43
-
44
27
  if (!workspaceSYS) {
45
28
  throw new Error(
46
29
  toPascalCase(meta.name, "-") +
47
30
  " is not authorized in your xypriss.config.jsonc or xypriss.config.json. Please add ",
48
31
  );
49
32
  }
50
- console.log(
51
- "🤠 env from root using workspaceSYS (devrait être undefined selon la config de l'utilisateur: en mode ROOT:// ça devrait conduire vers _sys__.root ('/home/idevo/Documents/projects/XyPriss/mods/swagger') et CWD:// devrait envoyer process.cwd() ('/home/idevo/Documents/projects/XyPriss' (vue qu'on excute la cmd ici))): ",
52
- workspaceSYS.__env__.get("NAME"),
53
- );
54
- console.log("😝 root path: ", workspaceSYS.__root__);
55
- console.log("😅 listing directory path: ", workspaceSYS.fs.ls("."));
56
33
 
57
34
  const port = config.port || 7070;
58
35
  const server = ops.createAuxiliaryServer({
@@ -103,3 +80,4 @@ export function SwaggerServer(
103
80
  logger.http(`GET ${url}`);
104
81
  });
105
82
  }
83
+
@@ -0,0 +1,10 @@
1
+ {
2
+ "author_key": "ed25519:a58b17a3e46302dd3ae5538bc9b8b991c57f4c5fe2e7d8ac41803de818d947f4",
3
+ "content_hash": "sha256:a2690eb5c1e4ea35b78b7efea70aff9e64f040b18d9583c10484ac95dca2b270",
4
+ "expires_at": "2027-04-20T05:15:05Z",
5
+ "min_version": "1.0.22",
6
+ "name": "xypriss-swagger",
7
+ "prev_sig_hash": "sha256:none",
8
+ "signature": "base64:hgmSoSJCe/JcGZHnqKVMXR0+mYgx8kCpWlfVqjjlmZwgaA+9BwlNsPMxAq+Eovzyg3vGLXNU0zCSqLpNk+h9Cg==",
9
+ "version": "1.0.22"
10
+ }