@lensjs/core 1.0.12 → 2.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 (74) hide show
  1. package/dist/abstracts/store.cjs +10 -0
  2. package/dist/abstracts/store.d.cts +2 -0
  3. package/dist/abstracts/store.d.ts +2 -0
  4. package/dist/abstracts/store.js +10 -0
  5. package/dist/core/api_controller.cjs +26 -4
  6. package/dist/core/api_controller.d.cts +3 -1
  7. package/dist/core/api_controller.d.ts +3 -1
  8. package/dist/core/api_controller.js +26 -4
  9. package/dist/core/lens.cjs +58 -7
  10. package/dist/core/lens.js +59 -8
  11. package/dist/index.cjs +112 -7
  12. package/dist/index.d.cts +5 -2
  13. package/dist/index.d.ts +5 -2
  14. package/dist/index.js +110 -8
  15. package/dist/stores/better_sqlite.cjs +21 -3
  16. package/dist/stores/better_sqlite.d.cts +8 -0
  17. package/dist/stores/better_sqlite.d.ts +8 -0
  18. package/dist/stores/better_sqlite.js +22 -4
  19. package/dist/stores/index.cjs +21 -3
  20. package/dist/stores/index.js +22 -4
  21. package/dist/types/index.cjs +1 -0
  22. package/dist/types/index.d.cts +25 -2
  23. package/dist/types/index.d.ts +25 -2
  24. package/dist/types/index.js +1 -0
  25. package/dist/ui/assets/CacheActionBadge-3jjmNjC6.js +1 -0
  26. package/dist/ui/assets/CacheEntriesTable-DPLre6br.js +1 -0
  27. package/dist/ui/assets/CacheEntryContainer-WN6LkoCR.js +2 -0
  28. package/dist/ui/assets/CacheEntryDetails-CHt_pNTk.js +1 -0
  29. package/dist/ui/assets/CacheEntryDetailsContainer-BhquSApO.js +2 -0
  30. package/dist/ui/assets/LoadMore-DHOrhPsi.js +1 -0
  31. package/dist/ui/assets/QueriesContainer-Cl6rq4dH.js +2 -0
  32. package/dist/ui/assets/{QueryDetailsContainer-E7P-IO7f.js → QueryDetailsContainer-eoLkgEjj.js} +15 -15
  33. package/dist/ui/assets/QueryTable-BXSzT-Cm.js +1 -0
  34. package/dist/ui/assets/RequestDetails-CIB7_XWh.js +1 -0
  35. package/dist/ui/assets/{RequestDetailsContainer-DuDo-IqS.js → RequestDetailsContainer-BaH6fUK7.js} +2 -2
  36. package/dist/ui/assets/RequestsContainer-DLS17BWP.js +2 -0
  37. package/dist/ui/assets/RequetsTable-B51VXisk.js +1 -0
  38. package/dist/ui/assets/{StatusCode-FQEjz7gK.js → StatusCode-DVhX11V3.js} +1 -1
  39. package/dist/ui/assets/{TabbedDataViewer-cBDdPwIz.js → TabbedDataViewer-CNSEhc6h.js} +1 -1
  40. package/dist/ui/assets/{Table-DYaXk80S.js → Table-D1Kpw7PA.js} +2 -2
  41. package/dist/ui/assets/columns-BIDLCW64.js +1 -0
  42. package/dist/ui/assets/columns-jYfhBxOM.js +1 -0
  43. package/dist/ui/assets/{index-BS8XxorB.js → index-BdvbrZNf.js} +24 -19
  44. package/dist/ui/assets/index-C04tuZDI.css +1 -0
  45. package/dist/ui/assets/useCacheEntries-vuHEIj6E.js +1 -0
  46. package/dist/ui/assets/useLensApi-Bzmx8hps.js +1 -0
  47. package/dist/ui/assets/{useLoadMore-CJltToLI.js → useLoadMore-twYxPJ-d.js} +1 -1
  48. package/dist/ui/assets/useQueries-BYFLoUQR.js +1 -0
  49. package/dist/ui/index.html +2 -2
  50. package/dist/utils/async_context.cjs +31 -0
  51. package/dist/utils/async_context.d.cts +8 -0
  52. package/dist/utils/async_context.d.ts +8 -0
  53. package/dist/utils/async_context.js +6 -0
  54. package/dist/utils/event_emitter.cjs +5 -2
  55. package/dist/utils/event_emitter.d.cts +8 -1
  56. package/dist/utils/event_emitter.d.ts +8 -1
  57. package/dist/utils/event_emitter.js +3 -1
  58. package/dist/watchers/cache_watcher.cjs +111 -0
  59. package/dist/watchers/cache_watcher.d.cts +11 -0
  60. package/dist/watchers/cache_watcher.d.ts +11 -0
  61. package/dist/watchers/cache_watcher.js +88 -0
  62. package/dist/watchers/index.cjs +44 -0
  63. package/dist/watchers/index.d.cts +1 -0
  64. package/dist/watchers/index.d.ts +1 -0
  65. package/dist/watchers/index.js +43 -0
  66. package/package.json +1 -1
  67. package/dist/ui/assets/QueriesContainer-CAAsjjW5.js +0 -2
  68. package/dist/ui/assets/QueryTable-BcrtUssT.js +0 -1
  69. package/dist/ui/assets/RequestDetails-C2DZBu5H.js +0 -1
  70. package/dist/ui/assets/RequestsContainer-DK3hQVz9.js +0 -2
  71. package/dist/ui/assets/RequetsTable-DgP8p60b.js +0 -1
  72. package/dist/ui/assets/index-DzNHqeKh.css +0 -1
  73. package/dist/ui/assets/useLensApi-DG6atd6d.js +0 -1
  74. package/dist/ui/assets/useQueries-C8mDDDc6.js +0 -1
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--color-red-100:oklch(93.6% .032 17.717);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-orange-400:oklch(75% .183 55.934);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-100:oklch(96.2% .044 156.743);--color-green-400:oklch(79.2% .209 151.711);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-600:oklch(51.1% .262 276.966);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-600:oklch(55.8% .288 302.321);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{background-color:rgb(var(--bg-primary));color:rgb(var(--text-primary));transition:background-color .3s,color .3s}button{cursor:pointer}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing)*3)}.right-3{right:calc(var(--spacing)*3)}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-\[99\]{z-index:99}.z-\[100\]{z-index:100}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.my-5{margin-block:calc(var(--spacing)*5)}.my-6{margin-block:calc(var(--spacing)*6)}.mt-1{margin-top:calc(var(--spacing)*1)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.h-5{height:calc(var(--spacing)*5)}.h-16{height:calc(var(--spacing)*16)}.h-28{height:calc(var(--spacing)*28)}.h-32{height:calc(var(--spacing)*32)}.h-full{height:100%}.h-screen{height:100vh}.max-h-none{max-height:none}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-\[88vh\]{min-height:88vh}.min-h-screen{min-height:100vh}.w-3\/4{width:75%}.w-5{width:calc(var(--spacing)*5)}.w-16{width:calc(var(--spacing)*16)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-full{width:100%}.max-w-80{max-width:calc(var(--spacing)*80)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-32{min-width:calc(var(--spacing)*32)}.min-w-40{min-width:calc(var(--spacing)*40)}.min-w-60{min-width:calc(var(--spacing)*60)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-\[120\%\]{--tw-translate-x: -120% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*8)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[10px\]{border-radius:10px}.rounded-\[15px\]{border-radius:15px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-t-\[15px\]{border-top-left-radius:15px;border-top-right-radius:15px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-900{border-color:var(--color-gray-900)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-transparent{border-color:#0000}.bg-amber-100{background-color:var(--color-amber-100)}.bg-background{background-color:var(--background)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-12{padding:calc(var(--spacing)*12)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.pe-8{padding-inline-end:calc(var(--spacing)*8)}.pr-12{padding-right:calc(var(--spacing)*12)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.text-center{text-align:center}.text-end{text-align:end}.text-right{text-align:right}.text-start{text-align:start}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-nowrap{text-wrap:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-800{color:var(--color-amber-800)}.text-blue-600{color:var(--color-blue-600)}.text-blue-800{color:var(--color-blue-800)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-800{color:var(--color-green-800)}.text-indigo-600{color:var(--color-indigo-600)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.text-orange-600{color:var(--color-orange-600)}.text-purple-600{color:var(--color-purple-600)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-800{color:var(--color-red-800)}.text-slate-300{color:var(--color-slate-300)}.text-slate-600{color:var(--color-slate-600)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.opacity-50{opacity:.5}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.backdrop-blur-\[3px\]{--tw-backdrop-blur:blur(3px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.first\:rounded-s-lg:first-child{border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg)}.last\:rounded-e-lg:last-child{border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}@media (hover:hover){.hover\:border-neutral-300:hover{border-color:var(--color-neutral-300)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-neutral-100:hover{background-color:var(--color-neutral-100)}.hover\:bg-neutral-800:hover{background-color:var(--color-neutral-800)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:text-neutral-700:hover{color:var(--color-neutral-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@media (min-width:40rem){.sm\:w-32{width:calc(var(--spacing)*32)}.sm\:w-64{width:calc(var(--spacing)*64)}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:p-12{padding:calc(var(--spacing)*12)}}@media (min-width:64rem){.lg\:sticky{position:sticky}.lg\:z-0{z-index:0}.lg\:hidden{display:none}.lg\:h-auto{height:auto}.lg\:w-auto{width:auto}.lg\:translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.lg\:flex-row{flex-direction:row}.lg\:bg-transparent{background-color:#0000}.lg\:p-0{padding:calc(var(--spacing)*0)}}@media (prefers-color-scheme:dark){.dark\:border-neutral-700{border-color:var(--color-neutral-700)}.dark\:border-neutral-900{border-color:var(--color-neutral-900)}.dark\:bg-amber-600{background-color:var(--color-amber-600)}.dark\:bg-blue-600{background-color:var(--color-blue-600)}.dark\:bg-blue-700{background-color:var(--color-blue-700)}.dark\:bg-gray-600{background-color:var(--color-gray-600)}.dark\:bg-green-600{background-color:var(--color-green-600)}.dark\:bg-green-700{background-color:var(--color-green-700)}.dark\:bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/30{background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}}.dark\:bg-neutral-700{background-color:var(--color-neutral-700)}.dark\:bg-neutral-800{background-color:var(--color-neutral-800)}.dark\:bg-neutral-900{background-color:var(--color-neutral-900)}.dark\:bg-red-600{background-color:var(--color-red-600)}.dark\:bg-red-700{background-color:var(--color-red-700)}.dark\:bg-slate-800{background-color:var(--color-slate-800)}.dark\:bg-slate-900{background-color:var(--color-slate-900)}.dark\:bg-transparent{background-color:#0000}.dark\:bg-yellow-600{background-color:var(--color-yellow-600)}.dark\:bg-yellow-700{background-color:var(--color-yellow-700)}.dark\:text-blue-100{color:var(--color-blue-100)}.dark\:text-blue-400{color:var(--color-blue-400)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-green-100{color:var(--color-green-100)}.dark\:text-green-400{color:var(--color-green-400)}.dark\:text-indigo-400{color:var(--color-indigo-400)}.dark\:text-neutral-100{color:var(--color-neutral-100)}.dark\:text-neutral-200{color:var(--color-neutral-200)}.dark\:text-neutral-300{color:var(--color-neutral-300)}.dark\:text-neutral-400{color:var(--color-neutral-400)}.dark\:text-orange-400{color:var(--color-orange-400)}.dark\:text-purple-400{color:var(--color-purple-400)}.dark\:text-red-100{color:var(--color-red-100)}.dark\:text-red-400{color:var(--color-red-400)}.dark\:text-slate-200{color:var(--color-slate-200)}.dark\:text-slate-300{color:var(--color-slate-300)}.dark\:text-slate-400{color:var(--color-slate-400)}.dark\:text-slate-600{color:var(--color-slate-600)}.dark\:text-white{color:var(--color-white)}.dark\:text-yellow-100{color:var(--color-yellow-100)}@media (hover:hover){.dark\:hover\:border-neutral-600:hover{border-color:var(--color-neutral-600)}.dark\:hover\:bg-neutral-700:hover{background-color:var(--color-neutral-700)}.dark\:hover\:bg-neutral-800\/50:hover{background-color:#26262680}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-neutral-800\/50:hover{background-color:color-mix(in oklab,var(--color-neutral-800)50%,transparent)}}.dark\:hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.dark\:hover\:text-neutral-300:hover{color:var(--color-neutral-300)}}.dark\:even\:\[\&_td\]\:bg-neutral-950:nth-child(2n) td{background-color:var(--color-neutral-950)}}.container{margin-inline:auto;padding-inline:10px}}:root{--bg-primary:0 0 0;--bg-secondary:15 15 15;--text-primary:248 250 252;--text-secondary:148 163 184}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
@@ -0,0 +1 @@
1
+ import{r as t}from"./index-BdvbrZNf.js";import{D as I,u as h}from"./useLensApi-Bzmx8hps.js";function C(){const[n,r]=t.useState([]),[l,m]=t.useState(),[c,a]=t.useState(!1),[i,u]=t.useState(I),{getCacheEntries:e,getCacheEntryById:f}=h(),d=t.useCallback(async o=>{a(!0),f(o).then(s=>{m(s.data)}).finally(()=>{a(!1)})},[e]),g=t.useCallback(async o=>{a(!0),await e(o??1).then(s=>{r(s.data),u(s.meta)}).finally(()=>{a(!1)})},[e]);return{loadMoreItems:t.useMemo(()=>({initialData:n,meta:i,loading:c,fetchRawPage:e}),[n,i,c,e]),getItems:g,getItem:d,items:n,item:l}}export{C as u};
@@ -0,0 +1 @@
1
+ import{k as y,l as s}from"./index-BdvbrZNf.js";const q={currentPage:1,lastPage:1,total:0},E=()=>{const t=y();async function r(e,c){const n=await fetch(e,{headers:{"Content-Type":"application/json"},...c});if(!n.ok)throw new Error(`Failed to fetch: ${e}`);return n.json()}const a=(e,c)=>{const n=new URLSearchParams(Object.entries(c||{}).reduce((i,[u,o])=>(o!=null&&(i[u]=String(o)),i),{}));return`${e}${n.toString()?`?${n}`:""}`};return{getAllRequests:async e=>r(s(a(t.api.requests,{page:e}))),getRequestById:async e=>r(s(`${t.api.requests}/${e}`)),getQueries:async e=>r(s(a(t.api.queries,{page:e}))),getQueryById:async e=>r(s(`${t.api.queries}/${e}`)),getCacheEntries:async e=>r(s(a(t.api.cache,{page:e}))),getCacheEntryById:async e=>r(s(`${t.api.cache}/${e}`))}};export{q as D,E as u};
@@ -1 +1 @@
1
- import{r as e}from"./index-BS8XxorB.js";function D({paginatedPage:t}){const[f,r]=e.useState([]),[m,l]=e.useState(1),[c,s]=e.useState(!1),[n,o]=e.useState(!1);return e.useEffect(()=>{s(t.loading),o(t.meta.currentPage<t.meta.lastPage),l(1),t.loading||r(t.initialData)},[t.initialData,t.loading,t.meta.currentPage,t.meta.lastPage]),{data:f,loading:c,hasMore:n,loadMore:async()=>{if(c||!n)return;s(!0);const u=m+1,a=await t.fetchRawPage(u);r(i=>[...i,...a.data]),l(u),a?.meta?o(a.meta.currentPage<a.meta.lastPage):o(!1),s(!1)}}}export{D as u};
1
+ import{r as e}from"./index-BdvbrZNf.js";function D({paginatedPage:t}){const[f,r]=e.useState([]),[m,l]=e.useState(1),[c,s]=e.useState(!1),[n,o]=e.useState(!1);return e.useEffect(()=>{s(t.loading),o(t.meta.currentPage<t.meta.lastPage),l(1),t.loading||r(t.initialData)},[t.initialData,t.loading,t.meta.currentPage,t.meta.lastPage]),{data:f,loading:c,hasMore:n,loadMore:async()=>{if(c||!n)return;s(!0);const u=m+1,a=await t.fetchRawPage(u);r(i=>[...i,...a.data]),l(u),a?.meta?o(a.meta.currentPage<a.meta.lastPage):o(!1),s(!1)}}}export{D as u};
@@ -0,0 +1 @@
1
+ import{r as e}from"./index-BdvbrZNf.js";import{D as Q,u as g}from"./useLensApi-Bzmx8hps.js";function q(){const[u,c]=e.useState([]),[i,l]=e.useState(),[r,s]=e.useState(!1),[n,f]=e.useState(Q),{getQueries:t,getQueryById:y}=g(),d=e.useCallback(async o=>{s(!0),y(o).then(a=>{l(a.data)}).finally(()=>{s(!1)})},[t]),m=e.useCallback(async o=>{s(!0),await t(o??1).then(a=>{c(a.data),f(a.meta)}).finally(()=>{s(!1)})},[t]);return{loadMoreRequests:e.useMemo(()=>({initialData:u,meta:n,loading:r,fetchRawPage:t}),[u,n,r,t]),fetchQueries:m,fetchQuery:d,queries:u,query:i}}export{q as u};
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/svg+xml" href="./assets/favicon-CwRXoGYE.ico" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Lens</title>
8
- <script type="module" crossorigin src="./assets/index-BS8XxorB.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-DzNHqeKh.css">
8
+ <script type="module" crossorigin src="./assets/index-BdvbrZNf.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-C04tuZDI.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/utils/async_context.ts
21
+ var async_context_exports = {};
22
+ __export(async_context_exports, {
23
+ lensContext: () => lensContext
24
+ });
25
+ module.exports = __toCommonJS(async_context_exports);
26
+ var import_async_hooks = require("async_hooks");
27
+ var lensContext = new import_async_hooks.AsyncLocalStorage();
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ lensContext
31
+ });
@@ -0,0 +1,8 @@
1
+ import { AsyncLocalStorage } from 'async_hooks';
2
+
3
+ type LensContext = {
4
+ requestId: string;
5
+ };
6
+ declare const lensContext: AsyncLocalStorage<LensContext>;
7
+
8
+ export { lensContext };
@@ -0,0 +1,8 @@
1
+ import { AsyncLocalStorage } from 'async_hooks';
2
+
3
+ type LensContext = {
4
+ requestId: string;
5
+ };
6
+ declare const lensContext: AsyncLocalStorage<LensContext>;
7
+
8
+ export { lensContext };
@@ -0,0 +1,6 @@
1
+ // src/utils/async_context.ts
2
+ import { AsyncLocalStorage } from "async_hooks";
3
+ var lensContext = new AsyncLocalStorage();
4
+ export {
5
+ lensContext
6
+ };
@@ -30,14 +30,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/utils/event_emitter.ts
31
31
  var event_emitter_exports = {};
32
32
  __export(event_emitter_exports, {
33
- createEmittery: () => createEmittery
33
+ createEmittery: () => createEmittery,
34
+ lensEmitter: () => lensEmitter
34
35
  });
35
36
  module.exports = __toCommonJS(event_emitter_exports);
36
37
  var import_emittery = __toESM(require("emittery"), 1);
37
38
  var createEmittery = () => {
38
39
  return new import_emittery.default();
39
40
  };
41
+ var lensEmitter = createEmittery();
40
42
  // Annotate the CommonJS export names for ESM import in node:
41
43
  0 && (module.exports = {
42
- createEmittery
44
+ createEmittery,
45
+ lensEmitter
43
46
  });
@@ -1,6 +1,13 @@
1
1
  import * as emittery from 'emittery';
2
2
  import emittery__default from 'emittery';
3
+ import { CacheEntry } from '../types/index.cjs';
4
+ import 'sql-formatter';
3
5
 
4
6
  declare const createEmittery: <T extends Record<string, any>>() => emittery__default<T, T & emittery.OmnipresentEventData, emittery.DatalessEventNames<T>>;
7
+ declare const lensEmitter: emittery__default<{
8
+ cache: CacheEntry;
9
+ }, {
10
+ cache: CacheEntry;
11
+ } & emittery.OmnipresentEventData, never>;
5
12
 
6
- export { createEmittery };
13
+ export { createEmittery, lensEmitter };
@@ -1,6 +1,13 @@
1
1
  import * as emittery from 'emittery';
2
2
  import emittery__default from 'emittery';
3
+ import { CacheEntry } from '../types/index.js';
4
+ import 'sql-formatter';
3
5
 
4
6
  declare const createEmittery: <T extends Record<string, any>>() => emittery__default<T, T & emittery.OmnipresentEventData, emittery.DatalessEventNames<T>>;
7
+ declare const lensEmitter: emittery__default<{
8
+ cache: CacheEntry;
9
+ }, {
10
+ cache: CacheEntry;
11
+ } & emittery.OmnipresentEventData, never>;
5
12
 
6
- export { createEmittery };
13
+ export { createEmittery, lensEmitter };
@@ -3,6 +3,8 @@ import Emittery from "emittery";
3
3
  var createEmittery = () => {
4
4
  return new Emittery();
5
5
  };
6
+ var lensEmitter = createEmittery();
6
7
  export {
7
- createEmittery
8
+ createEmittery,
9
+ lensEmitter
8
10
  };
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/watchers/cache_watcher.ts
21
+ var cache_watcher_exports = {};
22
+ __export(cache_watcher_exports, {
23
+ default: () => CacheWatcher
24
+ });
25
+ module.exports = __toCommonJS(cache_watcher_exports);
26
+
27
+ // src/context/container.ts
28
+ var Container = class {
29
+ static bindings = /* @__PURE__ */ new Map();
30
+ static singletons = /* @__PURE__ */ new Map();
31
+ static instances = /* @__PURE__ */ new Map();
32
+ static bind(key, factory) {
33
+ this.bindings.set(key, factory);
34
+ }
35
+ static singleton(key, factory) {
36
+ this.singletons.set(key, factory);
37
+ }
38
+ static make(key) {
39
+ if (this.instances.has(key)) {
40
+ return this.instances.get(key);
41
+ }
42
+ if (this.singletons.has(key)) {
43
+ const instance = this.singletons.get(key)();
44
+ this.instances.set(key, instance);
45
+ return instance;
46
+ }
47
+ if (this.bindings.has(key)) {
48
+ return this.bindings.get(key)();
49
+ }
50
+ throw new Error(`Service "${key}" is not bound in the container`);
51
+ }
52
+ static has(key) {
53
+ return this.bindings.has(key) || this.singletons.has(key) || this.instances.has(key);
54
+ }
55
+ static clear() {
56
+ this.bindings.clear();
57
+ this.singletons.clear();
58
+ this.instances.clear();
59
+ }
60
+ };
61
+
62
+ // src/context/context.ts
63
+ var getStore = () => {
64
+ return Container.make("store");
65
+ };
66
+
67
+ // src/core/watcher.ts
68
+ var Watcher = class {
69
+ };
70
+
71
+ // src/watchers/cache_watcher.ts
72
+ var CacheWatcher = class extends Watcher {
73
+ name = "cache" /* CACHE */;
74
+ async log(data) {
75
+ const payload = {
76
+ action: data.action,
77
+ data: this.normalizePayload(data),
78
+ requestId: data.requestId ?? "",
79
+ createdAt: data.createdAt
80
+ };
81
+ await getStore().save({
82
+ requestId: data.requestId ?? "",
83
+ type: this.name,
84
+ data: payload,
85
+ minimal_data: {
86
+ action: data.action,
87
+ key: payload.data.key,
88
+ createdAt: payload.createdAt
89
+ }
90
+ });
91
+ }
92
+ normalizePayload(data) {
93
+ let normalizedData = "data" in data ? data.data : {
94
+ key: "",
95
+ value: ""
96
+ };
97
+ if (!normalizedData || typeof normalizedData === "object" && Object.keys(normalizedData).length === 0) {
98
+ normalizedData = {
99
+ key: "",
100
+ value: ""
101
+ };
102
+ }
103
+ if (!normalizedData["key"]) {
104
+ normalizedData.key = "";
105
+ }
106
+ if (!normalizedData["value"]) {
107
+ normalizedData["value"] = "";
108
+ }
109
+ return normalizedData;
110
+ }
111
+ };
@@ -0,0 +1,11 @@
1
+ import Watcher from '../core/watcher.cjs';
2
+ import { WatcherTypeEnum, CacheEntry } from '../types/index.cjs';
3
+ import 'sql-formatter';
4
+
5
+ declare class CacheWatcher extends Watcher {
6
+ name: WatcherTypeEnum;
7
+ log(data: CacheEntry): Promise<void>;
8
+ private normalizePayload;
9
+ }
10
+
11
+ export { CacheWatcher as default };
@@ -0,0 +1,11 @@
1
+ import Watcher from '../core/watcher.js';
2
+ import { WatcherTypeEnum, CacheEntry } from '../types/index.js';
3
+ import 'sql-formatter';
4
+
5
+ declare class CacheWatcher extends Watcher {
6
+ name: WatcherTypeEnum;
7
+ log(data: CacheEntry): Promise<void>;
8
+ private normalizePayload;
9
+ }
10
+
11
+ export { CacheWatcher as default };
@@ -0,0 +1,88 @@
1
+ // src/context/container.ts
2
+ var Container = class {
3
+ static bindings = /* @__PURE__ */ new Map();
4
+ static singletons = /* @__PURE__ */ new Map();
5
+ static instances = /* @__PURE__ */ new Map();
6
+ static bind(key, factory) {
7
+ this.bindings.set(key, factory);
8
+ }
9
+ static singleton(key, factory) {
10
+ this.singletons.set(key, factory);
11
+ }
12
+ static make(key) {
13
+ if (this.instances.has(key)) {
14
+ return this.instances.get(key);
15
+ }
16
+ if (this.singletons.has(key)) {
17
+ const instance = this.singletons.get(key)();
18
+ this.instances.set(key, instance);
19
+ return instance;
20
+ }
21
+ if (this.bindings.has(key)) {
22
+ return this.bindings.get(key)();
23
+ }
24
+ throw new Error(`Service "${key}" is not bound in the container`);
25
+ }
26
+ static has(key) {
27
+ return this.bindings.has(key) || this.singletons.has(key) || this.instances.has(key);
28
+ }
29
+ static clear() {
30
+ this.bindings.clear();
31
+ this.singletons.clear();
32
+ this.instances.clear();
33
+ }
34
+ };
35
+
36
+ // src/context/context.ts
37
+ var getStore = () => {
38
+ return Container.make("store");
39
+ };
40
+
41
+ // src/core/watcher.ts
42
+ var Watcher = class {
43
+ };
44
+
45
+ // src/watchers/cache_watcher.ts
46
+ var CacheWatcher = class extends Watcher {
47
+ name = "cache" /* CACHE */;
48
+ async log(data) {
49
+ const payload = {
50
+ action: data.action,
51
+ data: this.normalizePayload(data),
52
+ requestId: data.requestId ?? "",
53
+ createdAt: data.createdAt
54
+ };
55
+ await getStore().save({
56
+ requestId: data.requestId ?? "",
57
+ type: this.name,
58
+ data: payload,
59
+ minimal_data: {
60
+ action: data.action,
61
+ key: payload.data.key,
62
+ createdAt: payload.createdAt
63
+ }
64
+ });
65
+ }
66
+ normalizePayload(data) {
67
+ let normalizedData = "data" in data ? data.data : {
68
+ key: "",
69
+ value: ""
70
+ };
71
+ if (!normalizedData || typeof normalizedData === "object" && Object.keys(normalizedData).length === 0) {
72
+ normalizedData = {
73
+ key: "",
74
+ value: ""
75
+ };
76
+ }
77
+ if (!normalizedData["key"]) {
78
+ normalizedData.key = "";
79
+ }
80
+ if (!normalizedData["value"]) {
81
+ normalizedData["value"] = "";
82
+ }
83
+ return normalizedData;
84
+ }
85
+ };
86
+ export {
87
+ CacheWatcher as default
88
+ };
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/watchers/index.ts
21
21
  var watchers_exports = {};
22
22
  __export(watchers_exports, {
23
+ CacheWatcher: () => CacheWatcher,
23
24
  QueryWatcher: () => QueryWatcher,
24
25
  RequestWatcher: () => RequestWatcher
25
26
  });
@@ -104,8 +105,51 @@ var RequestWatcher = class extends Watcher {
104
105
  });
105
106
  }
106
107
  };
108
+
109
+ // src/watchers/cache_watcher.ts
110
+ var CacheWatcher = class extends Watcher {
111
+ name = "cache" /* CACHE */;
112
+ async log(data) {
113
+ const payload = {
114
+ action: data.action,
115
+ data: this.normalizePayload(data),
116
+ requestId: data.requestId ?? "",
117
+ createdAt: data.createdAt
118
+ };
119
+ await getStore().save({
120
+ requestId: data.requestId ?? "",
121
+ type: this.name,
122
+ data: payload,
123
+ minimal_data: {
124
+ action: data.action,
125
+ key: payload.data.key,
126
+ createdAt: payload.createdAt
127
+ }
128
+ });
129
+ }
130
+ normalizePayload(data) {
131
+ let normalizedData = "data" in data ? data.data : {
132
+ key: "",
133
+ value: ""
134
+ };
135
+ if (!normalizedData || typeof normalizedData === "object" && Object.keys(normalizedData).length === 0) {
136
+ normalizedData = {
137
+ key: "",
138
+ value: ""
139
+ };
140
+ }
141
+ if (!normalizedData["key"]) {
142
+ normalizedData.key = "";
143
+ }
144
+ if (!normalizedData["value"]) {
145
+ normalizedData["value"] = "";
146
+ }
147
+ return normalizedData;
148
+ }
149
+ };
107
150
  // Annotate the CommonJS export names for ESM import in node:
108
151
  0 && (module.exports = {
152
+ CacheWatcher,
109
153
  QueryWatcher,
110
154
  RequestWatcher
111
155
  });
@@ -1,5 +1,6 @@
1
1
  export { default as QueryWatcher } from './query_watcher.cjs';
2
2
  export { default as RequestWatcher } from './request_watcher.cjs';
3
+ export { default as CacheWatcher } from './cache_watcher.cjs';
3
4
  import '../core/watcher.cjs';
4
5
  import '../types/index.cjs';
5
6
  import 'sql-formatter';
@@ -1,5 +1,6 @@
1
1
  export { default as QueryWatcher } from './query_watcher.js';
2
2
  export { default as RequestWatcher } from './request_watcher.js';
3
+ export { default as CacheWatcher } from './cache_watcher.js';
3
4
  import '../core/watcher.js';
4
5
  import '../types/index.js';
5
6
  import 'sql-formatter';
@@ -77,7 +77,50 @@ var RequestWatcher = class extends Watcher {
77
77
  });
78
78
  }
79
79
  };
