@powersync/nuxt 0.0.0-dev-20260128023420 → 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.
Files changed (38) hide show
  1. package/{README → README.md} +46 -30
  2. package/dist/module.d.mts +2 -2
  3. package/dist/module.json +2 -2
  4. package/dist/module.mjs +22 -24
  5. package/dist/runtime/components/BucketsInspectorTab.d.vue.ts +1 -1
  6. package/dist/runtime/components/BucketsInspectorTab.vue +47 -149
  7. package/dist/runtime/components/BucketsInspectorTab.vue.d.ts +1 -1
  8. package/dist/runtime/components/ConfigInspectorTab.d.vue.ts +1 -1
  9. package/dist/runtime/components/ConfigInspectorTab.vue +11 -48
  10. package/dist/runtime/components/ConfigInspectorTab.vue.d.ts +1 -1
  11. package/dist/runtime/components/DataInspectorTab.d.vue.ts +1 -1
  12. package/dist/runtime/components/DataInspectorTab.vue +35 -149
  13. package/dist/runtime/components/DataInspectorTab.vue.d.ts +1 -1
  14. package/dist/runtime/components/LoadingSpinner.d.vue.ts +1 -1
  15. package/dist/runtime/components/LoadingSpinner.vue.d.ts +1 -1
  16. package/dist/runtime/components/LogsTab.d.vue.ts +1 -1
  17. package/dist/runtime/components/LogsTab.vue +42 -94
  18. package/dist/runtime/components/LogsTab.vue.d.ts +1 -1
  19. package/dist/runtime/components/PowerSyncInstanceTab.d.vue.ts +1 -1
  20. package/dist/runtime/components/PowerSyncInstanceTab.vue +1 -3
  21. package/dist/runtime/components/PowerSyncInstanceTab.vue.d.ts +1 -1
  22. package/dist/runtime/components/SyncStatusTab.d.vue.ts +1 -1
  23. package/dist/runtime/components/SyncStatusTab.vue +57 -168
  24. package/dist/runtime/components/SyncStatusTab.vue.d.ts +1 -1
  25. package/dist/runtime/composables/useDiagnosticsLogger.d.ts +1 -1
  26. package/dist/runtime/composables/useDiagnosticsLogger.js +16 -24
  27. package/dist/runtime/composables/usePowerSyncInspectorDiagnostics.js +13 -53
  28. package/dist/runtime/index.d.ts +3 -3
  29. package/dist/runtime/layouts/powersync-inspector-layout.d.vue.ts +1 -1
  30. package/dist/runtime/layouts/powersync-inspector-layout.vue +9 -36
  31. package/dist/runtime/layouts/powersync-inspector-layout.vue.d.ts +1 -1
  32. package/dist/runtime/pages/__powersync-inspector.d.vue.ts +1 -1
  33. package/dist/runtime/pages/__powersync-inspector.vue +8 -42
  34. package/dist/runtime/pages/__powersync-inspector.vue.d.ts +1 -1
  35. package/dist/runtime/utils/DynamicSchemaManager.js +3 -10
  36. package/dist/runtime/utils/RecordingStorageAdapter.js +4 -22
  37. package/dist/runtime/utils/TokenConnector.js +2 -7
  38. package/package.json +12 -10
@@ -1,64 +1,27 @@
1
1
  <template>
2
- <div
3
- border="t"
4
- border-color="gray-100"
5
- relative
6
- n-bg="base"
7
- flex="~ col"
8
- >
9
- <div
10
- flex="~ col gap-2"
11
- class="h-full"
12
- >
13
- <NSectionBlock
14
- icon="carbon:connection-signal"
15
- text="Connection Options"
16
- >
17
- <div
18
- class="text-sm schema-code-block h-full overflow-auto"
19
- v-html="connectionOptionsHtml"
20
- />
2
+ <div border="t" border-color="gray-100" relative n-bg="base" flex="~ col">
3
+ <div flex="~ col gap-2" class="h-full">
4
+ <NSectionBlock icon="carbon:connection-signal" text="Connection Options">
5
+ <div class="text-sm schema-code-block h-full overflow-auto" v-html="connectionOptionsHtml" />
21
6
  </NSectionBlock>
