theokit 0.71.0 → 0.72.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 (128) hide show
  1. package/dist/{actions-virtual-module-2SM6YMTM.js → actions-virtual-module-6LND2WHL.js} +4 -4
  2. package/dist/{actions-virtual-module-5LRBP6YK.js → actions-virtual-module-WP47EKD7.js} +3 -3
  3. package/dist/adapters/agent-mount.js +2 -2
  4. package/dist/{agent-4FXJXZFD.js → agent-KUP3XA2S.js} +2 -2
  5. package/dist/{app-typed-client-LIIPHLO6.js → app-typed-client-6VIHSYJH.js} +3 -3
  6. package/dist/{app-typed-client-JFPV4YLS.js → app-typed-client-IMRSVARP.js} +4 -4
  7. package/dist/{aws-lambda-MUGK4WNZ.js → aws-lambda-7AZNJGWU.js} +6 -4
  8. package/dist/{aws-lambda-MUGK4WNZ.js.map → aws-lambda-7AZNJGWU.js.map} +1 -1
  9. package/dist/{build-KCIH3HI6.js → build-4J24BAEC.js} +7 -7
  10. package/dist/build-4J24BAEC.js.map +1 -0
  11. package/dist/{bun-JWZ2UOLJ.js → bun-NKVHOFSJ.js} +6 -4
  12. package/dist/{bun-JWZ2UOLJ.js.map → bun-NKVHOFSJ.js.map} +1 -1
  13. package/dist/{chunk-PGDBSK2L.js → chunk-7CHPOMP5.js} +2 -2
  14. package/dist/{chunk-FWEXQ2BR.js → chunk-BZ6DFSKG.js} +8 -8
  15. package/dist/{chunk-IGCOTLQI.js → chunk-C5CAL3DX.js} +136 -5
  16. package/dist/{chunk-IGCOTLQI.js.map → chunk-C5CAL3DX.js.map} +1 -1
  17. package/dist/{chunk-OSBGZYXZ.js → chunk-D2R5SJEL.js} +16 -2
  18. package/dist/chunk-D2R5SJEL.js.map +1 -0
  19. package/dist/{chunk-5XXXJ6DT.js → chunk-EZHDAVAF.js} +23 -7
  20. package/dist/chunk-EZHDAVAF.js.map +1 -0
  21. package/dist/{chunk-3DGIANAN.js → chunk-FJEKQ4FT.js} +1 -1
  22. package/dist/{chunk-3DGIANAN.js.map → chunk-FJEKQ4FT.js.map} +1 -1
  23. package/dist/{chunk-KI4DOTN4.js → chunk-G7U7FQVC.js} +3 -1
  24. package/dist/chunk-G7U7FQVC.js.map +1 -0
  25. package/dist/{chunk-6AGXDYVE.js → chunk-IB5VIXLR.js} +2 -2
  26. package/dist/{chunk-3NAKOWTX.js → chunk-IVGQMV3S.js} +2 -2
  27. package/dist/{chunk-Q4NSUGMS.js → chunk-JJXBRY2U.js} +74 -6
  28. package/dist/chunk-JJXBRY2U.js.map +1 -0
  29. package/dist/{chunk-DSPEN7ZJ.js → chunk-LJNMSKFL.js} +4 -4
  30. package/dist/{chunk-MS4A7N77.js → chunk-PEL3MJLM.js} +2 -2
  31. package/dist/{chunk-V6VARIR3.js → chunk-RDG5GMDW.js} +9 -9
  32. package/dist/{chunk-TNI4MARH.js → chunk-SFGGRC35.js} +23 -6
  33. package/dist/chunk-SFGGRC35.js.map +1 -0
  34. package/dist/{chunk-FFS7IRZF.js → chunk-SZWGXHY3.js} +2 -2
  35. package/dist/{chunk-SX7ZAHNE.js → chunk-WBB3MEEN.js} +16 -2
  36. package/dist/chunk-WBB3MEEN.js.map +1 -0
  37. package/dist/{chunk-TMQ52AZR.js → chunk-X2LFNDJQ.js} +2 -2
  38. package/dist/{chunk-NZDGV4YJ.js → chunk-YCF3N4JS.js} +2 -2
  39. package/dist/cli/index.js +9 -9
  40. package/dist/{cloudflare-XO43ZIQF.js → cloudflare-4M4XVNUH.js} +5 -3
  41. package/dist/{cloudflare-XO43ZIQF.js.map → cloudflare-4M4XVNUH.js.map} +1 -1
  42. package/dist/{config-support-O4REYSK5.js → config-support-SB5NDQZB.js} +11 -5
  43. package/dist/{config-support-O4REYSK5.js.map → config-support-SB5NDQZB.js.map} +1 -1
  44. package/dist/{deno-deploy-EUQDK2RC.js → deno-deploy-IVACZ62D.js} +11 -5
  45. package/dist/deno-deploy-IVACZ62D.js.map +1 -0
  46. package/dist/{dev-CD4YU5FN.js → dev-JZVHEYN4.js} +9 -9
  47. package/dist/index.d.ts +12 -2
  48. package/dist/index.js +4 -4
  49. package/dist/{info-2H7I55YN.js → info-SUX7QVA3.js} +4 -4
  50. package/dist/{internal-api-TMLSNYMP.js → internal-api-3IZVNNGB.js} +3 -3
  51. package/dist/{internal-api-WAKX6AZW.js → internal-api-BNDRCEPZ.js} +4 -4
  52. package/dist/{load-config-VMKOV44Y.js → load-config-52H3EKAA.js} +4 -4
  53. package/dist/{mcp-HS26ZCU4.js → mcp-HCXHATU3.js} +3 -3
  54. package/dist/{netlify-LEYEQZK6.js → netlify-3HEWV375.js} +6 -4
  55. package/dist/{netlify-LEYEQZK6.js.map → netlify-3HEWV375.js.map} +1 -1
  56. package/dist/{node-OSVPYQ3D.js → node-QUGTW6XV.js} +2 -2
  57. package/dist/{observability-bootstrap-YQKMEYW7.js → observability-bootstrap-FP6LMMJE.js} +3 -3
  58. package/dist/{openapi-N4CXRUNT.js → openapi-Q53YOBIU.js} +4 -4
  59. package/dist/{preview-YDJSRJ2K.js → preview-FSUPVADO.js} +3 -3
  60. package/dist/{rate-limit-BdNDZ3vt.d.ts → rate-limit-fULgvzCz.d.ts} +11 -1
  61. package/dist/{rate-limit-store-BEJnhWdw.d.ts → rate-limit-store-n1wD4Yk4.d.ts} +48 -1
  62. package/dist/registry-SDBODRU6.js +23 -0
  63. package/dist/{routes-ECCDRHXZ.js → routes-FDF4SLOB.js} +4 -4
  64. package/dist/{schema-ND7GHPQK.js → schema-LHNWUR4V.js} +3 -3
  65. package/dist/{schemas-QCMSKQDK.js → schemas-2R2J64ZH.js} +2 -2
  66. package/dist/server/auth/index.d.ts +1 -1
  67. package/dist/server/index.d.ts +3 -3
  68. package/dist/server/index.js +10 -4
  69. package/dist/server/index.js.map +1 -1
  70. package/dist/server/rate-limit/index.d.ts +96 -14
  71. package/dist/server/rate-limit/index.js +10 -4
  72. package/dist/server/storage/index.js +1 -1
  73. package/dist/{server-boundary-RX2AFU5U.js → server-boundary-P52I6YMH.js} +4 -4
  74. package/dist/{server-boundary-NZPP33G6.js → server-boundary-WUKORSW2.js} +3 -3
  75. package/dist/{start-TYXS5I4M.js → start-LCA67RES.js} +14 -11
  76. package/dist/start-LCA67RES.js.map +1 -0
  77. package/dist/{static-7OJNB7D2.js → static-NQPLPAB6.js} +6 -2
  78. package/dist/{static-7OJNB7D2.js.map → static-NQPLPAB6.js.map} +1 -1
  79. package/dist/{theo-cloud-3ET4G5T6.js → theo-cloud-HMFNZ3FS.js} +3 -1
  80. package/dist/{theo-cloud-3ET4G5T6.js.map → theo-cloud-HMFNZ3FS.js.map} +1 -1
  81. package/dist/{vercel-HTAWCNAG.js → vercel-5PMYEEKF.js} +6 -4
  82. package/dist/{vercel-HTAWCNAG.js.map → vercel-5PMYEEKF.js.map} +1 -1
  83. package/dist/vite-plugin/index.d.ts +2 -2
  84. package/dist/vite-plugin/index.js +4 -4
  85. package/dist/{vite-plugin-DDILUFYY.js → vite-plugin-WFA7NPYK.js} +8 -8
  86. package/package.json +1 -1
  87. package/dist/build-KCIH3HI6.js.map +0 -1
  88. package/dist/chunk-5XXXJ6DT.js.map +0 -1
  89. package/dist/chunk-KI4DOTN4.js.map +0 -1
  90. package/dist/chunk-OSBGZYXZ.js.map +0 -1
  91. package/dist/chunk-Q4NSUGMS.js.map +0 -1
  92. package/dist/chunk-SX7ZAHNE.js.map +0 -1
  93. package/dist/chunk-TNI4MARH.js.map +0 -1
  94. package/dist/deno-deploy-EUQDK2RC.js.map +0 -1
  95. package/dist/registry-4JHCZ6EF.js +0 -23
  96. package/dist/start-TYXS5I4M.js.map +0 -1
  97. /package/dist/{actions-virtual-module-2SM6YMTM.js.map → actions-virtual-module-6LND2WHL.js.map} +0 -0
  98. /package/dist/{actions-virtual-module-5LRBP6YK.js.map → actions-virtual-module-WP47EKD7.js.map} +0 -0
  99. /package/dist/{agent-4FXJXZFD.js.map → agent-KUP3XA2S.js.map} +0 -0
  100. /package/dist/{app-typed-client-LIIPHLO6.js.map → app-typed-client-6VIHSYJH.js.map} +0 -0
  101. /package/dist/{app-typed-client-JFPV4YLS.js.map → app-typed-client-IMRSVARP.js.map} +0 -0
  102. /package/dist/{chunk-PGDBSK2L.js.map → chunk-7CHPOMP5.js.map} +0 -0
  103. /package/dist/{chunk-FWEXQ2BR.js.map → chunk-BZ6DFSKG.js.map} +0 -0
  104. /package/dist/{chunk-6AGXDYVE.js.map → chunk-IB5VIXLR.js.map} +0 -0
  105. /package/dist/{chunk-3NAKOWTX.js.map → chunk-IVGQMV3S.js.map} +0 -0
  106. /package/dist/{chunk-DSPEN7ZJ.js.map → chunk-LJNMSKFL.js.map} +0 -0
  107. /package/dist/{chunk-MS4A7N77.js.map → chunk-PEL3MJLM.js.map} +0 -0
  108. /package/dist/{chunk-V6VARIR3.js.map → chunk-RDG5GMDW.js.map} +0 -0
  109. /package/dist/{chunk-FFS7IRZF.js.map → chunk-SZWGXHY3.js.map} +0 -0
  110. /package/dist/{chunk-TMQ52AZR.js.map → chunk-X2LFNDJQ.js.map} +0 -0
  111. /package/dist/{chunk-NZDGV4YJ.js.map → chunk-YCF3N4JS.js.map} +0 -0
  112. /package/dist/{dev-CD4YU5FN.js.map → dev-JZVHEYN4.js.map} +0 -0
  113. /package/dist/{info-2H7I55YN.js.map → info-SUX7QVA3.js.map} +0 -0
  114. /package/dist/{internal-api-TMLSNYMP.js.map → internal-api-3IZVNNGB.js.map} +0 -0
  115. /package/dist/{internal-api-WAKX6AZW.js.map → internal-api-BNDRCEPZ.js.map} +0 -0
  116. /package/dist/{load-config-VMKOV44Y.js.map → load-config-52H3EKAA.js.map} +0 -0
  117. /package/dist/{mcp-HS26ZCU4.js.map → mcp-HCXHATU3.js.map} +0 -0
  118. /package/dist/{node-OSVPYQ3D.js.map → node-QUGTW6XV.js.map} +0 -0
  119. /package/dist/{observability-bootstrap-YQKMEYW7.js.map → observability-bootstrap-FP6LMMJE.js.map} +0 -0
  120. /package/dist/{openapi-N4CXRUNT.js.map → openapi-Q53YOBIU.js.map} +0 -0
  121. /package/dist/{preview-YDJSRJ2K.js.map → preview-FSUPVADO.js.map} +0 -0
  122. /package/dist/{registry-4JHCZ6EF.js.map → registry-SDBODRU6.js.map} +0 -0
  123. /package/dist/{routes-ECCDRHXZ.js.map → routes-FDF4SLOB.js.map} +0 -0
  124. /package/dist/{schema-ND7GHPQK.js.map → schema-LHNWUR4V.js.map} +0 -0
  125. /package/dist/{schemas-QCMSKQDK.js.map → schemas-2R2J64ZH.js.map} +0 -0
  126. /package/dist/{server-boundary-RX2AFU5U.js.map → server-boundary-P52I6YMH.js.map} +0 -0
  127. /package/dist/{server-boundary-NZPP33G6.js.map → server-boundary-WUKORSW2.js.map} +0 -0
  128. /package/dist/{vite-plugin-DDILUFYY.js.map → vite-plugin-WFA7NPYK.js.map} +0 -0
