dbxlite-ui 0.1.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 (112) hide show
  1. package/assets/assets/abap-CRCWOmpq.js +1 -0
  2. package/assets/assets/apex-DnsZk_dE.js +1 -0
  3. package/assets/assets/argon2-BUCifEKR.wasm +0 -0
  4. package/assets/assets/argon2-CtQQN5by.js +531 -0
  5. package/assets/assets/argon2-VsC-m8hX.js +38 -0
  6. package/assets/assets/azcli-1IWB1ccx.js +1 -0
  7. package/assets/assets/bat-DPkNLes8.js +1 -0
  8. package/assets/assets/bicep-Corcdgou.js +2 -0
  9. package/assets/assets/cameligo-CGrWLZr3.js +1 -0
  10. package/assets/assets/clojure-D9WOWImG.js +1 -0
  11. package/assets/assets/codicon-B_Z2XQ3P.ttf +0 -0
  12. package/assets/assets/coffee-B7EJu28W.js +1 -0
  13. package/assets/assets/cpp-SEyurbux.js +1 -0
  14. package/assets/assets/csharp-BoL64M5l.js +1 -0
  15. package/assets/assets/csp-C46ZqvIl.js +1 -0
  16. package/assets/assets/css-DQU6DXDx.js +3 -0
  17. package/assets/assets/cssMode-BwlhJ7iR.js +4 -0
  18. package/assets/assets/cypher-D84EuPTj.js +1 -0
  19. package/assets/assets/dart-D8lhlL1r.js +1 -0
  20. package/assets/assets/dockerfile-DLk6rpji.js +1 -0
  21. package/assets/assets/duckdb-browser-BSQM4t65.js +4 -0
  22. package/assets/assets/ecl-BO6FnfXk.js +1 -0
  23. package/assets/assets/elixir-BRjLKONM.js +1 -0
  24. package/assets/assets/flow9-Cac8vKd7.js +1 -0
  25. package/assets/assets/freemarker2-BkjRLolx.js +3 -0
  26. package/assets/assets/fsharp-fd1GTHhf.js +1 -0
  27. package/assets/assets/go-O9LJTZXk.js +1 -0
  28. package/assets/assets/graphql-LQdxqEYJ.js +1 -0
  29. package/assets/assets/handlebars-CBMLM90w.js +1 -0
  30. package/assets/assets/hcl-DxDQ3s82.js +1 -0
  31. package/assets/assets/html-CHZal9Bq.js +1 -0
  32. package/assets/assets/htmlMode-C9GZl6CA.js +4 -0
  33. package/assets/assets/index-B7kyXQsW.js +62964 -0
  34. package/assets/assets/index-Bls2JT31.css +1 -0
  35. package/assets/assets/ini-BvajGCUy.js +1 -0
  36. package/assets/assets/java-SYsfObOQ.js +1 -0
  37. package/assets/assets/javascript-3HFHugwg.js +1 -0
  38. package/assets/assets/jsonMode-uH9DvT2S.js +10 -0
  39. package/assets/assets/julia-DQXNmw_w.js +1 -0
  40. package/assets/assets/kotlin-qQ0MG-9I.js +1 -0
  41. package/assets/assets/less-GGFNNJHn.js +2 -0
  42. package/assets/assets/lexon-Canl7DCW.js +1 -0
  43. package/assets/assets/liquid-Ynp44jOk.js +1 -0
  44. package/assets/assets/lua-D28Ae8-K.js +1 -0
  45. package/assets/assets/m3-DPitgjJI.js +1 -0
  46. package/assets/assets/markdown-B811l8j2.js +1 -0
  47. package/assets/assets/mdx-B0LCS-Lw.js +1 -0
  48. package/assets/assets/mips-CdjsipkG.js +1 -0
  49. package/assets/assets/monaco-editor-DbSHhIAW.js +124636 -0
  50. package/assets/assets/monaco-editor-DvqauXKu.css +1 -0
  51. package/assets/assets/msdax-CYqgjx_P.js +1 -0
  52. package/assets/assets/mysql-BHd6q0vd.js +1 -0
  53. package/assets/assets/objective-c-B1aVtJYH.js +1 -0
  54. package/assets/assets/pascal-BhNW15KB.js +1 -0
  55. package/assets/assets/pascaligo-5jv8CcQD.js +1 -0
  56. package/assets/assets/perl-DlYyT36c.js +1 -0
  57. package/assets/assets/pgsql-Dy0bjov7.js +1 -0
  58. package/assets/assets/php-120yhfDK.js +1 -0
  59. package/assets/assets/pla-CjnFlu4u.js +1 -0
  60. package/assets/assets/postiats-CQpG440k.js +1 -0
  61. package/assets/assets/powerquery-DdJtto1Z.js +1 -0
  62. package/assets/assets/powershell-Bu_VLpJB.js +1 -0
  63. package/assets/assets/protobuf-IBS6jZEB.js +2 -0
  64. package/assets/assets/pug-kFxLfcjb.js +1 -0
  65. package/assets/assets/python-BLbP2FhE.js +1 -0
  66. package/assets/assets/qsharp-q7JyzKFN.js +1 -0
  67. package/assets/assets/r-BIFz-_sK.js +1 -0
  68. package/assets/assets/razor-CrzRfK-c.js +1 -0
  69. package/assets/assets/react-vendor-CJNQXC79.js +8 -0
  70. package/assets/assets/redis-CHOsPHWR.js +1 -0
  71. package/assets/assets/redshift-CBifECDb.js +1 -0
  72. package/assets/assets/restructuredtext-CghPJEOS.js +1 -0
  73. package/assets/assets/ruby-CYWGW-b1.js +1 -0
  74. package/assets/assets/rust-DMDD0SHb.js +1 -0
  75. package/assets/assets/sb-BYAiYHFx.js +1 -0
  76. package/assets/assets/scala-Bqvq8jcR.js +1 -0
  77. package/assets/assets/scheme-Dhb-2j9p.js +1 -0
  78. package/assets/assets/scss-CTwUZ5N7.js +3 -0
  79. package/assets/assets/shell-CsDZo4DB.js +1 -0
  80. package/assets/assets/solidity-CME5AdoB.js +1 -0
  81. package/assets/assets/sophia-RYC1BQQz.js +1 -0
  82. package/assets/assets/sparql-KEyrF7De.js +1 -0
  83. package/assets/assets/sql-BdTr02Mf.js +1 -0
  84. package/assets/assets/st-C7iG7M4S.js +1 -0
  85. package/assets/assets/swift-D7IUmUK8.js +1 -0
  86. package/assets/assets/systemverilog-DgMryOEJ.js +1 -0
  87. package/assets/assets/tcl-PloMZuKG.js +1 -0
  88. package/assets/assets/tsMode-B-o6MNSg.js +11 -0
  89. package/assets/assets/twig-BfRIq3la.js +1 -0
  90. package/assets/assets/typescript-nABxf5PW.js +1 -0
  91. package/assets/assets/typespec-CzxlYoT_.js +1 -0
  92. package/assets/assets/vb-BwAE3J76.js +1 -0
  93. package/assets/assets/wgsl-Dksx_ONF.js +298 -0
  94. package/assets/assets/worker-D4TW6ZaR.js +5 -0
  95. package/assets/assets/xml-BOnVlNcs.js +1 -0
  96. package/assets/assets/yaml-Yl61aKaY.js +1 -0
  97. package/assets/duckdb/.gitignore +8 -0
  98. package/assets/duckdb/README.md +24 -0
  99. package/assets/index.html +26 -0
  100. package/assets/logo/favicon.svg +44 -0
  101. package/assets/logo/logo-icon.svg +44 -0
  102. package/assets/logo/logo.svg +44 -0
  103. package/assets/screenshots/excel-query-any-sheet.png +0 -0
  104. package/assets/screenshots/explorer-multi-themes.png +0 -0
  105. package/assets/screenshots/export-status.png +0 -0
  106. package/assets/screenshots/main-interface-dark.png +0 -0
  107. package/assets/screenshots/query-remote-files.png +0 -0
  108. package/assets/screenshots/share-links.png +0 -0
  109. package/assets/sql-templates/initial-tab.sql +11 -0
  110. package/assets/sql-templates/new-tab.sql +0 -0
  111. package/dist/cli.js +311 -0
  112. package/package.json +37 -0
