@rudderjs/telescope 0.0.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.
- package/LICENSE +21 -0
- package/README.md +111 -0
- package/boost/guidelines.md +38 -0
- package/dist/api/routes.d.ts +7 -0
- package/dist/api/routes.d.ts.map +1 -0
- package/dist/api/routes.js +99 -0
- package/dist/api/routes.js.map +1 -0
- package/dist/collectors/cache.d.ts +13 -0
- package/dist/collectors/cache.d.ts.map +1 -0
- package/dist/collectors/cache.js +48 -0
- package/dist/collectors/cache.js.map +1 -0
- package/dist/collectors/event.d.ts +13 -0
- package/dist/collectors/event.d.ts.map +1 -0
- package/dist/collectors/event.js +36 -0
- package/dist/collectors/event.js.map +1 -0
- package/dist/collectors/exception.d.ts +13 -0
- package/dist/collectors/exception.d.ts.map +1 -0
- package/dist/collectors/exception.js +38 -0
- package/dist/collectors/exception.js.map +1 -0
- package/dist/collectors/job.d.ts +12 -0
- package/dist/collectors/job.d.ts.map +1 -0
- package/dist/collectors/job.js +53 -0
- package/dist/collectors/job.js.map +1 -0
- package/dist/collectors/log.d.ts +13 -0
- package/dist/collectors/log.d.ts.map +1 -0
- package/dist/collectors/log.js +35 -0
- package/dist/collectors/log.js.map +1 -0
- package/dist/collectors/mail.d.ts +12 -0
- package/dist/collectors/mail.d.ts.map +1 -0
- package/dist/collectors/mail.js +38 -0
- package/dist/collectors/mail.js.map +1 -0
- package/dist/collectors/model.d.ts +15 -0
- package/dist/collectors/model.d.ts.map +1 -0
- package/dist/collectors/model.js +49 -0
- package/dist/collectors/model.js.map +1 -0
- package/dist/collectors/notification.d.ts +12 -0
- package/dist/collectors/notification.d.ts.map +1 -0
- package/dist/collectors/notification.js +41 -0
- package/dist/collectors/notification.js.map +1 -0
- package/dist/collectors/query.d.ts +13 -0
- package/dist/collectors/query.d.ts.map +1 -0
- package/dist/collectors/query.js +45 -0
- package/dist/collectors/query.js.map +1 -0
- package/dist/collectors/request.d.ts +20 -0
- package/dist/collectors/request.d.ts.map +1 -0
- package/dist/collectors/request.js +73 -0
- package/dist/collectors/request.js.map +1 -0
- package/dist/collectors/schedule.d.ts +14 -0
- package/dist/collectors/schedule.d.ts.map +1 -0
- package/dist/collectors/schedule.js +50 -0
- package/dist/collectors/schedule.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +170 -0
- package/dist/index.js.map +1 -0
- package/dist/storage.d.ts +35 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +201 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +67 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +24 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/layout.d.ts +11 -0
- package/dist/ui/layout.d.ts.map +1 -0
- package/dist/ui/layout.js +69 -0
- package/dist/ui/layout.js.map +1 -0
- package/dist/ui/pages.d.ts +21 -0
- package/dist/ui/pages.d.ts.map +1 -0
- package/dist/ui/pages.js +225 -0
- package/dist/ui/pages.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare function dashboardPage(basePath: string, apiPrefix: string): string;
|
|
2
|
+
export declare function entryListPage(basePath: string, apiPrefix: string, type: string, title: string, columns: Column[]): string;
|
|
3
|
+
export interface Column {
|
|
4
|
+
label: string;
|
|
5
|
+
key: string;
|
|
6
|
+
badge?: boolean;
|
|
7
|
+
mono?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function requestsPage(basePath: string, api: string): string;
|
|
11
|
+
export declare function queriesPage(basePath: string, api: string): string;
|
|
12
|
+
export declare function jobsPage(basePath: string, api: string): string;
|
|
13
|
+
export declare function exceptionsPage(basePath: string, api: string): string;
|
|
14
|
+
export declare function logsPage(basePath: string, api: string): string;
|
|
15
|
+
export declare function mailPage(basePath: string, api: string): string;
|
|
16
|
+
export declare function notificationsPage(basePath: string, api: string): string;
|
|
17
|
+
export declare function eventsPage(basePath: string, api: string): string;
|
|
18
|
+
export declare function cachePage(basePath: string, api: string): string;
|
|
19
|
+
export declare function schedulePage(basePath: string, api: string): string;
|
|
20
|
+
export declare function modelsPage(basePath: string, api: string): string;
|
|
21
|
+
//# sourceMappingURL=pages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/ui/pages.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAyBzE;AAID,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CA4HR;AAID,MAAM,WAAW,MAAM;IACrB,KAAK,EAAO,MAAM,CAAA;IAClB,GAAG,EAAS,MAAM,CAAA;IAClB,KAAK,CAAC,EAAM,OAAO,CAAA;IACnB,IAAI,CAAC,EAAO,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAID,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMvE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhE"}
|
package/dist/ui/pages.js
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { layout } from './layout.js';
|
|
2
|
+
// ─── Dashboard ─────────────────────────────────────────────
|
|
3
|
+
export function dashboardPage(basePath, apiPrefix) {
|
|
4
|
+
return layout('Dashboard', `
|
|
5
|
+
<div x-data="dashboard()" x-init="load()" x-cloak>
|
|
6
|
+
<h2 class="text-xl font-bold mb-6">Dashboard</h2>
|
|
7
|
+
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
|
|
8
|
+
<template x-for="[type, count] of Object.entries(counts)" :key="type">
|
|
9
|
+
<a :href="'${basePath}/' + (type === 'query' ? 'queries' : type + 's')"
|
|
10
|
+
class="bg-white rounded-xl border border-gray-200 p-4 shadow-sm hover:shadow-md transition">
|
|
11
|
+
<div class="text-2xl font-bold" x-text="count"></div>
|
|
12
|
+
<div class="text-sm text-gray-500 capitalize" x-text="type + 's'"></div>
|
|
13
|
+
</a>
|
|
14
|
+
</template>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
<script>
|
|
18
|
+
function dashboard() {
|
|
19
|
+
return {
|
|
20
|
+
counts: {},
|
|
21
|
+
async load() {
|
|
22
|
+
const data = await fetch('${apiPrefix}/overview').then(r => r.json())
|
|
23
|
+
this.counts = data.counts || {}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
</script>`, basePath, '/');
|
|
28
|
+
}
|
|
29
|
+
// ─── Generic Entry List Page ───────────────────────────────
|
|
30
|
+
export function entryListPage(basePath, apiPrefix, type, title, columns) {
|
|
31
|
+
const colHeaders = columns.map(c => `<th class="px-4 py-3 text-left text-xs uppercase font-medium text-gray-500">${c.label}</th>`).join('\n ');
|
|
32
|
+
const colCells = columns.map(c => {
|
|
33
|
+
if (c.badge) {
|
|
34
|
+
return `<td class="px-4 py-3"><span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium" :class="badgeClass(${c.key})" x-text="${c.key}"></span></td>`;
|
|
35
|
+
}
|
|
36
|
+
if (c.mono) {
|
|
37
|
+
return `<td class="px-4 py-3 font-mono text-xs ${c.className ?? ''}" x-text="${c.key}"></td>`;
|
|
38
|
+
}
|
|
39
|
+
return `<td class="px-4 py-3 ${c.className ?? ''}" x-text="${c.key}"></td>`;
|
|
40
|
+
}).join('\n ');
|
|
41
|
+
const activePath = type === 'query' ? '/queries' : `/${type}s`;
|
|
42
|
+
return layout(title, `
|
|
43
|
+
<div x-data="entryList()" x-init="load()" x-cloak>
|
|
44
|
+
<div class="flex items-center justify-between mb-6">
|
|
45
|
+
<h2 class="text-xl font-bold">${title}</h2>
|
|
46
|
+
<div class="flex gap-2">
|
|
47
|
+
<input type="text" x-model="search" @input.debounce.300ms="load()"
|
|
48
|
+
placeholder="Search..." class="text-sm border border-gray-300 rounded-lg px-3 py-1.5 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none">
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div class="bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden">
|
|
53
|
+
<table class="w-full text-sm">
|
|
54
|
+
<thead class="bg-gray-50 border-b border-gray-200">
|
|
55
|
+
<tr>
|
|
56
|
+
${colHeaders}
|
|
57
|
+
<th class="px-4 py-3 text-right text-xs uppercase font-medium text-gray-500">Time</th>
|
|
58
|
+
</tr>
|
|
59
|
+
</thead>
|
|
60
|
+
<tbody class="divide-y divide-gray-100">
|
|
61
|
+
<template x-for="entry in entries" :key="entry.id">
|
|
62
|
+
<tr class="hover:bg-gray-50 cursor-pointer" @click="selected = entry">
|
|
63
|
+
${colCells}
|
|
64
|
+
<td class="px-4 py-3 text-right text-gray-400 text-xs" x-text="ago(entry.createdAt)"></td>
|
|
65
|
+
</tr>
|
|
66
|
+
</template>
|
|
67
|
+
<tr x-show="entries.length === 0">
|
|
68
|
+
<td colspan="${columns.length + 1}" class="px-4 py-12 text-center text-gray-400">No entries found.</td>
|
|
69
|
+
</tr>
|
|
70
|
+
</tbody>
|
|
71
|
+
</table>
|
|
72
|
+
|
|
73
|
+
<!-- Pagination -->
|
|
74
|
+
<div class="flex items-center justify-between px-4 py-3 border-t border-gray-200 bg-gray-50 text-sm">
|
|
75
|
+
<span class="text-gray-500">Total: <span x-text="meta.total"></span></span>
|
|
76
|
+
<div class="flex gap-1">
|
|
77
|
+
<button @click="page > 1 && (page--, load())" :disabled="page <= 1"
|
|
78
|
+
class="px-3 py-1 border rounded text-xs disabled:opacity-30">Prev</button>
|
|
79
|
+
<span class="px-3 py-1 text-gray-500" x-text="'Page ' + page + ' of ' + meta.last_page"></span>
|
|
80
|
+
<button @click="page < meta.last_page && (page++, load())" :disabled="page >= meta.last_page"
|
|
81
|
+
class="px-3 py-1 border rounded text-xs disabled:opacity-30">Next</button>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<!-- Detail Modal -->
|
|
87
|
+
<div x-show="selected" @click.self="selected = null" x-transition
|
|
88
|
+
class="fixed inset-0 bg-black/30 flex items-center justify-center z-50 p-8">
|
|
89
|
+
<div class="bg-white rounded-2xl shadow-xl max-w-2xl w-full max-h-[80vh] overflow-auto" @click.stop>
|
|
90
|
+
<div class="flex items-center justify-between px-6 py-4 border-b border-gray-200">
|
|
91
|
+
<h3 class="font-semibold">Entry Detail</h3>
|
|
92
|
+
<button @click="selected = null" class="text-gray-400 hover:text-gray-600">×</button>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="px-6 py-4">
|
|
95
|
+
<pre class="text-xs bg-gray-50 rounded-lg p-4 overflow-auto" x-text="JSON.stringify(selected?.content, null, 2)"></pre>
|
|
96
|
+
<div class="mt-3 flex flex-wrap gap-1">
|
|
97
|
+
<template x-for="tag in (selected?.tags || [])" :key="tag">
|
|
98
|
+
<span class="inline-flex items-center px-2 py-0.5 rounded-full text-xs bg-gray-100 text-gray-600" x-text="tag"></span>
|
|
99
|
+
</template>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<script>
|
|
107
|
+
function entryList() {
|
|
108
|
+
return {
|
|
109
|
+
entries: [],
|
|
110
|
+
meta: { total: 0, last_page: 1 },
|
|
111
|
+
page: 1,
|
|
112
|
+
search: '',
|
|
113
|
+
selected: null,
|
|
114
|
+
|
|
115
|
+
async load() {
|
|
116
|
+
const params = new URLSearchParams({ page: this.page, per_page: 50 })
|
|
117
|
+
if (this.search) params.set('search', this.search)
|
|
118
|
+
const data = await fetch('${apiPrefix}/${type === 'query' ? 'queries' : type + 's'}?' + params).then(r => r.json())
|
|
119
|
+
this.entries = data.data || []
|
|
120
|
+
this.meta = data.meta || { total: 0, last_page: 1 }
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
badgeClass(value) {
|
|
124
|
+
const colors = {
|
|
125
|
+
GET: 'bg-green-100 text-green-700', POST: 'bg-blue-100 text-blue-700',
|
|
126
|
+
PUT: 'bg-amber-100 text-amber-700', DELETE: 'bg-red-100 text-red-700',
|
|
127
|
+
PATCH: 'bg-purple-100 text-purple-700',
|
|
128
|
+
error: 'bg-red-100 text-red-700', warning: 'bg-amber-100 text-amber-700',
|
|
129
|
+
info: 'bg-blue-100 text-blue-700', debug: 'bg-gray-100 text-gray-700',
|
|
130
|
+
dispatched: 'bg-blue-100 text-blue-700', failed: 'bg-red-100 text-red-700',
|
|
131
|
+
hit: 'bg-green-100 text-green-700', miss: 'bg-red-100 text-red-700',
|
|
132
|
+
set: 'bg-blue-100 text-blue-700', forget: 'bg-gray-100 text-gray-700',
|
|
133
|
+
created: 'bg-green-100 text-green-700', updated: 'bg-blue-100 text-blue-700',
|
|
134
|
+
deleted: 'bg-red-100 text-red-700',
|
|
135
|
+
}
|
|
136
|
+
return colors[value] || 'bg-gray-100 text-gray-600'
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
ago(dateStr) {
|
|
140
|
+
const s = Math.floor((Date.now() - new Date(dateStr).getTime()) / 1000)
|
|
141
|
+
if (s < 60) return s + 's ago'
|
|
142
|
+
if (s < 3600) return Math.floor(s / 60) + 'm ago'
|
|
143
|
+
if (s < 86400) return Math.floor(s / 3600) + 'h ago'
|
|
144
|
+
return Math.floor(s / 86400) + 'd ago'
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
</script>`, basePath, activePath);
|
|
149
|
+
}
|
|
150
|
+
// ─── Page definitions for each entry type ──────────────────
|
|
151
|
+
export function requestsPage(basePath, api) {
|
|
152
|
+
return entryListPage(basePath, api, 'request', 'Requests', [
|
|
153
|
+
{ label: 'Method', key: 'entry.content.method', badge: true },
|
|
154
|
+
{ label: 'Path', key: 'entry.content.path', mono: true },
|
|
155
|
+
{ label: 'Duration', key: 'entry.content.duration + "ms"', className: 'text-right' },
|
|
156
|
+
]);
|
|
157
|
+
}
|
|
158
|
+
export function queriesPage(basePath, api) {
|
|
159
|
+
return entryListPage(basePath, api, 'query', 'Queries', [
|
|
160
|
+
{ label: 'SQL', key: 'entry.content.sql', mono: true, className: 'truncate max-w-md' },
|
|
161
|
+
{ label: 'Duration', key: 'entry.content.duration + "ms"', className: 'text-right' },
|
|
162
|
+
{ label: 'Model', key: 'entry.content.model || "—"' },
|
|
163
|
+
]);
|
|
164
|
+
}
|
|
165
|
+
export function jobsPage(basePath, api) {
|
|
166
|
+
return entryListPage(basePath, api, 'job', 'Jobs', [
|
|
167
|
+
{ label: 'Class', key: 'entry.content.class', mono: true },
|
|
168
|
+
{ label: 'Queue', key: 'entry.content.queue' },
|
|
169
|
+
{ label: 'Status', key: 'entry.content.status', badge: true },
|
|
170
|
+
{ label: 'Duration', key: '(entry.content.duration || 0) + "ms"', className: 'text-right' },
|
|
171
|
+
]);
|
|
172
|
+
}
|
|
173
|
+
export function exceptionsPage(basePath, api) {
|
|
174
|
+
return entryListPage(basePath, api, 'exception', 'Exceptions', [
|
|
175
|
+
{ label: 'Class', key: 'entry.content.class', mono: true, className: 'text-red-600' },
|
|
176
|
+
{ label: 'Message', key: 'entry.content.message', className: 'truncate max-w-md' },
|
|
177
|
+
]);
|
|
178
|
+
}
|
|
179
|
+
export function logsPage(basePath, api) {
|
|
180
|
+
return entryListPage(basePath, api, 'log', 'Logs', [
|
|
181
|
+
{ label: 'Level', key: 'entry.content.level', badge: true },
|
|
182
|
+
{ label: 'Channel', key: 'entry.content.channel' },
|
|
183
|
+
{ label: 'Message', key: 'entry.content.message', className: 'truncate max-w-lg' },
|
|
184
|
+
]);
|
|
185
|
+
}
|
|
186
|
+
export function mailPage(basePath, api) {
|
|
187
|
+
return entryListPage(basePath, api, 'mail', 'Mail', [
|
|
188
|
+
{ label: 'Class', key: 'entry.content.class', mono: true },
|
|
189
|
+
{ label: 'Subject', key: 'entry.content.subject', className: 'truncate max-w-md' },
|
|
190
|
+
{ label: 'To', key: 'Array.isArray(entry.content.to) ? entry.content.to.join(", ") : entry.content.to' },
|
|
191
|
+
]);
|
|
192
|
+
}
|
|
193
|
+
export function notificationsPage(basePath, api) {
|
|
194
|
+
return entryListPage(basePath, api, 'notification', 'Notifications', [
|
|
195
|
+
{ label: 'Class', key: 'entry.content.class', mono: true },
|
|
196
|
+
{ label: 'Channel', key: 'entry.content.channel' },
|
|
197
|
+
{ label: 'Notifiable', key: 'entry.content.notifiable' },
|
|
198
|
+
]);
|
|
199
|
+
}
|
|
200
|
+
export function eventsPage(basePath, api) {
|
|
201
|
+
return entryListPage(basePath, api, 'event', 'Events', [
|
|
202
|
+
{ label: 'Name', key: 'entry.content.name', mono: true },
|
|
203
|
+
]);
|
|
204
|
+
}
|
|
205
|
+
export function cachePage(basePath, api) {
|
|
206
|
+
return entryListPage(basePath, api, 'cache', 'Cache', [
|
|
207
|
+
{ label: 'Key', key: 'entry.content.key || "—"', mono: true, className: 'truncate max-w-md' },
|
|
208
|
+
{ label: 'Operation', key: 'entry.content.operation', badge: true },
|
|
209
|
+
]);
|
|
210
|
+
}
|
|
211
|
+
export function schedulePage(basePath, api) {
|
|
212
|
+
return entryListPage(basePath, api, 'schedule', 'Scheduled Tasks', [
|
|
213
|
+
{ label: 'Description', key: 'entry.content.description' },
|
|
214
|
+
{ label: 'Expression', key: 'entry.content.expression', mono: true },
|
|
215
|
+
{ label: 'Status', key: 'entry.content.status', badge: true },
|
|
216
|
+
{ label: 'Duration', key: '(entry.content.duration || 0) + "ms"', className: 'text-right' },
|
|
217
|
+
]);
|
|
218
|
+
}
|
|
219
|
+
export function modelsPage(basePath, api) {
|
|
220
|
+
return entryListPage(basePath, api, 'model', 'Model Changes', [
|
|
221
|
+
{ label: 'Model', key: 'entry.content.model', mono: true },
|
|
222
|
+
{ label: 'Action', key: 'entry.content.action', badge: true },
|
|
223
|
+
]);
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/ui/pages.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rudderjs/telescope",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/rudderjs/rudder",
|
|
8
|
+
"directory": "packages/telescope"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"boost"
|
|
14
|
+
],
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"import": "./dist/index.js",
|
|
20
|
+
"types": "./dist/index.d.ts"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@rudderjs/core": "0.0.8",
|
|
25
|
+
"@rudderjs/contracts": "0.0.3"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"@rudderjs/router": "0.0.3",
|
|
29
|
+
"@rudderjs/queue": "0.0.5",
|
|
30
|
+
"@rudderjs/mail": "0.0.5",
|
|
31
|
+
"@rudderjs/notification": "0.0.5",
|
|
32
|
+
"@rudderjs/schedule": "0.0.6",
|
|
33
|
+
"@rudderjs/middleware": "0.0.7",
|
|
34
|
+
"@rudderjs/log": "0.0.1",
|
|
35
|
+
"@rudderjs/orm": "0.0.6",
|
|
36
|
+
"@rudderjs/cache": "0.0.6"
|
|
37
|
+
},
|
|
38
|
+
"peerDependenciesMeta": {
|
|
39
|
+
"@rudderjs/log": {
|
|
40
|
+
"optional": true
|
|
41
|
+
},
|
|
42
|
+
"@rudderjs/orm": {
|
|
43
|
+
"optional": true
|
|
44
|
+
},
|
|
45
|
+
"@rudderjs/cache": {
|
|
46
|
+
"optional": true
|
|
47
|
+
},
|
|
48
|
+
"@rudderjs/queue": {
|
|
49
|
+
"optional": true
|
|
50
|
+
},
|
|
51
|
+
"@rudderjs/mail": {
|
|
52
|
+
"optional": true
|
|
53
|
+
},
|
|
54
|
+
"@rudderjs/notification": {
|
|
55
|
+
"optional": true
|
|
56
|
+
},
|
|
57
|
+
"@rudderjs/schedule": {
|
|
58
|
+
"optional": true
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"optionalDependencies": {
|
|
62
|
+
"better-sqlite3": "^11.0.0"
|
|
63
|
+
},
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"@types/node": "^20.0.0",
|
|
66
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
67
|
+
"typescript": "^5.4.0"
|
|
68
|
+
},
|
|
69
|
+
"author": "Suleiman Shahbari",
|
|
70
|
+
"scripts": {
|
|
71
|
+
"build": "tsc -p tsconfig.build.json",
|
|
72
|
+
"dev": "tsc -p tsconfig.build.json --watch",
|
|
73
|
+
"typecheck": "tsc --noEmit",
|
|
74
|
+
"lint": "eslint src",
|
|
75
|
+
"clean": "rm -rf dist",
|
|
76
|
+
"test": "tsc -p tsconfig.test.json && node --test dist-test/index.test.js; EXIT=$?; rm -rf dist-test; exit $EXIT"
|
|
77
|
+
}
|
|
78
|
+
}
|