@hoox-sh/hoox-shared 1.2.0

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.
Files changed (161) hide show
  1. package/README.md +44 -0
  2. package/dist/agent-config-fields.d.ts +32 -0
  3. package/dist/agent-config-fields.d.ts.map +1 -0
  4. package/dist/agent-config-fields.js +220 -0
  5. package/dist/analytics.d.ts +47 -0
  6. package/dist/analytics.d.ts.map +1 -0
  7. package/dist/analytics.js +45 -0
  8. package/dist/api-client.d.ts +48 -0
  9. package/dist/api-client.d.ts.map +1 -0
  10. package/dist/api-client.js +191 -0
  11. package/dist/colors.d.ts +76 -0
  12. package/dist/colors.d.ts.map +1 -0
  13. package/dist/colors.js +82 -0
  14. package/dist/config.d.ts +61 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +146 -0
  17. package/dist/cron-handler.d.ts +38 -0
  18. package/dist/cron-handler.d.ts.map +1 -0
  19. package/dist/cron-handler.js +48 -0
  20. package/dist/d1/index.d.ts +9 -0
  21. package/dist/d1/index.d.ts.map +1 -0
  22. package/dist/d1/index.js +360 -0
  23. package/dist/d1/repository.d.ts +86 -0
  24. package/dist/d1/repository.d.ts.map +1 -0
  25. package/dist/d1/repository.js +297 -0
  26. package/dist/d1/schemas.d.ts +89 -0
  27. package/dist/d1/schemas.d.ts.map +1 -0
  28. package/dist/d1/schemas.js +81 -0
  29. package/dist/dashboard-manifest.d.ts +135 -0
  30. package/dist/dashboard-manifest.d.ts.map +1 -0
  31. package/dist/dashboard-manifest.js +401 -0
  32. package/dist/errors.d.ts +44 -0
  33. package/dist/errors.d.ts.map +1 -0
  34. package/dist/errors.js +149 -0
  35. package/dist/exchange-client.d.ts +98 -0
  36. package/dist/exchange-client.d.ts.map +1 -0
  37. package/dist/exchange-client.js +107 -0
  38. package/dist/exchanges/base-exchange-client.d.ts +81 -0
  39. package/dist/exchanges/base-exchange-client.d.ts.map +1 -0
  40. package/dist/exchanges/base-exchange-client.js +123 -0
  41. package/dist/exchanges/index.d.ts +7 -0
  42. package/dist/exchanges/index.d.ts.map +1 -0
  43. package/dist/exchanges/index.js +123 -0
  44. package/dist/exchanges/types.d.ts +23 -0
  45. package/dist/exchanges/types.d.ts.map +1 -0
  46. package/dist/exchanges/types.js +1 -0
  47. package/dist/format-time.d.ts +28 -0
  48. package/dist/format-time.d.ts.map +1 -0
  49. package/dist/format-time.js +57 -0
  50. package/dist/formatters.d.ts +36 -0
  51. package/dist/formatters.d.ts.map +1 -0
  52. package/dist/formatters.js +155 -0
  53. package/dist/health.d.ts +19 -0
  54. package/dist/health.d.ts.map +1 -0
  55. package/dist/health.js +160 -0
  56. package/dist/index.d.ts +72 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +4198 -0
  59. package/dist/kvKeys.d.ts +76 -0
  60. package/dist/kvKeys.d.ts.map +1 -0
  61. package/dist/kvKeys.js +107 -0
  62. package/dist/kvUtils.d.ts +30 -0
  63. package/dist/kvUtils.d.ts.map +1 -0
  64. package/dist/kvUtils.js +170 -0
  65. package/dist/legal.d.ts +15 -0
  66. package/dist/legal.d.ts.map +1 -0
  67. package/dist/legal.js +40 -0
  68. package/dist/middleware/auth.d.ts +102 -0
  69. package/dist/middleware/auth.d.ts.map +1 -0
  70. package/dist/middleware/auth.js +151 -0
  71. package/dist/middleware/cors.d.ts +58 -0
  72. package/dist/middleware/cors.d.ts.map +1 -0
  73. package/dist/middleware/cors.js +77 -0
  74. package/dist/middleware/index.d.ts +14 -0
  75. package/dist/middleware/index.d.ts.map +1 -0
  76. package/dist/middleware/index.js +635 -0
  77. package/dist/middleware/logger.d.ts +17 -0
  78. package/dist/middleware/logger.d.ts.map +1 -0
  79. package/dist/middleware/logger.js +202 -0
  80. package/dist/middleware/rate-limit.d.ts +30 -0
  81. package/dist/middleware/rate-limit.d.ts.map +1 -0
  82. package/dist/middleware/rate-limit.js +181 -0
  83. package/dist/middleware/security-headers.d.ts +43 -0
  84. package/dist/middleware/security-headers.d.ts.map +1 -0
  85. package/dist/middleware/security-headers.js +58 -0
  86. package/dist/middleware/validate.d.ts +25 -0
  87. package/dist/middleware/validate.d.ts.map +1 -0
  88. package/dist/middleware/validate.js +56 -0
  89. package/dist/operator-transport.d.ts +65 -0
  90. package/dist/operator-transport.d.ts.map +1 -0
  91. package/dist/operator-transport.js +87 -0
  92. package/dist/path-utils.d.ts +190 -0
  93. package/dist/path-utils.d.ts.map +1 -0
  94. package/dist/path-utils.js +188 -0
  95. package/dist/queue-handler.d.ts +47 -0
  96. package/dist/queue-handler.d.ts.map +1 -0
  97. package/dist/queue-handler.js +46 -0
  98. package/dist/router.d.ts +15 -0
  99. package/dist/router.d.ts.map +1 -0
  100. package/dist/router.js +130 -0
  101. package/dist/schemas/index.d.ts +8 -0
  102. package/dist/schemas/index.d.ts.map +1 -0
  103. package/dist/schemas/index.js +705 -0
  104. package/dist/schemas/registry.d.ts +12 -0
  105. package/dist/schemas/registry.d.ts.map +1 -0
  106. package/dist/schemas/registry.js +433 -0
  107. package/dist/schemas/types.d.ts +83 -0
  108. package/dist/schemas/types.d.ts.map +1 -0
  109. package/dist/schemas/types.js +1 -0
  110. package/dist/schemas/validators.d.ts +39 -0
  111. package/dist/schemas/validators.d.ts.map +1 -0
  112. package/dist/schemas/validators.js +290 -0
  113. package/dist/service-bindings.d.ts +78 -0
  114. package/dist/service-bindings.d.ts.map +1 -0
  115. package/dist/service-bindings.js +248 -0
  116. package/dist/session.d.ts +39 -0
  117. package/dist/session.d.ts.map +1 -0
  118. package/dist/session.js +261 -0
  119. package/dist/sse.d.ts +39 -0
  120. package/dist/sse.d.ts.map +1 -0
  121. package/dist/sse.js +154 -0
  122. package/dist/stores/config-store.d.ts +91 -0
  123. package/dist/stores/config-store.d.ts.map +1 -0
  124. package/dist/stores/config-store.js +255 -0
  125. package/dist/stores/service-store.d.ts +266 -0
  126. package/dist/stores/service-store.d.ts.map +1 -0
  127. package/dist/stores/service-store.js +516 -0
  128. package/dist/stores/ui-store.d.ts +67 -0
  129. package/dist/stores/ui-store.d.ts.map +1 -0
  130. package/dist/stores/ui-store.js +62 -0
  131. package/dist/test-utils.d.ts +136 -0
  132. package/dist/test-utils.d.ts.map +1 -0
  133. package/dist/test-utils.js +128 -0
  134. package/dist/types/errors.d.ts +20 -0
  135. package/dist/types/errors.d.ts.map +1 -0
  136. package/dist/types/errors.js +1 -0
  137. package/dist/types/router.d.ts +36 -0
  138. package/dist/types/router.d.ts.map +1 -0
  139. package/dist/types/router.js +1 -0
  140. package/dist/types.d.ts +442 -0
  141. package/dist/types.d.ts.map +1 -0
  142. package/dist/types.js +83 -0
  143. package/dist/wizard/engine.d.ts +46 -0
  144. package/dist/wizard/engine.d.ts.map +1 -0
  145. package/dist/wizard/engine.js +525 -0
  146. package/dist/wizard/index.d.ts +11 -0
  147. package/dist/wizard/index.d.ts.map +1 -0
  148. package/dist/wizard/index.js +544 -0
  149. package/dist/wizard/persistence.d.ts +18 -0
  150. package/dist/wizard/persistence.d.ts.map +1 -0
  151. package/dist/wizard/persistence.js +31 -0
  152. package/dist/wizard/presets.d.ts +38 -0
  153. package/dist/wizard/presets.d.ts.map +1 -0
  154. package/dist/wizard/presets.js +223 -0
  155. package/dist/wizard/provisioner.d.ts +15 -0
  156. package/dist/wizard/provisioner.d.ts.map +1 -0
  157. package/dist/wizard/provisioner.js +1 -0
  158. package/dist/wizard/types.d.ts +76 -0
  159. package/dist/wizard/types.d.ts.map +1 -0
  160. package/dist/wizard/types.js +1 -0
  161. package/package.json +117 -0