22
7
 
23
- <span
24
- border="b"
25
- border-color="gray-100"
26
- />
8
+ <span border="b" border-color="gray-100" />
27
9
 
28
- <NSectionBlock
29
- icon="carbon:cics-db2-connection"
30
- text="Database Options"
31
- >
32
- <div
33
- class="text-sm schema-code-block h-full overflow-auto"
34
- v-html="dbOptionsHtml"
35
- />
10
+ <NSectionBlock icon="carbon:cics-db2-connection" text="Database Options">
11
+ <div class="text-sm schema-code-block h-full overflow-auto" v-html="dbOptionsHtml" />
36
12
  </NSectionBlock>
37
13
 
38
- <span
39
- border="b"
40
- border-color="gray-100"
41
- />
14
+ <span border="b" border-color="gray-100" />
42
15
 
43
- <NSectionBlock
44
- icon="carbon:prompt-template"
45
- text="Schema"
46
- class="flex-1 overflow-hidden"
47
- >
48
- <div
49
- class="text-sm schema-code-block h-full overflow-auto"
50
- v-html="schemaHtml"
51
- />
16
+ <NSectionBlock icon="carbon:prompt-template" text="Schema" class="flex-1 overflow-hidden">
17
+ <div class="text-sm schema-code-block h-full overflow-auto" v-html="schemaHtml" />
52
18
  </NSectionBlock>
53
19
  </div>
54
20
  </div>
55
21
  </template>
56
22
 
57
23
  <script setup>
58
- import {
59
- usePowerSyncInspectorDiagnostics,
60
- usePowerSyncInspector
61
- } from "#imports";
24
+ import { usePowerSyncInspectorDiagnostics, usePowerSyncInspector } from "#imports";
62
25
  import { computed, onMounted } from "vue";
63
26
  import { codeToHtml } from "shiki";
64
27
  import { asyncComputed } from "@vueuse/core";
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
@@ -1,18 +1,6 @@
1
1
  <template>
2
- <div
3
- border="t"
4
- border-color="gray-200"
5
- relative
6
- n-bg="base"
7
- flex="~ col"
8
- h="screen"
9
- overflow="hidden"
10
- >
11
- <SplitterGroup
12
- id="splitter-group-1"
13
- class="h-full"
14
- direction="horizontal"
15
- >
2
+ <div border="t" border-color="gray-200" relative n-bg="base" flex="~ col" h="screen" overflow="hidden">
3
+ <SplitterGroup id="splitter-group-1" class="h-full" direction="horizontal">
16
4
  <SplitterPanel
17
5
  id="splitter-group-1-panel-1"
18
6
  :min-size="20"
@@ -72,9 +60,7 @@
72
60
  "
73
61
  n="sm"
74
62
  class="flex-shrink-0"
75
- :class="
76
- item.value.type === 'folder' ? 'text-indigo-500' : 'text-gray-500'
77
- "
63
+ :class="item.value.type === 'folder' ? 'text-indigo-500' : 'text-gray-500'"
78
64
  />
79
65
 
80
66
  <!-- Name -->
@@ -83,9 +69,7 @@
83
69
  <!-- Expand/Collapse indicator for folders -->
84
70
  <NIcon
85
71
  v-if="item.value.type === 'folder'"
86
- :icon="
87
- isExpanded ? 'carbon:chevron-down' : 'carbon:chevron-right'
88
- "
72
+ :icon="isExpanded ? 'carbon:chevron-down' : 'carbon:chevron-right'"
89
73
  class="flex-shrink-0 ml-auto text-gray-400"
90
74
  />
91
75
  </div>
@@ -106,33 +90,15 @@
106
90
  id="splitter-group-1-resize-handle-1"