80
+
81
+ // src/watchers/cache_watcher.ts
82
+ var CacheWatcher = class extends Watcher {
83
+ name = "cache" /* CACHE */;
84
+ async log(data) {
85
+ const payload = {
86
+ action: data.action,
87
+ data: this.normalizePayload(data),
88
+ requestId: data.requestId ?? "",
89
+ createdAt: data.createdAt
90
+ };
91
+ await getStore().save({
92
+ requestId: data.requestId ?? "",
93
+ type: this.name,
94
+ data: payload,
95
+ minimal_data: {
96
+ action: data.action,
97
+ key: payload.data.key,
98
+ createdAt: payload.createdAt
99
+ }
100
+ });
101
+ }
102
+ normalizePayload(data) {
103
+ let normalizedData = "data" in data ? data.data : {
104
+ key: "",
105
+ value: ""
106
+ };
107
+ if (!normalizedData || typeof normalizedData === "object" && Object.keys(normalizedData).length === 0) {
108
+ normalizedData = {
109
+ key: "",
110
+ value: ""
111
+ };
112
+ }
113
+ if (!normalizedData["key"]) {
114
+ normalizedData.key = "";
115
+ }
116
+ if (!normalizedData["value"]) {
117
+ normalizedData["value"] = "";
118
+ }
119
+ return normalizedData;
120
+ }
121
+ };
80
122
  export {
123
+ CacheWatcher,
81
124
  QueryWatcher,
82
125
  RequestWatcher
83
126
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lensjs/core",
3
- "version": "1.0.12",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./QueryTable-BcrtUssT.js","./index-BS8XxorB.js","./index-DzNHqeKh.css","./Table-DYaXk80S.js","./index-CpP2Ap5X.js"])))=>i.map(i=>d[i]);
2
- import{r as t,j as s,_ as a}from"./index-BS8XxorB.js";import{u as i}from"./useQueries-C8mDDDc6.js";import{u}from"./useLoadMore-CJltToLI.js";import"./useLensApi-DG6atd6d.js";const m=t.lazy(()=>a(()=>import("./QueryTable-BcrtUssT.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url)),l=()=>{const{loadMoreRequests:o,fetchQueries:r}=i(),e=u({paginatedPage:o});return t.useEffect(()=>{r()},[]),console.log("data",e.data),s.jsx(m,{hasMoreObject:e})};export{l as default};
@@ -1 +0,0 @@
1
- import{q as r,k as o,j as e,L as i}from"./index-BS8XxorB.js";import{C as l,T as d,L as c}from"./Table-DYaXk80S.js";import{h as x}from"./index-CpP2Ap5X.js";function m(a){return e.jsx("span",{className:"text-red-600 dark:text-red-400 font-mono",children:a})}const u=()=>{const a=r(o());return[{name:"Query",render:t=>e.jsx("div",{className:"max-w-xl",children:e.jsx("code",{className:"text-sm font-mono text-slate-800 dark:text-slate-300 leading-relaxed line-clamp-1",title:t.data.query,children:m(t.data.query)})})},{name:"Duration",render:t=>e.jsx("div",{className:"col-span-1 text-right",children:e.jsx("span",{className:"text-sm text-slate-600 dark:text-slate-400 font-mono",children:t.data.duration})})},{name:"Provider",render:t=>e.jsx("div",{className:"col-span-2 text-right",children:e.jsx("span",{className:"text-sm text-slate-600 dark:text-slate-400 font-mono",children:t.data.type})})},{name:"Happened",render:t=>{const{label:s,exact:n}=x(t.data.createdAt);return e.jsx("span",{className:"text-nowrap",title:n,children:s})},position:"end",class:"min-w-32"},{name:"Actions",render:t=>e.jsx(i,{to:`${a.QUERIES}/${t.id}`,className:"transition-colors duration-100 hover:text-white",children:e.jsx(l,{size:20})}),position:"end"}]},f=({hasMoreObject:a})=>e.jsxs("div",{className:"w-full",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsx(d,{columns:u(),data:a.data})}),e.jsx(c,{paginatedPage:a})]});export{f as default};
@@ -1 +0,0 @@
1
- import{r as l,j as t}from"./index-BS8XxorB.js";import{D as d,T as o}from"./TabbedDataViewer-cBDdPwIz.js";import{f as m}from"./index-CpP2Ap5X.js";import{M as i,S as n}from"./StatusCode-FQEjz7gK.js";const x=({request:a})=>{const e=l.useMemo(()=>m(a?.data?.createdAt),[a?.data?.createdAt]);if(!a||!a.data)return t.jsx(d,{title:"Request Details",items:[],emptyMessage:"No request data available"});const s=()=>a?.data?.headers?.host||"Unknown",r=l.useMemo(()=>[{label:"Time",value:e,className:"text-gray-900 dark:text-gray-100"},{label:"Hostname",value:s(),className:"text-gray-900 dark:text-gray-100 font-mono"},{label:"Method",value:a.data.method?t.jsx(i,{method:a.data.method}):"Unknown"},{label:"Request ID",value:a.data.id||"N/A",className:"text-gray-700 dark:text-gray-300 font-mono text-sm"},{label:"Path",value:a.data.path||"N/A",className:"text-gray-900 dark:text-gray-100 font-mono"},{label:"Status",value:a.data.status?t.jsx(n,{status:a.data.status}):"N/A"},{label:"Duration",value:a.data.duration||"N/A",className:"text-gray-900 dark:text-gray-100 font-medium"},{label:"IP Address",value:a.data.ip||"N/A",className:"text-gray-900 dark:text-gray-100 font-mono"}],[a.data,e]);return t.jsx(d,{title:"Request Details",items:r})},u=({request:a})=>{const e=[{id:"payload",label:"Payload",data:a.data.body},{id:"headers",label:"Headers",data:a.data.headers}],s=[{id:"response-body",label:"Body",data:a.data.response.json},{id:"response-headers",label:"Headers",data:a.data.response.headers}];return t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsx(x,{request:a}),a.data.user&&t.jsx(d,{title:"User",items:[{label:"ID",value:a?.data?.user?.id},{label:"Email",value:a?.data?.user?.email},{label:"Name",value:a?.data?.user?.name}]}),t.jsx(o,{tabs:e,title:"Request Data",defaultActiveTab:"payload"}),t.jsx(o,{tabs:s,title:"Response Data",defaultActiveTab:"response-body"})]})};export{u as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RequetsTable-DgP8p60b.js","./index-BS8XxorB.js","./index-DzNHqeKh.css","./Table-DYaXk80S.js","./StatusCode-FQEjz7gK.js","./index-CpP2Ap5X.js"])))=>i.map(i=>d[i]);
2
- import{r as e,j as m,_ as p}from"./index-BS8XxorB.js";import{D as _,u as h}from"./useLensApi-DG6atd6d.js";import{u as y}from"./useLoadMore-CJltToLI.js";const E={created_at:"",data:{body:{},createdAt:"",duration:"",headers:{},id:"",ip:"",method:"GET",path:"",response:{headers:{},json:{}},status:0,user:null},id:"",lens_entry_id:null,type:"request"};function M(){const[t,u]=e.useState([]),[n,i]=e.useState(E),[l,s]=e.useState(!1),[c,f]=e.useState(_),{getAllRequests:a,getRequestById:d}=h(),q=e.useCallback(async r=>{s(!0),d(r).then(o=>{i(o.data)}).finally(()=>{s(!1)})},[d]),R=e.useCallback(async r=>{s(!0),a(r).then(o=>{u(o.data),f(o.meta)}).finally(()=>{s(!1)})},[a]);return{loadMoreRequests:e.useMemo(()=>({initialData:t,meta:c,loading:l,fetchRawPage:a}),[t,c,l,a]),fetchRequests:R,fetchRequest:q,request:n}}const g=e.lazy(()=>p(()=>import("./RequetsTable-DgP8p60b.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)),L=()=>{const{loadMoreRequests:t,fetchRequests:u}=M(),n=y({paginatedPage:t});return e.useEffect(()=>{u()},[]),m.jsx(g,{hasMoreObject:n})};export{L as default};
@@ -1 +0,0 @@
1
- import{q as o,k as d,j as e,L as s}from"./index-BS8XxorB.js";import{C as i,T as m,L as l}from"./Table-DYaXk80S.js";import{M as u,S as x}from"./StatusCode-FQEjz7gK.js";import{h as c}from"./index-CpP2Ap5X.js";const h=()=>{const a=o(d());return[{name:"Method",render:t=>e.jsx(u,{method:t.data.method})},{name:"Path",render:t=>e.jsx(s,{to:`${a.REQUESTS}/${t.id}`,className:"line-clamp-2 max-w-80 min-w-40 text-base text-blue-600 dark:text-neutral-200 hover:underline",children:t.data.path})},{name:"Status",render:t=>e.jsx(x,{status:t.data.status})},{name:"Duration",value:t=>t.data.duration},{name:"Happened",render:t=>{const{label:n,exact:r}=c(t.data.createdAt);return e.jsx("span",{title:r,children:n})},position:"end",class:"min-w-32"},{name:"Actions",render:t=>e.jsx(s,{to:`${a.REQUESTS}/${t.id}`,className:"transition-colors duration-100 hover:text-white",children:e.jsx(i,{size:20})}),position:"end"}]},S=({hasMoreObject:a})=>e.jsxs("div",{children:[e.jsx(m,{columns:h(),data:a.data}),e.jsx(l,{paginatedPage:a})]});export{S as default};