orez 0.2.26 → 0.2.29

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 (172) hide show
  1. package/dist/cf-do/worker.d.ts.map +1 -1
  2. package/dist/cf-do/worker.js +9 -1
  3. package/dist/cf-do/worker.js.map +1 -1
  4. package/dist/pg-proxy-do-backend.d.ts +2 -0
  5. package/dist/pg-proxy-do-backend.d.ts.map +1 -1
  6. package/dist/pg-proxy-do-backend.js +49 -7
  7. package/dist/pg-proxy-do-backend.js.map +1 -1
  8. package/dist/pg-sqlite-compiler/catalog/seed.d.ts +67 -0
  9. package/dist/pg-sqlite-compiler/catalog/seed.d.ts.map +1 -0
  10. package/dist/pg-sqlite-compiler/catalog/seed.js +436 -0
  11. package/dist/pg-sqlite-compiler/catalog/seed.js.map +1 -0
  12. package/dist/pg-sqlite-compiler/index.d.ts +12 -0
  13. package/dist/pg-sqlite-compiler/index.d.ts.map +1 -0
  14. package/dist/pg-sqlite-compiler/index.js +59 -0
  15. package/dist/pg-sqlite-compiler/index.js.map +1 -0
  16. package/dist/pg-sqlite-compiler/passes/ast-utils.d.ts +48 -0
  17. package/dist/pg-sqlite-compiler/passes/ast-utils.d.ts.map +1 -0
  18. package/dist/pg-sqlite-compiler/passes/ast-utils.js +93 -0
  19. package/dist/pg-sqlite-compiler/passes/ast-utils.js.map +1 -0
  20. package/dist/pg-sqlite-compiler/passes/catalog.d.ts +34 -0
  21. package/dist/pg-sqlite-compiler/passes/catalog.d.ts.map +1 -0
  22. package/dist/pg-sqlite-compiler/passes/catalog.js +30 -0
  23. package/dist/pg-sqlite-compiler/passes/catalog.js.map +1 -0
  24. package/dist/pg-sqlite-compiler/passes/datetime.d.ts +21 -0
  25. package/dist/pg-sqlite-compiler/passes/datetime.d.ts.map +1 -0
  26. package/dist/pg-sqlite-compiler/passes/datetime.js +53 -0
  27. package/dist/pg-sqlite-compiler/passes/datetime.js.map +1 -0
  28. package/dist/pg-sqlite-compiler/passes/index.d.ts +21 -0
  29. package/dist/pg-sqlite-compiler/passes/index.d.ts.map +1 -0
  30. package/dist/pg-sqlite-compiler/passes/index.js +39 -0
  31. package/dist/pg-sqlite-compiler/passes/index.js.map +1 -0
  32. package/dist/pg-sqlite-compiler/passes/types.d.ts +41 -0
  33. package/dist/pg-sqlite-compiler/passes/types.d.ts.map +1 -0
  34. package/dist/pg-sqlite-compiler/passes/types.js +103 -0
  35. package/dist/pg-sqlite-compiler/passes/types.js.map +1 -0
  36. package/dist/pg-sqlite-compiler/test/oracle.d.ts +34 -0
  37. package/dist/pg-sqlite-compiler/test/oracle.d.ts.map +1 -0
  38. package/dist/pg-sqlite-compiler/test/oracle.js +204 -0
  39. package/dist/pg-sqlite-compiler/test/oracle.js.map +1 -0
  40. package/dist/pg-sqlite-compiler/types.d.ts +55 -0
  41. package/dist/pg-sqlite-compiler/types.d.ts.map +1 -0
  42. package/dist/pg-sqlite-compiler/types.js +2 -0
  43. package/dist/pg-sqlite-compiler/types.js.map +1 -0
  44. package/package.json +8 -4
  45. package/src/admin/admin-data.test.ts +0 -348
  46. package/src/admin/http-proxy.ts +0 -252
  47. package/src/admin/log-store.ts +0 -192
  48. package/src/admin/server.ts +0 -471
  49. package/src/admin/ui.ts +0 -1322
  50. package/src/bench/proxy-throughput.bench.ts +0 -343
  51. package/src/bench/serial-mutations.bench.ts +0 -270
  52. package/src/browser.ts +0 -203
  53. package/src/cf-do/.wrangler/cache/cf.json +0 -1
  54. package/src/cf-do/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite +0 -0
  55. package/src/cf-do/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm +0 -0
  56. package/src/cf-do/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal +0 -0
  57. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/0f0f3bdf0abda097eb6f1246db4657d9fc622081362d894d82c1a1ce067b05b6.sqlite +0 -0
  58. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/1ddd3a4a48a11b51658444f5458a1fb175194b1d5b6a5bda20ef3fe3205b900c.sqlite +0 -0
  59. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/204a39120310d37e972c5914cfd71ad55c151bdb9e8ed289a5f8c5b052dd60e4.sqlite +0 -0
  60. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/3835f242df9728adba3d127a238793fd054ed3e51df3f60749ee744c469bf2a2.sqlite +0 -0
  61. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/4aa9c80eb716cf55b8995ccf7afab0b36c683e6da07d7c37a3f9c570136036df.sqlite +0 -0
  62. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/533e2fd1d6ea46e7a9a0017916ef341802d438d72583462755f2c1f8225e9bf2.sqlite +0 -0
  63. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/5ffa1aced1225ecaeac6366f7586aa3de92761cdff8711d81fbd81f248076abd.sqlite +0 -0
  64. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/686c3a9f0d7e59ed2ab607efd4b76d779c97cafeb3818380033bf7c7eb86c819.sqlite +0 -0
  65. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/6e8214e8dcfadd0deb52d64e5e9ca85c6b329ace11193909845995396914c473.sqlite +0 -0
  66. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/78d9ec9ff873d3fe3507ff53c2a6f6dfc408b4268eb0db3f2a146c0678965366.sqlite +0 -0
  67. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/7eff9f0ed7e27ad0d3f9d923de0682fab1928591172c1ba336c5f79a134a5d85.sqlite +0 -0
  68. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/836cda5b995b25867d722ed4f4c2292167e80351a3c6038db626648eb247dd8b.sqlite +0 -0
  69. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/91ef63b112209ab30172763acd8a0935106c248f7f1bcae5545ce37a9f201551.sqlite +0 -0
  70. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/a66ea4293a5f5938bc6d116edfa2522bb85bc37aea3541fbc09c3b613b9b32c0.sqlite +0 -0
  71. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/ceb2ab26b80590840b65651deb6e948d3bf81565c6751f3a58752cf4bf4aecae.sqlite +0 -0
  72. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/metadata.sqlite +0 -0
  73. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/metadata.sqlite-shm +0 -0
  74. package/src/cf-do/.wrangler/state/v3/do/zero-do-ZeroDO/metadata.sqlite-wal +0 -0
  75. package/src/cf-do/ARCHITECTURE.md +0 -83
  76. package/src/cf-do/watermark.test.ts +0 -103
  77. package/src/cf-do/watermark.ts +0 -118
  78. package/src/cf-do/worker.ts +0 -1033
  79. package/src/cf-do/wrangler.toml +0 -11
  80. package/src/cf-pglite/README.md +0 -19
  81. package/src/change-tracking.ts +0 -25
  82. package/src/child-process.test.ts +0 -147
  83. package/src/child-process.ts +0 -90
  84. package/src/cli-entry.ts +0 -72
  85. package/src/cli.test.ts +0 -38
  86. package/src/cli.ts +0 -1214
  87. package/src/config.ts +0 -150
  88. package/src/do-sql-tracking.test.ts +0 -19
  89. package/src/do-sql-tracking.ts +0 -19
  90. package/src/index.ts +0 -1215
  91. package/src/integration/integration.test.ts +0 -517
  92. package/src/integration/native-binary.guard.test.ts +0 -13
  93. package/src/integration/native-startup.test.ts +0 -44
  94. package/src/integration/replication-latency.test.ts +0 -428
  95. package/src/integration/restore-live-stress.test.ts +0 -433
  96. package/src/integration/restore-reset.test.ts +0 -400
  97. package/src/integration/restore.test.ts +0 -274
  98. package/src/integration/test-permissions.ts +0 -147
  99. package/src/load-config.ts +0 -46
  100. package/src/log.ts +0 -96
  101. package/src/mutex.ts +0 -47
  102. package/src/pg-proxy-browser.singledb.test.ts +0 -233
  103. package/src/pg-proxy-browser.ts +0 -2022
  104. package/src/pg-proxy-do-backend.test.ts +0 -3890
  105. package/src/pg-proxy-do-backend.ts +0 -7157
  106. package/src/pg-proxy.ts +0 -1087
  107. package/src/pglite-ipc.test.ts +0 -116
  108. package/src/pglite-ipc.ts +0 -266
  109. package/src/pglite-manager.ts +0 -557
  110. package/src/pglite-web-proxy.test.ts +0 -57
  111. package/src/pglite-web-proxy.ts +0 -221
  112. package/src/pglite-web-worker.ts +0 -152
  113. package/src/pglite-worker-thread.ts +0 -253
  114. package/src/port.ts +0 -25
  115. package/src/process-title.ts +0 -9
  116. package/src/recovery.ts +0 -155
  117. package/src/replication/change-tracker.test.ts +0 -357
  118. package/src/replication/change-tracker.ts +0 -279
  119. package/src/replication/handler.test.ts +0 -511
  120. package/src/replication/handler.ts +0 -1190
  121. package/src/replication/pgoutput-encoder.test.ts +0 -697
  122. package/src/replication/pgoutput-encoder.ts +0 -373
  123. package/src/replication/tcp-replication.test.ts +0 -876
  124. package/src/replication/zero-compat.test.ts +0 -1150
  125. package/src/restore-stress.test.ts +0 -188
  126. package/src/s3-local.ts +0 -203
  127. package/src/shim/hooks.mjs +0 -120
  128. package/src/shim/register.mjs +0 -4
  129. package/src/sqlite-mode/apply-mode.ts +0 -224
  130. package/src/sqlite-mode/index.ts +0 -15
  131. package/src/sqlite-mode/native-binary.ts +0 -89
  132. package/src/sqlite-mode/package-resolve.ts +0 -17
  133. package/src/sqlite-mode/resolve-mode.ts +0 -80
  134. package/src/sqlite-mode/shim-template.ts +0 -159
  135. package/src/sqlite-mode/sqlite-mode.test.ts +0 -427
  136. package/src/sqlite-mode/types.ts +0 -30
  137. package/src/vite-plugin.ts +0 -67
  138. package/src/wasm-sqlite.test.ts +0 -537
  139. package/src/worker/browser-admin.ts +0 -52
  140. package/src/worker/browser-build-config.test.ts +0 -71
  141. package/src/worker/browser-build-config.ts +0 -109
  142. package/src/worker/browser-embed-admin.test.ts +0 -75
  143. package/src/worker/browser-embed.ts +0 -345
  144. package/src/worker/cf-patches.ts +0 -384
  145. package/src/worker/embed-integration.test.ts +0 -321
  146. package/src/worker/index.ts +0 -138
  147. package/src/worker/shims/fastify.test.ts +0 -255
  148. package/src/worker/shims/fastify.ts +0 -306
  149. package/src/worker/shims/http-service.test.ts +0 -355
  150. package/src/worker/shims/http-service.ts +0 -293
  151. package/src/worker/shims/node-stub.ts +0 -290
  152. package/src/worker/shims/oxfmt.ts +0 -3
  153. package/src/worker/shims/postgres-browser.ts +0 -59
  154. package/src/worker/shims/postgres-socket.test.ts +0 -576
  155. package/src/worker/shims/postgres-socket.ts +0 -310
  156. package/src/worker/shims/postgres.test.ts +0 -364
  157. package/src/worker/shims/postgres.ts +0 -1454
  158. package/src/worker/shims/sqlite-browser.test.ts +0 -233
  159. package/src/worker/shims/sqlite-browser.ts +0 -175
  160. package/src/worker/shims/sqlite.test.ts +0 -786
  161. package/src/worker/shims/sqlite.ts +0 -978
  162. package/src/worker/shims/stream-browser.ts +0 -15
  163. package/src/worker/shims/ws-browser.test.ts +0 -205
  164. package/src/worker/shims/ws-browser.ts +0 -248
  165. package/src/worker/shims/ws.test.ts +0 -288
  166. package/src/worker/shims/ws.ts +0 -467
  167. package/src/worker/shims/zero-process-env.ts +0 -11
  168. package/src/worker/types.ts +0 -75
  169. package/src/worker/worker-integration.test.ts +0 -223
  170. package/src/worker/worker.test.ts +0 -136
  171. package/src/worker/zero-cache-embed-cf.ts +0 -463
  172. package/src/worker/zero-cache-embed.ts +0 -277