107
91
  class="w-[2px] bg-gray-200 hover:bg-indigo-300 dark:hover:bg-indigo-700"
108
92
  />
109
- <SplitterPanel
110
- id="splitter-group-1-panel-2"
111
- :min-size="20"
112
- class="border-b border-x border-gray-200"
113
- >
114
- <div
115
- v-if="!selectedEntry"
116
- class="flex w-full h-full justify-center items-center align-middle"
117
- >
118
- <div
119
- text="sm gray-500"
120
- flex="~ gap-2 items-center"
121
- >
93
+ <SplitterPanel id="splitter-group-1-panel-2" :min-size="20" class="border-b border-x border-gray-200">
94
+ <div v-if="!selectedEntry" class="flex w-full h-full justify-center items-center align-middle">
95
+ <div text="sm gray-500" flex="~ gap-2 items-center">
122
96
  <NIcon icon="carbon:document-blank" />
123
97
  <span>No Selection</span>
124
98
  </div>
125
99
  </div>
126
- <SplitterGroup
127
- v-else
128
- id="splitter-group-2"
129
- direction="vertical"
130
- >
131
- <SplitterPanel
132
- id="splitter-group-2-panel-1"
133
- :min-size="10"
134
- :default-size="10"
135
- >
100
+ <SplitterGroup v-else id="splitter-group-2" direction="vertical">
101
+ <SplitterPanel id="splitter-group-2-panel-1" :min-size="10" :default-size="10">
136
102
  <!-- Custom Code Editor with Syntax Highlighting -->
137
103
  <div class="relative h-full w-full">
138
104
  <!-- Syntax Highlighted Background -->
@@ -141,10 +107,7 @@
141
107
  class="absolute inset-0 pointer-events-none overflow-auto"
142
108
  :style="{ scrollBehavior: 'auto' }"
143
109
  >
144
- <div
145
- class="syntax-highlight-bg"
146
- v-html="html"
147
- />
110
+ <div class="syntax-highlight-bg" v-html="html" />
148
111
  </div>
149
112
 
150
113
  <!-- Transparent Textarea Overlay -->
@@ -152,10 +115,7 @@
152
115
  ref="textareaRef"
153
116
  v-model="query"
154
117
  class="absolute inset-0 w-full h-full resize-none bg-transparent outline-none border-none overflow-auto editor-textarea dark:placeholder:text-gray-400"
155
- style="
156
- color: rgba(0, 0, 0, 0.01);
157
- text-shadow: 0 0 0 transparent;
158
- "
118
+ style="color: rgba(0, 0, 0, 0.01); text-shadow: 0 0 0 transparent"
159
119
  placeholder="Enter SQL query..."
160
120
  spellcheck="false"
161
121
  autocorrect="off"
@@ -169,10 +129,7 @@
169
129
  />
170
130
 
171
131
  <!-- Cursor/Selection Overlay -->
172
- <div
173
- ref="cursorOverlay"
174
- class="absolute inset-0 pointer-events-none overflow-hidden"
175
- >
132
+ <div ref="cursorOverlay" class="absolute inset-0 pointer-events-none overflow-hidden">
176
133
  <!-- This will show cursor and selection -->
177
134
  </div>
178
135
  </div>
@@ -181,40 +138,20 @@
181
138
  id="splitter-group-2-resize-handle-1"
182
139
  class="h-[2px] bg-gray-200 hover:bg-indigo-300 dark:hover:bg-indigo-700"
183
140
  />
184
- <SplitterPanel
185
- id="splitter-group-2-panel-2"
186
- :min-size="40"
187
- class="border-t-2 border-gray-200 flex flex-col"
188
- >
141
+ <SplitterPanel id="splitter-group-2-panel-2" :min-size="40" class="border-t-2 border-gray-200 flex flex-col">
189
142
  <!-- Query Results Table -->
190
- <div
191
- v-if="isLoading"
192
- class="flex justify-center items-center h-full"
193
- >
143
+ <div v-if="isLoading" class="flex justify-center items-center h-full">
194
144
  <NLoading />
