nuxt-security-module 0.0.0-stage → 4.1.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.
- package/LICENSE +201 -0
- package/README.md +21 -2
- package/dist/index.d.ts +17 -0
- package/dist/index.js +105 -0
- package/dist/models/AllowedMethodsRestricterOptions.d.ts +5 -0
- package/dist/models/BasicAuthOptions.d.ts +9 -0
- package/dist/models/ContentSecurityPolicy.d.ts +3 -0
- package/dist/models/CorsHandlerOptions.d.ts +13 -0
- package/dist/models/CrossOriginEmbedderPolicy.d.ts +8 -0
- package/dist/models/CrossOriginEmbedderPolicy.js +8 -0
- package/dist/models/CsrfOptions.d.ts +6 -0
- package/dist/models/ModuleOptions.d.ts +27 -0
- package/dist/models/PermissionsPolicy.d.ts +3 -0
- package/dist/models/RateLimitWindow.d.ts +6 -0
- package/dist/models/RateLimiterOptions.d.ts +6 -0
- package/dist/models/RateLimiterStore.d.ts +6 -0
- package/dist/models/RequestSizeLimiterOptions.d.ts +6 -0
- package/dist/models/SecurityHeaders.d.ts +22 -0
- package/dist/models/SecurityRouteRules.d.ts +4 -0
- package/dist/models/SecurityRules.d.ts +4 -0
- package/dist/models/SsgOptions.d.ts +9 -0
- package/dist/models/StrictTransportSecurity.d.ts +7 -0
- package/dist/models/XFrameOptions.d.ts +7 -0
- package/dist/models/XFrameOptions.js +7 -0
- package/dist/runtime/constants.d.ts +24 -0
- package/dist/runtime/constants.js +52 -0
- package/dist/runtime/nitro/plugins/hidePoweredBy.d.ts +5 -0
- package/dist/runtime/nitro/plugins/hidePoweredBy.js +13 -0
- package/dist/runtime/nitro/plugins/nonce.d.ts +5 -0
- package/dist/runtime/nitro/plugins/nonce.js +27 -0
- package/dist/runtime/nitro/plugins/routeRules.d.ts +5 -0
- package/dist/runtime/nitro/plugins/routeRules.js +17 -0
- package/dist/runtime/nitro/plugins/securityHeaders.d.ts +5 -0
- package/dist/runtime/nitro/plugins/securityHeaders.js +25 -0
- package/dist/runtime/nitro/plugins/ssgHashes.d.ts +5 -0
- package/dist/runtime/nitro/plugins/ssgHashes.js +27 -0
- package/dist/runtime/nitro/plugins/subresourceIntegrity.d.ts +4 -0
- package/dist/runtime/nitro/plugins/subresourceIntegrity.js +19 -0
- package/dist/runtime/server/middleware/allowedMethodsRestricter.d.ts +5 -0
- package/dist/runtime/server/middleware/allowedMethodsRestricter.js +15 -0
- package/dist/runtime/server/middleware/basicAuth.d.ts +5 -0
- package/dist/runtime/server/middleware/basicAuth.js +23 -0
- package/dist/runtime/server/middleware/corsHandler.d.ts +5 -0
- package/dist/runtime/server/middleware/corsHandler.js +20 -0
- package/dist/runtime/server/middleware/csrf.d.ts +5 -0
- package/dist/runtime/server/middleware/csrf.js +28 -0
- package/dist/runtime/server/middleware/rateLimiter.d.ts +5 -0
- package/dist/runtime/server/middleware/rateLimiter.js +22 -0
- package/dist/runtime/server/middleware/requestSizeLimiter.d.ts +5 -0
- package/dist/runtime/server/middleware/requestSizeLimiter.js +17 -0
- package/dist/runtime/services/checkIsBasicAuthorized.d.ts +4 -0
- package/dist/runtime/services/checkIsBasicAuthorized.js +12 -0
- package/dist/runtime/services/checkIsChallenged.d.ts +4 -0
- package/dist/runtime/services/checkIsChallenged.js +8 -0
- package/dist/runtime/services/checkIsCsrfTokenValid.d.ts +3 -0
- package/dist/runtime/services/checkIsCsrfTokenValid.js +8 -0
- package/dist/runtime/services/checkIsEqualInConstantTime.d.ts +3 -0
- package/dist/runtime/services/checkIsEqualInConstantTime.js +11 -0
- package/dist/runtime/services/checkIsMethodAllowed.d.ts +3 -0
- package/dist/runtime/services/checkIsMethodAllowed.js +4 -0
- package/dist/runtime/services/checkIsRecord.d.ts +3 -0
- package/dist/runtime/services/checkIsRecord.js +4 -0
- package/dist/runtime/services/checkIsRequestTooLarge.d.ts +4 -0
- package/dist/runtime/services/checkIsRequestTooLarge.js +9 -0
- package/dist/runtime/services/collectSsgHashes.d.ts +5 -0
- package/dist/runtime/services/collectSsgHashes.js +41 -0
- package/dist/runtime/services/createInMemoryRateLimiterStore.d.ts +4 -0
- package/dist/runtime/services/createInMemoryRateLimiterStore.js +22 -0
- package/dist/runtime/services/generateHash.d.ts +3 -0
- package/dist/runtime/services/generateHash.js +9 -0
- package/dist/runtime/services/generateNonce.d.ts +3 -0
- package/dist/runtime/services/generateNonce.js +6 -0
- package/dist/runtime/services/generateRandomToken.d.ts +3 -0
- package/dist/runtime/services/generateRandomToken.js +8 -0
- package/dist/runtime/services/getBasicAuthCredentials.d.ts +6 -0
- package/dist/runtime/services/getBasicAuthCredentials.js +19 -0
- package/dist/runtime/services/getBasicAuthOptions.d.ts +4 -0
- package/dist/runtime/services/getBasicAuthOptions.js +17 -0
- package/dist/runtime/services/getRetryAfterSeconds.d.ts +5 -0
- package/dist/runtime/services/getRetryAfterSeconds.js +9 -0
- package/dist/runtime/services/getSecurityRules.d.ts +5 -0
- package/dist/runtime/services/getSecurityRules.js +15 -0
- package/dist/runtime/services/getSecurityState.d.ts +11 -0
- package/dist/runtime/services/getSecurityState.js +14 -0
- package/dist/runtime/services/injectNonce.d.ts +3 -0
- package/dist/runtime/services/injectNonce.js +7 -0
- package/dist/runtime/services/injectSubresourceIntegrity.d.ts +3 -0
- package/dist/runtime/services/injectSubresourceIntegrity.js +22 -0
- package/dist/runtime/services/insertContentSecurityPolicyMeta.d.ts +4 -0
- package/dist/runtime/services/insertContentSecurityPolicyMeta.js +17 -0
- package/dist/runtime/services/mergeSecurityRules.d.ts +4 -0
- package/dist/runtime/services/mergeSecurityRules.js +11 -0
- package/dist/runtime/services/readHtmlTagAttribute.d.ts +3 -0
- package/dist/runtime/services/readHtmlTagAttribute.js +8 -0
- package/dist/runtime/services/rewriteHtmlTags.d.ts +3 -0
- package/dist/runtime/services/rewriteHtmlTags.js +9 -0
- package/dist/runtime/services/securityRouteMatcher.d.ts +5 -0
- package/dist/runtime/services/securityRouteMatcher.js +11 -0
- package/dist/runtime/services/serializeBasicAuthChallenge.d.ts +3 -0
- package/dist/runtime/services/serializeBasicAuthChallenge.js +4 -0
- package/dist/runtime/services/serializeContentSecurityPolicy.d.ts +4 -0
- package/dist/runtime/services/serializeContentSecurityPolicy.js +7 -0
- package/dist/runtime/services/serializePermissionsPolicy.d.ts +4 -0
- package/dist/runtime/services/serializePermissionsPolicy.js +4 -0
- package/dist/runtime/services/serializeSecurityHeaders.d.ts +4 -0
- package/dist/runtime/services/serializeSecurityHeaders.js +19 -0
- package/dist/runtime/services/serializeStrictTransportSecurity.d.ts +4 -0
- package/dist/runtime/services/serializeStrictTransportSecurity.js +8 -0
- package/dist/runtime/services/stripHtmlTagAttribute.d.ts +3 -0
- package/dist/runtime/services/stripHtmlTagAttribute.js +5 -0
- package/dist/runtime/services/updateContentSecurityPolicy.d.ts +5 -0
- package/dist/runtime/services/updateContentSecurityPolicy.js +15 -0
- package/dist/schemas/allowedMethodsRestricterOptionsSchema.js +5 -0
- package/dist/schemas/basicAuthOptionsSchema.js +12 -0
- package/dist/schemas/contentSecurityPolicySchema.js +5 -0
- package/dist/schemas/corsHandlerOptionsSchema.js +14 -0
- package/dist/schemas/csrfOptionsSchema.js +9 -0
- package/dist/schemas/moduleOptionsSchema.js +29 -0
- package/dist/schemas/permissionsPolicySchema.js +5 -0
- package/dist/schemas/rateLimiterOptionsSchema.js +8 -0
- package/dist/schemas/requestSizeLimiterOptionsSchema.js +8 -0
- package/dist/schemas/securityHeadersSchema.js +25 -0
- package/dist/schemas/ssgOptionsSchema.js +11 -0
- package/dist/schemas/strictTransportSecurityOptionsSchema.js +9 -0
- package/dist/services/computeSubresourceIntegrityHashes.js +29 -0
- package/dist/services/formatZodIssues.js +16 -0
- package/dist/services/getDefaultModuleOptions.js +41 -0
- package/dist/services/getDefaultSecurityHeaders.js +85 -0
- package/dist/services/getPluginTemplate.js +10 -0
- package/dist/services/getRemoveLoggersViteConfig.js +4 -0
- package/dist/services/getRouteRulesTemplate.js +4 -0
- package/dist/services/getRouteSecurityRules.js +17 -0
- package/dist/services/getStaticResourceHeaders.js +12 -0
- package/dist/services/getTypeTemplate.js +25 -0
- package/dist/services/mergeModuleOptions.js +39 -0
- package/dist/services/parseModuleOptions.js +10 -0
- package/package.json +70 -4
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { NONCE_PLACEHOLDER } from "../runtime/constants.js";
|
|
2
|
+
import { CrossOriginEmbedderPolicy } from "../models/CrossOriginEmbedderPolicy.js";
|
|
3
|
+
import { XFrameOptions } from "../models/XFrameOptions.js";
|
|
4
|
+
//#region src/services/getDefaultSecurityHeaders.ts
|
|
5
|
+
const getDefaultSecurityHeaders = (isDevelopment, isStrict) => ({
|
|
6
|
+
contentSecurityPolicy: {
|
|
7
|
+
"base-uri": ["'none'"],
|
|
8
|
+
"default-src": ["'self'"],
|
|
9
|
+
"font-src": [
|
|
10
|
+
"'self'",
|
|
11
|
+
"https:",
|
|
12
|
+
"data:"
|
|
13
|
+
],
|
|
14
|
+
"form-action": ["'self'"],
|
|
15
|
+
"frame-ancestors": ["'self'"],
|
|
16
|
+
"img-src": ["'self'", "data:"],
|
|
17
|
+
"object-src": ["'none'"],
|
|
18
|
+
"script-src": isStrict ? [
|
|
19
|
+
"'self'",
|
|
20
|
+
"'strict-dynamic'",
|
|
21
|
+
NONCE_PLACEHOLDER
|
|
22
|
+
] : [
|
|
23
|
+
"'self'",
|
|
24
|
+
"https:",
|
|
25
|
+
"'unsafe-inline'",
|
|
26
|
+
"'strict-dynamic'",
|
|
27
|
+
NONCE_PLACEHOLDER
|
|
28
|
+
],
|
|
29
|
+
"script-src-attr": ["'none'"],
|
|
30
|
+
"style-src": [
|
|
31
|
+
"'self'",
|
|
32
|
+
"https:",
|
|
33
|
+
"'unsafe-inline'"
|
|
34
|
+
],
|
|
35
|
+
"upgrade-insecure-requests": true
|
|
36
|
+
},
|
|
37
|
+
crossOriginEmbedderPolicy: isDevelopment ? CrossOriginEmbedderPolicy.UnsafeNone : CrossOriginEmbedderPolicy.Credentialless,
|
|
38
|
+
crossOriginOpenerPolicy: "same-origin",
|
|
39
|
+
crossOriginResourcePolicy: "same-origin",
|
|
40
|
+
originAgentCluster: "?1",
|
|
41
|
+
permissionsPolicy: {
|
|
42
|
+
accelerometer: [],
|
|
43
|
+
autoplay: [],
|
|
44
|
+
camera: [],
|
|
45
|
+
"clipboard-read": [],
|
|
46
|
+
"clipboard-write": [],
|
|
47
|
+
"cross-origin-isolated": [],
|
|
48
|
+
"display-capture": [],
|
|
49
|
+
"encrypted-media": [],
|
|
50
|
+
fullscreen: [],
|
|
51
|
+
gamepad: [],
|
|
52
|
+
geolocation: [],
|
|
53
|
+
gyroscope: [],
|
|
54
|
+
hid: [],
|
|
55
|
+
"idle-detection": [],
|
|
56
|
+
"interest-cohort": [],
|
|
57
|
+
"keyboard-map": [],
|
|
58
|
+
magnetometer: [],
|
|
59
|
+
microphone: [],
|
|
60
|
+
midi: [],
|
|
61
|
+
payment: [],
|
|
62
|
+
"picture-in-picture": [],
|
|
63
|
+
"publickey-credentials-get": [],
|
|
64
|
+
"screen-wake-lock": [],
|
|
65
|
+
serial: [],
|
|
66
|
+
"sync-xhr": ["self"],
|
|
67
|
+
unload: [],
|
|
68
|
+
usb: [],
|
|
69
|
+
"web-share": [],
|
|
70
|
+
"xr-spatial-tracking": []
|
|
71
|
+
},
|
|
72
|
+
referrerPolicy: "no-referrer",
|
|
73
|
+
strictTransportSecurity: {
|
|
74
|
+
includeSubdomains: true,
|
|
75
|
+
maxAge: 63072e3,
|
|
76
|
+
preload: false
|
|
77
|
+
},
|
|
78
|
+
xContentTypeOptions: "nosniff",
|
|
79
|
+
xDNSPrefetchControl: "off",
|
|
80
|
+
xDownloadOptions: "noopen",
|
|
81
|
+
xFrameOptions: XFrameOptions.SameOrigin,
|
|
82
|
+
xPermittedCrossDomainPolicies: "none"
|
|
83
|
+
});
|
|
84
|
+
//#endregion
|
|
85
|
+
export { getDefaultSecurityHeaders };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/services/getPluginTemplate.ts
|
|
2
|
+
const getPluginTemplate = (factoryPath, factoryName, dataPath) => [
|
|
3
|
+
`import { ${factoryName} } from ${JSON.stringify(factoryPath)};`,
|
|
4
|
+
`import data from ${JSON.stringify(dataPath)};`,
|
|
5
|
+
"",
|
|
6
|
+
`export default ${factoryName}(data);`,
|
|
7
|
+
""
|
|
8
|
+
].join("\n");
|
|
9
|
+
//#endregion
|
|
10
|
+
export { getPluginTemplate };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { moduleOptionsSchema } from "../schemas/moduleOptionsSchema.js";
|
|
2
|
+
import { formatZodIssues } from "./formatZodIssues.js";
|
|
3
|
+
import { mergeModuleOptions } from "./mergeModuleOptions.js";
|
|
4
|
+
//#region src/services/getRouteSecurityRules.ts
|
|
5
|
+
const getRouteSecurityRules = (routeRules, options) => {
|
|
6
|
+
const routeSecurityRules = {};
|
|
7
|
+
for (const [route, { security }] of Object.entries(routeRules)) {
|
|
8
|
+
if (security === void 0) continue;
|
|
9
|
+
if (Object.hasOwn(security, "basicAuth")) throw new TypeError(`nuxt-security-module: route ${route}: basicAuth cannot be set in a route rule`);
|
|
10
|
+
const result = moduleOptionsSchema.safeParse(mergeModuleOptions(options, security));
|
|
11
|
+
if (!result.success) throw new TypeError(`nuxt-security-module: route ${route}: ${formatZodIssues(result.error.issues)}`);
|
|
12
|
+
routeSecurityRules[route] = security;
|
|
13
|
+
}
|
|
14
|
+
return routeSecurityRules;
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { getRouteSecurityRules };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { serializeSecurityHeaders } from "../runtime/services/serializeSecurityHeaders.js";
|
|
2
|
+
//#region src/services/getStaticResourceHeaders.ts
|
|
3
|
+
const getStaticResourceHeaders = (headers) => serializeSecurityHeaders({
|
|
4
|
+
referrerPolicy: headers.referrerPolicy,
|
|
5
|
+
strictTransportSecurity: headers.strictTransportSecurity,
|
|
6
|
+
xContentTypeOptions: headers.xContentTypeOptions,
|
|
7
|
+
xDownloadOptions: headers.xDownloadOptions,
|
|
8
|
+
xFrameOptions: headers.xFrameOptions,
|
|
9
|
+
xPermittedCrossDomainPolicies: headers.xPermittedCrossDomainPolicies
|
|
10
|
+
});
|
|
11
|
+
//#endregion
|
|
12
|
+
export { getStaticResourceHeaders };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MODULE_NAME, ROUTE_RULES_HOOK } from "../runtime/constants.js";
|
|
2
|
+
//#region src/services/getTypeTemplate.ts
|
|
3
|
+
const getTypeTemplate = () => `// Generated by ${MODULE_NAME}
|
|
4
|
+
import type { ModuleOptions } from '${MODULE_NAME}'
|
|
5
|
+
|
|
6
|
+
declare module '#${MODULE_NAME}/route-rules.mjs' {
|
|
7
|
+
const routeRules: Record<string, Partial<ModuleOptions>>
|
|
8
|
+
export default routeRules
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
declare module '#${MODULE_NAME}/sri-hashes.mjs' {
|
|
12
|
+
const sriHashes: Record<string, string>
|
|
13
|
+
export default sriHashes
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare module 'nitro/types' {
|
|
17
|
+
interface NitroRuntimeHooks {
|
|
18
|
+
'${ROUTE_RULES_HOOK}': (routeRules: Record<string, Partial<ModuleOptions>>) => void | Promise<void>
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export {}
|
|
23
|
+
`;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { getTypeTemplate };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//#region src/services/mergeModuleOptions.ts
|
|
2
|
+
const mergeModuleOptions = (defaults, overrides) => ({
|
|
3
|
+
...defaults,
|
|
4
|
+
...overrides,
|
|
5
|
+
headers: mergeHeaders(defaults.headers, overrides.headers),
|
|
6
|
+
ssg: overrides.ssg === false ? false : {
|
|
7
|
+
...defaults.ssg,
|
|
8
|
+
...overrides.ssg
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const mergeHeaders = (defaults, overrides) => {
|
|
12
|
+
if (overrides === false || defaults === false) return overrides ?? defaults;
|
|
13
|
+
if (overrides === void 0) return defaults;
|
|
14
|
+
return {
|
|
15
|
+
...defaults,
|
|
16
|
+
...overrides,
|
|
17
|
+
contentSecurityPolicy: mergeDirectives(defaults.contentSecurityPolicy, overrides.contentSecurityPolicy),
|
|
18
|
+
permissionsPolicy: mergeFeatures(defaults.permissionsPolicy, overrides.permissionsPolicy)
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const mergeDirectives = (defaults, overrides) => {
|
|
22
|
+
if (overrides === false || defaults === false) return overrides ?? defaults;
|
|
23
|
+
if (overrides === void 0) return defaults;
|
|
24
|
+
const merged = { ...defaults };
|
|
25
|
+
for (const [directive, value] of Object.entries(overrides)) if (value === false) delete merged[directive];
|
|
26
|
+
else if (Array.isArray(value)) merged[directive] = [.../* @__PURE__ */ new Set([...Array.isArray(merged[directive]) ? merged[directive] : [], ...value])];
|
|
27
|
+
else merged[directive] = value;
|
|
28
|
+
return merged;
|
|
29
|
+
};
|
|
30
|
+
const mergeFeatures = (defaults, overrides) => {
|
|
31
|
+
if (overrides === false || defaults === false) return overrides ?? defaults;
|
|
32
|
+
if (overrides === void 0) return defaults;
|
|
33
|
+
const merged = { ...defaults };
|
|
34
|
+
for (const [feature, sources] of Object.entries(overrides)) if (sources === false) delete merged[feature];
|
|
35
|
+
else merged[feature] = [.../* @__PURE__ */ new Set([...merged[feature] || [], ...sources || []])];
|
|
36
|
+
return merged;
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { mergeModuleOptions };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { moduleOptionsSchema } from "../schemas/moduleOptionsSchema.js";
|
|
2
|
+
import { formatZodIssues } from "./formatZodIssues.js";
|
|
3
|
+
//#region src/services/parseModuleOptions.ts
|
|
4
|
+
const parseModuleOptions = (options) => {
|
|
5
|
+
const result = moduleOptionsSchema.safeParse(options);
|
|
6
|
+
if (!result.success) throw new TypeError(`nuxt-security-module: ${formatZodIssues(result.error.issues)}`);
|
|
7
|
+
return result.data;
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { parseModuleOptions };
|
package/package.json
CHANGED
|
@@ -1,6 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-security-module",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "4.1.1",
|
|
4
|
+
"description": "Nuxt security module for Nitro 3 and h3 2 — security headers, a per-request nonce Content Security Policy, subresource integrity, CORS, allowed methods, basic auth and a request size limit.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"author": "Jimmy Chen",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/Esposter/Esposter.git"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"type": "module",
|
|
15
|
+
"sideEffects": false,
|
|
16
|
+
"types": "dist/index.d.ts",
|
|
17
|
+
"imports": {
|
|
18
|
+
"#src/*": "./src/*.ts"
|
|
19
|
+
},
|
|
20
|
+
"exports": {
|
|
21
|
+
".": "./dist/index.js",
|
|
22
|
+
"./runtime/constants": "./dist/runtime/constants.js",
|
|
23
|
+
"./runtime/nitro/plugins/hidePoweredBy": "./dist/runtime/nitro/plugins/hidePoweredBy.js",
|
|
24
|
+
"./runtime/nitro/plugins/nonce": "./dist/runtime/nitro/plugins/nonce.js",
|
|
25
|
+
"./runtime/nitro/plugins/routeRules": "./dist/runtime/nitro/plugins/routeRules.js",
|
|
26
|
+
"./runtime/nitro/plugins/securityHeaders": "./dist/runtime/nitro/plugins/securityHeaders.js",
|
|
27
|
+
"./runtime/nitro/plugins/ssgHashes": "./dist/runtime/nitro/plugins/ssgHashes.js",
|
|
28
|
+
"./runtime/nitro/plugins/subresourceIntegrity": "./dist/runtime/nitro/plugins/subresourceIntegrity.js",
|
|
29
|
+
"./runtime/server/middleware/allowedMethodsRestricter": "./dist/runtime/server/middleware/allowedMethodsRestricter.js",
|
|
30
|
+
"./runtime/server/middleware/basicAuth": "./dist/runtime/server/middleware/basicAuth.js",
|
|
31
|
+
"./runtime/server/middleware/corsHandler": "./dist/runtime/server/middleware/corsHandler.js",
|
|
32
|
+
"./runtime/server/middleware/csrf": "./dist/runtime/server/middleware/csrf.js",
|
|
33
|
+
"./runtime/server/middleware/rateLimiter": "./dist/runtime/server/middleware/rateLimiter.js",
|
|
34
|
+
"./runtime/server/middleware/requestSizeLimiter": "./dist/runtime/server/middleware/requestSizeLimiter.js",
|
|
35
|
+
"./package.json": "./package.json"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsdown",
|
|
39
|
+
"bench": "vitest bench --run",
|
|
40
|
+
"format": "oxfmt",
|
|
41
|
+
"format:check": "oxfmt --check",
|
|
42
|
+
"lint": "eslint .",
|
|
43
|
+
"lint:fix": "eslint --fix .",
|
|
44
|
+
"test": "vitest",
|
|
45
|
+
"typecheck": "tsc"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@nuxt/kit": "npm:@nuxt/kit-nightly@5x",
|
|
49
|
+
"@nuxt/schema": "npm:@nuxt/schema-nightly@5x",
|
|
50
|
+
"defu": "^6.1.7",
|
|
51
|
+
"rou3": "^1.0.0",
|
|
52
|
+
"zod": "^4.6.7"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@arethetypeswrong/core": "^0.18.5",
|
|
56
|
+
"@esposter/configuration": "4.1.1",
|
|
57
|
+
"@esposter/shared-node": "4.1.1",
|
|
58
|
+
"@nuxt/nitro-server": "npm:@nuxt/nitro-server-nightly@5x",
|
|
59
|
+
"@types/node": "^26.6.5",
|
|
60
|
+
"fast-check": "^4.10.2",
|
|
61
|
+
"h3": "^2.0.2",
|
|
62
|
+
"nitro": "npm:nitro-nightly@latest",
|
|
63
|
+
"publint": "^0.3.25",
|
|
64
|
+
"tsdown": "^0.23.1",
|
|
65
|
+
"vitest": "^5.0.4"
|
|
66
|
+
},
|
|
67
|
+
"peerDependencies": {
|
|
68
|
+
"nitro": "npm:nitro-nightly@latest",
|
|
69
|
+
"nuxt": "npm:nuxt-nightly@5x"
|
|
70
|
+
},
|
|
71
|
+
"gitHead": "47b7795ab557d7731aa60588d0b9d1cdff243328"
|
|
72
|
+
}
|