@@ -1,290 +0,0 @@
1
- /**
2
- * stub for Node.js built-in modules not used in SINGLE_PROCESS mode.
3
- *
4
- * zero-cache imports modules like node:fs, node:net, node:child_process
5
- * at the top level, but only uses them in multi-process mode. in
6
- * SINGLE_PROCESS mode (browser or CF Workers), these imports are dead
7
- * code. this stub provides empty exports so the bundler can resolve them.
8
- *
9
- * usage with bundler alias:
10
- * alias: { 'node:fs': 'orez/worker/shims/node-stub' }
11
- */
12
-
13
- // stub for node:http (Server class used in instanceof check)
14
- export class Server {}
15
-
16
- // stub for node:fs
17
- export function existsSync() {
18
- return false
19
- }
20
- export function readFileSync() {
21
- return ''
22
- }
23
- export function writeFileSync() {}
24
- export function rmSync() {}
25
- export function mkdirSync() {}
26
- export function statSync() {
27
- return { size: 0, isFile: () => false, isDirectory: () => false }
28
- }
29
-
30
- // stub for node:fs/promises
31
- export function writeFile() {
32
- return Promise.resolve()
33
- }
34
- export function readFile() {
35
- return Promise.resolve('')
36
- }
37
- export function stat() {
38
- return Promise.resolve({ size: 0, isFile: () => false, isDirectory: () => false })
39
- }
40
-
41
- // stub for node:child_process
42
- export function fork() {
43
- throw new Error('fork() not available in browser')
44
- }
45
- export function spawn() {
46
- throw new Error('spawn() not available in browser')
47
- }
48
-
49
- // stub for node:net
50
- export function createServer() {
51
- return new Server()
52
- }
53
- export function createConnection() {
54
- throw new Error('createConnection() not available in browser')
55
- }
56
-
57
- // stub for node:os
58
- export function hostname() {
59
- return 'browser'
60
- }
61
- export function platform() {
62
- return 'browser'
63
- }
64
- export function tmpdir() {
65
- return '/tmp'
66
- }
67
- export function homedir() {
68
- return '/tmp'
69
- }
70
- export function availableParallelism() {
71
- return 1
72
- }
73
- export function loadavg() {
74
- return [0, 0, 0]
75
- }
76
- export function uptime() {
77
- return 0
78
- }
79
- export function totalmem() {
80
- return 128 * 1024 * 1024
81
- }
82
- export function freemem() {
83
- return 64 * 1024 * 1024
84
- }
85
- export function cpus() {
86
- return [{ model: 'worker', speed: 0 }]
87
- }
88
- export function networkInterfaces() {
89
- return {
90
- lo: [
91
- {
92
- address: '127.0.0.1',
93
- family: 'IPv4',
94
- internal: true,
95
- },
96
- ],
97
- }
98
- }
99
-
100
- // stub for node:crypto
101
- export function timingSafeEqual(a: unknown, b: unknown) {
102
- return a === b
103
- }
104
- export function randomBytes(n: number) {
105
- const arr = new Uint8Array(n)
106
- crypto.getRandomValues(arr)
107
- return arr
108
- }
109
-
110
- // stub for node:url
111
- export function fileURLToPath(url: string) {
112
- return url.replace('file://', '')
113
- }
114
-
115
- // stub for node:inspector/promises
116
- export class Session {
117
- connect() {}
118
- post() {
119
- return Promise.resolve()
120
- }
121
- disconnect() {}
122
- }
123
-
124
- // stub for node:v8
125
- export function getHeapStatistics() {
126
- const heapSizeLimit = 128 * 1024 * 1024
127
- return {
128
- total_heap_size: 64 * 1024 * 1024,
129
- total_heap_size_executable: 0,
130
- total_physical_size: 64 * 1024 * 1024,
131
- total_available_size: 64 * 1024 * 1024,
132
- used_heap_size: 32 * 1024 * 1024,
133
- heap_size_limit: heapSizeLimit,
134
- malloced_memory: 0,
135
- peak_malloced_memory: 0,
136
- does_zap_garbage: 0,
137
- number_of_native_contexts: 1,
138
- number_of_detached_contexts: 0,
139
- total_global_handles_size: 0,
140
- used_global_handles_size: 0,
141
- external_memory: 0,
142
- }
143
- }
144
-
145
- // stub for node:zlib
146
- export function gzip(_data: unknown, cb: (err: null, result: Uint8Array) => void) {
147
- cb(null, new Uint8Array(0))
148
- }
149
-
150
- // stub for node:util
151
- export function promisify(fn: unknown) {
152
- return fn
153
- }
154
- export function inspect(obj: unknown) {
155
- return String(obj)
156
- }
157
- export function stripVTControlCharacters(str: string) {
158
- return str
159
- }
160
- export function inherits(ctor: any, superCtor: any) {
161
- ctor.prototype = Object.create(superCtor.prototype)
162
- ctor.prototype.constructor = ctor
163
- }
164
- export function deprecate(fn: any) {
165
- return fn
166
- }
167
- export const types = {
168
- isProxy: () => false,
169
- isRegExp: (v: unknown) => v instanceof RegExp,
170
- }
171
-
172
- // stub for node:assert
173
- export function strict() {}
174
- export function ok() {}
175
-
176
- // stub for node:module
177
- export function createRequire() {
178
- return () => ({})
179
- }
180
-
181
- // stub for node:child_process (named exports)
182
- export function execSync() {
183
- return ''
184
- }
185
-
186
- // stub for node:perf_hooks
187
- export const performance = globalThis.performance
188
- export const constants = {
189
- NODE_PERFORMANCE_GC_MAJOR: 4,
190
- NODE_PERFORMANCE_GC_MINOR: 1,
191
- NODE_PERFORMANCE_GC_INCREMENTAL: 8,
192
- NODE_PERFORMANCE_GC_WEAKCB: 16,
193
- }
194
- export class PerformanceObserver {
195
- constructor(_cb: any) {}
196
- observe() {}
197
- disconnect() {}
198
- }
199
-
200
- // stub for node:worker_threads
201
- export class Worker {
202
- constructor() {
203
- throw new Error('Worker not available in browser')
204
- }
205
- }
206
- export const isMainThread = true
207
- export const parentPort = null
208
-
209
- // stub for node:stream/promises
210
- export function pipeline(..._args: unknown[]) {
211
- return Promise.resolve()
212
- }
213
-
214
- // stub for node:fs (promises sub-export)
215
- export const promises = {
216
- readFile: () => Promise.resolve(''),
217
- writeFile: () => Promise.resolve(),
218
- stat: () => Promise.resolve({ size: 0 }),
219
- mkdir: () => Promise.resolve(),
220
- rm: () => Promise.resolve(),
221
- access: () => Promise.reject(new Error('not available')),
222
- }
223
-
224
- // stub for node:crypto (additional)
225
- export function randomUUID() {
226
- return crypto.randomUUID()
227
- }
228
-
229
- // stub for node:os (additional)
230
- export function arch() {
231
- return 'wasm'
232
- }
233
- export function release() {
234
- return '0.0.0'
235
- }
236
-
237
- // default export for modules that use default import or CJS require()
238
- export default {
239
- randomUUID,
240
- randomBytes,
241
- timingSafeEqual,
242
- hostname,
243
- platform,
244
- tmpdir,
245
- homedir,
246
- availableParallelism,
247
- loadavg,
248
- uptime,
249
- totalmem,
250
- freemem,
251
- cpus,
252
- arch,
253
- release,
254
- networkInterfaces,
255
- existsSync,
256
- readFileSync,
257
- writeFileSync,
258
- rmSync,
259
- mkdirSync,
260
- statSync,
261
- writeFile,
262
- readFile,
263
- promises,
264
- fork,
265
- spawn,
266
- execSync,
267
- createServer,
268
- createConnection,
269
- fileURLToPath,
270
- promisify,
271
- inspect,
272
- stripVTControlCharacters,
273
- inherits,
274
- deprecate,
275
- types,
276
- performance,
277
- constants,
278
- PerformanceObserver,
279
- getHeapStatistics,
280
- gzip,
281
- strict,
282
- ok,
283
- createRequire,
284
- pipeline,
285
- Server,
286
- Session,
287
- Worker,
288
- isMainThread,
289
- parentPort,
290
- }
@@ -1,3 +0,0 @@
1
- export async function format(_file: string, content: string) {
2
- return { code: content }
3
- }
@@ -1,59 +0,0 @@
1
- /**
2
- * postgres browser shim — real postgres package over MessagePort.
3
- *
4
- * replaces the old postgres.ts shim. uses the REAL postgres npm package
5
- * with a custom socket factory that speaks wire protocol over MessagePort
6
- * to pg-proxy-browser.
7
- *
8
- * setup: set globalThis.__orez_proxy_connect before importing.
9
- */
10
-
11
- // import the REAL postgres package — the bundler aliases 'postgres-real' to the
12
- // actual postgres npm package, avoiding circular resolution since 'postgres'
13
- // is aliased to this file.
14
- // @ts-expect-error — resolved by bundler alias
15
- import postgres from 'postgres-real'
16
-
17
- import { createSocketFactory } from './postgres-socket.js'
18
-
19
- const getProxyConnect = (): ((port: MessagePort) => void) => {
20
- const fn = (globalThis as any).__orez_proxy_connect
21
- if (!fn) throw new Error('__orez_proxy_connect not set')
22
- return fn
23
- }
24
-
25
- function browserPostgres(urlOrOptions?: any, options?: any) {
26
- const opts: any =
27
- typeof urlOrOptions === 'string'
28
- ? { ...(options || {}), host: urlOrOptions }
29
- : { ...(urlOrOptions || {}) }
30
-
31
- opts.socket = createSocketFactory(getProxyConnect())
32
-
33
- if (typeof urlOrOptions === 'string') {
34
- try {
35
- const parsed = new URL(urlOrOptions.replace('pglite://', 'http://'))
36
- opts.database = parsed.pathname.replace(/^\//, '') || 'postgres'
37
- opts.host = '127.0.0.1'
38
- opts.port = 0
39
- } catch {}
40
- }
41
-
42
- opts.ssl = false
43
- opts.password = (globalThis as any).__orez_proxy_password || ''
44
- opts.username = (globalThis as any).__orez_proxy_user || 'user'
45
- // disable auto-subscribe
46
- if (opts.no_subscribe === undefined) opts.no_subscribe = true
47
- // limit pool size — too many concurrent connections overwhelm the MessagePort proxy
48
- // limit pool size for browser — too many concurrent connections can overwhelm
49
- if (!opts.max || opts.max > 2) opts.max = 2
50
-
51
- console.debug(
52
- `[postgres-browser] creating client db=${opts.database} repl=${!!opts.connection?.replication} fetch_types=${opts.fetch_types} max=${opts.max} keys=${Object.keys(opts).sort().join(',')}`
53
- )
54
- const client = postgres(opts)
55
- return client
56
- }
57
-
58
- Object.assign(browserPostgres, postgres)
59
- export default browserPostgres