195
145
  </div>
196
146
 
197
- <div
198
- v-else-if="queryError"
199
- class="flex-1 flex flex-col overflow-hidden"
200
- >
147
+ <div v-else-if="queryError" class="flex-1 flex flex-col overflow-hidden">
201
148
  <div
202
149
  class="px-3 py-2 flex justify-between items-center bg-gray-50 dark:bg-neutral-800 border-b border-gray-200 dark:border-neutral-700 flex-shrink-0"
203
150
  >
204
- <NButton
205
- n="xs"
206
- icon="carbon:play"
207
- @click="executeQuery"
208
- >
209
- Execute Query
210
- </NButton>
151
+ <NButton n="xs" icon="carbon:play" @click="executeQuery"> Execute Query </NButton>
211
152
  </div>
212
- <div
213
- class="p-4 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded"
214
- >
215
- <div class="text-red-800 dark:text-red-200 font-medium">
216
- Query Error:
217
- </div>
153
+ <div class="p-4 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded">
154
+ <div class="text-red-800 dark:text-red-200 font-medium">Query Error:</div>
218
155
  <div class="text-red-700 dark:text-red-300 text-sm mt-1">
219
156
  {{ queryError }}
220
157
  </div>
@@ -230,18 +167,10 @@
230
167
  class="px-3 py-2 flex justify-between items-center bg-gray-50 dark:bg-neutral-800 border-b border-gray-200 dark:border-neutral-700 flex-shrink-0"
231
168
  >
232
169
  <div class="flex items-center gap-3">
233
- <NButton
234
- n="xs green"
235
- icon="carbon:play"
236
- @click="executeQuery"
237
- >
238
- Execute Query
239
- </NButton>
170
+ <NButton n="xs green" icon="carbon:play" @click="executeQuery"> Execute Query </NButton>
240
171
 
241
172
  <div class="text-xs text-gray-600 dark:text-gray-400">
242
- {{ currentTableRows.length }} row{{
243
- currentTableRows.length !== 1 ? "s" : ""
244
- }}
173
+ {{ currentTableRows.length }} row{{ currentTableRows.length !== 1 ? "s" : "" }}
245
174
  returned
246
175
  </div>
247
176
  </div>
@@ -296,9 +225,7 @@
296
225
  </div>
297
226
 
298
227
  <!-- Data Table -->
299
- <div
300
- class="flex-1 border border-gray-200 dark:border-neutral-700 rounded-b-lg overflow-auto"
301
- >
228
+ <div class="flex-1 border border-gray-200 dark:border-neutral-700 rounded-b-lg overflow-auto">
302
229
  <table class="w-full min-w-max">
303
230
  <thead class="bg-gray-50 dark:bg-neutral-950 sticky top-0">
304
231
  <tr>
@@ -314,24 +241,14 @@
314
241
  maxWidth: `${header.getSize()}px`,
315
242
  minWidth: `${header.getSize()}px`
316
243
  }"
317
- @click="
318
- header.column.getToggleSortingHandler()?.($event)
319
- "
244
+ @click="header.column.getToggleSortingHandler()?.($event)"
320
245
  >
321
246
  <div class="flex items-center gap-1 min-w-0">
322
247
  <div class="truncate flex-1 min-w-0">
323
- <FlexRender
324
- :render="header.column.columnDef.header"
325
- :props="header.getContext()"
326
- />
248
+ <FlexRender :render="header.column.columnDef.header" :props="header.getContext()" />
327
249
  </div>
328
- <span
329
- v-if="header.column.getIsSorted()"
330
- class="text-xs flex-shrink-0"
331
- >
332
- {{
333
- header.column.getIsSorted() === "asc" ? "\u25B2" : "\u25BC"
334
- }}
250
+ <span v-if="header.column.getIsSorted()" class="text-xs flex-shrink-0">
251
+ {{ header.column.getIsSorted() === "asc" ? "\u25B2" : "\u25BC" }}
335
252
  </span>