@@ -0,0 +1,151 @@
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
17
+
18
+ // src/middleware/auth.ts
19
+ function timingSafeEqual(a, b) {
20
+ const encoder = new TextEncoder;
21
+ const aBuf = encoder.encode(a);
22
+ const bBuf = encoder.encode(b);
23
+ const len = Math.max(aBuf.length, bBuf.length);
24
+ let result = aBuf.length === bBuf.length ? 0 : 1;
25
+ for (let i = 0;i < len; i++) {
26
+ const av = i < aBuf.length ? aBuf[i] : 0;
27
+ const bv = i < bBuf.length ? bBuf[i] : 0;
28
+ result |= av ^ bv;
29
+ }
30
+ return result === 0;
31
+ }
32
+ function resolveOperatorApiKey(env) {
33
+ const preferred = env.OPERATOR_API_KEY;
34
+ if (typeof preferred === "string" && preferred.length > 0) {
35
+ return preferred;
36
+ }
37
+ const legacy = env.INTERNAL_API_KEY;
38
+ if (typeof legacy === "string" && legacy.length > 0) {
39
+ return legacy;
40
+ }
41
+ return;
42
+ }
43
+ async function requireAuth(request, env) {
44
+ return requireOperatorAuth(request, env);
45
+ }
46
+ async function requireOperatorAuth(request, env) {
47
+ const apiKey = resolveOperatorApiKey(env);
48
+ if (!apiKey) {
49
+ return new Response(JSON.stringify({
50
+ error: "Operator API key not configured",
51
+ hint: "Set OPERATOR_API_KEY (preferred) or INTERNAL_API_KEY on the Worker"
52
+ }), { status: 401, headers: { "Content-Type": "application/json" } });
53
+ }
54
+ const authHeader = request.headers.get("Authorization");
55
+ const expectedHeader = `Bearer ${apiKey}`;
56
+ if (!authHeader || !timingSafeEqual(authHeader, expectedHeader)) {
57
+ return new Response(JSON.stringify({ error: "Unauthorized" }), {
58
+ status: 401,
59
+ headers: { "Content-Type": "application/json" }
60
+ });
61
+ }
62
+ return null;
63
+ }
64
+ function createOperatorAuthMiddleware() {
65
+ return async (request, env, _ctx) => {
66
+ const denied = await requireOperatorAuth(request, env);
67
+ if (denied)
68
+ return denied;
69
+ return;
70
+ };
71
+ }
72
+ function normalizeKeyNames(keyName) {
73
+ if (typeof keyName === "string") {
74
+ return [keyName];
75
+ }
76
+ return [...keyName];
77
+ }
78
+ function collectInternalAuthKeys(env, keyNames) {
79
+ const keys = [];
80
+ for (const name of normalizeKeyNames(keyNames)) {
81
+ const value = env[name];
82
+ if (typeof value === "string" && value.length > 0) {
83
+ keys.push(value);
84
+ }
85
+ }
86
+ return keys;
87
+ }
88
+ function matchesAnyInternalAuthKey(providedKey, expectedKeys) {
89
+ for (const expected of expectedKeys) {
90
+ if (timingSafeEqual(providedKey, expected)) {
91
+ return true;
92
+ }
93
+ }
94
+ return false;
95
+ }
96
+ function internalAuthNotConfiguredResponse(keyNames) {
97
+ const label = normalizeKeyNames(keyNames).join(" | ");
98
+ return new Response(JSON.stringify({
99
+ success: false,
100
+ error: `Internal auth key(s) not configured: ${label}`
101
+ }), { status: 401, headers: { "Content-Type": "application/json" } });
102
+ }
103
+ function requireInternalAuth(request, env, keyName = "INTERNAL_KEY_BINDING") {
104
+ const expectedKeys = collectInternalAuthKeys(env, keyName);
105
+ if (expectedKeys.length === 0) {
106
+ return internalAuthNotConfiguredResponse(keyName);
107
+ }
108
+ const providedKey = request.headers.get("X-Internal-Auth-Key");
109
+ if (!providedKey || !matchesAnyInternalAuthKey(providedKey, expectedKeys)) {
110
+ return new Response(JSON.stringify({ success: false, error: "Unauthorized" }), { status: 401, headers: { "Content-Type": "application/json" } });
111
+ }
112
+ return null;
113
+ }
114
+ function createInternalAuthMiddleware(keyName = "INTERNAL_KEY_BINDING") {
115
+ return async (request, env, _ctx) => {
116
+ const expectedKeys = collectInternalAuthKeys(env, keyName);
117
+ if (expectedKeys.length === 0) {
118
+ return internalAuthNotConfiguredResponse(keyName);
119
+ }
120
+ const providedKey = request.headers.get("X-Internal-Auth-Key");
121
+ if (!providedKey || !matchesAnyInternalAuthKey(providedKey, expectedKeys)) {
122
+ return new Response(JSON.stringify({ success: false, error: "Unauthorized" }), { status: 401, headers: { "Content-Type": "application/json" } });
123
+ }
124
+ return;
125
+ };
126
+ }
127
+ function checkInternalAuth(request, env, keyName = "INTERNAL_KEY_BINDING") {
128
+ const expectedKeys = collectInternalAuthKeys(env, keyName);
129
+ if (expectedKeys.length === 0) {
130
+ return {
131
+ authorized: false,
132
+ error: `${normalizeKeyNames(keyName).join(" | ")} not configured`
133
+ };
134
+ }
135
+ const providedKey = request.headers.get("X-Internal-Auth-Key");
136
+ if (!providedKey || !matchesAnyInternalAuthKey(providedKey, expectedKeys)) {
137
+ return { authorized: false, error: "Unauthorized" };
138
+ }
139
+ return { authorized: true };
140
+ }
141
+ export {
142
+ timingSafeEqual,
143
+ resolveOperatorApiKey,
144
+ requireOperatorAuth,
145
+ requireInternalAuth,
146
+ requireAuth,
147
+ createOperatorAuthMiddleware,
148
+ createInternalAuthMiddleware,
149
+ collectInternalAuthKeys,
150
+ checkInternalAuth
151
+ };
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright (c) 2026 HOOX · HOOX · jango-blockchained (hoox-sh)
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ /**
6
+ * CORS middleware for Cloudflare Workers
7
+ * Provides standardized CORS headers and preflight handling
8
+ *
9
+ * Security default: NO open origin (*). Internal service-binding workers
10
+ * should not advertise browser CORS at all. Public endpoints must pass
11
+ * an explicit allowOrigin (or use publicCorsHeaders()).
12
+ *
13
+ * @available — Available for consumer use. Import from "@hoox-sh/hoox-shared/middleware".
14
+ */
15
+ export interface CorsEnv {
16
+ CORS_ALLOW_ORIGIN?: string;
17
+ }
18
+ export interface CorsOptions {
19
+ /**
20
+ * Allowed origins. Empty / omitted = no Access-Control-Allow-Origin header
21
+ * (fail-closed). Never defaults to "*".
22
+ */
23
+ allowOrigin?: string;
24
+ /** Allowed methods (default: "GET, POST, OPTIONS, PUT, DELETE") */
25
+ allowMethods?: string;
26
+ /** Allowed headers (default: "Content-Type, Authorization, X-Request-ID") */
27
+ allowHeaders?: string;
28
+ /** Whether to include credentials (default: false) */
29
+ allowCredentials?: boolean;
30
+ /** Max age for preflight cache (default: 86400 = 24h) */
31
+ maxAge?: number;
32
+ }
33
+ /**
34
+ * Create CORS headers object for use in responses.
35
+ * Omits Access-Control-Allow-Origin when allowOrigin is empty.
36
+ */
37
+ export declare function corsHeaders(options?: CorsOptions): Record<string, string>;
38
+ /**
39
+ * CORS headers for truly public browser-facing APIs.
40
+ * Prefer a concrete origin over "*" whenever possible.
41
+ */
42
+ export declare function publicCorsHeaders(origin?: string, options?: Omit<CorsOptions, "allowOrigin">): Record<string, string>;
43
+ /**
44
+ * CORS headers for internal workers (service bindings only).
45
+ * Returns an empty object — no browser CORS surface.
46
+ */
47
+ export declare function internalCorsHeaders(): Record<string, string>;
48
+ /**
49
+ * Resolve CORS from env + request for dashboard-facing workers.
50
+ * Set CORS_ALLOW_ORIGIN to a comma-separated browser origin allowlist.
51
+ */
52
+ export declare function resolveCorsOptions(request: Request, env?: unknown): CorsOptions;
53
+ /**
54
+ * Handle CORS preflight (OPTIONS) requests.
55
+ * Returns a Response for OPTIONS, or null for non-OPTIONS requests.
56
+ */
57
+ export declare function handleCorsPreflightRequest(request: Request, options?: CorsOptions): Response | null;
58
+ //# sourceMappingURL=cors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/middleware/cors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH,MAAM,WAAW,OAAO;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAcD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAczE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,GAAE,MAAY,EACpB,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAGhB,GAAG,CAAC,EAAE,OAAO,GACZ,WAAW,CA4Bb;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ,GAAG,IAAI,CAOjB"}
@@ -0,0 +1,77 @@
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
17
+
18
+ // src/middleware/cors.ts
19
+ var DEFAULT_OPTIONS = {
20
+ allowOrigin: "",
21
+ allowMethods: "GET, POST, OPTIONS, PUT, DELETE",
22
+ allowHeaders: "Content-Type, Authorization, X-Request-ID",
23
+ allowCredentials: false,
24
+ maxAge: 86400
25
+ };
26
+ function corsHeaders(options) {
27
+ const opts = { ...DEFAULT_OPTIONS, ...options };
28
+ const headers = {
29
+ "Access-Control-Allow-Methods": opts.allowMethods,
30
+ "Access-Control-Allow-Headers": opts.allowHeaders,
31
+ "Access-Control-Max-Age": String(opts.maxAge)
32
+ };
33
+ if (opts.allowOrigin) {
34
+ headers["Access-Control-Allow-Origin"] = opts.allowOrigin;
35
+ }
36
+ if (opts.allowCredentials) {
37
+ headers["Access-Control-Allow-Credentials"] = "true";
38
+ }
39
+ return headers;
40
+ }
41
+ function publicCorsHeaders(origin = "*", options) {
42
+ return corsHeaders({ ...options, allowOrigin: origin });
43
+ }
44
+ function internalCorsHeaders() {
45
+ return {};
46
+ }
47
+ function resolveCorsOptions(request, env) {
48
+ const raw = env && typeof env === "object" && "CORS_ALLOW_ORIGIN" in env && typeof env.CORS_ALLOW_ORIGIN === "string" ? env.CORS_ALLOW_ORIGIN : undefined;
49
+ const configured = raw?.trim();
50
+ if (!configured) {
51
+ return {};
52
+ }
53
+ const allowed = configured.split(",").map((entry) => entry.trim()).filter(Boolean);
54
+ const origin = request.headers.get("Origin");
55
+ if (origin && allowed.includes(origin)) {
56
+ return { allowOrigin: origin, allowCredentials: true };
57
+ }
58
+ if (!origin && allowed.length === 1) {
59
+ return { allowOrigin: allowed[0] };
60
+ }
61
+ return {};
62
+ }
63
+ function handleCorsPreflightRequest(request, options) {
64
+ if (request.method !== "OPTIONS")
65
+ return null;
66
+ return new Response(null, {
67
+ status: 204,
68
+ headers: corsHeaders(options)
69
+ });
70
+ }
71
+ export {
72
+ resolveCorsOptions,
73
+ publicCorsHeaders,
74
+ internalCorsHeaders,
75
+ handleCorsPreflightRequest,
76
+ corsHeaders
77
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) 2026 HOOX · HOOX · jango-blockchained (hoox-sh)
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ /**
6
+ * Barrel exports for shared middleware
7
+ */
8
+ export { createLogger, withRequestLog, type Logger, type LogContext, } from "./logger";
9
+ export { requireAuth, requireOperatorAuth, createOperatorAuthMiddleware, resolveOperatorApiKey, requireInternalAuth, createInternalAuthMiddleware, checkInternalAuth, timingSafeEqual, collectInternalAuthKeys, type InternalAuthEnv, type InternalAuthKeyName, type OperatorAuthEnv, } from "./auth";
10
+ export { createRateLimiter, type RateLimiter, type RateLimitConfig, } from "./rate-limit";
11
+ export { validateJson, validateJsonLegacy, requireField, optionalField, } from "./validate";
12
+ export { corsHeaders, resolveCorsOptions, type CorsEnv, publicCorsHeaders, internalCorsHeaders, handleCorsPreflightRequest, type CorsOptions, } from "./cors";
13
+ export { secureHeaders, wrapWithSecurityHeaders, type SecurityHeadersOptions, SECURITY_HEADERS_DEFAULTS, } from "./security-headers";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,KAAK,MAAM,EACX,KAAK,UAAU,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,KAAK,OAAO,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,WAAW,GACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}