azurajs 3.0.7 → 3.0.8
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/core/index.d.mts +2 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +58 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +58 -1
- package/dist/core/index.mjs.map +1 -1
- package/dist/cors/index.js +1 -0
- package/dist/cors/index.js.map +1 -1
- package/dist/cors/index.mjs +1 -0
- package/dist/cors/index.mjs.map +1 -1
- package/dist/index.js +58 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +58 -48
- package/dist/index.mjs.map +1 -1
- package/dist/plugins/index.js +1 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/index.mjs +1 -0
- package/dist/plugins/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/core/server.ts +13 -1
- package/src/plugins/CORSPlugin.ts +2 -0
package/dist/cors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/CORSPlugin.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/CORSPlugin.ts"],"names":[],"mappings":";;;AAGA,IAAM,eAAA,GAAkB,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,QAAA,EAAU,OAAA,EAAS,QAAQ,SAAS,CAAA;AACnF,IAAM,eAAA,GAAkB,CAAC,cAAA,EAAgB,eAAA,EAAiB,UAAU,kBAAkB,CAAA;AAE/E,SAAS,UAAA,CAAW,OAAA,GAAuB,EAAC,EAAkB;AACnE,EAAA,MAAM;AAAA,IACJ,OAAA,GAAU,GAAA;AAAA,IACV,OAAA,GAAU,eAAA;AAAA,IACV,cAAA,GAAiB,eAAA;AAAA,IACjB,iBAAiB,EAAC;AAAA,IAClB,WAAA,GAAc,KAAA;AAAA,IACd,MAAA,GAAS,KAAA;AAAA,IACT,iBAAA,GAAoB;AAAA,GACtB,GAAI,OAAA;AAEJ,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AACpC,EAAA,MAAM,UAAA,GAAa,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AAC3C,EAAA,MAAM,aAAa,cAAA,CAAe,MAAA,GAAS,IAAI,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA,GAAI,EAAA;AAE3E,EAAA,MAAM,eAAA,GAAkB,CAAC,MAAA,KAAmC;AAC1D,IAAA,IAAI,OAAA,KAAY,GAAA,EAAK,OAAO,WAAA,GAAc,MAAA,GAAS,GAAA;AACnD,IAAA,IAAI,OAAO,OAAA,KAAY,UAAA,SAAmB,OAAA,CAAQ,MAAM,IAAI,MAAA,GAAS,KAAA;AACrE,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,OAAO,MAAA,KAAW,UAAU,MAAA,GAAS,KAAA;AACtE,IAAA,IAAI,KAAA,CAAM,QAAQ,OAAO,CAAA,SAAU,OAAA,CAAQ,QAAA,CAAS,MAAM,CAAA,GAAI,MAAA,GAAS,KAAA;AACvE,IAAA,OAAO,KAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,CAAC,KAAK,IAAA,KAAS;AACpB,IAAA,MAAM,EAAE,GAAA,EAAK,GAAA,EAAI,GAAI,GAAA;AACrB,IAAA,MAAM,MAAA,GAAS,GAAA,CAAI,OAAA,CAAQ,MAAA,IAAU,EAAA;AAErC,IAAA,MAAM,aAAA,GAAgB,gBAAgB,MAAM,CAAA;AAE5C,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,GAAA,CAAI,SAAA,CAAU,+BAA+B,aAAa,CAAA;AAC1D,MAAA,IAAI,WAAA,EAAa,GAAA,CAAI,SAAA,CAAU,kCAAA,EAAoC,MAAM,CAAA;AACzE,MAAA,IAAI,UAAA,EAAY,GAAA,CAAI,SAAA,CAAU,+BAAA,EAAiC,UAAU,CAAA;AACzE,MAAA,IAAI,aAAA,KAAkB,GAAA,EAAK,GAAA,CAAI,SAAA,CAAU,QAAQ,QAAQ,CAAA;AAAA,IAC3D;AAEA,IAAA,IAAI,GAAA,CAAI,WAAW,SAAA,EAAW;AAC5B,MAAA,GAAA,CAAI,SAAA,CAAU,gCAAgC,UAAU,CAAA;AACxD,MAAA,GAAA,CAAI,SAAA,CAAU,gCAAgC,UAAU,CAAA;AACxD,MAAA,GAAA,CAAI,SAAA,CAAU,wBAAA,EAA0B,MAAA,CAAO,MAAM,CAAC,CAAA;AAEtD,MAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,QAAC,IAAsB,IAAA,GAAO,IAAA;AAC9B,QAAA,GAAA,CAAI,UAAA,GAAa,GAAA;AACjB,QAAA,GAAA,CAAI,GAAA,EAAI;AACR,QAAA;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAA,EAAK;AAAA,EACP,CAAA;AACF","file":"index.js","sourcesContent":["import type { AzuraResponse } from \"../types/common.type.js\";\r\nimport type { CORSOptions, PluginHandler } from \"../types/plugins/plugin.type.js\";\r\n\r\nconst DEFAULT_METHODS = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\"];\r\nconst DEFAULT_HEADERS = [\"Content-Type\", \"Authorization\", \"Accept\", \"X-Requested-With\"];\r\n\r\nexport function CORSPlugin(options: CORSOptions = {}): PluginHandler {\r\n const {\r\n origins = \"*\",\r\n methods = DEFAULT_METHODS,\r\n allowedHeaders = DEFAULT_HEADERS,\r\n exposedHeaders = [],\r\n credentials = false,\r\n maxAge = 86400,\r\n preflightContinue = false,\r\n } = options;\r\n\r\n const methodsStr = methods.join(\", \");\r\n const headersStr = allowedHeaders.join(\", \");\r\n const exposedStr = exposedHeaders.length > 0 ? exposedHeaders.join(\", \") : \"\";\r\n\r\n const isAllowedOrigin = (origin: string): string | false => {\r\n if (origins === \"*\") return credentials ? origin : \"*\";\r\n if (typeof origins === \"function\") return origins(origin) ? origin : false;\r\n if (typeof origins === \"string\") return origin === origins ? origin : false;\r\n if (Array.isArray(origins)) return origins.includes(origin) ? origin : false;\r\n return false;\r\n };\r\n\r\n return (ctx, next) => {\r\n const { req, res } = ctx;\r\n const origin = req.headers.origin ?? \"\";\r\n\r\n const allowedOrigin = isAllowedOrigin(origin);\r\n\r\n if (allowedOrigin) {\r\n res.setHeader(\"Access-Control-Allow-Origin\", allowedOrigin);\r\n if (credentials) res.setHeader(\"Access-Control-Allow-Credentials\", \"true\");\r\n if (exposedStr) res.setHeader(\"Access-Control-Expose-Headers\", exposedStr);\r\n if (allowedOrigin !== \"*\") res.setHeader(\"Vary\", \"Origin\");\r\n }\r\n\r\n if (req.method === \"OPTIONS\") {\r\n res.setHeader(\"Access-Control-Allow-Methods\", methodsStr);\r\n res.setHeader(\"Access-Control-Allow-Headers\", headersStr);\r\n res.setHeader(\"Access-Control-Max-Age\", String(maxAge));\r\n\r\n if (!preflightContinue) {\r\n (res as AzuraResponse).sent = true;\r\n res.statusCode = 204;\r\n res.end();\r\n return;\r\n }\r\n }\r\n\r\n next();\r\n };\r\n}\r\n"]}
|
package/dist/cors/index.mjs
CHANGED
package/dist/cors/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/CORSPlugin.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/CORSPlugin.ts"],"names":[],"mappings":";AAGA,IAAM,eAAA,GAAkB,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,QAAA,EAAU,OAAA,EAAS,QAAQ,SAAS,CAAA;AACnF,IAAM,eAAA,GAAkB,CAAC,cAAA,EAAgB,eAAA,EAAiB,UAAU,kBAAkB,CAAA;AAE/E,SAAS,UAAA,CAAW,OAAA,GAAuB,EAAC,EAAkB;AACnE,EAAA,MAAM;AAAA,IACJ,OAAA,GAAU,GAAA;AAAA,IACV,OAAA,GAAU,eAAA;AAAA,IACV,cAAA,GAAiB,eAAA;AAAA,IACjB,iBAAiB,EAAC;AAAA,IAClB,WAAA,GAAc,KAAA;AAAA,IACd,MAAA,GAAS,KAAA;AAAA,IACT,iBAAA,GAAoB;AAAA,GACtB,GAAI,OAAA;AAEJ,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AACpC,EAAA,MAAM,UAAA,GAAa,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AAC3C,EAAA,MAAM,aAAa,cAAA,CAAe,MAAA,GAAS,IAAI,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA,GAAI,EAAA;AAE3E,EAAA,MAAM,eAAA,GAAkB,CAAC,MAAA,KAAmC;AAC1D,IAAA,IAAI,OAAA,KAAY,GAAA,EAAK,OAAO,WAAA,GAAc,MAAA,GAAS,GAAA;AACnD,IAAA,IAAI,OAAO,OAAA,KAAY,UAAA,SAAmB,OAAA,CAAQ,MAAM,IAAI,MAAA,GAAS,KAAA;AACrE,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,OAAO,MAAA,KAAW,UAAU,MAAA,GAAS,KAAA;AACtE,IAAA,IAAI,KAAA,CAAM,QAAQ,OAAO,CAAA,SAAU,OAAA,CAAQ,QAAA,CAAS,MAAM,CAAA,GAAI,MAAA,GAAS,KAAA;AACvE,IAAA,OAAO,KAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,CAAC,KAAK,IAAA,KAAS;AACpB,IAAA,MAAM,EAAE,GAAA,EAAK,GAAA,EAAI,GAAI,GAAA;AACrB,IAAA,MAAM,MAAA,GAAS,GAAA,CAAI,OAAA,CAAQ,MAAA,IAAU,EAAA;AAErC,IAAA,MAAM,aAAA,GAAgB,gBAAgB,MAAM,CAAA;AAE5C,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,GAAA,CAAI,SAAA,CAAU,+BAA+B,aAAa,CAAA;AAC1D,MAAA,IAAI,WAAA,EAAa,GAAA,CAAI,SAAA,CAAU,kCAAA,EAAoC,MAAM,CAAA;AACzE,MAAA,IAAI,UAAA,EAAY,GAAA,CAAI,SAAA,CAAU,+BAAA,EAAiC,UAAU,CAAA;AACzE,MAAA,IAAI,aAAA,KAAkB,GAAA,EAAK,GAAA,CAAI,SAAA,CAAU,QAAQ,QAAQ,CAAA;AAAA,IAC3D;AAEA,IAAA,IAAI,GAAA,CAAI,WAAW,SAAA,EAAW;AAC5B,MAAA,GAAA,CAAI,SAAA,CAAU,gCAAgC,UAAU,CAAA;AACxD,MAAA,GAAA,CAAI,SAAA,CAAU,gCAAgC,UAAU,CAAA;AACxD,MAAA,GAAA,CAAI,SAAA,CAAU,wBAAA,EAA0B,MAAA,CAAO,MAAM,CAAC,CAAA;AAEtD,MAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,QAAC,IAAsB,IAAA,GAAO,IAAA;AAC9B,QAAA,GAAA,CAAI,UAAA,GAAa,GAAA;AACjB,QAAA,GAAA,CAAI,GAAA,EAAI;AACR,QAAA;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAA,EAAK;AAAA,EACP,CAAA;AACF","file":"index.mjs","sourcesContent":["import type { AzuraResponse } from \"../types/common.type.js\";\r\nimport type { CORSOptions, PluginHandler } from \"../types/plugins/plugin.type.js\";\r\n\r\nconst DEFAULT_METHODS = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\"];\r\nconst DEFAULT_HEADERS = [\"Content-Type\", \"Authorization\", \"Accept\", \"X-Requested-With\"];\r\n\r\nexport function CORSPlugin(options: CORSOptions = {}): PluginHandler {\r\n const {\r\n origins = \"*\",\r\n methods = DEFAULT_METHODS,\r\n allowedHeaders = DEFAULT_HEADERS,\r\n exposedHeaders = [],\r\n credentials = false,\r\n maxAge = 86400,\r\n preflightContinue = false,\r\n } = options;\r\n\r\n const methodsStr = methods.join(\", \");\r\n const headersStr = allowedHeaders.join(\", \");\r\n const exposedStr = exposedHeaders.length > 0 ? exposedHeaders.join(\", \") : \"\";\r\n\r\n const isAllowedOrigin = (origin: string): string | false => {\r\n if (origins === \"*\") return credentials ? origin : \"*\";\r\n if (typeof origins === \"function\") return origins(origin) ? origin : false;\r\n if (typeof origins === \"string\") return origin === origins ? origin : false;\r\n if (Array.isArray(origins)) return origins.includes(origin) ? origin : false;\r\n return false;\r\n };\r\n\r\n return (ctx, next) => {\r\n const { req, res } = ctx;\r\n const origin = req.headers.origin ?? \"\";\r\n\r\n const allowedOrigin = isAllowedOrigin(origin);\r\n\r\n if (allowedOrigin) {\r\n res.setHeader(\"Access-Control-Allow-Origin\", allowedOrigin);\r\n if (credentials) res.setHeader(\"Access-Control-Allow-Credentials\", \"true\");\r\n if (exposedStr) res.setHeader(\"Access-Control-Expose-Headers\", exposedStr);\r\n if (allowedOrigin !== \"*\") res.setHeader(\"Vary\", \"Origin\");\r\n }\r\n\r\n if (req.method === \"OPTIONS\") {\r\n res.setHeader(\"Access-Control-Allow-Methods\", methodsStr);\r\n res.setHeader(\"Access-Control-Allow-Headers\", headersStr);\r\n res.setHeader(\"Access-Control-Max-Age\", String(maxAge));\r\n\r\n if (!preflightContinue) {\r\n (res as AzuraResponse).sent = true;\r\n res.statusCode = 204;\r\n res.end();\r\n return;\r\n }\r\n }\r\n\r\n next();\r\n };\r\n}\r\n"]}
|
package/dist/index.js
CHANGED
|
@@ -809,6 +809,54 @@ function buildOpenApiDocument(routes, options) {
|
|
|
809
809
|
};
|
|
810
810
|
}
|
|
811
811
|
|
|
812
|
+
// src/plugins/CORSPlugin.ts
|
|
813
|
+
var DEFAULT_METHODS = ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"];
|
|
814
|
+
var DEFAULT_HEADERS = ["Content-Type", "Authorization", "Accept", "X-Requested-With"];
|
|
815
|
+
function CORSPlugin(options = {}) {
|
|
816
|
+
const {
|
|
817
|
+
origins = "*",
|
|
818
|
+
methods = DEFAULT_METHODS,
|
|
819
|
+
allowedHeaders = DEFAULT_HEADERS,
|
|
820
|
+
exposedHeaders = [],
|
|
821
|
+
credentials = false,
|
|
822
|
+
maxAge = 86400,
|
|
823
|
+
preflightContinue = false
|
|
824
|
+
} = options;
|
|
825
|
+
const methodsStr = methods.join(", ");
|
|
826
|
+
const headersStr = allowedHeaders.join(", ");
|
|
827
|
+
const exposedStr = exposedHeaders.length > 0 ? exposedHeaders.join(", ") : "";
|
|
828
|
+
const isAllowedOrigin = (origin) => {
|
|
829
|
+
if (origins === "*") return credentials ? origin : "*";
|
|
830
|
+
if (typeof origins === "function") return origins(origin) ? origin : false;
|
|
831
|
+
if (typeof origins === "string") return origin === origins ? origin : false;
|
|
832
|
+
if (Array.isArray(origins)) return origins.includes(origin) ? origin : false;
|
|
833
|
+
return false;
|
|
834
|
+
};
|
|
835
|
+
return (ctx, next) => {
|
|
836
|
+
const { req, res } = ctx;
|
|
837
|
+
const origin = req.headers.origin ?? "";
|
|
838
|
+
const allowedOrigin = isAllowedOrigin(origin);
|
|
839
|
+
if (allowedOrigin) {
|
|
840
|
+
res.setHeader("Access-Control-Allow-Origin", allowedOrigin);
|
|
841
|
+
if (credentials) res.setHeader("Access-Control-Allow-Credentials", "true");
|
|
842
|
+
if (exposedStr) res.setHeader("Access-Control-Expose-Headers", exposedStr);
|
|
843
|
+
if (allowedOrigin !== "*") res.setHeader("Vary", "Origin");
|
|
844
|
+
}
|
|
845
|
+
if (req.method === "OPTIONS") {
|
|
846
|
+
res.setHeader("Access-Control-Allow-Methods", methodsStr);
|
|
847
|
+
res.setHeader("Access-Control-Allow-Headers", headersStr);
|
|
848
|
+
res.setHeader("Access-Control-Max-Age", String(maxAge));
|
|
849
|
+
if (!preflightContinue) {
|
|
850
|
+
res.sent = true;
|
|
851
|
+
res.statusCode = 204;
|
|
852
|
+
res.end();
|
|
853
|
+
return;
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
next();
|
|
857
|
+
};
|
|
858
|
+
}
|
|
859
|
+
|
|
812
860
|
// src/core/server.ts
|
|
813
861
|
function isRouteDocumentMeta(o) {
|
|
814
862
|
if (!o || typeof o !== "object" || Array.isArray(o)) return false;
|
|
@@ -855,6 +903,15 @@ var AzuraServer = class {
|
|
|
855
903
|
colors: this.config.logging?.colors,
|
|
856
904
|
timestamp: this.config.logging?.timestamp
|
|
857
905
|
});
|
|
906
|
+
this.registerPluginsFromConfig();
|
|
907
|
+
}
|
|
908
|
+
/** Activa plugins declarados em `config.plugins` (ex.: CORS). */
|
|
909
|
+
registerPluginsFromConfig() {
|
|
910
|
+
const corsCfg = this.config.plugins?.cors;
|
|
911
|
+
if (corsCfg && corsCfg.enabled !== false) {
|
|
912
|
+
const { enabled: _e, ...corsOptions } = corsCfg;
|
|
913
|
+
this.plugins.push(CORSPlugin(corsOptions));
|
|
914
|
+
}
|
|
858
915
|
}
|
|
859
916
|
use(handler) {
|
|
860
917
|
this.compiledChain = null;
|
|
@@ -1172,7 +1229,7 @@ var AzuraServer = class {
|
|
|
1172
1229
|
try {
|
|
1173
1230
|
const chain = this.compileMiddlewareChain();
|
|
1174
1231
|
await chain(azReq, azRes);
|
|
1175
|
-
if (azRes.sent) return;
|
|
1232
|
+
if (azRes.sent || res.headersSent) return;
|
|
1176
1233
|
const method = (req.method ?? "GET").toUpperCase();
|
|
1177
1234
|
const match = this.router.find(method, pathname);
|
|
1178
1235
|
if (!match) {
|
|
@@ -1458,53 +1515,6 @@ function ApiOperation(meta) {
|
|
|
1458
1515
|
};
|
|
1459
1516
|
}
|
|
1460
1517
|
|
|
1461
|
-
// src/plugins/CORSPlugin.ts
|
|
1462
|
-
var DEFAULT_METHODS = ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"];
|
|
1463
|
-
var DEFAULT_HEADERS = ["Content-Type", "Authorization", "Accept", "X-Requested-With"];
|
|
1464
|
-
function CORSPlugin(options = {}) {
|
|
1465
|
-
const {
|
|
1466
|
-
origins = "*",
|
|
1467
|
-
methods = DEFAULT_METHODS,
|
|
1468
|
-
allowedHeaders = DEFAULT_HEADERS,
|
|
1469
|
-
exposedHeaders = [],
|
|
1470
|
-
credentials = false,
|
|
1471
|
-
maxAge = 86400,
|
|
1472
|
-
preflightContinue = false
|
|
1473
|
-
} = options;
|
|
1474
|
-
const methodsStr = methods.join(", ");
|
|
1475
|
-
const headersStr = allowedHeaders.join(", ");
|
|
1476
|
-
const exposedStr = exposedHeaders.length > 0 ? exposedHeaders.join(", ") : "";
|
|
1477
|
-
const isAllowedOrigin = (origin) => {
|
|
1478
|
-
if (origins === "*") return credentials ? origin : "*";
|
|
1479
|
-
if (typeof origins === "function") return origins(origin) ? origin : false;
|
|
1480
|
-
if (typeof origins === "string") return origin === origins ? origin : false;
|
|
1481
|
-
if (Array.isArray(origins)) return origins.includes(origin) ? origin : false;
|
|
1482
|
-
return false;
|
|
1483
|
-
};
|
|
1484
|
-
return (ctx, next) => {
|
|
1485
|
-
const { req, res } = ctx;
|
|
1486
|
-
const origin = req.headers.origin ?? "";
|
|
1487
|
-
const allowedOrigin = isAllowedOrigin(origin);
|
|
1488
|
-
if (allowedOrigin) {
|
|
1489
|
-
res.setHeader("Access-Control-Allow-Origin", allowedOrigin);
|
|
1490
|
-
if (credentials) res.setHeader("Access-Control-Allow-Credentials", "true");
|
|
1491
|
-
if (exposedStr) res.setHeader("Access-Control-Expose-Headers", exposedStr);
|
|
1492
|
-
if (allowedOrigin !== "*") res.setHeader("Vary", "Origin");
|
|
1493
|
-
}
|
|
1494
|
-
if (req.method === "OPTIONS") {
|
|
1495
|
-
res.setHeader("Access-Control-Allow-Methods", methodsStr);
|
|
1496
|
-
res.setHeader("Access-Control-Allow-Headers", headersStr);
|
|
1497
|
-
res.setHeader("Access-Control-Max-Age", String(maxAge));
|
|
1498
|
-
if (!preflightContinue) {
|
|
1499
|
-
res.statusCode = 204;
|
|
1500
|
-
res.end();
|
|
1501
|
-
return;
|
|
1502
|
-
}
|
|
1503
|
-
}
|
|
1504
|
-
next();
|
|
1505
|
-
};
|
|
1506
|
-
}
|
|
1507
|
-
|
|
1508
1518
|
// src/plugins/RateLimitPlugin.ts
|
|
1509
1519
|
var MemoryStore = class {
|
|
1510
1520
|
store = /* @__PURE__ */ new Map();
|