@@ -21,7 +21,7 @@ import {
21
21
  newSpanId,
22
22
  newTraceId,
23
23
  requestTrace
24
- } from "./chunk-MS4A7N77.js";
24
+ } from "./chunk-PEL3MJLM.js";
25
25
  import {
26
26
  RequestBodyConsumedError,
27
27
  createLogger,
@@ -1803,6 +1803,13 @@ async function createPluginRunnerFromConfig(plugins) {
1803
1803
  }
1804
1804
 
1805
1805
  // src/server/rate-limit/rate-limit-store.ts
1806
+ function slidingCount(state, windowMs) {
1807
+ const { previousCount } = state;
1808
+ if (previousCount === void 0 || previousCount === 0) return state.count;
1809
+ const windowStart = state.resetAt - windowMs;
1810
+ const throughCurrent = Math.min(1, Math.max(0, (Date.now() - windowStart) / windowMs));
1811
+ return state.count + previousCount * (1 - throughCurrent);
1812
+ }
1806
1813
  var InMemoryStore = class _InMemoryStore {
1807
1814
  store = /* @__PURE__ */ new Map();
1808
1815
  /** Bound the map to prevent unbounded growth from pathological inputs. */
@@ -1838,12 +1845,18 @@ var InMemoryStore = class _InMemoryStore {
1838
1845
  }
1839
1846
  const entry = this.store.get(key);
1840
1847
  if (!entry || now >= entry.resetAt) {
1841
- const fresh = { count: 1, resetAt: now + windowMs };
1848
+ let previousCount = 0;
1849
+ let resetAt = now + windowMs;
1850
+ if (entry !== void 0 && now - entry.resetAt < windowMs) {
1851
+ previousCount = entry.count;
1852
+ resetAt = entry.resetAt + windowMs;
1853
+ }
1854
+ const fresh = { count: 1, resetAt, previousCount };
1842
1855
  this.store.set(key, fresh);
1843
1856
  return { ...fresh };
1844
1857
  }
1845
1858
  entry.count++;
1846
- return { count: entry.count, resetAt: entry.resetAt };
1859
+ return { count: entry.count, resetAt: entry.resetAt, previousCount: entry.previousCount };
1847
1860
  }
1848
1861
  /** Sweep expired entries. Called by the GC timer; safe to call manually. */
1849
1862
  sweepExpired() {
@@ -1899,13 +1912,15 @@ function createRateLimiter(config, opts = {}) {
1899
1912
  };
1900
1913
  }
1901
1914
  function resultFromState(state, config) {
1902
- if (state.count > config.max) {
1903
- const retryAfter = Math.ceil((state.resetAt - Date.now()) / 1e3);
1915
+ const reset = String(Math.ceil(state.resetAt / 1e3));
1916
+ if (slidingCount(state, config.windowMs) > config.max) {
1917
+ const retryAfter = Math.max(0, Math.ceil((state.resetAt - Date.now()) / 1e3));
1904
1918
  return {
1905
1919
  limited: true,
1906
1920
  headers: {
1907
1921
  "X-RateLimit-Limit": String(config.max),
1908
1922
  "X-RateLimit-Remaining": "0",
1923
+ "X-RateLimit-Reset": reset,
1909
1924
  "Retry-After": String(retryAfter)
1910
1925
  }
1911
1926
  };
@@ -1914,7 +1929,8 @@ function resultFromState(state, config) {
1914
1929
  limited: false,
1915
1930
  headers: {
1916
1931
  "X-RateLimit-Limit": String(config.max),
1917
- "X-RateLimit-Remaining": String(Math.max(0, config.max - state.count))
1932
+ "X-RateLimit-Remaining": String(Math.max(0, config.max - state.count)),
1933
+ "X-RateLimit-Reset": reset
1918
1934
  }
1919
1935
  };
1920
1936
  }
@@ -2696,4 +2712,4 @@ export {
2696
2712
  CsrfReadinessStore,
2697
2713
  applySecurityHeaders
2698
2714
  };
2699
- //# sourceMappingURL=chunk-5XXXJ6DT.js.map
2715
+ //# sourceMappingURL=chunk-EZHDAVAF.js.map