@lensjs/core 2.1.1 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/core/lens.cjs +32 -27
  2. package/dist/core/lens.d.cts +27 -3
  3. package/dist/core/lens.d.ts +27 -3
  4. package/dist/core/lens.js +32 -27
  5. package/dist/{index-DiLfwsvc.d.cts → index-CMvlRWcQ.d.cts} +5 -4
  6. package/dist/{index-DiLfwsvc.d.ts → index-CMvlRWcQ.d.ts} +5 -4
  7. package/dist/index.cjs +79 -42
  8. package/dist/index.d.cts +2 -2
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.js +79 -42
  11. package/dist/stores/better_sqlite.cjs +2 -0
  12. package/dist/stores/better_sqlite.js +2 -0
  13. package/dist/stores/index.cjs +2 -0
  14. package/dist/stores/index.js +2 -0
  15. package/dist/ui/assets/{CacheActionBadge-CK7JdKoE.js → CacheActionBadge-WGVr5yhe.js} +1 -1
  16. package/dist/ui/assets/CacheEntriesTable-txREHfFk.js +1 -0
  17. package/dist/ui/assets/CacheEntryContainer-BoeiVJN6.js +2 -0
  18. package/dist/ui/assets/{CacheEntryDetails-D9Xy7d9u.js → CacheEntryDetails-DovbpPae.js} +1 -1
  19. package/dist/ui/assets/CacheEntryDetailsContainer-DcmH8iqv.js +2 -0
  20. package/dist/ui/assets/ExceptionContainer-C0H0kKkb.js +2 -0
  21. package/dist/ui/assets/{ExceptionDetails-BbIFoM7M.js → ExceptionDetails-DX14YGmx.js} +1 -1
  22. package/dist/ui/assets/ExceptionDetailsContainer-CHAXdzwk.js +2 -0
  23. package/dist/ui/assets/{ExceptionTable-DY3mmGT4.js → ExceptionTable-Chiah5kT.js} +1 -1
  24. package/dist/ui/assets/{LoadMore-CJh7FLbl.js → LoadMore-CosGy1fp.js} +1 -1
  25. package/dist/ui/assets/QueriesContainer-CporgPyk.js +2 -0
  26. package/dist/ui/assets/{QueryDetailsContainer-7CA9a5de.js → QueryDetailsContainer-Dimuidq4.js} +1 -1
  27. package/dist/ui/assets/{QueryTable-pn7Ayura.js → QueryTable-BLpmWt7g.js} +1 -1
  28. package/dist/ui/assets/RequestDetails-DeJofxSW.js +1 -0
  29. package/dist/ui/assets/{RequestDetailsContainer-BECT0XJh.js → RequestDetailsContainer-BtDTKq1O.js} +2 -2
  30. package/dist/ui/assets/{RequestsContainer-DLkjpX67.js → RequestsContainer-CxIavrPj.js} +2 -2
  31. package/dist/ui/assets/{RequetsTable-Cgas07Fe.js → RequetsTable-CUevs9X4.js} +1 -1
  32. package/dist/ui/assets/{StatusCode-C5lihzKZ.js → StatusCode-D_bCVpUf.js} +1 -1
  33. package/dist/ui/assets/{TabbedDataViewer-BUMQ0QVm.js → TabbedDataViewer-CbZANxvH.js} +1 -1
  34. package/dist/ui/assets/{Table-BesHc4Lc.js → Table-z_QSS7J8.js} +1 -1
  35. package/dist/ui/assets/{columns-C1CwS8yE.js → columns-Bxz-DZCj.js} +1 -1
  36. package/dist/ui/assets/{columns-CULxhcpY.js → columns-D0UC1pqC.js} +1 -1
  37. package/dist/ui/assets/columns-DJaOm2Yg.js +1 -0
  38. package/dist/ui/assets/{index-PEcJ5nx0.js → index-CQJv-KV7.js} +2 -2
  39. package/dist/ui/assets/{useCacheEntries-jbGe2CRY.js → useCacheEntries-DWzLAzvE.js} +1 -1
  40. package/dist/ui/assets/{useExceptions-uYUhAW-J.js → useExceptions-BF0fHNek.js} +1 -1
  41. package/dist/ui/assets/{useLensApi-BsDmB7vx.js → useLensApi-BEMg_OuP.js} +1 -1
  42. package/dist/ui/assets/{useLoadMore-sLsrekV5.js → useLoadMore-ClIkZ0Gw.js} +1 -1
  43. package/dist/ui/assets/{useQueries-DJE91mYq.js → useQueries-C0vKfgzw.js} +1 -1
  44. package/dist/ui/index.html +1 -1
  45. package/dist/utils/event_emitter.cjs +20 -12
  46. package/dist/utils/event_emitter.d.cts +12 -7
  47. package/dist/utils/event_emitter.d.ts +12 -7
  48. package/dist/utils/event_emitter.js +20 -2
  49. package/dist/utils/index.cjs +27 -12
  50. package/dist/utils/index.d.cts +1 -1
  51. package/dist/utils/index.d.ts +1 -1
  52. package/dist/utils/index.js +26 -12
  53. package/dist/watchers/cache_watcher.cjs +1 -1
  54. package/dist/watchers/cache_watcher.js +1 -1
  55. package/dist/watchers/index.cjs +1 -1
  56. package/dist/watchers/index.js +1 -1
  57. package/package.json +1 -2
  58. package/dist/ui/assets/CacheEntriesTable-C5HcgCZI.js +0 -1
  59. package/dist/ui/assets/CacheEntryContainer-C0no2_6_.js +0 -2
  60. package/dist/ui/assets/CacheEntryDetailsContainer-BcwliP55.js +0 -2
  61. package/dist/ui/assets/ExceptionContainer-CQalcd8x.js +0 -2
  62. package/dist/ui/assets/ExceptionDetailsContainer-fajmF7id.js +0 -2
  63. package/dist/ui/assets/QueriesContainer-DWTsKzEk.js +0 -2
  64. package/dist/ui/assets/RequestDetails-CYSM4og8.js +0 -1
  65. package/dist/ui/assets/columns-gYFQU5qH.js +0 -1
