@fireproof/core 0.19.5-dev → 0.19.8-dev-alldocs
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/{chunk-QHSXUST7.js → chunk-5UFCF36O.js} +3 -3
 - package/{chunk-HCXR2M5B.js → chunk-DG6XSV44.js} +175 -7
 - package/chunk-DG6XSV44.js.map +1 -0
 - package/{chunk-H3A2HMMM.js → chunk-OWQAHX2V.js} +2 -2
 - package/chunk-OWQAHX2V.js.map +1 -0
 - package/{chunk-7OGPZSGT.js → chunk-PRQHQG4I.js} +2 -2
 - package/index.cjs +248 -191
 - package/index.cjs.map +1 -1
 - package/index.d.cts +174 -68
 - package/index.d.ts +174 -68
 - package/index.global.js +24688 -0
 - package/index.global.js.map +1 -0
 - package/index.js +60 -127
 - package/index.js.map +1 -1
 - package/metafile-cjs.json +1 -1
 - package/metafile-esm.json +1 -1
 - package/metafile-iife.json +1 -0
 - package/{node-sys-container-E7LADX2Z.js → node-sys-container-TTGEC66A.js} +2 -2
 - package/package.json +1 -1
 - package/{sqlite-data-store-YS4U7AQ4.js → sqlite-data-store-MA55LVQE.js} +4 -4
 - package/{sqlite-meta-store-FJZSZG4R.js → sqlite-meta-store-UNQKVYRM.js} +4 -4
 - package/{sqlite-wal-store-6JZ4URNS.js → sqlite-wal-store-KVUOC4PO.js} +4 -4
 - package/{store-file-HMHPQTUV.js → store-file-WD746RSY.js} +3 -3
 - package/{store-indexdb-MRVZG4OG.js → store-indexdb-NG45BU3Q.js} +4 -4
 - package/{store-sql-5XMJ5OWJ.js → store-sql-QVFNIGND.js} +7 -69
 - package/store-sql-QVFNIGND.js.map +1 -0
 - package/tests/blockstore/loader.test.ts +265 -0
 - package/tests/blockstore/store.test.ts +164 -0
 - package/tests/blockstore/transaction.test.ts +121 -0
 - package/tests/fireproof/config.test.ts +212 -0
 - package/tests/fireproof/crdt.test.ts +434 -0
 - package/tests/fireproof/database.test.ts +466 -0
 - package/tests/fireproof/fireproof.test.ts +602 -0
 - package/tests/fireproof/hello.test.ts +54 -0
 - package/tests/fireproof/indexer.test.ts +389 -0
 - package/tests/helpers.ts +81 -0
 - package/tests/react/useFireproof.test.tsx +19 -0
 - package/tests/www/gallery.html +132 -0
 - package/tests/www/iife.html +42 -0
 - package/tests/www/todo-aws.html +232 -0
 - package/tests/www/todo-ipfs.html +213 -0
 - package/tests/www/todo-local.html +214 -0
 - package/tests/www/todo-netlify.html +227 -0
 - package/tests/www/todo.html +236 -0
 - package/chunk-H3A2HMMM.js.map +0 -1
 - package/chunk-HCXR2M5B.js.map +0 -1
 - package/store-sql-5XMJ5OWJ.js.map +0 -1
 - /package/{chunk-QHSXUST7.js.map → chunk-5UFCF36O.js.map} +0 -0
 - /package/{chunk-7OGPZSGT.js.map → chunk-PRQHQG4I.js.map} +0 -0
 - /package/{node-sys-container-E7LADX2Z.js.map → node-sys-container-TTGEC66A.js.map} +0 -0
 - /package/{sqlite-data-store-YS4U7AQ4.js.map → sqlite-data-store-MA55LVQE.js.map} +0 -0
 - /package/{sqlite-meta-store-FJZSZG4R.js.map → sqlite-meta-store-UNQKVYRM.js.map} +0 -0
 - /package/{sqlite-wal-store-6JZ4URNS.js.map → sqlite-wal-store-KVUOC4PO.js.map} +0 -0
 - /package/{store-file-HMHPQTUV.js.map → store-file-WD746RSY.js.map} +0 -0
 - /package/{store-indexdb-MRVZG4OG.js.map → store-indexdb-NG45BU3Q.js.map} +0 -0
 
    
        package/index.cjs
    CHANGED
    
    | 
         @@ -225,10 +225,6 @@ var init_sys_container = __esm({ 
     | 
|
| 
       225 
225 
     | 
    
         | 
| 
       226 
226 
     | 
    
         
             
            // src/runtime/data-dir.ts
         
     | 
| 
       227 
227 
     | 
    
         
             
            function dataDir(name, base) {
         
     | 
| 
       228 
     | 
    
         
            -
              const dataDir2 = _dataDir(name, base);
         
     | 
| 
       229 
     | 
    
         
            -
              return dataDir2;
         
     | 
| 
       230 
     | 
    
         
            -
            }
         
     | 
| 
       231 
     | 
    
         
            -
            function _dataDir(name, base) {
         
     | 
| 
       232 
228 
     | 
    
         
             
              if (!base) {
         
     | 
| 
       233 
229 
     | 
    
         
             
                if (import_std_env.isNode || import_std_env.isDeno) {
         
     | 
| 
       234 
230 
     | 
    
         
             
                  base = SysContainer.env.get("FP_STORAGE_URL") || `file://${SysContainer.join(SysContainer.homedir(), ".fireproof")}`;
         
     | 
| 
         @@ -298,6 +294,203 @@ var init_store_file_utils = __esm({ 
     | 
|
| 
       298 
294 
     | 
    
         
             
              }
         
     | 
| 
       299 
295 
     | 
    
         
             
            });
         
     | 
| 
       300 
296 
     | 
    
         | 
| 
      
 297 
     | 
    
         
            +
            // src/runtime/store-sql/types.ts
         
     | 
| 
      
 298 
     | 
    
         
            +
            var DefaultSQLTableNames;
         
     | 
| 
      
 299 
     | 
    
         
            +
            var init_types2 = __esm({
         
     | 
| 
      
 300 
     | 
    
         
            +
              "src/runtime/store-sql/types.ts"() {
         
     | 
| 
      
 301 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 302 
     | 
    
         
            +
                DefaultSQLTableNames = {
         
     | 
| 
      
 303 
     | 
    
         
            +
                  data: "Datas",
         
     | 
| 
      
 304 
     | 
    
         
            +
                  meta: "Metas",
         
     | 
| 
      
 305 
     | 
    
         
            +
                  wal: "Wals"
         
     | 
| 
      
 306 
     | 
    
         
            +
                };
         
     | 
| 
      
 307 
     | 
    
         
            +
              }
         
     | 
| 
      
 308 
     | 
    
         
            +
            });
         
     | 
| 
      
 309 
     | 
    
         
            +
             
     | 
| 
      
 310 
     | 
    
         
            +
            // src/runtime/store-sql/ensurer.ts
         
     | 
| 
      
 311 
     | 
    
         
            +
            function sqlTableName(...names) {
         
     | 
| 
      
 312 
     | 
    
         
            +
              return names.map((name) => name.replace(/^[^a-zA-Z0-9]+/, "").replace(/[^a-zA-Z0-9]+/g, "_")).filter((i) => i.length).join("_");
         
     | 
| 
      
 313 
     | 
    
         
            +
            }
         
     | 
| 
      
 314 
     | 
    
         
            +
            function ensureTableNames(url, opts) {
         
     | 
| 
      
 315 
     | 
    
         
            +
              let isIndex = "";
         
     | 
| 
      
 316 
     | 
    
         
            +
              if (url.searchParams.has("index")) {
         
     | 
| 
      
 317 
     | 
    
         
            +
                isIndex = url.searchParams.get("index") || ".idx";
         
     | 
| 
      
 318 
     | 
    
         
            +
              }
         
     | 
| 
      
 319 
     | 
    
         
            +
              const ret = opts?.tableNames || DefaultSQLTableNames;
         
     | 
| 
      
 320 
     | 
    
         
            +
              if (isIndex.length) {
         
     | 
| 
      
 321 
     | 
    
         
            +
                return {
         
     | 
| 
      
 322 
     | 
    
         
            +
                  data: sqlTableName(isIndex, ret.data),
         
     | 
| 
      
 323 
     | 
    
         
            +
                  meta: sqlTableName(isIndex, ret.meta),
         
     | 
| 
      
 324 
     | 
    
         
            +
                  wal: sqlTableName(isIndex, ret.wal)
         
     | 
| 
      
 325 
     | 
    
         
            +
                };
         
     | 
| 
      
 326 
     | 
    
         
            +
              }
         
     | 
| 
      
 327 
     | 
    
         
            +
              return {
         
     | 
| 
      
 328 
     | 
    
         
            +
                data: sqlTableName(ret.data),
         
     | 
| 
      
 329 
     | 
    
         
            +
                meta: sqlTableName(ret.meta),
         
     | 
| 
      
 330 
     | 
    
         
            +
                wal: sqlTableName(ret.wal)
         
     | 
| 
      
 331 
     | 
    
         
            +
              };
         
     | 
| 
      
 332 
     | 
    
         
            +
            }
         
     | 
| 
      
 333 
     | 
    
         
            +
            function ensureTextEncoder(opts) {
         
     | 
| 
      
 334 
     | 
    
         
            +
              return opts?.textEncoder || textEncoder;
         
     | 
| 
      
 335 
     | 
    
         
            +
            }
         
     | 
| 
      
 336 
     | 
    
         
            +
            function ensureTextDecoder(opts) {
         
     | 
| 
      
 337 
     | 
    
         
            +
              return opts?.textDecoder || textDecoder;
         
     | 
| 
      
 338 
     | 
    
         
            +
            }
         
     | 
| 
      
 339 
     | 
    
         
            +
            function url2sqlFlavor(url, logger) {
         
     | 
| 
      
 340 
     | 
    
         
            +
              const flavor = url.protocol.replace(/:.*$/, "");
         
     | 
| 
      
 341 
     | 
    
         
            +
              switch (flavor) {
         
     | 
| 
      
 342 
     | 
    
         
            +
                case "sqlite":
         
     | 
| 
      
 343 
     | 
    
         
            +
                case "mysql":
         
     | 
| 
      
 344 
     | 
    
         
            +
                case "postgres":
         
     | 
| 
      
 345 
     | 
    
         
            +
                  return flavor;
         
     | 
| 
      
 346 
     | 
    
         
            +
                default:
         
     | 
| 
      
 347 
     | 
    
         
            +
                  throw logger.Error().Str("flavor", flavor).Msg("unsupported protocol").AsError();
         
     | 
| 
      
 348 
     | 
    
         
            +
              }
         
     | 
| 
      
 349 
     | 
    
         
            +
            }
         
     | 
| 
      
 350 
     | 
    
         
            +
            function ensureSQLOpts(url, opts, componentName, ctx) {
         
     | 
| 
      
 351 
     | 
    
         
            +
              const logger = ensureLogger(opts, componentName, ctx);
         
     | 
| 
      
 352 
     | 
    
         
            +
              return {
         
     | 
| 
      
 353 
     | 
    
         
            +
                url,
         
     | 
| 
      
 354 
     | 
    
         
            +
                sqlFlavor: url2sqlFlavor(url, logger),
         
     | 
| 
      
 355 
     | 
    
         
            +
                tableNames: ensureTableNames(url, opts),
         
     | 
| 
      
 356 
     | 
    
         
            +
                logger,
         
     | 
| 
      
 357 
     | 
    
         
            +
                textEncoder: ensureTextEncoder(opts),
         
     | 
| 
      
 358 
     | 
    
         
            +
                textDecoder: ensureTextDecoder(opts)
         
     | 
| 
      
 359 
     | 
    
         
            +
              };
         
     | 
| 
      
 360 
     | 
    
         
            +
            }
         
     | 
| 
      
 361 
     | 
    
         
            +
            var textEncoder, textDecoder;
         
     | 
| 
      
 362 
     | 
    
         
            +
            var init_ensurer = __esm({
         
     | 
| 
      
 363 
     | 
    
         
            +
              "src/runtime/store-sql/ensurer.ts"() {
         
     | 
| 
      
 364 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 365 
     | 
    
         
            +
                init_utils();
         
     | 
| 
      
 366 
     | 
    
         
            +
                init_types2();
         
     | 
| 
      
 367 
     | 
    
         
            +
                textEncoder = new TextEncoder();
         
     | 
| 
      
 368 
     | 
    
         
            +
                textDecoder = new TextDecoder();
         
     | 
| 
      
 369 
     | 
    
         
            +
              }
         
     | 
| 
      
 370 
     | 
    
         
            +
            });
         
     | 
| 
      
 371 
     | 
    
         
            +
             
     | 
| 
      
 372 
     | 
    
         
            +
            // src/runtime/store-sql/index.ts
         
     | 
| 
      
 373 
     | 
    
         
            +
            var store_sql_exports = {};
         
     | 
| 
      
 374 
     | 
    
         
            +
            __export(store_sql_exports, {
         
     | 
| 
      
 375 
     | 
    
         
            +
              DefaultSQLTableNames: () => DefaultSQLTableNames,
         
     | 
| 
      
 376 
     | 
    
         
            +
              ensureSQLOpts: () => ensureSQLOpts
         
     | 
| 
      
 377 
     | 
    
         
            +
            });
         
     | 
| 
      
 378 
     | 
    
         
            +
            var init_store_sql = __esm({
         
     | 
| 
      
 379 
     | 
    
         
            +
              "src/runtime/store-sql/index.ts"() {
         
     | 
| 
      
 380 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 381 
     | 
    
         
            +
                init_types2();
         
     | 
| 
      
 382 
     | 
    
         
            +
                init_ensurer();
         
     | 
| 
      
 383 
     | 
    
         
            +
              }
         
     | 
| 
      
 384 
     | 
    
         
            +
            });
         
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
            // src/runtime/crypto.ts
         
     | 
| 
      
 387 
     | 
    
         
            +
            var crypto_exports = {};
         
     | 
| 
      
 388 
     | 
    
         
            +
            __export(crypto_exports, {
         
     | 
| 
      
 389 
     | 
    
         
            +
              toCryptoOpts: () => toCryptoOpts
         
     | 
| 
      
 390 
     | 
    
         
            +
            });
         
     | 
| 
      
 391 
     | 
    
         
            +
            function randomBytes(size) {
         
     | 
| 
      
 392 
     | 
    
         
            +
              const bytes = new Uint8Array(size);
         
     | 
| 
      
 393 
     | 
    
         
            +
              if (size > 0) {
         
     | 
| 
      
 394 
     | 
    
         
            +
                crypto.getRandomValues(bytes);
         
     | 
| 
      
 395 
     | 
    
         
            +
              }
         
     | 
| 
      
 396 
     | 
    
         
            +
              return bytes;
         
     | 
| 
      
 397 
     | 
    
         
            +
            }
         
     | 
| 
      
 398 
     | 
    
         
            +
            function digestSHA256(data) {
         
     | 
| 
      
 399 
     | 
    
         
            +
              return Promise.resolve(crypto.subtle.digest("SHA-256", data));
         
     | 
| 
      
 400 
     | 
    
         
            +
            }
         
     | 
| 
      
 401 
     | 
    
         
            +
            function toCryptoOpts(cryptoOpts = {}) {
         
     | 
| 
      
 402 
     | 
    
         
            +
              const opts = {
         
     | 
| 
      
 403 
     | 
    
         
            +
                importKey: cryptoOpts.importKey || crypto.subtle.importKey.bind(crypto.subtle),
         
     | 
| 
      
 404 
     | 
    
         
            +
                encrypt: cryptoOpts.encrypt || crypto.subtle.encrypt.bind(crypto.subtle),
         
     | 
| 
      
 405 
     | 
    
         
            +
                decrypt: cryptoOpts.decrypt || crypto.subtle.decrypt.bind(crypto.subtle),
         
     | 
| 
      
 406 
     | 
    
         
            +
                randomBytes: cryptoOpts.randomBytes || randomBytes,
         
     | 
| 
      
 407 
     | 
    
         
            +
                digestSHA256: cryptoOpts.digestSHA256 || digestSHA256
         
     | 
| 
      
 408 
     | 
    
         
            +
              };
         
     | 
| 
      
 409 
     | 
    
         
            +
              return opts;
         
     | 
| 
      
 410 
     | 
    
         
            +
            }
         
     | 
| 
      
 411 
     | 
    
         
            +
            var init_crypto = __esm({
         
     | 
| 
      
 412 
     | 
    
         
            +
              "src/runtime/crypto.ts"() {
         
     | 
| 
      
 413 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 414 
     | 
    
         
            +
              }
         
     | 
| 
      
 415 
     | 
    
         
            +
            });
         
     | 
| 
      
 416 
     | 
    
         
            +
             
     | 
| 
      
 417 
     | 
    
         
            +
            // src/runtime/files.ts
         
     | 
| 
      
 418 
     | 
    
         
            +
            var files_exports = {};
         
     | 
| 
      
 419 
     | 
    
         
            +
            __export(files_exports, {
         
     | 
| 
      
 420 
     | 
    
         
            +
              decodeFile: () => decodeFile,
         
     | 
| 
      
 421 
     | 
    
         
            +
              encodeFile: () => encodeFile
         
     | 
| 
      
 422 
     | 
    
         
            +
            });
         
     | 
| 
      
 423 
     | 
    
         
            +
            async function collect(collectable) {
         
     | 
| 
      
 424 
     | 
    
         
            +
              const chunks = [];
         
     | 
| 
      
 425 
     | 
    
         
            +
              await collectable.pipeTo(
         
     | 
| 
      
 426 
     | 
    
         
            +
                new WritableStream({
         
     | 
| 
      
 427 
     | 
    
         
            +
                  write(chunk) {
         
     | 
| 
      
 428 
     | 
    
         
            +
                    chunks.push(chunk);
         
     | 
| 
      
 429 
     | 
    
         
            +
                  }
         
     | 
| 
      
 430 
     | 
    
         
            +
                })
         
     | 
| 
      
 431 
     | 
    
         
            +
              );
         
     | 
| 
      
 432 
     | 
    
         
            +
              return chunks;
         
     | 
| 
      
 433 
     | 
    
         
            +
            }
         
     | 
| 
      
 434 
     | 
    
         
            +
            async function encodeFile(blob) {
         
     | 
| 
      
 435 
     | 
    
         
            +
              const readable = createFileEncoderStream(blob);
         
     | 
| 
      
 436 
     | 
    
         
            +
              const blocks = await collect(readable);
         
     | 
| 
      
 437 
     | 
    
         
            +
              return { cid: blocks.at(-1).cid, blocks };
         
     | 
| 
      
 438 
     | 
    
         
            +
            }
         
     | 
| 
      
 439 
     | 
    
         
            +
            async function decodeFile(blocks, cid, meta) {
         
     | 
| 
      
 440 
     | 
    
         
            +
              const entry = await (0, import_ipfs_unixfs_exporter.exporter)(cid.toString(), blocks, { length: meta.size });
         
     | 
| 
      
 441 
     | 
    
         
            +
              const chunks = [];
         
     | 
| 
      
 442 
     | 
    
         
            +
              for await (const chunk of entry.content()) {
         
     | 
| 
      
 443 
     | 
    
         
            +
                chunks.push(chunk);
         
     | 
| 
      
 444 
     | 
    
         
            +
              }
         
     | 
| 
      
 445 
     | 
    
         
            +
              return new File(chunks, entry.name, { type: meta.type, lastModified: 0 });
         
     | 
| 
      
 446 
     | 
    
         
            +
            }
         
     | 
| 
      
 447 
     | 
    
         
            +
            function createFileEncoderStream(blob) {
         
     | 
| 
      
 448 
     | 
    
         
            +
              const { readable, writable } = new TransformStream({}, queuingStrategy);
         
     | 
| 
      
 449 
     | 
    
         
            +
              const unixfsWriter = UnixFS.createWriter({ writable, settings });
         
     | 
| 
      
 450 
     | 
    
         
            +
              const fileBuilder = new UnixFSFileBuilder("", blob);
         
     | 
| 
      
 451 
     | 
    
         
            +
              void (async () => {
         
     | 
| 
      
 452 
     | 
    
         
            +
                await fileBuilder.finalize(unixfsWriter);
         
     | 
| 
      
 453 
     | 
    
         
            +
                await unixfsWriter.close();
         
     | 
| 
      
 454 
     | 
    
         
            +
              })();
         
     | 
| 
      
 455 
     | 
    
         
            +
              return readable;
         
     | 
| 
      
 456 
     | 
    
         
            +
            }
         
     | 
| 
      
 457 
     | 
    
         
            +
            var UnixFS, raw, import_fixed, import_balanced, import_ipfs_unixfs_exporter, queuingStrategy, settings, UnixFSFileBuilder;
         
     | 
| 
      
 458 
     | 
    
         
            +
            var init_files = __esm({
         
     | 
| 
      
 459 
     | 
    
         
            +
              "src/runtime/files.ts"() {
         
     | 
| 
      
 460 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 461 
     | 
    
         
            +
                UnixFS = __toESM(require("@ipld/unixfs"), 1);
         
     | 
| 
      
 462 
     | 
    
         
            +
                raw = __toESM(require("multiformats/codecs/raw"), 1);
         
     | 
| 
      
 463 
     | 
    
         
            +
                import_fixed = require("@ipld/unixfs/file/chunker/fixed");
         
     | 
| 
      
 464 
     | 
    
         
            +
                import_balanced = require("@ipld/unixfs/file/layout/balanced");
         
     | 
| 
      
 465 
     | 
    
         
            +
                import_ipfs_unixfs_exporter = require("ipfs-unixfs-exporter");
         
     | 
| 
      
 466 
     | 
    
         
            +
                queuingStrategy = UnixFS.withCapacity();
         
     | 
| 
      
 467 
     | 
    
         
            +
                settings = UnixFS.configure({
         
     | 
| 
      
 468 
     | 
    
         
            +
                  fileChunkEncoder: raw,
         
     | 
| 
      
 469 
     | 
    
         
            +
                  smallFileEncoder: raw,
         
     | 
| 
      
 470 
     | 
    
         
            +
                  chunker: (0, import_fixed.withMaxChunkSize)(1024 * 1024),
         
     | 
| 
      
 471 
     | 
    
         
            +
                  fileLayout: (0, import_balanced.withWidth)(1024)
         
     | 
| 
      
 472 
     | 
    
         
            +
                });
         
     | 
| 
      
 473 
     | 
    
         
            +
                UnixFSFileBuilder = class {
         
     | 
| 
      
 474 
     | 
    
         
            +
                  #file;
         
     | 
| 
      
 475 
     | 
    
         
            +
                  constructor(name, file) {
         
     | 
| 
      
 476 
     | 
    
         
            +
                    this.name = name;
         
     | 
| 
      
 477 
     | 
    
         
            +
                    this.#file = file;
         
     | 
| 
      
 478 
     | 
    
         
            +
                  }
         
     | 
| 
      
 479 
     | 
    
         
            +
                  async finalize(writer) {
         
     | 
| 
      
 480 
     | 
    
         
            +
                    const unixfsFileWriter = UnixFS.createFileWriter(writer);
         
     | 
| 
      
 481 
     | 
    
         
            +
                    await this.#file.stream().pipeTo(
         
     | 
| 
      
 482 
     | 
    
         
            +
                      new WritableStream({
         
     | 
| 
      
 483 
     | 
    
         
            +
                        async write(chunk) {
         
     | 
| 
      
 484 
     | 
    
         
            +
                          await unixfsFileWriter.write(chunk);
         
     | 
| 
      
 485 
     | 
    
         
            +
                        }
         
     | 
| 
      
 486 
     | 
    
         
            +
                      })
         
     | 
| 
      
 487 
     | 
    
         
            +
                    );
         
     | 
| 
      
 488 
     | 
    
         
            +
                    return await unixfsFileWriter.close();
         
     | 
| 
      
 489 
     | 
    
         
            +
                  }
         
     | 
| 
      
 490 
     | 
    
         
            +
                };
         
     | 
| 
      
 491 
     | 
    
         
            +
              }
         
     | 
| 
      
 492 
     | 
    
         
            +
            });
         
     | 
| 
      
 493 
     | 
    
         
            +
             
     | 
| 
       301 
494 
     | 
    
         
             
            // src/runtime/store-file-version.ts
         
     | 
| 
       302 
495 
     | 
    
         
             
            var FILESTORE_VERSION;
         
     | 
| 
       303 
496 
     | 
    
         
             
            var init_store_file_version = __esm({
         
     | 
| 
         @@ -332,11 +525,14 @@ __export(runtime_exports, { 
     | 
|
| 
       332 
525 
     | 
    
         
             
              INDEXDB_VERSION: () => INDEXDB_VERSION,
         
     | 
| 
       333 
526 
     | 
    
         
             
              SQLITE_VERSION: () => SQLITE_VERSION,
         
     | 
| 
       334 
527 
     | 
    
         
             
              SysContainer: () => SysContainer,
         
     | 
| 
      
 528 
     | 
    
         
            +
              crypto: () => crypto_exports,
         
     | 
| 
       335 
529 
     | 
    
         
             
              dataDir: () => dataDir,
         
     | 
| 
       336 
530 
     | 
    
         
             
              ensureIndexName: () => ensureIndexName,
         
     | 
| 
      
 531 
     | 
    
         
            +
              files: () => files_exports,
         
     | 
| 
       337 
532 
     | 
    
         
             
              getFileName: () => getFileName,
         
     | 
| 
       338 
533 
     | 
    
         
             
              getPath: () => getPath,
         
     | 
| 
       339 
     | 
    
         
            -
              join: () => join
         
     | 
| 
      
 534 
     | 
    
         
            +
              join: () => join,
         
     | 
| 
      
 535 
     | 
    
         
            +
              sql: () => store_sql_exports
         
     | 
| 
       340 
536 
     | 
    
         
             
            });
         
     | 
| 
       341 
537 
     | 
    
         
             
            var init_runtime = __esm({
         
     | 
| 
       342 
538 
     | 
    
         
             
              "src/runtime/index.ts"() {
         
     | 
| 
         @@ -344,6 +540,9 @@ var init_runtime = __esm({ 
     | 
|
| 
       344 
540 
     | 
    
         
             
                init_sys_container();
         
     | 
| 
       345 
541 
     | 
    
         
             
                init_data_dir();
         
     | 
| 
       346 
542 
     | 
    
         
             
                init_store_file_utils();
         
     | 
| 
      
 543 
     | 
    
         
            +
                init_store_sql();
         
     | 
| 
      
 544 
     | 
    
         
            +
                init_crypto();
         
     | 
| 
      
 545 
     | 
    
         
            +
                init_files();
         
     | 
| 
       347 
546 
     | 
    
         
             
                init_store_file_version();
         
     | 
| 
       348 
547 
     | 
    
         
             
                init_store_indexdb_version();
         
     | 
| 
       349 
548 
     | 
    
         
             
                init_version();
         
     | 
| 
         @@ -863,81 +1062,6 @@ var init_store_file = __esm({ 
     | 
|
| 
       863 
1062 
     | 
    
         
             
              }
         
     | 
| 
       864 
1063 
     | 
    
         
             
            });
         
     | 
| 
       865 
1064 
     | 
    
         | 
| 
       866 
     | 
    
         
            -
            // src/runtime/store-sql/types.ts
         
     | 
| 
       867 
     | 
    
         
            -
            var DefaultSQLTableNames;
         
     | 
| 
       868 
     | 
    
         
            -
            var init_types2 = __esm({
         
     | 
| 
       869 
     | 
    
         
            -
              "src/runtime/store-sql/types.ts"() {
         
     | 
| 
       870 
     | 
    
         
            -
                "use strict";
         
     | 
| 
       871 
     | 
    
         
            -
                DefaultSQLTableNames = {
         
     | 
| 
       872 
     | 
    
         
            -
                  data: "Datas",
         
     | 
| 
       873 
     | 
    
         
            -
                  meta: "Metas",
         
     | 
| 
       874 
     | 
    
         
            -
                  wal: "Wals"
         
     | 
| 
       875 
     | 
    
         
            -
                };
         
     | 
| 
       876 
     | 
    
         
            -
              }
         
     | 
| 
       877 
     | 
    
         
            -
            });
         
     | 
| 
       878 
     | 
    
         
            -
             
     | 
| 
       879 
     | 
    
         
            -
            // src/runtime/store-sql/ensurer.ts
         
     | 
| 
       880 
     | 
    
         
            -
            function sqlTableName(...names) {
         
     | 
| 
       881 
     | 
    
         
            -
              return names.map((name) => name.replace(/^[^a-zA-Z0-9]+/, "").replace(/[^a-zA-Z0-9]+/g, "_")).filter((i) => i.length).join("_");
         
     | 
| 
       882 
     | 
    
         
            -
            }
         
     | 
| 
       883 
     | 
    
         
            -
            function ensureTableNames(url, opts) {
         
     | 
| 
       884 
     | 
    
         
            -
              let isIndex = "";
         
     | 
| 
       885 
     | 
    
         
            -
              if (url.searchParams.has("index")) {
         
     | 
| 
       886 
     | 
    
         
            -
                isIndex = url.searchParams.get("index") || ".idx";
         
     | 
| 
       887 
     | 
    
         
            -
              }
         
     | 
| 
       888 
     | 
    
         
            -
              const ret = opts?.tableNames || DefaultSQLTableNames;
         
     | 
| 
       889 
     | 
    
         
            -
              if (isIndex.length) {
         
     | 
| 
       890 
     | 
    
         
            -
                return {
         
     | 
| 
       891 
     | 
    
         
            -
                  data: sqlTableName(isIndex, ret.data),
         
     | 
| 
       892 
     | 
    
         
            -
                  meta: sqlTableName(isIndex, ret.meta),
         
     | 
| 
       893 
     | 
    
         
            -
                  wal: sqlTableName(isIndex, ret.wal)
         
     | 
| 
       894 
     | 
    
         
            -
                };
         
     | 
| 
       895 
     | 
    
         
            -
              }
         
     | 
| 
       896 
     | 
    
         
            -
              return {
         
     | 
| 
       897 
     | 
    
         
            -
                data: sqlTableName(ret.data),
         
     | 
| 
       898 
     | 
    
         
            -
                meta: sqlTableName(ret.meta),
         
     | 
| 
       899 
     | 
    
         
            -
                wal: sqlTableName(ret.wal)
         
     | 
| 
       900 
     | 
    
         
            -
              };
         
     | 
| 
       901 
     | 
    
         
            -
            }
         
     | 
| 
       902 
     | 
    
         
            -
            function ensureTextEncoder(opts) {
         
     | 
| 
       903 
     | 
    
         
            -
              return opts?.textEncoder || textEncoder2;
         
     | 
| 
       904 
     | 
    
         
            -
            }
         
     | 
| 
       905 
     | 
    
         
            -
            function ensureTextDecoder(opts) {
         
     | 
| 
       906 
     | 
    
         
            -
              return opts?.textDecoder || textDecoder2;
         
     | 
| 
       907 
     | 
    
         
            -
            }
         
     | 
| 
       908 
     | 
    
         
            -
            function url2sqlFlavor(url, logger) {
         
     | 
| 
       909 
     | 
    
         
            -
              const flavor = url.protocol.replace(/:.*$/, "");
         
     | 
| 
       910 
     | 
    
         
            -
              switch (flavor) {
         
     | 
| 
       911 
     | 
    
         
            -
                case "sqlite":
         
     | 
| 
       912 
     | 
    
         
            -
                case "mysql":
         
     | 
| 
       913 
     | 
    
         
            -
                case "postgres":
         
     | 
| 
       914 
     | 
    
         
            -
                  return flavor;
         
     | 
| 
       915 
     | 
    
         
            -
                default:
         
     | 
| 
       916 
     | 
    
         
            -
                  throw logger.Error().Str("flavor", flavor).Msg("unsupported protocol").AsError();
         
     | 
| 
       917 
     | 
    
         
            -
              }
         
     | 
| 
       918 
     | 
    
         
            -
            }
         
     | 
| 
       919 
     | 
    
         
            -
            function ensureSQLOpts(url, opts, componentName, ctx) {
         
     | 
| 
       920 
     | 
    
         
            -
              const logger = ensureLogger(opts, componentName, ctx);
         
     | 
| 
       921 
     | 
    
         
            -
              return {
         
     | 
| 
       922 
     | 
    
         
            -
                url,
         
     | 
| 
       923 
     | 
    
         
            -
                sqlFlavor: url2sqlFlavor(url, logger),
         
     | 
| 
       924 
     | 
    
         
            -
                tableNames: ensureTableNames(url, opts),
         
     | 
| 
       925 
     | 
    
         
            -
                logger,
         
     | 
| 
       926 
     | 
    
         
            -
                textEncoder: ensureTextEncoder(opts),
         
     | 
| 
       927 
     | 
    
         
            -
                textDecoder: ensureTextDecoder(opts)
         
     | 
| 
       928 
     | 
    
         
            -
              };
         
     | 
| 
       929 
     | 
    
         
            -
            }
         
     | 
| 
       930 
     | 
    
         
            -
            var textEncoder2, textDecoder2;
         
     | 
| 
       931 
     | 
    
         
            -
            var init_ensurer = __esm({
         
     | 
| 
       932 
     | 
    
         
            -
              "src/runtime/store-sql/ensurer.ts"() {
         
     | 
| 
       933 
     | 
    
         
            -
                "use strict";
         
     | 
| 
       934 
     | 
    
         
            -
                init_utils();
         
     | 
| 
       935 
     | 
    
         
            -
                init_types2();
         
     | 
| 
       936 
     | 
    
         
            -
                textEncoder2 = new TextEncoder();
         
     | 
| 
       937 
     | 
    
         
            -
                textDecoder2 = new TextDecoder();
         
     | 
| 
       938 
     | 
    
         
            -
              }
         
     | 
| 
       939 
     | 
    
         
            -
            });
         
     | 
| 
       940 
     | 
    
         
            -
             
     | 
| 
       941 
1065 
     | 
    
         
             
            // src/runtime/store-sql/sqlite-adapter-better-sqlite3.ts
         
     | 
| 
       942 
1066 
     | 
    
         
             
            var import_cement8, onceSQLiteConnections, SQLiteConnection;
         
     | 
| 
       943 
1067 
     | 
    
         
             
            var init_sqlite_adapter_better_sqlite3 = __esm({
         
     | 
| 
         @@ -1479,15 +1603,15 @@ var init_store_version_factory = __esm({ 
     | 
|
| 
       1479 
1603 
     | 
    
         
             
            });
         
     | 
| 
       1480 
1604 
     | 
    
         | 
| 
       1481 
1605 
     | 
    
         
             
            // src/runtime/store-sql/store-sql.ts
         
     | 
| 
       1482 
     | 
    
         
            -
            var  
     | 
| 
       1483 
     | 
    
         
            -
            __export( 
     | 
| 
      
 1606 
     | 
    
         
            +
            var store_sql_exports2 = {};
         
     | 
| 
      
 1607 
     | 
    
         
            +
            __export(store_sql_exports2, {
         
     | 
| 
       1484 
1608 
     | 
    
         
             
              SQLDataGateway: () => SQLDataGateway,
         
     | 
| 
       1485 
1609 
     | 
    
         
             
              SQLMetaGateway: () => SQLMetaGateway,
         
     | 
| 
       1486 
1610 
     | 
    
         
             
              SQLTestStore: () => SQLTestStore,
         
     | 
| 
       1487 
1611 
     | 
    
         
             
              SQLWalGateway: () => SQLWalGateway
         
     | 
| 
       1488 
1612 
     | 
    
         
             
            });
         
     | 
| 
       1489 
1613 
     | 
    
         
             
            var import_cement13, SQLWalGateway, SQLMetaGateway, SQLDataGateway, SQLTestStore;
         
     | 
| 
       1490 
     | 
    
         
            -
            var  
     | 
| 
      
 1614 
     | 
    
         
            +
            var init_store_sql2 = __esm({
         
     | 
| 
       1491 
1615 
     | 
    
         
             
              "src/runtime/store-sql/store-sql.ts"() {
         
     | 
| 
       1492 
1616 
     | 
    
         
             
                "use strict";
         
     | 
| 
       1493 
1617 
     | 
    
         
             
                import_cement13 = require("@adviser/cement");
         
     | 
| 
         @@ -1733,6 +1857,7 @@ __export(src_exports, { 
     | 
|
| 
       1733 
1857 
     | 
    
         
             
              index: () => index,
         
     | 
| 
       1734 
1858 
     | 
    
         
             
              isFalsy: () => isFalsy,
         
     | 
| 
       1735 
1859 
     | 
    
         
             
              rt: () => runtime_exports,
         
     | 
| 
      
 1860 
     | 
    
         
            +
              runtime: () => runtime_exports,
         
     | 
| 
       1736 
1861 
     | 
    
         
             
              throwFalsy: () => throwFalsy
         
     | 
| 
       1737 
1862 
     | 
    
         
             
            });
         
     | 
| 
       1738 
1863 
     | 
    
         
             
            module.exports = __toCommonJS(src_exports);
         
     | 
| 
         @@ -1992,72 +2117,7 @@ var ConnectREST = class extends ConnectionBase { 
     | 
|
| 
       1992 
2117 
     | 
    
         
             
            // src/blockstore/store-factory.ts
         
     | 
| 
       1993 
2118 
     | 
    
         
             
            var import_cement14 = require("@adviser/cement");
         
     | 
| 
       1994 
2119 
     | 
    
         
             
            init_data_dir();
         
     | 
| 
       1995 
     | 
    
         
            -
             
     | 
| 
       1996 
     | 
    
         
            -
            // src/runtime/files.ts
         
     | 
| 
       1997 
     | 
    
         
            -
            var UnixFS = __toESM(require("@ipld/unixfs"), 1);
         
     | 
| 
       1998 
     | 
    
         
            -
            var raw = __toESM(require("multiformats/codecs/raw"), 1);
         
     | 
| 
       1999 
     | 
    
         
            -
            var import_fixed = require("@ipld/unixfs/file/chunker/fixed");
         
     | 
| 
       2000 
     | 
    
         
            -
            var import_balanced = require("@ipld/unixfs/file/layout/balanced");
         
     | 
| 
       2001 
     | 
    
         
            -
            var import_ipfs_unixfs_exporter = require("ipfs-unixfs-exporter");
         
     | 
| 
       2002 
     | 
    
         
            -
            var queuingStrategy = UnixFS.withCapacity();
         
     | 
| 
       2003 
     | 
    
         
            -
            var settings = UnixFS.configure({
         
     | 
| 
       2004 
     | 
    
         
            -
              fileChunkEncoder: raw,
         
     | 
| 
       2005 
     | 
    
         
            -
              smallFileEncoder: raw,
         
     | 
| 
       2006 
     | 
    
         
            -
              chunker: (0, import_fixed.withMaxChunkSize)(1024 * 1024),
         
     | 
| 
       2007 
     | 
    
         
            -
              fileLayout: (0, import_balanced.withWidth)(1024)
         
     | 
| 
       2008 
     | 
    
         
            -
            });
         
     | 
| 
       2009 
     | 
    
         
            -
            async function collect(collectable) {
         
     | 
| 
       2010 
     | 
    
         
            -
              const chunks = [];
         
     | 
| 
       2011 
     | 
    
         
            -
              await collectable.pipeTo(
         
     | 
| 
       2012 
     | 
    
         
            -
                new WritableStream({
         
     | 
| 
       2013 
     | 
    
         
            -
                  write(chunk) {
         
     | 
| 
       2014 
     | 
    
         
            -
                    chunks.push(chunk);
         
     | 
| 
       2015 
     | 
    
         
            -
                  }
         
     | 
| 
       2016 
     | 
    
         
            -
                })
         
     | 
| 
       2017 
     | 
    
         
            -
              );
         
     | 
| 
       2018 
     | 
    
         
            -
              return chunks;
         
     | 
| 
       2019 
     | 
    
         
            -
            }
         
     | 
| 
       2020 
     | 
    
         
            -
            async function encodeFile(blob) {
         
     | 
| 
       2021 
     | 
    
         
            -
              const readable = createFileEncoderStream(blob);
         
     | 
| 
       2022 
     | 
    
         
            -
              const blocks = await collect(readable);
         
     | 
| 
       2023 
     | 
    
         
            -
              return { cid: blocks.at(-1).cid, blocks };
         
     | 
| 
       2024 
     | 
    
         
            -
            }
         
     | 
| 
       2025 
     | 
    
         
            -
            async function decodeFile(blocks, cid, meta) {
         
     | 
| 
       2026 
     | 
    
         
            -
              const entry = await (0, import_ipfs_unixfs_exporter.exporter)(cid.toString(), blocks, { length: meta.size });
         
     | 
| 
       2027 
     | 
    
         
            -
              const chunks = [];
         
     | 
| 
       2028 
     | 
    
         
            -
              for await (const chunk of entry.content()) {
         
     | 
| 
       2029 
     | 
    
         
            -
                chunks.push(chunk);
         
     | 
| 
       2030 
     | 
    
         
            -
              }
         
     | 
| 
       2031 
     | 
    
         
            -
              return new File(chunks, entry.name, { type: meta.type, lastModified: 0 });
         
     | 
| 
       2032 
     | 
    
         
            -
            }
         
     | 
| 
       2033 
     | 
    
         
            -
            function createFileEncoderStream(blob) {
         
     | 
| 
       2034 
     | 
    
         
            -
              const { readable, writable } = new TransformStream({}, queuingStrategy);
         
     | 
| 
       2035 
     | 
    
         
            -
              const unixfsWriter = UnixFS.createWriter({ writable, settings });
         
     | 
| 
       2036 
     | 
    
         
            -
              const fileBuilder = new UnixFSFileBuilder("", blob);
         
     | 
| 
       2037 
     | 
    
         
            -
              void (async () => {
         
     | 
| 
       2038 
     | 
    
         
            -
                await fileBuilder.finalize(unixfsWriter);
         
     | 
| 
       2039 
     | 
    
         
            -
                await unixfsWriter.close();
         
     | 
| 
       2040 
     | 
    
         
            -
              })();
         
     | 
| 
       2041 
     | 
    
         
            -
              return readable;
         
     | 
| 
       2042 
     | 
    
         
            -
            }
         
     | 
| 
       2043 
     | 
    
         
            -
            var UnixFSFileBuilder = class {
         
     | 
| 
       2044 
     | 
    
         
            -
              #file;
         
     | 
| 
       2045 
     | 
    
         
            -
              constructor(name, file) {
         
     | 
| 
       2046 
     | 
    
         
            -
                this.name = name;
         
     | 
| 
       2047 
     | 
    
         
            -
                this.#file = file;
         
     | 
| 
       2048 
     | 
    
         
            -
              }
         
     | 
| 
       2049 
     | 
    
         
            -
              async finalize(writer) {
         
     | 
| 
       2050 
     | 
    
         
            -
                const unixfsFileWriter = UnixFS.createFileWriter(writer);
         
     | 
| 
       2051 
     | 
    
         
            -
                await this.#file.stream().pipeTo(
         
     | 
| 
       2052 
     | 
    
         
            -
                  new WritableStream({
         
     | 
| 
       2053 
     | 
    
         
            -
                    async write(chunk) {
         
     | 
| 
       2054 
     | 
    
         
            -
                      await unixfsFileWriter.write(chunk);
         
     | 
| 
       2055 
     | 
    
         
            -
                    }
         
     | 
| 
       2056 
     | 
    
         
            -
                  })
         
     | 
| 
       2057 
     | 
    
         
            -
                );
         
     | 
| 
       2058 
     | 
    
         
            -
                return await unixfsFileWriter.close();
         
     | 
| 
       2059 
     | 
    
         
            -
              }
         
     | 
| 
       2060 
     | 
    
         
            -
            };
         
     | 
| 
      
 2120 
     | 
    
         
            +
            init_files();
         
     | 
| 
       2061 
2121 
     | 
    
         | 
| 
       2062 
2122 
     | 
    
         
             
            // src/blockstore/store.ts
         
     | 
| 
       2063 
2123 
     | 
    
         
             
            var import_p_limit2 = __toESM(require("p-limit"), 1);
         
     | 
| 
         @@ -2127,7 +2187,7 @@ var import_multiformats2 = require("multiformats"); 
     | 
|
| 
       2127 
2187 
     | 
    
         
             
            var import_block3 = require("multiformats/block");
         
     | 
| 
       2128 
2188 
     | 
    
         
             
            var dagcbor = __toESM(require("@ipld/dag-cbor"), 1);
         
     | 
| 
       2129 
2189 
     | 
    
         
             
            var import_block4 = require("@web3-storage/pail/block");
         
     | 
| 
       2130 
     | 
    
         
            -
            var  
     | 
| 
      
 2190 
     | 
    
         
            +
            var import_utils8 = require("prolly-trees/utils");
         
     | 
| 
       2131 
2191 
     | 
    
         
             
            var import_cache = require("prolly-trees/cache");
         
     | 
| 
       2132 
2192 
     | 
    
         
             
            var import_cid_set = require("prolly-trees/cid-set");
         
     | 
| 
       2133 
2193 
     | 
    
         | 
| 
         @@ -2315,7 +2375,7 @@ function makeEncDec(logger, crypto2, randomBytes2) { 
     | 
|
| 
       2315 
2375 
     | 
    
         
             
              };
         
     | 
| 
       2316 
2376 
     | 
    
         
             
              return { encrypt, decrypt };
         
     | 
| 
       2317 
2377 
     | 
    
         
             
            }
         
     | 
| 
       2318 
     | 
    
         
            -
            var chunker = (0,  
     | 
| 
      
 2378 
     | 
    
         
            +
            var chunker = (0, import_utils8.bf)(30);
         
     | 
| 
       2319 
2379 
     | 
    
         
             
            function hexStringToUint8Array(hexString) {
         
     | 
| 
       2320 
2380 
     | 
    
         
             
              const length = hexString.length;
         
     | 
| 
       2321 
2381 
     | 
    
         
             
              const uint8Array = new Uint8Array(length / 2);
         
     | 
| 
         @@ -2380,30 +2440,7 @@ async function decodeCarBlocks(logger, crypto2, root3, get2, keyMaterial) { 
     | 
|
| 
       2380 
2440 
     | 
    
         
             
            // src/blockstore/transaction.ts
         
     | 
| 
       2381 
2441 
     | 
    
         
             
            var import_block5 = require("@web3-storage/pail/block");
         
     | 
| 
       2382 
2442 
     | 
    
         
             
            init_types();
         
     | 
| 
       2383 
     | 
    
         
            -
             
     | 
| 
       2384 
     | 
    
         
            -
            // src/runtime/crypto.ts
         
     | 
| 
       2385 
     | 
    
         
            -
            function randomBytes(size) {
         
     | 
| 
       2386 
     | 
    
         
            -
              const bytes = new Uint8Array(size);
         
     | 
| 
       2387 
     | 
    
         
            -
              if (size > 0) {
         
     | 
| 
       2388 
     | 
    
         
            -
                crypto.getRandomValues(bytes);
         
     | 
| 
       2389 
     | 
    
         
            -
              }
         
     | 
| 
       2390 
     | 
    
         
            -
              return bytes;
         
     | 
| 
       2391 
     | 
    
         
            -
            }
         
     | 
| 
       2392 
     | 
    
         
            -
            function digestSHA256(data) {
         
     | 
| 
       2393 
     | 
    
         
            -
              return Promise.resolve(crypto.subtle.digest("SHA-256", data));
         
     | 
| 
       2394 
     | 
    
         
            -
            }
         
     | 
| 
       2395 
     | 
    
         
            -
            function toCryptoOpts(cryptoOpts = {}) {
         
     | 
| 
       2396 
     | 
    
         
            -
              const opts = {
         
     | 
| 
       2397 
     | 
    
         
            -
                importKey: cryptoOpts.importKey || crypto.subtle.importKey.bind(crypto.subtle),
         
     | 
| 
       2398 
     | 
    
         
            -
                encrypt: cryptoOpts.encrypt || crypto.subtle.encrypt.bind(crypto.subtle),
         
     | 
| 
       2399 
     | 
    
         
            -
                decrypt: cryptoOpts.decrypt || crypto.subtle.decrypt.bind(crypto.subtle),
         
     | 
| 
       2400 
     | 
    
         
            -
                randomBytes: cryptoOpts.randomBytes || randomBytes,
         
     | 
| 
       2401 
     | 
    
         
            -
                digestSHA256: cryptoOpts.digestSHA256 || digestSHA256
         
     | 
| 
       2402 
     | 
    
         
            -
              };
         
     | 
| 
       2403 
     | 
    
         
            -
              return opts;
         
     | 
| 
       2404 
     | 
    
         
            -
            }
         
     | 
| 
       2405 
     | 
    
         
            -
             
     | 
| 
       2406 
     | 
    
         
            -
            // src/blockstore/transaction.ts
         
     | 
| 
      
 2443 
     | 
    
         
            +
            init_crypto();
         
     | 
| 
       2407 
2444 
     | 
    
         
             
            init_utils();
         
     | 
| 
       2408 
2445 
     | 
    
         
             
            var CarTransaction = class extends import_block5.MemoryBlockstore {
         
     | 
| 
       2409 
2446 
     | 
    
         
             
              constructor(parent, opts = { add: true }) {
         
     | 
| 
         @@ -3071,8 +3108,8 @@ var VersionedStore = class { 
     | 
|
| 
       3071 
3108 
     | 
    
         
             
                this._onClosed.push(fn);
         
     | 
| 
       3072 
3109 
     | 
    
         
             
              }
         
     | 
| 
       3073 
3110 
     | 
    
         
             
            };
         
     | 
| 
       3074 
     | 
    
         
            -
            var  
     | 
| 
       3075 
     | 
    
         
            -
            var  
     | 
| 
      
 3111 
     | 
    
         
            +
            var textEncoder2 = new TextEncoder();
         
     | 
| 
      
 3112 
     | 
    
         
            +
            var textDecoder2 = new TextDecoder();
         
     | 
| 
       3076 
3113 
     | 
    
         
             
            var MetaStore = class extends VersionedStore {
         
     | 
| 
       3077 
3114 
     | 
    
         
             
              constructor(name, url, logger, gateway) {
         
     | 
| 
       3078 
3115 
     | 
    
         
             
                super(name, url, ensureLogger(logger, "MetaStore", {}));
         
     | 
| 
         @@ -3111,7 +3148,7 @@ var MetaStore = class extends VersionedStore { 
     | 
|
| 
       3111 
3148 
     | 
    
         
             
                  throw this.logger.Error().Err(bytes.Err()).Msg("gateway get").AsError();
         
     | 
| 
       3112 
3149 
     | 
    
         
             
                }
         
     | 
| 
       3113 
3150 
     | 
    
         
             
                try {
         
     | 
| 
       3114 
     | 
    
         
            -
                  return [this.parseHeader( 
     | 
| 
      
 3151 
     | 
    
         
            +
                  return [this.parseHeader(textDecoder2.decode(bytes.Ok()))];
         
     | 
| 
       3115 
3152 
     | 
    
         
             
                } catch (e) {
         
     | 
| 
       3116 
3153 
     | 
    
         
             
                  throw this.logger.Error().Err(e).Msg("parseHeader").AsError();
         
     | 
| 
       3117 
3154 
     | 
    
         
             
                }
         
     | 
| 
         @@ -3123,7 +3160,7 @@ var MetaStore = class extends VersionedStore { 
     | 
|
| 
       3123 
3160 
     | 
    
         
             
                if (url.isErr()) {
         
     | 
| 
       3124 
3161 
     | 
    
         
             
                  throw this.logger.Error().Err(url.Err()).Str("branch", branch).Url(this.url).Msg("got error from gateway.buildUrl").AsError();
         
     | 
| 
       3125 
3162 
     | 
    
         
             
                }
         
     | 
| 
       3126 
     | 
    
         
            -
                const res = await this.gateway.put(url.Ok(),  
     | 
| 
      
 3163 
     | 
    
         
            +
                const res = await this.gateway.put(url.Ok(), textEncoder2.encode(bytes));
         
     | 
| 
       3127 
3164 
     | 
    
         
             
                if (res.isErr()) {
         
     | 
| 
       3128 
3165 
     | 
    
         
             
                  throw this.logger.Error().Err(res.Err()).Msg("got error from gateway.put").AsError();
         
     | 
| 
       3129 
3166 
     | 
    
         
             
                }
         
     | 
| 
         @@ -3363,7 +3400,7 @@ var RemoteWAL = class extends VersionedStore { 
     | 
|
| 
       3363 
3400 
     | 
    
         
             
                  throw this.logger.Error().Err(bytes.Err()).Msg("error get").AsError();
         
     | 
| 
       3364 
3401 
     | 
    
         
             
                }
         
     | 
| 
       3365 
3402 
     | 
    
         
             
                try {
         
     | 
| 
       3366 
     | 
    
         
            -
                  return bytes && (0, import_dag_json.parse)( 
     | 
| 
      
 3403 
     | 
    
         
            +
                  return bytes && (0, import_dag_json.parse)(textDecoder2.decode(bytes.Ok()));
         
     | 
| 
       3367 
3404 
     | 
    
         
             
                } catch (e) {
         
     | 
| 
       3368 
3405 
     | 
    
         
             
                  throw this.logger.Error().Err(e).Msg("error parse").AsError();
         
     | 
| 
       3369 
3406 
     | 
    
         
             
                }
         
     | 
| 
         @@ -3379,7 +3416,7 @@ var RemoteWAL = class extends VersionedStore { 
     | 
|
| 
       3379 
3416 
     | 
    
         
             
                } catch (e) {
         
     | 
| 
       3380 
3417 
     | 
    
         
             
                  throw this.logger.Error().Err(e).Any("state", state).Msg("error format").AsError();
         
     | 
| 
       3381 
3418 
     | 
    
         
             
                }
         
     | 
| 
       3382 
     | 
    
         
            -
                const res = await this.gateway.put(filepath.Ok(),  
     | 
| 
      
 3419 
     | 
    
         
            +
                const res = await this.gateway.put(filepath.Ok(), textEncoder2.encode(encoded));
         
     | 
| 
       3383 
3420 
     | 
    
         
             
                if (res.isErr()) {
         
     | 
| 
       3384 
3421 
     | 
    
         
             
                  throw this.logger.Error().Err(res.Err()).Str("filePath", filepath.Ok().toString()).Msg("error saving").AsError();
         
     | 
| 
       3385 
3422 
     | 
    
         
             
                }
         
     | 
| 
         @@ -3415,16 +3452,34 @@ function toURL(pathOrUrl, isIndex) { 
     | 
|
| 
       3415 
3452 
     | 
    
         
             
                return ensureIsIndex(url, isIndex);
         
     | 
| 
       3416 
3453 
     | 
    
         
             
              }
         
     | 
| 
       3417 
3454 
     | 
    
         
             
            }
         
     | 
| 
      
 3455 
     | 
    
         
            +
            var storeFactory = /* @__PURE__ */ new Map();
         
     | 
| 
      
 3456 
     | 
    
         
            +
            function ensureName(name, url) {
         
     | 
| 
      
 3457 
     | 
    
         
            +
              if (!url.searchParams.has("name")) {
         
     | 
| 
      
 3458 
     | 
    
         
            +
                url.searchParams.set("name", name);
         
     | 
| 
      
 3459 
     | 
    
         
            +
              }
         
     | 
| 
      
 3460 
     | 
    
         
            +
            }
         
     | 
| 
       3418 
3461 
     | 
    
         
             
            function buildURL(optURL, loader) {
         
     | 
| 
       3419 
3462 
     | 
    
         
             
              const storeOpts = loader.ebOpts.store;
         
     | 
| 
       3420 
     | 
    
         
            -
               
     | 
| 
      
 3463 
     | 
    
         
            +
              const obuItem = Array.from(storeFactory.values()).find((items) => items.overrideBaseURL);
         
     | 
| 
      
 3464 
     | 
    
         
            +
              let obuUrl;
         
     | 
| 
      
 3465 
     | 
    
         
            +
              if (obuItem && obuItem.overrideBaseURL) {
         
     | 
| 
      
 3466 
     | 
    
         
            +
                obuUrl = new URL(obuItem.overrideBaseURL);
         
     | 
| 
      
 3467 
     | 
    
         
            +
              }
         
     | 
| 
      
 3468 
     | 
    
         
            +
              return toURL(optURL || obuUrl || dataDir(loader.name, storeOpts.stores?.base), storeOpts.isIndex);
         
     | 
| 
       3421 
3469 
     | 
    
         
             
            }
         
     | 
| 
       3422 
     | 
    
         
            -
            var storeFactory = /* @__PURE__ */ new Map();
         
     | 
| 
       3423 
3470 
     | 
    
         
             
            function registerStoreProtocol(item) {
         
     | 
| 
       3424 
3471 
     | 
    
         
             
              if (storeFactory.has(item.protocol)) {
         
     | 
| 
       3425 
3472 
     | 
    
         
             
                throw new Error(`protocol ${item.protocol} already registered`);
         
     | 
| 
       3426 
3473 
     | 
    
         
             
              }
         
     | 
| 
      
 3474 
     | 
    
         
            +
              if (item.overrideBaseURL) {
         
     | 
| 
      
 3475 
     | 
    
         
            +
                Array.from(storeFactory.values()).forEach((items) => {
         
     | 
| 
      
 3476 
     | 
    
         
            +
                  items.overrideBaseURL = void 0;
         
     | 
| 
      
 3477 
     | 
    
         
            +
                });
         
     | 
| 
      
 3478 
     | 
    
         
            +
              }
         
     | 
| 
       3427 
3479 
     | 
    
         
             
              storeFactory.set(item.protocol, item);
         
     | 
| 
      
 3480 
     | 
    
         
            +
              return () => {
         
     | 
| 
      
 3481 
     | 
    
         
            +
                storeFactory.delete(item.protocol);
         
     | 
| 
      
 3482 
     | 
    
         
            +
              };
         
     | 
| 
       3428 
3483 
     | 
    
         
             
            }
         
     | 
| 
       3429 
3484 
     | 
    
         
             
            function runStoreFactory(url, logger, run) {
         
     | 
| 
       3430 
3485 
     | 
    
         
             
              const item = storeFactory.get(url.protocol);
         
     | 
| 
         @@ -3443,6 +3498,7 @@ function loadDataGateway(url, logger) { 
     | 
|
| 
       3443 
3498 
     | 
    
         
             
            var onceDataStoreFactory = new import_cement14.KeyedResolvOnce();
         
     | 
| 
       3444 
3499 
     | 
    
         
             
            async function dataStoreFactory(loader) {
         
     | 
| 
       3445 
3500 
     | 
    
         
             
              const url = buildURL(loader.ebOpts.store.stores?.data, loader);
         
     | 
| 
      
 3501 
     | 
    
         
            +
              ensureName(loader.name, url);
         
     | 
| 
       3446 
3502 
     | 
    
         
             
              const logger = ensureLogger(loader.logger, "dataStoreFactory", { url: url.toString() });
         
     | 
| 
       3447 
3503 
     | 
    
         
             
              url.searchParams.set("store", "data");
         
     | 
| 
       3448 
3504 
     | 
    
         
             
              return onceDataStoreFactory.get(url.toString()).once(async () => {
         
     | 
| 
         @@ -3462,15 +3518,14 @@ function loadMetaGateway(url, logger) { 
     | 
|
| 
       3462 
3518 
     | 
    
         
             
            var onceMetaStoreFactory = new import_cement14.KeyedResolvOnce();
         
     | 
| 
       3463 
3519 
     | 
    
         
             
            async function metaStoreFactory(loader) {
         
     | 
| 
       3464 
3520 
     | 
    
         
             
              const url = buildURL(loader.ebOpts.store.stores?.meta, loader);
         
     | 
| 
      
 3521 
     | 
    
         
            +
              ensureName(loader.name, url);
         
     | 
| 
       3465 
3522 
     | 
    
         
             
              const logger = ensureLogger(loader.logger, "metaStoreFactory", { url: () => url.toString() });
         
     | 
| 
       3466 
3523 
     | 
    
         
             
              url.searchParams.set("store", "meta");
         
     | 
| 
       3467 
3524 
     | 
    
         
             
              return onceMetaStoreFactory.get(url.toString()).once(async () => {
         
     | 
| 
       3468 
3525 
     | 
    
         
             
                logger.Debug().Str("protocol", url.protocol).Msg("pre-protocol switch");
         
     | 
| 
       3469 
3526 
     | 
    
         
             
                const gateway = await loadMetaGateway(url, logger);
         
     | 
| 
       3470 
3527 
     | 
    
         
             
                const store = new MetaStore(loader.name, url, loader.logger, gateway);
         
     | 
| 
       3471 
     | 
    
         
            -
                logger.Debug().Msg("pre-start");
         
     | 
| 
       3472 
3528 
     | 
    
         
             
                await store.start();
         
     | 
| 
       3473 
     | 
    
         
            -
                logger.Debug().Msg("post-start");
         
     | 
| 
       3474 
3529 
     | 
    
         
             
                return store;
         
     | 
| 
       3475 
3530 
     | 
    
         
             
              });
         
     | 
| 
       3476 
3531 
     | 
    
         
             
            }
         
     | 
| 
         @@ -3483,6 +3538,7 @@ function loadWalGateway(url, logger) { 
     | 
|
| 
       3483 
3538 
     | 
    
         
             
            var onceRemoteWalFactory = new import_cement14.KeyedResolvOnce();
         
     | 
| 
       3484 
3539 
     | 
    
         
             
            async function remoteWalFactory(loader) {
         
     | 
| 
       3485 
3540 
     | 
    
         
             
              const url = buildURL(loader.ebOpts.store.stores?.meta, loader);
         
     | 
| 
      
 3541 
     | 
    
         
            +
              ensureName(loader.name, url);
         
     | 
| 
       3486 
3542 
     | 
    
         
             
              const logger = ensureLogger(loader.logger, "remoteWalFactory", { url: url.toString() });
         
     | 
| 
       3487 
3543 
     | 
    
         
             
              url.searchParams.set("store", "wal");
         
     | 
| 
       3488 
3544 
     | 
    
         
             
              return onceRemoteWalFactory.get(url.toString()).once(async () => {
         
     | 
| 
         @@ -3562,19 +3618,19 @@ registerStoreProtocol({ 
     | 
|
| 
       3562 
3618 
     | 
    
         
             
            registerStoreProtocol({
         
     | 
| 
       3563 
3619 
     | 
    
         
             
              protocol: "sqlite:",
         
     | 
| 
       3564 
3620 
     | 
    
         
             
              data: async (logger) => {
         
     | 
| 
       3565 
     | 
    
         
            -
                const { SQLDataGateway: SQLDataGateway2 } = await Promise.resolve().then(() => ( 
     | 
| 
      
 3621 
     | 
    
         
            +
                const { SQLDataGateway: SQLDataGateway2 } = await Promise.resolve().then(() => (init_store_sql2(), store_sql_exports2));
         
     | 
| 
       3566 
3622 
     | 
    
         
             
                return new SQLDataGateway2(logger);
         
     | 
| 
       3567 
3623 
     | 
    
         
             
              },
         
     | 
| 
       3568 
3624 
     | 
    
         
             
              meta: async (logger) => {
         
     | 
| 
       3569 
     | 
    
         
            -
                const { SQLMetaGateway: SQLMetaGateway2 } = await Promise.resolve().then(() => ( 
     | 
| 
      
 3625 
     | 
    
         
            +
                const { SQLMetaGateway: SQLMetaGateway2 } = await Promise.resolve().then(() => (init_store_sql2(), store_sql_exports2));
         
     | 
| 
       3570 
3626 
     | 
    
         
             
                return new SQLMetaGateway2(logger);
         
     | 
| 
       3571 
3627 
     | 
    
         
             
              },
         
     | 
| 
       3572 
3628 
     | 
    
         
             
              wal: async (logger) => {
         
     | 
| 
       3573 
     | 
    
         
            -
                const { SQLWalGateway: SQLWalGateway2 } = await Promise.resolve().then(() => ( 
     | 
| 
      
 3629 
     | 
    
         
            +
                const { SQLWalGateway: SQLWalGateway2 } = await Promise.resolve().then(() => (init_store_sql2(), store_sql_exports2));
         
     | 
| 
       3574 
3630 
     | 
    
         
             
                return new SQLWalGateway2(logger);
         
     | 
| 
       3575 
3631 
     | 
    
         
             
              },
         
     | 
| 
       3576 
3632 
     | 
    
         
             
              test: async (logger) => {
         
     | 
| 
       3577 
     | 
    
         
            -
                const { SQLTestStore: SQLTestStore2 } = await Promise.resolve().then(() => ( 
     | 
| 
      
 3633 
     | 
    
         
            +
                const { SQLTestStore: SQLTestStore2 } = await Promise.resolve().then(() => (init_store_sql2(), store_sql_exports2));
         
     | 
| 
       3578 
3634 
     | 
    
         
             
                return new SQLTestStore2(logger);
         
     | 
| 
       3579 
3635 
     | 
    
         
             
              }
         
     | 
| 
       3580 
3636 
     | 
    
         
             
            });
         
     | 
| 
         @@ -4536,7 +4592,7 @@ var Database = class { 
     | 
|
| 
       4536 
4592 
     | 
    
         
             
                }));
         
     | 
| 
       4537 
4593 
     | 
    
         
             
                return { rows, clock: head };
         
     | 
| 
       4538 
4594 
     | 
    
         
             
              }
         
     | 
| 
       4539 
     | 
    
         
            -
              async allDocs() {
         
     | 
| 
      
 4595 
     | 
    
         
            +
              async allDocs(opts = {}) {
         
     | 
| 
       4540 
4596 
     | 
    
         
             
                await this.ready();
         
     | 
| 
       4541 
4597 
     | 
    
         
             
                const { result, head } = await this._crdt.allDocs();
         
     | 
| 
       4542 
4598 
     | 
    
         
             
                const rows = result.map(({ id: key, value, del }) => ({
         
     | 
| 
         @@ -4640,10 +4696,11 @@ function makeName(fnString) { 
     | 
|
| 
       4640 
4696 
     | 
    
         
             
            // src/index.ts
         
     | 
| 
       4641 
4697 
     | 
    
         
             
            init_types();
         
     | 
| 
       4642 
4698 
     | 
    
         
             
            init_runtime();
         
     | 
| 
      
 4699 
     | 
    
         
            +
            init_runtime();
         
     | 
| 
       4643 
4700 
     | 
    
         
             
            init_utils();
         
     | 
| 
       4644 
4701 
     | 
    
         | 
| 
       4645 
4702 
     | 
    
         
             
            // src/version.ts
         
     | 
| 
       4646 
4703 
     | 
    
         
             
            var PACKAGE_VERSION = Object.keys({
         
     | 
| 
       4647 
     | 
    
         
            -
              "0. 
     | 
| 
      
 4704 
     | 
    
         
            +
              "0.0.0-dev": "xxxx"
         
     | 
| 
       4648 
4705 
     | 
    
         
             
            })[0];
         
     | 
| 
       4649 
4706 
     | 
    
         
             
            //# sourceMappingURL=index.cjs.map
         
     |