336
253
  </div>
337
254
  <!-- Column Resize Handle -->
@@ -342,16 +259,12 @@
342
259
  @touchstart="header.getResizeHandler()?.($event)"
343
260
  @click.stop
344
261
  >
345
- <div
346
- class="w-full h-full group-hover:bg-gray-500 transition-colors duration-150"
347
- />
262
+ <div class="w-full h-full group-hover:bg-gray-500 transition-colors duration-150" />
348
263
  </div>
349
264
  </th>
350
265
  </tr>
351
266
  </thead>
352
- <tbody
353
- class="bg-white dark:bg-neutral-900 border-t border-gray-200 dark:border-neutral-700"
354
- >
267
+ <tbody class="bg-white dark:bg-neutral-900 border-t border-gray-200 dark:border-neutral-700">
355
268
  <tr
356
269
  v-for="row in table.getRowModel().rows"
357
270
  :key="row.id"
@@ -367,14 +280,8 @@
367
280
  minWidth: `${cell.column.getSize()}px`
368
281
  }"
369
282
  >
370
- <div
371
- class="truncate w-full"
372
- :title="String(cell.getValue())"
373
- >
374
- <FlexRender
375
- :render="cell.column.columnDef.cell"
376
- :props="cell.getContext()"
377
- />
283
+ <div class="truncate w-full" :title="String(cell.getValue())">
284
+ <FlexRender :render="cell.column.columnDef.cell" :props="cell.getContext()" />
378
285
  </div>
379
286
  </td>
380
287
  </tr>
@@ -390,28 +297,15 @@
390
297
  <div
391
298
  class="px-3 py-2 flex justify-between items-center bg-gray-50 dark:bg-neutral-800 border-b border-gray-200 dark:border-neutral-700 flex-shrink-0"
392
299
  >
393
- <NButton
394
- n="xs"
395
- icon="carbon:play"
396
- @click="executeQuery"
397
- >
398
- Execute Query
399
- </NButton>
300
+ <NButton n="xs" icon="carbon:play" @click="executeQuery"> Execute Query </NButton>
400
301
  </div>
401
302
  <div class="text-center py-8">
402
- <div class="text-gray-500 dark:text-gray-400">
403
- No results found
404
- </div>
303
+ <div class="text-gray-500 dark:text-gray-400">No results found</div>
405
304
  </div>
406
305
  </div>
407
306
 
408
- <div
409
- v-else
410
- class="text-center py-8"
411
- >
412
- <div class="text-gray-500 dark:text-gray-400">
413
- Execute a query to see results
414
- </div>
307
+ <div v-else class="text-center py-8">
308
+ <div class="text-gray-500 dark:text-gray-400">Execute a query to see results</div>
415
309
  </div>
416
310
  </SplitterPanel>
417
311
  </SplitterGroup>
@@ -422,13 +316,7 @@
422
316
 
423
317
  <script setup>
424
318
  import { usePowerSyncInspectorDiagnostics } from "#imports";
425
- import {
426
- SplitterGroup,
427
- SplitterPanel,
428
- SplitterResizeHandle,
429
- TreeItem,
430
- TreeRoot
431
- } from "reka-ui";
319
+ import { SplitterGroup, SplitterPanel, SplitterResizeHandle, TreeItem, TreeRoot } from "reka-ui";
432
320
  import { asyncComputed } from "@vueuse/core";
433
321
  import {
434
322
  FlexRender,
@@ -533,9 +421,7 @@ watch(entriesRows, () => {
533
421
  const onSearchInput = () => {
534
422
  expandedItems.value = ["Tables", "Views"];
535
423
  };
536
- const selectedEntry = ref(
537
- void 0
538
- );
424
+ const selectedEntry = ref(void 0);
539
425
  const query = ref("");
540
426
  const isLoading = ref(false);
541
427
  const queryError = ref(null);
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;