@@ -0,0 +1,298 @@
1
+ var g={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]};function e(i){let o=[];const a=i.split(/\t+|\r+|\n+| +/);for(let r=0;r<a.length;++r)a[r].length>0&&o.push(a[r]);return o}var s=e("true false"),c=e(`
2
+ alias
3
+ break
4
+ case
5
+ const
6
+ const_assert
7
+ continue
8
+ continuing
9
+ default
10
+ diagnostic
11
+ discard
12
+ else
13
+ enable
14
+ fn
15
+ for
16
+ if
17
+ let
18
+ loop
19
+ override
20
+ requires
21
+ return
22
+ struct
23
+ switch
24
+ var
25
+ while
26
+ `),m=e(`
27
+ NULL
28
+ Self
29
+ abstract
30
+ active
31
+ alignas
32
+ alignof
33
+ as
34
+ asm
35
+ asm_fragment
36
+ async
37
+ attribute
38
+ auto
39
+ await
40
+ become
41
+ binding_array
42
+ cast
43
+ catch
44
+ class
45
+ co_await
46
+ co_return
47
+ co_yield
48
+ coherent
49
+ column_major
50
+ common
51
+ compile
52
+ compile_fragment
53
+ concept
54
+ const_cast
55
+ consteval
56
+ constexpr
57
+ constinit
58
+ crate
59
+ debugger
60
+ decltype
61
+ delete
62
+ demote
63
+ demote_to_helper
64
+ do
65
+ dynamic_cast
66
+ enum
67
+ explicit
68
+ export
69
+ extends
70
+ extern
71
+ external
72
+ fallthrough
73
+ filter
74
+ final
75
+ finally
76
+ friend
77
+ from
78
+ fxgroup
79
+ get
80
+ goto
81
+ groupshared
82
+ highp
83
+ impl
84
+ implements
85
+ import
86
+ inline
87
+ instanceof
88
+ interface
89
+ layout
90
+ lowp
91
+ macro
92
+ macro_rules
93
+ match
94
+ mediump
95
+ meta
96
+ mod
97
+ module
98
+ move
99
+ mut
100
+ mutable
101
+ namespace
102
+ new
103
+ nil
104
+ noexcept
105
+ noinline
106
+ nointerpolation
107
+ noperspective
108
+ null
109
+ nullptr
110
+ of
111
+ operator
112
+ package
113
+ packoffset
114
+ partition
115
+ pass
116
+ patch
117
+ pixelfragment
118
+ precise
119
+ precision
120
+ premerge
121
+ priv
122
+ protected
123
+ pub
124
+ public
125
+ readonly
126
+ ref
127
+ regardless
128
+ register
129
+ reinterpret_cast
130
+ require
131
+ resource
132
+ restrict
133
+ self
134
+ set
135
+ shared
136
+ sizeof
137
+ smooth
138
+ snorm
139
+ static
140
+ static_assert
141
+ static_cast
142
+ std
143
+ subroutine
144
+ super
145
+ target
146
+ template
147
+ this
148
+ thread_local
149
+ throw
150
+ trait
151
+ try
152
+ type
153
+ typedef
154
+ typeid
155
+ typename
156
+ typeof
157
+ union
158
+ unless
159
+ unorm
160
+ unsafe
161
+ unsized
162
+ use
163
+ using
164
+ varying
165
+ virtual
166
+ volatile
167
+ wgsl
168
+ where
169
+ with
170
+ writeonly
171
+ yield
172
+ `),l=e(`
173
+ read write read_write
174
+ function private workgroup uniform storage
175
+ perspective linear flat
176
+ center centroid sample
177
+ vertex_index instance_index position front_facing frag_depth
178
+ local_invocation_id local_invocation_index
179
+ global_invocation_id workgroup_id num_workgroups
180
+ sample_index sample_mask
181
+ rgba8unorm
182
+ rgba8snorm
183
+ rgba8uint
184
+ rgba8sint
185
+ rgba16uint
186
+ rgba16sint
187
+ rgba16float
188
+ r32uint
189
+ r32sint
190
+ r32float
191
+ rg32uint
192
+ rg32sint
193
+ rg32float
194
+ rgba32uint
195
+ rgba32sint
196
+ rgba32float
197
+ bgra8unorm
198
+ `),u=e(`
199
+ bool
200
+ f16
201
+ f32
202
+ i32
203
+ sampler sampler_comparison
204
+ texture_depth_2d
205
+ texture_depth_2d_array
206
+ texture_depth_cube
207
+ texture_depth_cube_array
208
+ texture_depth_multisampled_2d
209
+ texture_external
210
+ texture_external
211
+ u32
212
+ `),p=e(`
213
+ array
214
+ atomic
215
+ mat2x2
216
+ mat2x3
217
+ mat2x4
218
+ mat3x2
219
+ mat3x3
220
+ mat3x4
221
+ mat4x2
222
+ mat4x3
223
+ mat4x4
224
+ ptr
225
+ texture_1d
226
+ texture_2d
227
+ texture_2d_array
228
+ texture_3d
229
+ texture_cube
230
+ texture_cube_array
231
+ texture_multisampled_2d
232
+ texture_storage_1d
233
+ texture_storage_2d
234
+ texture_storage_2d_array
235
+ texture_storage_3d
236
+ vec2
237
+ vec3
238
+ vec4
239
+ `),d=e(`
240
+ vec2i vec3i vec4i
241
+ vec2u vec3u vec4u
242
+ vec2f vec3f vec4f
243
+ vec2h vec3h vec4h
244
+ mat2x2f mat2x3f mat2x4f
245
+ mat3x2f mat3x3f mat3x4f
246
+ mat4x2f mat4x3f mat4x4f
247
+ mat2x2h mat2x3h mat2x4h
248
+ mat3x2h mat3x3h mat3x4h
249
+ mat4x2h mat4x3h mat4x4h
250
+ `),x=e(`
251
+ bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2
252
+ ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross
253
+ degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit
254
+ firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length
255
+ log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract
256
+ reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose
257
+ trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine
258
+ textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers
259
+ textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare
260
+ textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge
261
+ textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin
262
+ atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm
263
+ pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm
264
+ unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier
265
+ workgroupUniformLoad
266
+ `),f=e(`
267
+ &
268
+ &&
269
+ ->
270
+ /
271
+ =
272
+ ==
273
+ !=
274
+ >
275
+ >=
276
+ <
277
+ <=
278
+ %
279
+ -
280
+ --
281
+ +
282
+ ++
283
+ |
284
+ ||
285
+ *
286
+ <<
287
+ >>
288
+ +=
289
+ -=
290
+ *=
291
+ /=
292
+ %=
293
+ &=
294
+ |=
295
+ ^=
296
+ >>=
297
+ <<=
298
+ `),_=/enable|requires|diagnostic/,n=/[_\p{XID_Start}]\p{XID_Continue}*/u,t="variable.predefined",h={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:s,keywords:c,reserved:m,predeclared_enums:l,predeclared_types:u,predeclared_type_generators:p,predeclared_type_aliases:d,predeclared_intrinsics:x,operators:f,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[_,"keyword","@directive"],[n,{cases:{"@atoms":t,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":t,"@predeclared_types":t,"@predeclared_type_generators":t,"@predeclared_type_aliases":t,"@predeclared_intrinsics":t,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[n,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}};export{g as conf,h as language};
@@ -0,0 +1,5 @@
1
+ function R(n){return Number.isNaN(n)||!Number.isFinite(n)?null:n}function P(n,u=!0){if(n.length===0)return 0n;let t=0n;for(let g=n.length-1;g>=0;g--)t=t<<32n|BigInt(n[g]>>>0);if(u){const g=n.length*32,c=1n<<BigInt(g-1);if(t>=c){const f=1n<<BigInt(g);t=t-f}}return t>BigInt(Number.MAX_SAFE_INTEGER)||t<BigInt(Number.MIN_SAFE_INTEGER)?t.toString():t}function C(n){return n>BigInt(Number.MAX_SAFE_INTEGER)||n<BigInt(Number.MIN_SAFE_INTEGER)?n.toString():Number(n)}function G(n){return n>BigInt(Number.MAX_SAFE_INTEGER)?n.toString():Number(n)}let _=null,w=null,b=null,q=[],F=null;const W=2,S=new Map;function L(){const n=globalThis;typeof n.gc=="function"&&n.gc()}setInterval(()=>{L()},15e3);function x(n,u,t,g,c){if(n==null)return n;if(typeof n=="object"&&n!==null&&!Array.isArray(n)&&t){let e=!1;for(const o of t.values())if(o.toLowerCase().includes("dictionary")){e=!0;break}if(e)try{const o=JSON.stringify(n);return JSON.parse(o)}catch{}}if(typeof n=="bigint")return n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER?n.toString():Number(n);if(n instanceof Date)return n.toISOString();if(typeof n!="object")return n;if(n.constructor?.name?.includes("Decimal")){const e=n.toString();try{const o=BigInt(e);if(o>BigInt(Number.MAX_SAFE_INTEGER)||o<BigInt(Number.MIN_SAFE_INTEGER))return e}catch{}return Number(e)}const m=Array.isArray(n),N=m?[]:{},d=[];if(m)for(let e=n.length-1;e>=0;e--)d.push([n[e],N,e,void 0]);else{const e=Object.keys(n);for(let o=e.length-1;o>=0;o--){const a=e[o];d.push([n[a],N,a,a])}}for(;d.length>0;){const[e,o,a,p]=d.pop();if(e==null){o[a]=e;continue}if(typeof e=="bigint"){e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER?o[a]=e.toString():o[a]=Number(e);continue}if(e instanceof Date){o[a]=e.toISOString();continue}if(typeof e!="object"){o[a]=e;continue}if(p&&t?.has(p)&&t.get(p).toLowerCase().includes("dictionary")){const s=String(e);if(s&&!s.startsWith("[object ")){o[a]=s;continue}}const A=e.constructor?.name;if(A?.includes("Decimal")){const r=e.toString();if(p&&u?.has(p)){const s=u.get(p);if(s>0){const y=Number(r),h=Math.pow(10,s);o[a]=y/h;continue}}try{const s=BigInt(r);s>BigInt(Number.MAX_SAFE_INTEGER)||s<BigInt(Number.MIN_SAFE_INTEGER)?o[a]=r:o[a]=Number(r)}catch{o[a]=Number(r)}continue}if(e instanceof Uint8Array){const r=Array.from(e).map(s=>s.toString(16).padStart(2,"0")).join("");o[a]=`0x${r}`;continue}if(e instanceof Uint32Array){const r=P(e);typeof r=="bigint"?o[a]=Number(r):o[a]=r;continue}if(e instanceof BigInt64Array){e.length===1?o[a]=C(e[0]):o[a]=Array.from(e).map(r=>C(r));continue}if(e instanceof BigUint64Array){e.length===1?o[a]=G(e[0]):o[a]=Array.from(e).map(r=>G(r));continue}if(e instanceof Float32Array){if(e.length===1){const r=R(e[0]);r===null&&(e[0],void 0),o[a]=r}else o[a]=Array.from(e).map(r=>R(r));continue}if(e instanceof Float64Array){if(e.length===1){const r=R(e[0]);r===null&&(e[0],void 0),o[a]=r}else o[a]=Array.from(e).map(r=>R(r));continue}if(p&&t?.get(p)?.toLowerCase().includes("interval")){let r=0,s=0,y=0;const h=g?.get(p);if(h&&c!==void 0){const l=c*4;if(l+3<h.length){r=h[l],s=h[l+1];const E=h[l+2]>>>0,M=h[l+3];y=E+M*4294967296}}else if(A==="Int32Array"){const l=e;l.length>=2&&(r=l[0]*12+l[1])}const i=[];if(r!==0){const l=Math.floor(Math.abs(r)/12),E=Math.abs(r)%12,M=r<0?"-":"";l!==0&&i.push(`${M}${l}y`),E!==0&&i.push(`${r<0&&l===0?"-":""}${E}mo`)}if(s!==0){const l=s<0?"-":"";i.push(`${l}${Math.abs(s)}d`)}if(y!==0){const l=Math.abs(y),E=y<0?"-":"",M=Math.floor(l/36e11),O=Math.floor(l%36e11/6e10),v=l%6e10,B=Math.floor(v/1e9),I=v%1e9;if(M!==0&&i.push(`${E}${M}h`),O!==0&&i.push(`${O}m`),B!==0||I!==0)if(I===0)i.push(`${B}s`);else if(I%1e6===0){const $=I/1e6;i.push(`${B}.${$.toString().padStart(3,"0")}s`)}else if(I%1e3===0){const $=I/1e3;i.push(`${B}.${$.toString().padStart(6,"0")}s`)}else i.push(`${B}.${I.toString().padStart(9,"0")}s`)}o[a]=i.length>0?i.join(" "):"0";continue}if(Array.isArray(e)){const r=[];o[a]=r;for(let s=e.length-1;s>=0;s--)d.push([e[s],r,s,p]);continue}if(typeof e.toJSON=="function"){const r=e.toJSON();d.push([r,o,a,p]);continue}if(e instanceof Map){const r={};o[a]=r;const s=Array.from(e.entries());for(let y=s.length-1;y>=0;y--){const[h,i]=s[y];d.push([i,r,String(h),String(h)])}continue}const T={};o[a]=T;const k=Object.keys(e);for(let r=k.length-1;r>=0;r--){const s=k[r];d.push([e[s],T,s,s])}}return N}async function U(){try{b&&await b.close(),w&&await w.terminate()}catch{}w=null,b=null}function X(n){return{mvp:{mainModule:`${n}/duckdb-mvp.wasm`,mainWorker:`${n}/duckdb-browser-mvp.worker.js`},eh:{mainModule:`${n}/duckdb-eh.wasm`,mainWorker:`${n}/duckdb-browser-eh.worker.js`},coi:{mainModule:`${n}/duckdb-coi.wasm`,mainWorker:`${n}/duckdb-browser-coi.worker.js`,pthreadWorker:`${n}/duckdb-browser-coi.pthread.worker.js`}}}async function z(n){for(const u of n)try{const t=u.eh?.mainModule||u.mvp?.mainModule;if(t&&(await fetch(t,{method:"HEAD"})).ok)return u}catch{}return null}self.addEventListener("message",async n=>{const u=n.data;try{if(u.type==="init"){const t=u.baseUrls||[];if(q=t,!_){const e=await import("./duckdb-browser-BSQM4t65.js");_=e,F=e.DuckDBDataProtocol}const g=new _.ConsoleLogger,c=t.map(e=>X(e));let f=await z(c);f||(f=_.getJsDelivrBundles());const m=f.eh||await _.selectBundle(f),N=new Worker(m.mainWorker);w=new _.AsyncDuckDB(g,N),await w.instantiate(m.mainModule,m.pthreadWorker);let d=!1;await w.open({path:":memory:",accessMode:_.DuckDBAccessMode.READ_WRITE}),b=await w.connect();try{await b.query("SET memory_limit=-1"),await b.query("SET threads=1"),await b.query("SET preserve_insertion_order=false");const e=Intl.DateTimeFormat().resolvedOptions().timeZone;e&&await b.query(`SET TimeZone='${e}'`)}catch(e){console.warn("[DuckDB] Config failed (non-critical):",e)}self.postMessage({type:"inited",opfsPersistence:d})}else if(u.type==="run"){const{id:t,sql:g}=u;S.set(t,0);try{if(b&&typeof b.queryArrowIPC=="function"){const c=await b.queryArrowIPC(g);for await(const f of c){for(;(S.get(t)||0)>=W;)await new Promise(m=>setTimeout(m,10));try{self.postMessage({type:"arrow",id:t,buffer:f},[f])}catch{self.postMessage({type:"arrow",id:t,buffer:f})}S.set(t,(S.get(t)||0)+1)}}else{const c=await b.query(g),f=new Map;if(c.schema?.fields){for(const m of c.schema.fields)if(m.type?.toString()?.includes("Interval")){const N=c.getChild(m.name);N?.data?.[0]?.values instanceof Int32Array&&f.set(m.name,N.data[0].values)}}if(c.toArrow){const m=c.toArrow();self.postMessage({type:"arrow",id:t,buffer:m},[m])}else{let m,N;if(c.schema&&c.schema.fields){m=new Map,N=new Map;const s=c.schema.fields.map(i=>{let l="UNKNOWN";return i.type&&typeof i.type.toString=="function"&&(l=i.type.toString()),N.set(i.name,l),i.type&&i.type.constructor?.name?.includes("Decimal")&&i.type.scale!==void 0&&m.set(i.name,i.type.scale),{name:i.name,type:l,nullable:i.nullable}}),y=JSON.stringify(s),h=new TextEncoder().encode(y).buffer;self.postMessage({type:"json-schema",id:t,buffer:h},[h])}const d=c.toArray?c.toArray():c,e=5*1024*1024,o=500,a=5e5;let p=[],A=0,D=0,T=0,k=0,r=0;for(let s=0;s<d.length;s++)try{const y=x(d[s],m,N,f,s),i=JSON.stringify(y).length;if(D+=i,i>k&&(k=i),i>a&&T++,p.length>0&&(A+i>e||p.length>=o)){const l=JSON.stringify(p),E=new TextEncoder().encode(l).buffer;for(self.postMessage({type:"json",id:t,buffer:E},[E]),r++,S.set(t,(S.get(t)||0)+1);(S.get(t)||0)>=W;)await new Promise(M=>setTimeout(M,10));p=[],A=0}p.push(y),A+=i}catch(y){const h=d[s],i=h&&typeof h=="object"?Object.keys(h):[];console.error(`[DuckDB Worker] Row ${s} failed to serialize:`,{error:String(y),errorName:y.name,rowKeys:i.slice(0,10)}),p.push({__error:`Row ${s} failed: ${y.name}`}),A+=100}if(p.length>0){const s=JSON.stringify(p),y=new TextEncoder().encode(s).buffer;self.postMessage({type:"json",id:t,buffer:y},[y]),r++,S.set(t,(S.get(t)||0)+1)}self.postMessage({type:"query-stats",id:t,stats:{totalRows:d.length,totalBytes:D,largeRowCount:T,maxRowSize:k,chunkCount:r,avgRowSize:d.length>0?Math.round(D/d.length):0}})}}}catch(c){const f=String(c);f.includes("database has been invalidated")||f.includes("FATAL Error")?(await U(),self.postMessage({type:"error",id:t,error:"Database encountered a fatal error and has been reset. Please reload the page to reinitialize."})):f.includes("Out of Memory")||f.includes("Allocation failure")?self.postMessage({type:"error",id:t,error:`Out of Memory: The query or file is too large to process in the browser. Try:
2
+ 1. Querying smaller subsets using LIMIT or WHERE clauses
3
+ 2. Using SELECT with specific columns instead of SELECT *
4
+ 3. Processing smaller files
5
+ 4. Using COUNT(*) with LIMIT for large tables`}):self.postMessage({type:"error",id:t,error:f})}finally{self.postMessage({type:"done",id:t}),S.delete(t),L()}}else if(u.type==="ack"){const{id:t}=u,g=S.get(t)||0;S.set(t,Math.max(0,g-1))}else if(u.type==="cancel"){const{id:t}=u;self.postMessage({type:"cancelled",id:t})}else if(u.type==="register_file"){const{id:t,fileName:g,fileBuffer:c}=u;try{if(!w)throw new Error("Database not initialized");await w.registerFileBuffer(g,new Uint8Array(c)),self.postMessage({type:"file_registered",id:t})}catch(f){self.postMessage({type:"error",id:t,error:String(f)})}}else if(u.type==="copy_file_to_buffer"){const{id:t,fileName:g}=u;try{if(!w)throw new Error("Database not initialized");const c=await w.copyFileToBuffer(g);self.postMessage({type:"file_buffer",id:t,buffer:c},[c.buffer])}catch(c){self.postMessage({type:"error",id:t,error:String(c)})}}else if(u.type==="register_file_handle"){const{id:t,fileName:g,file:c}=u;try{if(!w)throw new Error("Database not initialized");if(!F)throw new Error("DuckDBDataProtocol not loaded");await w.registerFileHandle(g,c,F.BROWSER_FILEREADER,!0),self.postMessage({type:"file_registered",id:t})}catch(f){self.postMessage({type:"error",id:t,error:String(f)})}}}catch(t){self.postMessage({type:"error",error:String(t)})}});
@@ -0,0 +1 @@
1
+ import{b as r}from"./monaco-editor-DbSHhIAW.js";var c=Object.defineProperty,m=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,p=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!d.call(t,n)&&n!==o&&c(t,n,{get:()=>e[n],enumerable:!(i=m(e,n))||i.enumerable});return t},s=(t,e,o)=>(p(t,e,"default"),o),a={};s(a,r);var g={comments:{blockComment:["<!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:a.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:a.languages.IndentAction.Indent}}]},k={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}};export{g as conf,k as language};
@@ -0,0 +1 @@
1
+ import{b as l}from"./monaco-editor-DbSHhIAW.js";var i=Object.defineProperty,c=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,d=(n,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of u(e))!s.call(n,t)&&t!==r&&i(n,t,{get:()=>e[t],enumerable:!(o=c(e,t))||o.enumerable});return n},m=(n,e,r)=>(d(n,e,"default"),r),a={};m(a,l);var p={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:a.languages.IndentAction.Indent}}]},f={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};export{p as conf,f as language};
@@ -0,0 +1,8 @@
1
+ # Ignore all files in this directory (auto-downloaded via postinstall)
2
+ *
3
+
4
+ # Keep this .gitignore
5
+ !.gitignore
6
+
7
+ # Keep README
8
+ !README.md
@@ -0,0 +1,24 @@
1
+ # DuckDB WASM Files
2
+
3
+ This directory contains DuckDB WebAssembly bundles (~107 MB total).
4
+
5
+ ## Auto-Downloaded (not in git)
6
+
7
+ Files are automatically downloaded when you run:
8
+ ```bash
9
+ pnpm install # Runs postinstall hook
10
+ ```
11
+
12
+ Or manually:
13
+ ```bash
14
+ bash scripts/download-duckdb-wasm.sh
15
+ ```
16
+
17
+ ## Files
18
+ - `duckdb-*.wasm` - WebAssembly modules (34-39 MB each)
19
+ - `duckdb-browser-*.worker.js` - Web Workers (667-886 KB each)
20
+ - `duckdb-browser*.mjs` - JavaScript loaders
21
+
22
+ ## Why not in git?
23
+ These files total ~107 MB and would bloat the repository.
24
+ They're sourced from `@duckdb/duckdb-wasm` npm package instead.
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>dbxlite - Browser SQL Utility powered by DuckDB</title>
7
+ <meta name="description" content="Lightweight browser-native SQL utility powered by DuckDB. No install, just query. Run SQL queries entirely in your browser with zero setup.">
8
+ <meta name="keywords" content="sql, duckdb, browser, database, query, data analysis, wasm, browser-native, no install">
9
+
10
+ <!-- Google Fonts for editor font options -->
11
+ <link rel="preconnect" href="https://fonts.googleapis.com">
12
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
13
+ <link href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600&family=Roboto+Mono:wght@400;500;600&family=Source+Code+Pro:wght@400;500;600&display=swap" rel="stylesheet">
14
+
15
+ <!-- Favicon - database icon in gradient rounded square -->
16
+ <link rel="icon" type="image/svg+xml" href="./logo/favicon.svg">
17
+ <script type="module" crossorigin src="./assets/index-B7kyXQsW.js"></script>
18
+ <link rel="modulepreload" crossorigin href="./assets/react-vendor-CJNQXC79.js">
19
+ <link rel="modulepreload" crossorigin href="./assets/monaco-editor-DbSHhIAW.js">
20
+ <link rel="stylesheet" crossorigin href="./assets/monaco-editor-DvqauXKu.css">
21
+ <link rel="stylesheet" crossorigin href="./assets/index-Bls2JT31.css">
22
+ </head>
23
+ <body>
24
+ <div id="root"></div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,44 @@
1
+ <svg width="512" height="512" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="favicon-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#3b82f6"/>
5
+ <stop offset="100%" style="stop-color:#06b6d4"/>
6
+ </linearGradient>
7
+ </defs>
8
+
9
+ <!-- Background circle -->
10
+ <circle cx="50" cy="50" r="45" fill="url(#favicon-gradient)"/>
11
+
12
+ <!-- Lightning bolt integrated into letterform -->
13
+ <path
14
+ d="M 35 25 L 50 25 L 45 50 L 60 50 L 40 75 L 45 55 L 30 55 Z"
15
+ fill="white"
16
+ opacity="0.95"
17
+ />
18
+
19
+ <!-- Database cylinder with DuckDB yellow accent -->
20
+ <ellipse
21
+ cx="65"
22
+ cy="30"
23
+ rx="10"
24
+ ry="4"
25
+ fill="#FFF000"
26
+ opacity="0.9"
27
+ />
28
+ <rect
29
+ x="55"
30
+ y="30"
31
+ width="20"
32
+ height="8"
33
+ fill="#FFF000"
34
+ opacity="0.7"
35
+ />
36
+ <ellipse
37
+ cx="65"
38
+ cy="38"
39
+ rx="10"
40
+ ry="4"
41
+ fill="#FFF000"
42
+ opacity="0.9"
43
+ />
44
+ </svg>
@@ -0,0 +1,44 @@
1
+ <svg width="512" height="512" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="icon-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#3b82f6"/>
5
+ <stop offset="100%" style="stop-color:#06b6d4"/>
6
+ </linearGradient>
7
+ </defs>
8
+
9
+ <!-- Background circle -->
10
+ <circle cx="50" cy="50" r="45" fill="url(#icon-gradient)"/>
11
+
12
+ <!-- Lightning bolt integrated into letterform -->
13
+ <path
14
+ d="M 35 25 L 50 25 L 45 50 L 60 50 L 40 75 L 45 55 L 30 55 Z"
15
+ fill="white"
16
+ opacity="0.95"
17
+ />
18
+
19
+ <!-- Database cylinder with DuckDB yellow accent -->
20
+ <ellipse
21
+ cx="65"
22
+ cy="30"
23
+ rx="10"
24
+ ry="4"
25
+ fill="#FFF000"
26
+ opacity="0.9"
27
+ />
28
+ <rect
29
+ x="55"
30
+ y="30"
31
+ width="20"
32
+ height="8"
33
+ fill="#FFF000"
34
+ opacity="0.7"
35
+ />
36
+ <ellipse
37
+ cx="65"
38
+ cy="38"
39
+ rx="10"
40
+ ry="4"
41
+ fill="#FFF000"
42
+ opacity="0.9"
43
+ />
44
+ </svg>
@@ -0,0 +1,44 @@
1
+ <svg width="512" height="512" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="logo-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#3b82f6"/>
5
+ <stop offset="100%" style="stop-color:#06b6d4"/>
6
+ </linearGradient>
7
+ </defs>
8
+
9
+ <!-- Background circle -->
10
+ <circle cx="50" cy="50" r="45" fill="url(#logo-gradient)"/>
11
+
12
+ <!-- Lightning bolt integrated into letterform -->
13
+ <path
14
+ d="M 35 25 L 50 25 L 45 50 L 60 50 L 40 75 L 45 55 L 30 55 Z"
15
+ fill="white"
16
+ opacity="0.95"
17
+ />
18
+
19
+ <!-- Database cylinder with DuckDB yellow accent -->
20
+ <ellipse
21
+ cx="65"
22
+ cy="30"
23
+ rx="10"
24
+ ry="4"
25
+ fill="#FFF000"
26
+ opacity="0.9"
27
+ />
28
+ <rect
29
+ x="55"
30
+ y="30"
31
+ width="20"
32
+ height="8"
33
+ fill="#FFF000"
34
+ opacity="0.7"
35
+ />
36
+ <ellipse
37
+ cx="65"
38
+ cy="38"
39
+ rx="10"
40
+ ry="4"
41
+ fill="#FFF000"
42
+ opacity="0.9"
43
+ />
44
+ </svg>
@@ -0,0 +1,11 @@
1
+ -- Welcome to dbxlite SQL Editor
2
+ -- Press Cmd/Ctrl+Enter to run queries
3
+ -- Press Cmd/Ctrl+Shift+F to format SQL
4
+
5
+ -- Quick start: Select and run the query below
6
+ SELECT 'Hello from DuckDB!' as greeting,
7
+ current_date as today,
8
+ version() as duckdb_version;
9
+
10
+ -- Try loading a file: Cmd/Ctrl+O or use the file upload button
11
+ -- Explore your data using the left sidebar
File without changes