sandstream-kit 1.0.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 (519) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +617 -0
  3. package/dist/adapters/api-key-adapter.d.ts +35 -0
  4. package/dist/adapters/api-key-adapter.js +46 -0
  5. package/dist/adapters/api-key-adapter.js.map +1 -0
  6. package/dist/adapters/clerk-auth.d.ts +6 -0
  7. package/dist/adapters/clerk-auth.js +20 -0
  8. package/dist/adapters/clerk-auth.js.map +1 -0
  9. package/dist/adapters/cloudflare-r2.d.ts +6 -0
  10. package/dist/adapters/cloudflare-r2.js +136 -0
  11. package/dist/adapters/cloudflare-r2.js.map +1 -0
  12. package/dist/adapters/expo-eas.d.ts +6 -0
  13. package/dist/adapters/expo-eas.js +129 -0
  14. package/dist/adapters/expo-eas.js.map +1 -0
  15. package/dist/adapters/flagsmith-flags.d.ts +5 -0
  16. package/dist/adapters/flagsmith-flags.js +20 -0
  17. package/dist/adapters/flagsmith-flags.js.map +1 -0
  18. package/dist/adapters/flyio-hosting.d.ts +2 -0
  19. package/dist/adapters/flyio-hosting.js +143 -0
  20. package/dist/adapters/flyio-hosting.js.map +1 -0
  21. package/dist/adapters/index.d.ts +6 -0
  22. package/dist/adapters/index.js +48 -0
  23. package/dist/adapters/index.js.map +1 -0
  24. package/dist/adapters/inngest-background.d.ts +5 -0
  25. package/dist/adapters/inngest-background.js +19 -0
  26. package/dist/adapters/inngest-background.js.map +1 -0
  27. package/dist/adapters/liveblocks-realtime.d.ts +11 -0
  28. package/dist/adapters/liveblocks-realtime.js +62 -0
  29. package/dist/adapters/liveblocks-realtime.js.map +1 -0
  30. package/dist/adapters/loops-email.d.ts +6 -0
  31. package/dist/adapters/loops-email.js +18 -0
  32. package/dist/adapters/loops-email.js.map +1 -0
  33. package/dist/adapters/neon-db.d.ts +10 -0
  34. package/dist/adapters/neon-db.js +94 -0
  35. package/dist/adapters/neon-db.js.map +1 -0
  36. package/dist/adapters/planetscale-db.d.ts +11 -0
  37. package/dist/adapters/planetscale-db.js +134 -0
  38. package/dist/adapters/planetscale-db.js.map +1 -0
  39. package/dist/adapters/posthog-analytics.d.ts +6 -0
  40. package/dist/adapters/posthog-analytics.js +22 -0
  41. package/dist/adapters/posthog-analytics.js.map +1 -0
  42. package/dist/adapters/railway-hosting.d.ts +2 -0
  43. package/dist/adapters/railway-hosting.js +136 -0
  44. package/dist/adapters/railway-hosting.js.map +1 -0
  45. package/dist/adapters/resend-email.d.ts +35 -0
  46. package/dist/adapters/resend-email.js +109 -0
  47. package/dist/adapters/resend-email.js.map +1 -0
  48. package/dist/adapters/searxng-instance.d.ts +6 -0
  49. package/dist/adapters/searxng-instance.js +240 -0
  50. package/dist/adapters/searxng-instance.js.map +1 -0
  51. package/dist/adapters/sentry-monitoring.d.ts +7 -0
  52. package/dist/adapters/sentry-monitoring.js +27 -0
  53. package/dist/adapters/sentry-monitoring.js.map +1 -0
  54. package/dist/adapters/stripe-payments.d.ts +6 -0
  55. package/dist/adapters/stripe-payments.js +134 -0
  56. package/dist/adapters/stripe-payments.js.map +1 -0
  57. package/dist/adapters/supabase-db.d.ts +6 -0
  58. package/dist/adapters/supabase-db.js +130 -0
  59. package/dist/adapters/supabase-db.js.map +1 -0
  60. package/dist/adapters/tinybird-analytics.d.ts +5 -0
  61. package/dist/adapters/tinybird-analytics.js +20 -0
  62. package/dist/adapters/tinybird-analytics.js.map +1 -0
  63. package/dist/adapters/trigger-background.d.ts +6 -0
  64. package/dist/adapters/trigger-background.js +20 -0
  65. package/dist/adapters/trigger-background.js.map +1 -0
  66. package/dist/adapters/types.d.ts +7 -0
  67. package/dist/adapters/types.js +2 -0
  68. package/dist/adapters/types.js.map +1 -0
  69. package/dist/adapters/upstash-redis.d.ts +6 -0
  70. package/dist/adapters/upstash-redis.js +88 -0
  71. package/dist/adapters/upstash-redis.js.map +1 -0
  72. package/dist/adapters/vercel-hosting.d.ts +6 -0
  73. package/dist/adapters/vercel-hosting.js +112 -0
  74. package/dist/adapters/vercel-hosting.js.map +1 -0
  75. package/dist/agent-adapter-model.d.ts +108 -0
  76. package/dist/agent-adapter-model.js +6 -0
  77. package/dist/agent-adapter-model.js.map +1 -0
  78. package/dist/agent-adapter-service.d.ts +67 -0
  79. package/dist/agent-adapter-service.js +299 -0
  80. package/dist/agent-adapter-service.js.map +1 -0
  81. package/dist/agent-config.d.ts +56 -0
  82. package/dist/agent-config.js +129 -0
  83. package/dist/agent-config.js.map +1 -0
  84. package/dist/agent-governance-model.d.ts +128 -0
  85. package/dist/agent-governance-model.js +6 -0
  86. package/dist/agent-governance-model.js.map +1 -0
  87. package/dist/agent-governance-service.d.ts +101 -0
  88. package/dist/agent-governance-service.js +319 -0
  89. package/dist/agent-governance-service.js.map +1 -0
  90. package/dist/alert-rules-engine.d.ts +102 -0
  91. package/dist/alert-rules-engine.js +210 -0
  92. package/dist/alert-rules-engine.js.map +1 -0
  93. package/dist/analytics-service.d.ts +126 -0
  94. package/dist/analytics-service.js +318 -0
  95. package/dist/analytics-service.js.map +1 -0
  96. package/dist/analyze.d.ts +19 -0
  97. package/dist/analyze.js +311 -0
  98. package/dist/analyze.js.map +1 -0
  99. package/dist/apm-instrumentor.d.ts +119 -0
  100. package/dist/apm-instrumentor.js +225 -0
  101. package/dist/apm-instrumentor.js.map +1 -0
  102. package/dist/approval-model.d.ts +82 -0
  103. package/dist/approval-model.js +6 -0
  104. package/dist/approval-model.js.map +1 -0
  105. package/dist/approval-service.d.ts +39 -0
  106. package/dist/approval-service.js +236 -0
  107. package/dist/approval-service.js.map +1 -0
  108. package/dist/approval.d.ts +22 -0
  109. package/dist/approval.js +148 -0
  110. package/dist/approval.js.map +1 -0
  111. package/dist/audit-logging-model.d.ts +157 -0
  112. package/dist/audit-logging-model.js +6 -0
  113. package/dist/audit-logging-model.js.map +1 -0
  114. package/dist/audit-logging-service.d.ts +89 -0
  115. package/dist/audit-logging-service.js +367 -0
  116. package/dist/audit-logging-service.js.map +1 -0
  117. package/dist/audit-secrets.d.ts +42 -0
  118. package/dist/audit-secrets.js +126 -0
  119. package/dist/audit-secrets.js.map +1 -0
  120. package/dist/audit.d.ts +43 -0
  121. package/dist/audit.js +286 -0
  122. package/dist/audit.js.map +1 -0
  123. package/dist/author-dashboard.d.ts +84 -0
  124. package/dist/author-dashboard.js +204 -0
  125. package/dist/author-dashboard.js.map +1 -0
  126. package/dist/author-notifications.d.ts +130 -0
  127. package/dist/author-notifications.js +261 -0
  128. package/dist/author-notifications.js.map +1 -0
  129. package/dist/author-verification.d.ts +79 -0
  130. package/dist/author-verification.js +257 -0
  131. package/dist/author-verification.js.map +1 -0
  132. package/dist/autonomous-setup-model.d.ts +117 -0
  133. package/dist/autonomous-setup-model.js +6 -0
  134. package/dist/autonomous-setup-model.js.map +1 -0
  135. package/dist/autonomous-setup-service.d.ts +74 -0
  136. package/dist/autonomous-setup-service.js +325 -0
  137. package/dist/autonomous-setup-service.js.map +1 -0
  138. package/dist/badge-system.d.ts +70 -0
  139. package/dist/badge-system.js +210 -0
  140. package/dist/badge-system.js.map +1 -0
  141. package/dist/baseline.d.ts +34 -0
  142. package/dist/baseline.js +78 -0
  143. package/dist/baseline.js.map +1 -0
  144. package/dist/beta-program-service.d.ts +112 -0
  145. package/dist/beta-program-service.js +240 -0
  146. package/dist/beta-program-service.js.map +1 -0
  147. package/dist/budget.d.ts +34 -0
  148. package/dist/budget.js +159 -0
  149. package/dist/budget.js.map +1 -0
  150. package/dist/bumblebee.d.ts +143 -0
  151. package/dist/bumblebee.js +384 -0
  152. package/dist/bumblebee.js.map +1 -0
  153. package/dist/cache-manager.d.ts +97 -0
  154. package/dist/cache-manager.js +244 -0
  155. package/dist/cache-manager.js.map +1 -0
  156. package/dist/cdn-adapter.d.ts +64 -0
  157. package/dist/cdn-adapter.js +263 -0
  158. package/dist/cdn-adapter.js.map +1 -0
  159. package/dist/certification-workflow-model.d.ts +95 -0
  160. package/dist/certification-workflow-model.js +6 -0
  161. package/dist/certification-workflow-model.js.map +1 -0
  162. package/dist/certification-workflow-service.d.ts +72 -0
  163. package/dist/certification-workflow-service.js +305 -0
  164. package/dist/certification-workflow-service.js.map +1 -0
  165. package/dist/check-design.d.ts +38 -0
  166. package/dist/check-design.js +256 -0
  167. package/dist/check-design.js.map +1 -0
  168. package/dist/check-gitignore.d.ts +39 -0
  169. package/dist/check-gitignore.js +156 -0
  170. package/dist/check-gitignore.js.map +1 -0
  171. package/dist/check-hooks.d.ts +15 -0
  172. package/dist/check-hooks.js +72 -0
  173. package/dist/check-hooks.js.map +1 -0
  174. package/dist/check-lock.d.ts +16 -0
  175. package/dist/check-lock.js +94 -0
  176. package/dist/check-lock.js.map +1 -0
  177. package/dist/check-secrets.d.ts +11 -0
  178. package/dist/check-secrets.js +320 -0
  179. package/dist/check-secrets.js.map +1 -0
  180. package/dist/check-security.d.ts +13 -0
  181. package/dist/check-security.js +887 -0
  182. package/dist/check-security.js.map +1 -0
  183. package/dist/check-services.d.ts +10 -0
  184. package/dist/check-services.js +44 -0
  185. package/dist/check-services.js.map +1 -0
  186. package/dist/check-skills.d.ts +8 -0
  187. package/dist/check-skills.js +26 -0
  188. package/dist/check-skills.js.map +1 -0
  189. package/dist/check-tests.d.ts +43 -0
  190. package/dist/check-tests.js +175 -0
  191. package/dist/check-tests.js.map +1 -0
  192. package/dist/check-tools.d.ts +8 -0
  193. package/dist/check-tools.js +42 -0
  194. package/dist/check-tools.js.map +1 -0
  195. package/dist/check-web-search.d.ts +12 -0
  196. package/dist/check-web-search.js +168 -0
  197. package/dist/check-web-search.js.map +1 -0
  198. package/dist/ci-cd-publisher.d.ts +162 -0
  199. package/dist/ci-cd-publisher.js +319 -0
  200. package/dist/ci-cd-publisher.js.map +1 -0
  201. package/dist/cli.d.ts +2 -0
  202. package/dist/cli.js +4074 -0
  203. package/dist/cli.js.map +1 -0
  204. package/dist/clone.d.ts +25 -0
  205. package/dist/clone.js +73 -0
  206. package/dist/clone.js.map +1 -0
  207. package/dist/completions.d.ts +8 -0
  208. package/dist/completions.js +250 -0
  209. package/dist/completions.js.map +1 -0
  210. package/dist/compression-manager.d.ts +107 -0
  211. package/dist/compression-manager.js +250 -0
  212. package/dist/compression-manager.js.map +1 -0
  213. package/dist/config.d.ts +233 -0
  214. package/dist/config.js +255 -0
  215. package/dist/config.js.map +1 -0
  216. package/dist/context.d.ts +38 -0
  217. package/dist/context.js +86 -0
  218. package/dist/context.js.map +1 -0
  219. package/dist/cost-monitor.d.ts +72 -0
  220. package/dist/cost-monitor.js +218 -0
  221. package/dist/cost-monitor.js.map +1 -0
  222. package/dist/create-plugin.d.ts +22 -0
  223. package/dist/create-plugin.js +266 -0
  224. package/dist/create-plugin.js.map +1 -0
  225. package/dist/database.d.ts +123 -0
  226. package/dist/database.js +354 -0
  227. package/dist/database.js.map +1 -0
  228. package/dist/datadog-adapter.d.ts +60 -0
  229. package/dist/datadog-adapter.js +245 -0
  230. package/dist/datadog-adapter.js.map +1 -0
  231. package/dist/doctor.d.ts +15 -0
  232. package/dist/doctor.js +131 -0
  233. package/dist/doctor.js.map +1 -0
  234. package/dist/documentation-generator.d.ts +226 -0
  235. package/dist/documentation-generator.js +348 -0
  236. package/dist/documentation-generator.js.map +1 -0
  237. package/dist/elevation-scopes.d.ts +40 -0
  238. package/dist/elevation-scopes.js +110 -0
  239. package/dist/elevation-scopes.js.map +1 -0
  240. package/dist/elevation.d.ts +102 -0
  241. package/dist/elevation.js +449 -0
  242. package/dist/elevation.js.map +1 -0
  243. package/dist/env-diff.d.ts +27 -0
  244. package/dist/env-diff.js +104 -0
  245. package/dist/env-diff.js.map +1 -0
  246. package/dist/env-inspect.d.ts +28 -0
  247. package/dist/env-inspect.js +81 -0
  248. package/dist/env-inspect.js.map +1 -0
  249. package/dist/env-switch.d.ts +37 -0
  250. package/dist/env-switch.js +102 -0
  251. package/dist/env-switch.js.map +1 -0
  252. package/dist/environment.d.ts +27 -0
  253. package/dist/environment.js +148 -0
  254. package/dist/environment.js.map +1 -0
  255. package/dist/error-tracker.d.ts +92 -0
  256. package/dist/error-tracker.js +206 -0
  257. package/dist/error-tracker.js.map +1 -0
  258. package/dist/escalate.d.ts +11 -0
  259. package/dist/escalate.js +73 -0
  260. package/dist/escalate.js.map +1 -0
  261. package/dist/event-stream.d.ts +81 -0
  262. package/dist/event-stream.js +161 -0
  263. package/dist/event-stream.js.map +1 -0
  264. package/dist/fix.d.ts +42 -0
  265. package/dist/fix.js +419 -0
  266. package/dist/fix.js.map +1 -0
  267. package/dist/governance-middleware.d.ts +22 -0
  268. package/dist/governance-middleware.js +173 -0
  269. package/dist/governance-middleware.js.map +1 -0
  270. package/dist/governance.d.ts +44 -0
  271. package/dist/governance.js +236 -0
  272. package/dist/governance.js.map +1 -0
  273. package/dist/hooks.d.ts +25 -0
  274. package/dist/hooks.js +281 -0
  275. package/dist/hooks.js.map +1 -0
  276. package/dist/id-generator.d.ts +43 -0
  277. package/dist/id-generator.js +47 -0
  278. package/dist/id-generator.js.map +1 -0
  279. package/dist/image-optimizer.d.ts +92 -0
  280. package/dist/image-optimizer.js +202 -0
  281. package/dist/image-optimizer.js.map +1 -0
  282. package/dist/install.d.ts +15 -0
  283. package/dist/install.js +59 -0
  284. package/dist/install.js.map +1 -0
  285. package/dist/lock.d.ts +82 -0
  286. package/dist/lock.js +264 -0
  287. package/dist/lock.js.map +1 -0
  288. package/dist/login.d.ts +23 -0
  289. package/dist/login.js +132 -0
  290. package/dist/login.js.map +1 -0
  291. package/dist/mcp-kit-tools-model.d.ts +195 -0
  292. package/dist/mcp-kit-tools-model.js +6 -0
  293. package/dist/mcp-kit-tools-model.js.map +1 -0
  294. package/dist/mcp-kit-tools-service.d.ts +127 -0
  295. package/dist/mcp-kit-tools-service.js +943 -0
  296. package/dist/mcp-kit-tools-service.js.map +1 -0
  297. package/dist/mcp-orchestrator.d.ts +70 -0
  298. package/dist/mcp-orchestrator.js +175 -0
  299. package/dist/mcp-orchestrator.js.map +1 -0
  300. package/dist/mcp-server.d.ts +3 -0
  301. package/dist/mcp-server.js +722 -0
  302. package/dist/mcp-server.js.map +1 -0
  303. package/dist/middleware/rate-limiter.d.ts +74 -0
  304. package/dist/middleware/rate-limiter.js +342 -0
  305. package/dist/middleware/rate-limiter.js.map +1 -0
  306. package/dist/migration-runner.d.ts +66 -0
  307. package/dist/migration-runner.js +192 -0
  308. package/dist/migration-runner.js.map +1 -0
  309. package/dist/migrations.d.ts +25 -0
  310. package/dist/migrations.js +530 -0
  311. package/dist/migrations.js.map +1 -0
  312. package/dist/moderation-system.d.ts +153 -0
  313. package/dist/moderation-system.js +338 -0
  314. package/dist/moderation-system.js.map +1 -0
  315. package/dist/multi-agent-workflow-model.d.ts +125 -0
  316. package/dist/multi-agent-workflow-model.js +6 -0
  317. package/dist/multi-agent-workflow-model.js.map +1 -0
  318. package/dist/multi-agent-workflow-service.d.ts +102 -0
  319. package/dist/multi-agent-workflow-service.js +452 -0
  320. package/dist/multi-agent-workflow-service.js.map +1 -0
  321. package/dist/onepassword.d.ts +75 -0
  322. package/dist/onepassword.js +140 -0
  323. package/dist/onepassword.js.map +1 -0
  324. package/dist/open.d.ts +30 -0
  325. package/dist/open.js +166 -0
  326. package/dist/open.js.map +1 -0
  327. package/dist/output.d.ts +32 -0
  328. package/dist/output.js +295 -0
  329. package/dist/output.js.map +1 -0
  330. package/dist/partner-service.d.ts +101 -0
  331. package/dist/partner-service.js +191 -0
  332. package/dist/partner-service.js.map +1 -0
  333. package/dist/payout-service.d.ts +136 -0
  334. package/dist/payout-service.js +293 -0
  335. package/dist/payout-service.js.map +1 -0
  336. package/dist/pkg.d.ts +30 -0
  337. package/dist/pkg.js +162 -0
  338. package/dist/pkg.js.map +1 -0
  339. package/dist/plugin-loader.d.ts +16 -0
  340. package/dist/plugin-loader.js +124 -0
  341. package/dist/plugin-loader.js.map +1 -0
  342. package/dist/plugin-registry-model.d.ts +133 -0
  343. package/dist/plugin-registry-model.js +6 -0
  344. package/dist/plugin-registry-model.js.map +1 -0
  345. package/dist/plugin-registry-service.d.ts +109 -0
  346. package/dist/plugin-registry-service.js +361 -0
  347. package/dist/plugin-registry-service.js.map +1 -0
  348. package/dist/plugin-registry.d.ts +58 -0
  349. package/dist/plugin-registry.js +108 -0
  350. package/dist/plugin-registry.js.map +1 -0
  351. package/dist/plugin-updates.d.ts +135 -0
  352. package/dist/plugin-updates.js +326 -0
  353. package/dist/plugin-updates.js.map +1 -0
  354. package/dist/plugins-cli.d.ts +7 -0
  355. package/dist/plugins-cli.js +157 -0
  356. package/dist/plugins-cli.js.map +1 -0
  357. package/dist/plugins.d.ts +88 -0
  358. package/dist/plugins.js +251 -0
  359. package/dist/plugins.js.map +1 -0
  360. package/dist/policy.d.ts +66 -0
  361. package/dist/policy.js +160 -0
  362. package/dist/policy.js.map +1 -0
  363. package/dist/post-pull-audit.d.ts +39 -0
  364. package/dist/post-pull-audit.js +151 -0
  365. package/dist/post-pull-audit.js.map +1 -0
  366. package/dist/provision.d.ts +17 -0
  367. package/dist/provision.js +147 -0
  368. package/dist/provision.js.map +1 -0
  369. package/dist/query-optimizer.d.ts +102 -0
  370. package/dist/query-optimizer.js +199 -0
  371. package/dist/query-optimizer.js.map +1 -0
  372. package/dist/read-only-mode.d.ts +46 -0
  373. package/dist/read-only-mode.js +71 -0
  374. package/dist/read-only-mode.js.map +1 -0
  375. package/dist/redis-adapter.d.ts +71 -0
  376. package/dist/redis-adapter.js +278 -0
  377. package/dist/redis-adapter.js.map +1 -0
  378. package/dist/resilience-tests.d.ts +120 -0
  379. package/dist/resilience-tests.js +293 -0
  380. package/dist/resilience-tests.js.map +1 -0
  381. package/dist/revocation.d.ts +22 -0
  382. package/dist/revocation.js +100 -0
  383. package/dist/revocation.js.map +1 -0
  384. package/dist/run.d.ts +21 -0
  385. package/dist/run.js +80 -0
  386. package/dist/run.js.map +1 -0
  387. package/dist/scan-build.d.ts +18 -0
  388. package/dist/scan-build.js +100 -0
  389. package/dist/scan-build.js.map +1 -0
  390. package/dist/scan-plaintext.d.ts +24 -0
  391. package/dist/scan-plaintext.js +147 -0
  392. package/dist/scan-plaintext.js.map +1 -0
  393. package/dist/scan-staged.d.ts +15 -0
  394. package/dist/scan-staged.js +70 -0
  395. package/dist/scan-staged.js.map +1 -0
  396. package/dist/scan-transcripts.d.ts +23 -0
  397. package/dist/scan-transcripts.js +93 -0
  398. package/dist/scan-transcripts.js.map +1 -0
  399. package/dist/secret-backends.d.ts +50 -0
  400. package/dist/secret-backends.js +510 -0
  401. package/dist/secret-backends.js.map +1 -0
  402. package/dist/secret-expiration.d.ts +46 -0
  403. package/dist/secret-expiration.js +172 -0
  404. package/dist/secret-expiration.js.map +1 -0
  405. package/dist/secrets-migrate.d.ts +75 -0
  406. package/dist/secrets-migrate.js +185 -0
  407. package/dist/secrets-migrate.js.map +1 -0
  408. package/dist/secrets-model.d.ts +77 -0
  409. package/dist/secrets-model.js +6 -0
  410. package/dist/secrets-model.js.map +1 -0
  411. package/dist/secrets-onecli.d.ts +65 -0
  412. package/dist/secrets-onecli.js +113 -0
  413. package/dist/secrets-onecli.js.map +1 -0
  414. package/dist/secrets-propagate.d.ts +48 -0
  415. package/dist/secrets-propagate.js +201 -0
  416. package/dist/secrets-propagate.js.map +1 -0
  417. package/dist/secrets-pull.d.ts +34 -0
  418. package/dist/secrets-pull.js +118 -0
  419. package/dist/secrets-pull.js.map +1 -0
  420. package/dist/secrets-purge-history.d.ts +53 -0
  421. package/dist/secrets-purge-history.js +144 -0
  422. package/dist/secrets-purge-history.js.map +1 -0
  423. package/dist/secrets-rotate-cli.d.ts +54 -0
  424. package/dist/secrets-rotate-cli.js +438 -0
  425. package/dist/secrets-rotate-cli.js.map +1 -0
  426. package/dist/secrets-rotate.d.ts +38 -0
  427. package/dist/secrets-rotate.js +65 -0
  428. package/dist/secrets-rotate.js.map +1 -0
  429. package/dist/secrets-service.d.ts +73 -0
  430. package/dist/secrets-service.js +283 -0
  431. package/dist/secrets-service.js.map +1 -0
  432. package/dist/secrets-set.d.ts +25 -0
  433. package/dist/secrets-set.js +33 -0
  434. package/dist/secrets-set.js.map +1 -0
  435. package/dist/secrets-sync.d.ts +21 -0
  436. package/dist/secrets-sync.js +215 -0
  437. package/dist/secrets-sync.js.map +1 -0
  438. package/dist/secrets-validate.d.ts +41 -0
  439. package/dist/secrets-validate.js +126 -0
  440. package/dist/secrets-validate.js.map +1 -0
  441. package/dist/secrets-vault-migrate.d.ts +71 -0
  442. package/dist/secrets-vault-migrate.js +258 -0
  443. package/dist/secrets-vault-migrate.js.map +1 -0
  444. package/dist/secrets.d.ts +16 -0
  445. package/dist/secrets.js +72 -0
  446. package/dist/secrets.js.map +1 -0
  447. package/dist/security-hardening.d.ts +150 -0
  448. package/dist/security-hardening.js +275 -0
  449. package/dist/security-hardening.js.map +1 -0
  450. package/dist/security-policy.d.ts +89 -0
  451. package/dist/security-policy.js +174 -0
  452. package/dist/security-policy.js.map +1 -0
  453. package/dist/security-prescan.d.ts +117 -0
  454. package/dist/security-prescan.js +566 -0
  455. package/dist/security-prescan.js.map +1 -0
  456. package/dist/sentry-adapter.d.ts +49 -0
  457. package/dist/sentry-adapter.js +227 -0
  458. package/dist/sentry-adapter.js.map +1 -0
  459. package/dist/service-adapter.d.ts +94 -0
  460. package/dist/service-adapter.js +162 -0
  461. package/dist/service-adapter.js.map +1 -0
  462. package/dist/skills.d.ts +13 -0
  463. package/dist/skills.js +17 -0
  464. package/dist/skills.js.map +1 -0
  465. package/dist/sla-monitor.d.ts +107 -0
  466. package/dist/sla-monitor.js +233 -0
  467. package/dist/sla-monitor.js.map +1 -0
  468. package/dist/stack-detector.d.ts +12 -0
  469. package/dist/stack-detector.js +251 -0
  470. package/dist/stack-detector.js.map +1 -0
  471. package/dist/team-model.d.ts +58 -0
  472. package/dist/team-model.js +83 -0
  473. package/dist/team-model.js.map +1 -0
  474. package/dist/team-service.d.ts +54 -0
  475. package/dist/team-service.js +206 -0
  476. package/dist/team-service.js.map +1 -0
  477. package/dist/toml-generator.d.ts +8 -0
  478. package/dist/toml-generator.js +223 -0
  479. package/dist/toml-generator.js.map +1 -0
  480. package/dist/triage-sandbox.d.ts +34 -0
  481. package/dist/triage-sandbox.js +167 -0
  482. package/dist/triage-sandbox.js.map +1 -0
  483. package/dist/triage.d.ts +30 -0
  484. package/dist/triage.js +79 -0
  485. package/dist/triage.js.map +1 -0
  486. package/dist/update-check.d.ts +13 -0
  487. package/dist/update-check.js +91 -0
  488. package/dist/update-check.js.map +1 -0
  489. package/dist/utils/colors.d.ts +14 -0
  490. package/dist/utils/colors.js +15 -0
  491. package/dist/utils/colors.js.map +1 -0
  492. package/dist/utils/didYouMean.d.ts +15 -0
  493. package/dist/utils/didYouMean.js +47 -0
  494. package/dist/utils/didYouMean.js.map +1 -0
  495. package/dist/utils/exec.d.ts +21 -0
  496. package/dist/utils/exec.js +23 -0
  497. package/dist/utils/exec.js.map +1 -0
  498. package/dist/utils/execFileNoThrow.d.ts +14 -0
  499. package/dist/utils/execFileNoThrow.js +29 -0
  500. package/dist/utils/execFileNoThrow.js.map +1 -0
  501. package/dist/utils/flags.d.ts +19 -0
  502. package/dist/utils/flags.js +36 -0
  503. package/dist/utils/flags.js.map +1 -0
  504. package/dist/utils/parseCommand.d.ts +16 -0
  505. package/dist/utils/parseCommand.js +13 -0
  506. package/dist/utils/parseCommand.js.map +1 -0
  507. package/dist/utils/prompt.d.ts +13 -0
  508. package/dist/utils/prompt.js +35 -0
  509. package/dist/utils/prompt.js.map +1 -0
  510. package/dist/utils/promptSelect.d.ts +19 -0
  511. package/dist/utils/promptSelect.js +89 -0
  512. package/dist/utils/promptSelect.js.map +1 -0
  513. package/dist/utils/redactSecrets.d.ts +24 -0
  514. package/dist/utils/redactSecrets.js +134 -0
  515. package/dist/utils/redactSecrets.js.map +1 -0
  516. package/dist/validation/dynamic-schema.d.ts +29 -0
  517. package/dist/validation/dynamic-schema.js +76 -0
  518. package/dist/validation/dynamic-schema.js.map +1 -0
  519. package/package.json +52 -0
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Shell completion scripts for kit.
3
+ * Usage: kit completions <bash|zsh|fish>
4
+ */
5
+ const COMMANDS = [
6
+ "check", "init", "upgrade", "install", "login", "secrets", "setup",
7
+ "fix", "escalate", "governance", "skills", "hooks", "add", "audit",
8
+ "doctor", "env", "ci", "mcp", "whoami", "version", "create-plugin",
9
+ "completions", "help",
10
+ ];
11
+ const ADAPTERS = [
12
+ "stripe/payments", "supabase/db", "vercel/hosting", "expo/eas",
13
+ "searxng/instance", "neon/db", "clerk/auth", "upstash/redis",
14
+ "cloudflare/r2", "resend/email", "planetscale/db", "loops/email",
15
+ "liveblocks/realtime", "trigger/background", "inngest/background",
16
+ "flagsmith/flags", "sentry/monitoring", "tinybird/analytics", "posthog/analytics",
17
+ ];
18
+ const CI_FORMATS = ["github", "gitlab", "json", "text"];
19
+ const SYNC_TARGETS = ["github", "dotenv-ci", "stdout"];
20
+ const SHELLS = ["bash", "zsh", "fish"];
21
+ const ENVS = ["dev", "staging", "production", "test"];
22
+ const COMMON_FLAGS = "--non-interactive --json --env= --dry-run --help";
23
+ export function generateBashCompletion() {
24
+ const cmds = COMMANDS.join(" ");
25
+ const adapters = ADAPTERS.join(" ");
26
+ const ciFormats = CI_FORMATS.join(" ");
27
+ const syncTargets = SYNC_TARGETS.join(" ");
28
+ const shells = SHELLS.join(" ");
29
+ return `# kit bash completion
30
+ # Add to ~/.bashrc or ~/.bash_profile:
31
+ # eval "$(kit completions bash)"
32
+ # Or source directly:
33
+ # source <(kit completions bash)
34
+
35
+ _kit_completions() {
36
+ local cur prev words cword
37
+ _init_completion 2>/dev/null || {
38
+ cur="\${COMP_WORDS[COMP_CWORD]}"
39
+ prev="\${COMP_WORDS[COMP_CWORD-1]}"
40
+ words=("\${COMP_WORDS[@]}")
41
+ cword=\$COMP_CWORD
42
+ }
43
+
44
+ case \$cword in
45
+ 1)
46
+ COMPREPLY=( \$(compgen -W "${cmds}" -- "\$cur") )
47
+ return 0
48
+ ;;
49
+ 2)
50
+ case "\${words[1]}" in
51
+ add)
52
+ COMPREPLY=( \$(compgen -W "${adapters} --list" -- "\$cur") )
53
+ return 0
54
+ ;;
55
+ secrets)
56
+ COMPREPLY=( \$(compgen -W "sync" -- "\$cur") )
57
+ return 0
58
+ ;;
59
+ env)
60
+ COMPREPLY=( \$(compgen -W "list" -- "\$cur") )
61
+ return 0
62
+ ;;
63
+ ci)
64
+ COMPREPLY=( \$(compgen -W "--format= --fail-on-warning --json --non-interactive" -- "\$cur") )
65
+ return 0
66
+ ;;
67
+ completions)
68
+ COMPREPLY=( \$(compgen -W "${shells}" -- "\$cur") )
69
+ return 0
70
+ ;;
71
+ help)
72
+ COMPREPLY=( \$(compgen -W "${cmds}" -- "\$cur") )
73
+ return 0
74
+ ;;
75
+ esac
76
+ ;;
77
+ esac
78
+
79
+ # Flag completions
80
+ case "\$cur" in
81
+ --format=*)
82
+ COMPREPLY=( \$(compgen -W "\$(echo "${ciFormats}" | tr ' ' '\\n' | sed 's/^/--format=/')" -- "\$cur") )
83
+ return 0
84
+ ;;
85
+ --target=*)
86
+ COMPREPLY=( \$(compgen -W "\$(echo "${syncTargets}" | tr ' ' '\\n' | sed 's/^/--target=/')" -- "\$cur") )
87
+ return 0
88
+ ;;
89
+ --env=*)
90
+ COMPREPLY=( \$(compgen -W "\$(echo "${ENVS}" | tr ' ' '\\n' | sed 's/^/--env=/')" -- "\$cur") )
91
+ return 0
92
+ ;;
93
+ -*)
94
+ COMPREPLY=( \$(compgen -W "${COMMON_FLAGS}" -- "\$cur") )
95
+ return 0
96
+ ;;
97
+ esac
98
+ }
99
+
100
+ complete -F _kit_completions kit
101
+ `;
102
+ }
103
+ export function generateZshCompletion() {
104
+ const cmds = COMMANDS.map((c) => ` '${c}:${getCommandDesc(c)}'`).join("\n");
105
+ const adapters = ADAPTERS.map((a) => ` '${a}'`).join("\n");
106
+ return `#compdef kit
107
+ # kit zsh completion
108
+ # Add to ~/.zshrc:
109
+ # eval "$(kit completions zsh)"
110
+ # Or place in a $fpath directory as _kit
111
+
112
+ _kit() {
113
+ local state
114
+
115
+ _arguments \\
116
+ '1: :->command' \\
117
+ '*: :->args' \\
118
+ '--non-interactive[No prompts]' \\
119
+ '--json[Machine-readable output]' \\
120
+ '--env=[Environment]:env:(dev staging production test)' \\
121
+ '--dry-run[Preview without writing]' \\
122
+ '--help[Show help]' \\
123
+ '--version[Show version]'
124
+
125
+ case \$state in
126
+ command)
127
+ local commands
128
+ commands=(
129
+ ${cmds}
130
+ )
131
+ _describe 'command' commands
132
+ ;;
133
+ args)
134
+ case \$words[2] in
135
+ add)
136
+ local adapters
137
+ adapters=(
138
+ ${adapters}
139
+ )
140
+ _describe 'adapter' adapters
141
+ ;;
142
+ secrets)
143
+ _arguments '2: :(sync)'
144
+ ;;
145
+ env)
146
+ _arguments '2: :(list)'
147
+ ;;
148
+ ci)
149
+ _arguments \\
150
+ '--format=[Output format]:format:(github gitlab json text)' \\
151
+ '--fail-on-warning[Treat warnings as failures]'
152
+ ;;
153
+ completions)
154
+ _arguments '2: :(bash zsh fish)'
155
+ ;;
156
+ help)
157
+ _arguments '2: :(${COMMANDS.join(" ")})'
158
+ ;;
159
+ "secrets sync")
160
+ _arguments '--target=[Sync target]:target:(github dotenv-ci stdout)' '--dry-run'
161
+ ;;
162
+ esac
163
+ ;;
164
+ esac
165
+ }
166
+
167
+ _kit
168
+ `;
169
+ }
170
+ export function generateFishCompletion() {
171
+ const cmdCompletions = COMMANDS.map((cmd) => `complete -c kit -n "__fish_use_subcommand" -a "${cmd}" -d "${getCommandDesc(cmd)}"`).join("\n");
172
+ const adapterCompletions = ADAPTERS.map((a) => `complete -c kit -n "__fish_seen_subcommand_from add" -a "${a}"`).join("\n");
173
+ return `# kit fish completion
174
+ # Place in ~/.config/fish/completions/kit.fish
175
+ # Or run: kit completions fish > ~/.config/fish/completions/kit.fish
176
+
177
+ function __fish_use_subcommand
178
+ set -l cmd (commandline -opc)
179
+ test (count \$cmd) -eq 1
180
+ end
181
+
182
+ # Top-level commands
183
+ ${cmdCompletions}
184
+
185
+ # kit add <adapter>
186
+ ${adapterCompletions}
187
+
188
+ # kit secrets <subcommand>
189
+ complete -c kit -n "__fish_seen_subcommand_from secrets" -a "sync" -d "Push secrets to target"
190
+
191
+ # kit env <subcommand>
192
+ complete -c kit -n "__fish_seen_subcommand_from env" -a "list" -d "List configured environments"
193
+
194
+ # kit ci flags
195
+ complete -c kit -n "__fish_seen_subcommand_from ci" -l format -a "github gitlab json text" -d "Output format"
196
+ complete -c kit -n "__fish_seen_subcommand_from ci" -l fail-on-warning -d "Treat warnings as failures"
197
+
198
+ # kit secrets sync flags
199
+ complete -c kit -n "__fish_seen_subcommand_from sync" -l target -a "github dotenv-ci stdout" -d "Sync target"
200
+ complete -c kit -n "__fish_seen_subcommand_from sync" -l dry-run -d "Preview without writing"
201
+
202
+ # kit completions <shell>
203
+ complete -c kit -n "__fish_seen_subcommand_from completions" -a "bash zsh fish"
204
+
205
+ # Global flags
206
+ complete -c kit -l non-interactive -d "No prompts (CI / agent mode)"
207
+ complete -c kit -l json -d "Machine-readable output"
208
+ complete -c kit -l env -d "Environment (dev/staging/production)"
209
+ complete -c kit -l dry-run -d "Preview without writing"
210
+ complete -c kit -l help -s h -d "Show help"
211
+ complete -c kit -l version -s v -d "Show version"
212
+ `;
213
+ }
214
+ function getCommandDesc(cmd) {
215
+ const descs = {
216
+ check: "Check environment status",
217
+ init: "Init project from .kit.toml",
218
+ upgrade: "Update lock files",
219
+ install: "Install missing tools",
220
+ login: "Login to services",
221
+ secrets: "Manage secrets",
222
+ setup: "Full setup pipeline",
223
+ fix: "Auto-fix issues",
224
+ escalate: "List items needing human action",
225
+ governance: "View governance status",
226
+ skills: "Check agent skills",
227
+ hooks: "Manage git hooks",
228
+ add: "Provision a service adapter",
229
+ audit: "View audit log",
230
+ doctor: "Deep diagnostics",
231
+ env: "Environment info",
232
+ ci: "CI-native check",
233
+ mcp: "Start MCP server",
234
+ whoami: "Show agent identity",
235
+ version: "Print version",
236
+ "create-plugin": "Scaffold a plugin package",
237
+ completions: "Output shell completion script",
238
+ help: "Show help",
239
+ };
240
+ return descs[cmd] ?? cmd;
241
+ }
242
+ export function generateCompletions(shell) {
243
+ switch (shell) {
244
+ case "bash": return generateBashCompletion();
245
+ case "zsh": return generateZshCompletion();
246
+ case "fish": return generateFishCompletion();
247
+ default: return null;
248
+ }
249
+ }
250
+ //# sourceMappingURL=completions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.js","sourceRoot":"","sources":["../src/completions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ export type CompressionAlgorithm = "gzip" | "brotli" | "deflate" | "none";
2
+ export interface CompressionConfig {
3
+ algorithm: CompressionAlgorithm;
4
+ level: number;
5
+ minSize: number;
6
+ mimeTypes: string[];
7
+ }
8
+ export interface CompressionMetrics {
9
+ algorithm: CompressionAlgorithm;
10
+ originalSize: number;
11
+ compressedSize: number;
12
+ ratio: number;
13
+ compressionTime: number;
14
+ }
15
+ export declare class CompressionManager {
16
+ private config;
17
+ private metrics;
18
+ private compressionCache;
19
+ constructor(config?: Partial<CompressionConfig>);
20
+ /**
21
+ * Compress data.
22
+ */
23
+ compress(data: string): {
24
+ compressed: string;
25
+ metrics: CompressionMetrics;
26
+ };
27
+ /**
28
+ * Decompress data.
29
+ */
30
+ decompress(data: string): string;
31
+ /**
32
+ * Estimate compressed size based on algorithm.
33
+ */
34
+ private estimateCompressedSize;
35
+ /**
36
+ * Should compress response based on mime type and size.
37
+ */
38
+ shouldCompress(mimeType: string, size: number): boolean;
39
+ /**
40
+ * Set compression algorithm.
41
+ */
42
+ setAlgorithm(algorithm: CompressionAlgorithm): void;
43
+ /**
44
+ * Set compression level.
45
+ */
46
+ setCompressionLevel(level: number): void;
47
+ /**
48
+ * Set minimum size threshold.
49
+ */
50
+ setMinimumSize(bytes: number): void;
51
+ /**
52
+ * Add mime type to compression list.
53
+ */
54
+ addMimeType(mimeType: string): void;
55
+ /**
56
+ * Remove mime type from compression list.
57
+ */
58
+ removeMimeType(mimeType: string): void;
59
+ /**
60
+ * Get current configuration.
61
+ */
62
+ getConfig(): CompressionConfig;
63
+ /**
64
+ * Cache compressed response.
65
+ */
66
+ cacheCompressed(key: string, data: string): void;
67
+ /**
68
+ * Get cached compressed data.
69
+ */
70
+ getCached(key: string): string | null;
71
+ /**
72
+ * Check if cache is valid for data.
73
+ */
74
+ isCacheValid(key: string, data: string): boolean;
75
+ /**
76
+ * Clear compression cache.
77
+ */
78
+ clearCache(): void;
79
+ private calculateHash;
80
+ /**
81
+ * Get compression statistics.
82
+ */
83
+ getMetrics(): {
84
+ totalCompressions: number;
85
+ totalOriginalSize: number;
86
+ totalCompressedSize: number;
87
+ averageRatio: number;
88
+ averageTime: number;
89
+ byAlgorithm: Record<CompressionAlgorithm, {
90
+ count: number;
91
+ ratio: number;
92
+ }>;
93
+ };
94
+ /**
95
+ * Get compression metrics.
96
+ */
97
+ getAllMetrics(): CompressionMetrics[];
98
+ /**
99
+ * Clear metrics.
100
+ */
101
+ clearMetrics(): void;
102
+ getCompressionCache(): Map<string, {
103
+ data: string;
104
+ hash: string;
105
+ }>;
106
+ getMetricsCache(): CompressionMetrics[];
107
+ }
@@ -0,0 +1,250 @@
1
+ // ─── Types ────────────────────────────────────────────────────────────────────
2
+ // ─── CompressionManager ────────────────────────────────────────────────────
3
+ export class CompressionManager {
4
+ config;
5
+ metrics = [];
6
+ compressionCache = new Map();
7
+ constructor(config = {}) {
8
+ this.config = {
9
+ algorithm: config.algorithm || "gzip",
10
+ level: config.level || 6,
11
+ minSize: config.minSize || 1024,
12
+ mimeTypes: config.mimeTypes || [
13
+ "application/json",
14
+ "text/html",
15
+ "text/css",
16
+ "application/javascript",
17
+ "text/plain",
18
+ "application/xml",
19
+ ],
20
+ };
21
+ }
22
+ // ─── Compression ──────────────────────────────────────────────────────────
23
+ /**
24
+ * Compress data.
25
+ */
26
+ compress(data) {
27
+ const startTime = Date.now();
28
+ const originalSize = Buffer.byteLength(data, "utf-8");
29
+ // Don't compress if too small
30
+ if (originalSize < this.config.minSize) {
31
+ return {
32
+ compressed: data,
33
+ metrics: {
34
+ algorithm: "none",
35
+ originalSize,
36
+ compressedSize: originalSize,
37
+ ratio: 0,
38
+ compressionTime: 0,
39
+ },
40
+ };
41
+ }
42
+ // Simulate compression based on algorithm
43
+ const compressedSize = this.estimateCompressedSize(data, this.config.algorithm);
44
+ const compressionTime = Date.now() - startTime;
45
+ const ratio = ((originalSize - compressedSize) / originalSize) * 100;
46
+ const metrics = {
47
+ algorithm: this.config.algorithm,
48
+ originalSize,
49
+ compressedSize,
50
+ ratio: Math.round(ratio * 100) / 100,
51
+ compressionTime,
52
+ };
53
+ this.metrics.push(metrics);
54
+ // Return base64-encoded data with metadata for decompression
55
+ const encoded = Buffer.from(data).toString("base64");
56
+ const header = `[${this.config.algorithm}]`;
57
+ const compressed = header + encoded;
58
+ return { compressed, metrics };
59
+ }
60
+ /**
61
+ * Decompress data.
62
+ */
63
+ decompress(data) {
64
+ // Simulate decompression - extract base64 part and decode
65
+ try {
66
+ // Check if data has algorithm header
67
+ const match = data.match(/^\[([^\]]+)\](.+)$/);
68
+ if (match) {
69
+ const base64Part = match[2];
70
+ return Buffer.from(base64Part, "base64").toString("utf-8");
71
+ }
72
+ // If it looks like base64, try to decode it
73
+ if (/^[A-Za-z0-9+/=]+$/.test(data)) {
74
+ return Buffer.from(data, "base64").toString("utf-8");
75
+ }
76
+ // Otherwise, return as-is (uncompressed data)
77
+ return data;
78
+ }
79
+ catch {
80
+ return data;
81
+ }
82
+ }
83
+ /**
84
+ * Estimate compressed size based on algorithm.
85
+ */
86
+ estimateCompressedSize(data, algorithm) {
87
+ const size = Buffer.byteLength(data, "utf-8");
88
+ switch (algorithm) {
89
+ case "gzip":
90
+ // Gzip typically compresses text by 60-70%
91
+ return Math.round(size * (0.3 + (11 - this.config.level) * 0.005));
92
+ case "brotli":
93
+ // Brotli is typically 5-15% better than gzip
94
+ return Math.round(size * (0.25 + (11 - this.config.level) * 0.004));
95
+ case "deflate":
96
+ // Deflate is similar to gzip but slightly less efficient
97
+ return Math.round(size * (0.35 + (11 - this.config.level) * 0.005));
98
+ case "none":
99
+ default:
100
+ return size;
101
+ }
102
+ }
103
+ /**
104
+ * Should compress response based on mime type and size.
105
+ */
106
+ shouldCompress(mimeType, size) {
107
+ return (size >= this.config.minSize &&
108
+ this.config.mimeTypes.some((mt) => mimeType.includes(mt)));
109
+ }
110
+ // ─── Configuration ────────────────────────────────────────────────────────
111
+ /**
112
+ * Set compression algorithm.
113
+ */
114
+ setAlgorithm(algorithm) {
115
+ this.config.algorithm = algorithm;
116
+ }
117
+ /**
118
+ * Set compression level.
119
+ */
120
+ setCompressionLevel(level) {
121
+ this.config.level = Math.max(1, Math.min(11, level));
122
+ }
123
+ /**
124
+ * Set minimum size threshold.
125
+ */
126
+ setMinimumSize(bytes) {
127
+ this.config.minSize = bytes;
128
+ }
129
+ /**
130
+ * Add mime type to compression list.
131
+ */
132
+ addMimeType(mimeType) {
133
+ if (!this.config.mimeTypes.includes(mimeType)) {
134
+ this.config.mimeTypes.push(mimeType);
135
+ }
136
+ }
137
+ /**
138
+ * Remove mime type from compression list.
139
+ */
140
+ removeMimeType(mimeType) {
141
+ this.config.mimeTypes = this.config.mimeTypes.filter((mt) => mt !== mimeType);
142
+ }
143
+ /**
144
+ * Get current configuration.
145
+ */
146
+ getConfig() {
147
+ return { ...this.config };
148
+ }
149
+ // ─── Caching ──────────────────────────────────────────────────────────────
150
+ /**
151
+ * Cache compressed response.
152
+ */
153
+ cacheCompressed(key, data) {
154
+ const hash = this.calculateHash(data);
155
+ this.compressionCache.set(key, { data, hash });
156
+ }
157
+ /**
158
+ * Get cached compressed data.
159
+ */
160
+ getCached(key) {
161
+ return this.compressionCache.get(key)?.data || null;
162
+ }
163
+ /**
164
+ * Check if cache is valid for data.
165
+ */
166
+ isCacheValid(key, data) {
167
+ const cached = this.compressionCache.get(key);
168
+ if (!cached)
169
+ return false;
170
+ const currentHash = this.calculateHash(data);
171
+ return cached.hash === currentHash;
172
+ }
173
+ /**
174
+ * Clear compression cache.
175
+ */
176
+ clearCache() {
177
+ this.compressionCache.clear();
178
+ }
179
+ calculateHash(data) {
180
+ // Simple hash function (in production, use crypto.createHash)
181
+ let hash = 0;
182
+ for (let i = 0; i < data.length; i++) {
183
+ const char = data.charCodeAt(i);
184
+ hash = (hash << 5) - hash + char;
185
+ hash = hash & hash; // Convert to 32bit integer
186
+ }
187
+ return hash.toString();
188
+ }
189
+ // ─── Statistics ────────────────────────────────────────────────────────────
190
+ /**
191
+ * Get compression statistics.
192
+ */
193
+ getMetrics() {
194
+ let totalOriginal = 0;
195
+ let totalCompressed = 0;
196
+ let totalTime = 0;
197
+ const byAlgorithm = {
198
+ gzip: { count: 0, ratio: 0 },
199
+ brotli: { count: 0, ratio: 0 },
200
+ deflate: { count: 0, ratio: 0 },
201
+ none: { count: 0, ratio: 0 },
202
+ };
203
+ for (const metric of this.metrics) {
204
+ totalOriginal += metric.originalSize;
205
+ totalCompressed += metric.compressedSize;
206
+ totalTime += metric.compressionTime;
207
+ byAlgorithm[metric.algorithm].count++;
208
+ byAlgorithm[metric.algorithm].ratio += metric.ratio;
209
+ }
210
+ // Calculate averages
211
+ const count = this.metrics.length;
212
+ const avgRatio = count > 0 ? totalOriginal > 0 ? ((totalOriginal - totalCompressed) / totalOriginal) * 100 : 0 : 0;
213
+ const avgTime = count > 0 ? totalTime / count : 0;
214
+ // Calculate per-algorithm averages
215
+ for (const algo in byAlgorithm) {
216
+ const algoData = byAlgorithm[algo];
217
+ if (algoData.count > 0) {
218
+ algoData.ratio = Math.round((algoData.ratio / algoData.count) * 100) / 100;
219
+ }
220
+ }
221
+ return {
222
+ totalCompressions: count,
223
+ totalOriginalSize: totalOriginal,
224
+ totalCompressedSize: totalCompressed,
225
+ averageRatio: Math.round(avgRatio * 100) / 100,
226
+ averageTime: Math.round(avgTime * 100) / 100,
227
+ byAlgorithm,
228
+ };
229
+ }
230
+ /**
231
+ * Get compression metrics.
232
+ */
233
+ getAllMetrics() {
234
+ return [...this.metrics];
235
+ }
236
+ /**
237
+ * Clear metrics.
238
+ */
239
+ clearMetrics() {
240
+ this.metrics = [];
241
+ }
242
+ // ─── Cache helpers ────────────────────────────────────────────────────────
243
+ getCompressionCache() {
244
+ return this.compressionCache;
245
+ }
246
+ getMetricsCache() {
247
+ return this.metrics;
248
+ }
249
+ }
250
+ //# sourceMappingURL=compression-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression-manager.js","sourceRoot":"","sources":["../src/compression-manager.ts"],"names":[],"mappings":"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"}