@@ -10,34 +10,44 @@ var generateRandomUuid = () => {
10
10
  function interpolateQuery(query, bindings) {
11
11
  const formatValue = (value) => {
12
12
  if (value === null || value === void 0) return "NULL";
13
- if (typeof value === "string") return `'${value.replace(/'/g, "''")}'`;
14
- if (value instanceof DateTime) return `'${value.toISO()}'`;
15
- if (value instanceof Date) return `'${value.toISOString()}'`;
16
- if (Array.isArray(value))
17
- return value.map((v) => typeof v === "string" ? `'${v.replace(/'/g, "''")}'` : v).join(", ");
18
- if (typeof value === "object")
13
+ if (typeof value === "string") {
14
+ return `'${value.replace(/'/g, "''")}'`;
15
+ }
16
+ if (value instanceof DateTime) {
17
+ return `'${value.toISO()}'`;
18
+ }
19
+ if (value instanceof Date) {
20
+ return `'${value.toISOString()}'`;
21
+ }
22
+ if (Array.isArray(value)) {
23
+ return value.map((v) => formatValue(v)).join(", ");
24
+ }
25
+ if (typeof value === "object") {
19
26
  return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
27
+ }
20
28
  return value.toString();
21
29
  };
22
30
  if (Array.isArray(bindings)) {
23
31
  let i = 0;
24
32
  return query.replace(/\?/g, () => {
25
- if (i >= bindings.length)
33
+ if (i >= bindings.length) {
26
34
  throw new Error("Not enough bindings for placeholders");
35
+ }
27
36
  return formatValue(bindings[i++]);
28
37
  });
29
38
  }
30
39
  return query.replace(/(\$|\:)(\w+)/g, (match, prefix, keyOrIndex) => {
31
40
  let value;
32
41
  if (prefix === "$" && /^\d+$/.test(keyOrIndex)) {
33
- const index = parseInt(keyOrIndex, 10) - 1;
34
- const keys = Object.keys(bindings);
35
- if (index < 0 || index >= keys.length)
42
+ const placeholder = `$${keyOrIndex}`;
43
+ if (!(placeholder in bindings)) {
36
44
  throw new Error(`Missing binding for ${match}`);
37
- value = bindings[keys[index]];
45
+ }
46
+ value = bindings[placeholder];
38
47
  } else {
39
- if (!(keyOrIndex in bindings))
48
+ if (!(keyOrIndex in bindings)) {
40
49
  throw new Error(`Missing binding for ${match}`);
50
+ }
41
51
  value = bindings[keyOrIndex];
42
52
  }
43
53
  return formatValue(value);
@@ -108,12 +118,16 @@ function prettyHrTime(hrtime, verbose = false) {
108
118
  }
109
119
  return `${(ms / 1e3).toFixed(1)} s`;
110
120
  }
121
+ function normalizePath(path2) {
122
+ return path2.startsWith("/") ? path2 : `/${path2}`;
123
+ }
111
124
  export {
112
125
  formatSqlQuery,
113
126
  generateRandomUuid,
114
127
  getMeta,
115
128
  interpolateQuery,
116
129
  isStaticFile,
130
+ normalizePath,
117
131
  prepareIgnoredPaths,
118
132
  prettyHrTime,
119
133
  shouldIgnoreCurrentPath,
@@ -94,7 +94,7 @@ var CacheWatcher = class extends Watcher {
94
94
  let value = "";
95
95
  if ("data" in data && typeof data.data === "object" && data.data !== null) {
96
96
  if ("key" in data.data) {
97
- key = String(data.data.key);
97
+ key = String(data.data.key ?? "__");
98
98
  }
99
99
  if ("value" in data.data) {
100
100
  value = data.data.value;
@@ -68,7 +68,7 @@ var CacheWatcher = class extends Watcher {
68
68
  let value = "";
69
69
  if ("data" in data && typeof data.data === "object" && data.data !== null) {
70
70
  if ("key" in data.data) {
71
- key = String(data.data.key);
71
+ key = String(data.data.key ?? "__");
72
72
  }
73
73
  if ("value" in data.data) {
74
74
  value = data.data.value;
@@ -143,7 +143,7 @@ var CacheWatcher = class extends Watcher {
143
143
  let value = "";
144
144
  if ("data" in data && typeof data.data === "object" && data.data !== null) {
145
145
  if ("key" in data.data) {
146
- key = String(data.data.key);
146
+ key = String(data.data.key ?? "__");
147
147
  }
148
148
  if ("value" in data.data) {
149
149
  value = data.data.value;
@@ -104,7 +104,7 @@ var CacheWatcher = class extends Watcher {
104
104
  let value = "";
105
105
  if ("data" in data && typeof data.data === "object" && data.data !== null) {
106
106
  if ("key" in data.data) {
107
- key = String(data.data.key);
107
+ key = String(data.data.key ?? "__");
108
108
  }
109
109
  if ("value" in data.data) {
110
110
  value = data.data.value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lensjs/core",
3
- "version": "2.1.1",
3
+ "version": "2.2.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -25,7 +25,6 @@
25
25
  "@lensjs/typescript-config": "1.0.12"
26
26
  },
27
27
  "dependencies": {
28
- "emittery": "^1.2.0",
29
28
  "libsql": "^0.5.22",
30
29
  "luxon": "^3.7.2",
31
30
  "rimraf": "^6.0.1",
@@ -1 +0,0 @@
1
- import{j as a}from"./index-PEcJ5nx0.js";import{L as s}from"./LoadMore-CJh7FLbl.js";import{T as t}from"./Table-BesHc4Lc.js";import{g as r}from"./columns-gYFQU5qH.js";import"./index-BRRKsoNv.js";import"./CacheActionBadge-CK7JdKoE.js";const p=({hasMoreObject:o})=>a.jsxs("div",{className:"w-full",children:[a.jsx("div",{className:"overflow-x-auto",children:a.jsx(t,{columns:r(),data:o.data})}),a.jsx(s,{paginatedPage:o})]});export{p as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CacheEntriesTable-C5HcgCZI.js","./index-PEcJ5nx0.js","./index-B2QCOgug.css","./LoadMore-CJh7FLbl.js","./Table-BesHc4Lc.js","./columns-gYFQU5qH.js","./index-BRRKsoNv.js","./CacheActionBadge-CK7JdKoE.js"])))=>i.map(i=>d[i]);
2
- import{r as t,j as a,_ as s}from"./index-PEcJ5nx0.js";import{u as i}from"./useLoadMore-sLsrekV5.js";import{u as m}from"./useCacheEntries-jbGe2CRY.js";import"./useLensApi-BsDmB7vx.js";const n=t.lazy(()=>s(()=>import("./CacheEntriesTable-C5HcgCZI.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),_=()=>{const{loadMoreItems:e,getItems:r}=m(),o=i({paginatedPage:e});return t.useEffect(()=>{r()},[]),a.jsx(n,{hasMoreObject:o})};export{_ as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CacheEntryDetails-D9Xy7d9u.js","./index-PEcJ5nx0.js","./index-B2QCOgug.css","./TabbedDataViewer-BUMQ0QVm.js","./CacheActionBadge-CK7JdKoE.js"])))=>i.map(i=>d[i]);
2
- import{m as o,r as s,j as r,_ as i}from"./index-PEcJ5nx0.js";import{u as m}from"./useCacheEntries-jbGe2CRY.js";import"./useLensApi-BsDmB7vx.js";const n=s.lazy(()=>i(()=>import("./CacheEntryDetails-D9Xy7d9u.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url)),E=()=>{const{item:e,getItem:a}=m(),{id:t}=o();return s.useEffect(()=>{t&&a(t)},[t]),r.jsx("div",{children:e&&r.jsx(n,{data:e})})};export{E as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ExceptionTable-DY3mmGT4.js","./index-PEcJ5nx0.js","./index-B2QCOgug.css","./LoadMore-CJh7FLbl.js","./Table-BesHc4Lc.js","./columns-C1CwS8yE.js","./index-BRRKsoNv.js"])))=>i.map(i=>d[i]);
2
- import{r as t,j as s,_ as a}from"./index-PEcJ5nx0.js";import{u as i}from"./useLoadMore-sLsrekV5.js";import{u as m}from"./useExceptions-uYUhAW-J.js";import"./useLensApi-BsDmB7vx.js";const n=t.lazy(()=>a(()=>import("./ExceptionTable-DY3mmGT4.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),_=()=>{const{loadMoreItems:e,getItems:o}=m(),r=i({paginatedPage:e});return t.useEffect(()=>{o()},[]),s.jsx(n,{hasMoreObject:r})};export{_ as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ExceptionDetails-BbIFoM7M.js","./index-PEcJ5nx0.js","./index-B2QCOgug.css","./TabbedDataViewer-BUMQ0QVm.js"])))=>i.map(i=>d[i]);
2
- import{m as a,r as s,j as r,_ as i}from"./index-PEcJ5nx0.js";import{u as m}from"./useExceptions-uYUhAW-J.js";import"./useLensApi-BsDmB7vx.js";const n=s.lazy(()=>i(()=>import("./ExceptionDetails-BbIFoM7M.js"),__vite__mapDeps([0,1,2,3]),import.meta.url)),x=()=>{const{item:e,getItem:o}=m(),{id:t}=a();return s.useEffect(()=>{t&&o(t)},[t]),r.jsx("div",{children:e&&r.jsx(n,{data:e})})};export{x as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./QueryTable-pn7Ayura.js","./index-PEcJ5nx0.js","./index-B2QCOgug.css","./LoadMore-CJh7FLbl.js","./Table-BesHc4Lc.js","./columns-CULxhcpY.js","./index-BRRKsoNv.js"])))=>i.map(i=>d[i]);
2
- import{r as e,j as s,_ as a}from"./index-PEcJ5nx0.js";import{u as i}from"./useQueries-DJE91mYq.js";import{u}from"./useLoadMore-sLsrekV5.js";import"./useLensApi-BsDmB7vx.js";const m=e.lazy(()=>a(()=>import("./QueryTable-pn7Ayura.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),f=()=>{const{loadMoreRequests:r,fetchQueries:t}=i(),o=u({paginatedPage:r});return e.useEffect(()=>{t()},[]),s.jsx(m,{hasMoreObject:o})};export{f as default};
@@ -1 +0,0 @@
1
- import{r as n,j as e}from"./index-PEcJ5nx0.js";import{D as r,T as o}from"./TabbedDataViewer-BUMQ0QVm.js";import{T as d}from"./Table-BesHc4Lc.js";import{g as i}from"./columns-CULxhcpY.js";import{g as m}from"./columns-C1CwS8yE.js";import{g as u}from"./columns-gYFQU5qH.js";import{f as c}from"./index-BRRKsoNv.js";import{R as x,S as b}from"./StatusCode-C5lihzKZ.js";import"./CacheActionBadge-CK7JdKoE.js";const h=({request:a})=>{const t=n.useMemo(()=>c(a?.request.data?.createdAt),[a?.request.data.createdAt]);if(!a||!a.request)return e.jsx(r,{title:"Request Details",items:[],emptyMessage:"No request data available"});const s=()=>a?.request.data?.headers?.host||"Unknown",l=n.useMemo(()=>[{label:"Time",value:t,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.request.data.method?e.jsx(x,{method:a.request.data.method}):"Unknown"},{label:"Request ID",value:a.request.data.id||"N/A",className:"text-gray-700 dark:text-gray-300 font-mono text-sm"},{label:"Path",value:a.request.data.path||"N/A",className:"text-gray-900 dark:text-gray-100 font-mono"},{label:"Status",value:a.request.data.status?e.jsx(b,{status:a.request.data.status}):"N/A"},{label:"Duration",value:a.request.data.duration||"N/A",className:"text-gray-900 dark:text-gray-100 font-medium"},{label:"IP Address",value:a.request.data.ip||"N/A",className:"text-gray-900 dark:text-gray-100 font-mono"}],[a.request.data,t]);return e.jsx(r,{title:"Request Details",items:l})},A=({request:a})=>{const t=[{id:"payload",label:"Payload",data:a.request.data.body},{id:"headers",label:"Headers",data:a.request.data.headers}],s=[{id:"response-body",label:"Body",data:a.request.data.response.json},{id:"response-headers",label:"Headers",data:a.request.data.response.headers}],l=[{id:"request-queries",label:`Queries (${a.queries.length})`,shouldShow:a.queries.length>0,content:e.jsx(d,{columns:i(),data:a?.queries})},{id:"request-cache",label:`Cache (${a.cacheEntries.length})`,shouldShow:a.cacheEntries.length>0,content:e.jsx(d,{columns:u(),data:a.cacheEntries})},{id:"request-exceptions",label:`Exceptions (${a.exceptions.length})`,shouldShow:a.exceptions.length>0,content:e.jsx(d,{columns:m(),data:a.exceptions})}];return e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(h,{request:a}),a.request.data.user&&e.jsx(r,{title:"User",items:[{label:"ID",value:a.request.data.user?.id},{label:"Email",value:a.request.data.user?.email},{label:"Name",value:a.request.data.user?.name}]}),e.jsx(o,{tabs:t,title:"Request Data",defaultActiveTab:"payload"}),e.jsx(o,{tabs:s,title:"Response Data",defaultActiveTab:"response-body"}),e.jsx(o,{tabs:l})]})};export{A as default};
@@ -1 +0,0 @@
1
- import{q as o,k as r,j as t,L as i}from"./index-PEcJ5nx0.js";import{h as m}from"./index-BRRKsoNv.js";import{C as c}from"./CacheActionBadge-CK7JdKoE.js";import{C as d}from"./Table-BesHc4Lc.js";const x=()=>{const a=o(r());return[{name:"Key",value:e=>e.data.data.key||"__"},{name:"Operation",render:e=>t.jsx(c,{action:e.data.action})},{name:"Happened",render:e=>{const{label:n,exact:s}=m(e.data.createdAt);return t.jsx("span",{title:s,children:n})},position:"end",class:"min-w-32"},{name:"Actions",render:e=>t.jsx(i,{to:`${a.CACHE_ENTRIES}/${e.id}`,className:"transition-colors duration-100 hover:text-white",children:t.jsx(d,{size:20})}),position:"end"}]};export{x as g};