@fireproof/core 0.7.2-dev.8 → 0.7.3-dev.1

Sign up to get free protection for your applications and to get access to all the features.
package/dist/loader.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Browser } from './storage/browser.js';
2
2
  import { Rest } from './storage/rest.js';
3
+ import { UCAN } from './storage/ucan.js';
3
4
  export const Loader = {
4
5
  appropriate: (name, config = {}) => {
5
6
  if (config.StorageClass) {
@@ -8,6 +9,9 @@ export const Loader = {
8
9
  if (config.type === 'rest') {
9
10
  return new Rest(name, config);
10
11
  }
12
+ if (config.type === 'ucan') {
13
+ return new UCAN(name, config);
14
+ }
11
15
  return new Browser(name, config);
12
16
  }
13
17
  };
@@ -8200,7 +8200,15 @@ var _polyfillNode_events = /*#__PURE__*/Object.freeze({
8200
8200
 
8201
8201
  var require$$0$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_events);
8202
8202
 
8203
- var streamBrowser = require$$0$1.EventEmitter;
8203
+ var streamBrowser;
8204
+ var hasRequiredStreamBrowser;
8205
+
8206
+ function requireStreamBrowser () {
8207
+ if (hasRequiredStreamBrowser) return streamBrowser;
8208
+ hasRequiredStreamBrowser = 1;
8209
+ streamBrowser = require$$0$1.EventEmitter;
8210
+ return streamBrowser;
8211
+ }
8204
8212
 
8205
8213
  // shim for using process in browser
8206
8214
  // based off https://github.com/defunctzombie/node-process/blob/master/browser.js
@@ -8343,7 +8351,7 @@ var argv = [];
8343
8351
  var version$1 = ''; // empty string to avoid regexp issues
8344
8352
  var versions = {};
8345
8353
  var release = {};
8346
- var config$1 = {};
8354
+ var config = {};
8347
8355
 
8348
8356
  function noop$3() {}
8349
8357
 
@@ -8420,7 +8428,7 @@ var browser$1$1 = {
8420
8428
  hrtime: hrtime,
8421
8429
  platform: platform,
8422
8430
  release: release,
8423
- config: config$1,
8431
+ config: config,
8424
8432
  uptime: uptime
8425
8433
  };
8426
8434
 
@@ -8501,11 +8509,11 @@ function format(f) {
8501
8509
  // Mark that a method should not be used.
8502
8510
  // Returns a modified function which warns once by default.
8503
8511
  // If --no-deprecation is set, then it is a no-op.
8504
- function deprecate$1(fn, msg) {
8512
+ function deprecate(fn, msg) {
8505
8513
  // Allow for deprecating things in the process of starting up.
8506
8514
  if (isUndefined(global$1.process)) {
8507
8515
  return function() {
8508
- return deprecate$1(fn, msg).apply(this, arguments);
8516
+ return deprecate(fn, msg).apply(this, arguments);
8509
8517
  };
8510
8518
  }
8511
8519
 
@@ -9114,7 +9122,7 @@ var _polyfillNode_util = {
9114
9122
  isBoolean: isBoolean,
9115
9123
  isArray: isArray,
9116
9124
  inspect: inspect,
9117
- deprecate: deprecate$1,
9125
+ deprecate: deprecate,
9118
9126
  format: format,
9119
9127
  debuglog: debuglog,
9120
9128
  promisify: promisify,
@@ -9127,7 +9135,7 @@ var _polyfillNode_util$1 = /*#__PURE__*/Object.freeze({
9127
9135
  callbackify: callbackify,
9128
9136
  debuglog: debuglog,
9129
9137
  default: _polyfillNode_util,
9130
- deprecate: deprecate$1,
9138
+ deprecate: deprecate,
9131
9139
  format: format,
9132
9140
  inherits: inherits$1,
9133
9141
  inspect: inspect,
@@ -9315,99 +9323,108 @@ function requireBuffer_list () {
9315
9323
  return buffer_list;
9316
9324
  }
9317
9325
 
9318
- // undocumented cb() API, needed for core, not for public API
9319
- function destroy(err, cb) {
9320
- const readableDestroyed = this._readableState && this._readableState.destroyed;
9321
- const writableDestroyed = this._writableState && this._writableState.destroyed;
9322
- if (readableDestroyed || writableDestroyed) {
9323
- if (cb) {
9324
- cb(err);
9325
- } else if (err) {
9326
- if (!this._writableState) {
9327
- process.nextTick(emitErrorNT, this, err);
9328
- } else if (!this._writableState.errorEmitted) {
9329
- this._writableState.errorEmitted = true;
9330
- process.nextTick(emitErrorNT, this, err);
9331
- }
9332
- }
9333
- return this;
9334
- }
9326
+ var destroy_1;
9327
+ var hasRequiredDestroy;
9335
9328
 
9336
- // we set destroyed to true before firing error callbacks in order
9337
- // to make it re-entrance safe in case destroy() is called within callbacks
9329
+ function requireDestroy () {
9330
+ if (hasRequiredDestroy) return destroy_1;
9331
+ hasRequiredDestroy = 1;
9338
9332
 
9339
- if (this._readableState) {
9340
- this._readableState.destroyed = true;
9341
- }
9333
+ // undocumented cb() API, needed for core, not for public API
9334
+ function destroy(err, cb) {
9335
+ const readableDestroyed = this._readableState && this._readableState.destroyed;
9336
+ const writableDestroyed = this._writableState && this._writableState.destroyed;
9337
+ if (readableDestroyed || writableDestroyed) {
9338
+ if (cb) {
9339
+ cb(err);
9340
+ } else if (err) {
9341
+ if (!this._writableState) {
9342
+ process.nextTick(emitErrorNT, this, err);
9343
+ } else if (!this._writableState.errorEmitted) {
9344
+ this._writableState.errorEmitted = true;
9345
+ process.nextTick(emitErrorNT, this, err);
9346
+ }
9347
+ }
9348
+ return this;
9349
+ }
9342
9350
 
9343
- // if this is a duplex stream mark the writable part as destroyed as well
9344
- if (this._writableState) {
9345
- this._writableState.destroyed = true;
9346
- }
9347
- this._destroy(err || null, err => {
9348
- if (!cb && err) {
9349
- if (!this._writableState) {
9350
- process.nextTick(emitErrorAndCloseNT, this, err);
9351
- } else if (!this._writableState.errorEmitted) {
9352
- this._writableState.errorEmitted = true;
9353
- process.nextTick(emitErrorAndCloseNT, this, err);
9354
- } else {
9355
- process.nextTick(emitCloseNT, this);
9356
- }
9357
- } else if (cb) {
9358
- process.nextTick(emitCloseNT, this);
9359
- cb(err);
9360
- } else {
9361
- process.nextTick(emitCloseNT, this);
9362
- }
9363
- });
9364
- return this;
9365
- }
9366
- function emitErrorAndCloseNT(self, err) {
9367
- emitErrorNT(self, err);
9368
- emitCloseNT(self);
9369
- }
9370
- function emitCloseNT(self) {
9371
- if (self._writableState && !self._writableState.emitClose) return;
9372
- if (self._readableState && !self._readableState.emitClose) return;
9373
- self.emit('close');
9374
- }
9375
- function undestroy() {
9376
- if (this._readableState) {
9377
- this._readableState.destroyed = false;
9378
- this._readableState.reading = false;
9379
- this._readableState.ended = false;
9380
- this._readableState.endEmitted = false;
9381
- }
9382
- if (this._writableState) {
9383
- this._writableState.destroyed = false;
9384
- this._writableState.ended = false;
9385
- this._writableState.ending = false;
9386
- this._writableState.finalCalled = false;
9387
- this._writableState.prefinished = false;
9388
- this._writableState.finished = false;
9389
- this._writableState.errorEmitted = false;
9390
- }
9391
- }
9392
- function emitErrorNT(self, err) {
9393
- self.emit('error', err);
9394
- }
9395
- function errorOrDestroy(stream, err) {
9396
- // We have tests that rely on errors being emitted
9397
- // in the same tick, so changing this is semver major.
9398
- // For now when you opt-in to autoDestroy we allow
9399
- // the error to be emitted nextTick. In a future
9400
- // semver major update we should change the default to this.
9351
+ // we set destroyed to true before firing error callbacks in order
9352
+ // to make it re-entrance safe in case destroy() is called within callbacks
9353
+
9354
+ if (this._readableState) {
9355
+ this._readableState.destroyed = true;
9356
+ }
9357
+
9358
+ // if this is a duplex stream mark the writable part as destroyed as well
9359
+ if (this._writableState) {
9360
+ this._writableState.destroyed = true;
9361
+ }
9362
+ this._destroy(err || null, err => {
9363
+ if (!cb && err) {
9364
+ if (!this._writableState) {
9365
+ process.nextTick(emitErrorAndCloseNT, this, err);
9366
+ } else if (!this._writableState.errorEmitted) {
9367
+ this._writableState.errorEmitted = true;
9368
+ process.nextTick(emitErrorAndCloseNT, this, err);
9369
+ } else {
9370
+ process.nextTick(emitCloseNT, this);
9371
+ }
9372
+ } else if (cb) {
9373
+ process.nextTick(emitCloseNT, this);
9374
+ cb(err);
9375
+ } else {
9376
+ process.nextTick(emitCloseNT, this);
9377
+ }
9378
+ });
9379
+ return this;
9380
+ }
9381
+ function emitErrorAndCloseNT(self, err) {
9382
+ emitErrorNT(self, err);
9383
+ emitCloseNT(self);
9384
+ }
9385
+ function emitCloseNT(self) {
9386
+ if (self._writableState && !self._writableState.emitClose) return;
9387
+ if (self._readableState && !self._readableState.emitClose) return;
9388
+ self.emit('close');
9389
+ }
9390
+ function undestroy() {
9391
+ if (this._readableState) {
9392
+ this._readableState.destroyed = false;
9393
+ this._readableState.reading = false;
9394
+ this._readableState.ended = false;
9395
+ this._readableState.endEmitted = false;
9396
+ }
9397
+ if (this._writableState) {
9398
+ this._writableState.destroyed = false;
9399
+ this._writableState.ended = false;
9400
+ this._writableState.ending = false;
9401
+ this._writableState.finalCalled = false;
9402
+ this._writableState.prefinished = false;
9403
+ this._writableState.finished = false;
9404
+ this._writableState.errorEmitted = false;
9405
+ }
9406
+ }
9407
+ function emitErrorNT(self, err) {
9408
+ self.emit('error', err);
9409
+ }
9410
+ function errorOrDestroy(stream, err) {
9411
+ // We have tests that rely on errors being emitted
9412
+ // in the same tick, so changing this is semver major.
9413
+ // For now when you opt-in to autoDestroy we allow
9414
+ // the error to be emitted nextTick. In a future
9415
+ // semver major update we should change the default to this.
9401
9416
 
9402
- const rState = stream._readableState;
9403
- const wState = stream._writableState;
9404
- if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);
9417
+ const rState = stream._readableState;
9418
+ const wState = stream._writableState;
9419
+ if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);
9420
+ }
9421
+ destroy_1 = {
9422
+ destroy,
9423
+ undestroy,
9424
+ errorOrDestroy
9425
+ };
9426
+ return destroy_1;
9405
9427
  }
9406
- var destroy_1 = {
9407
- destroy,
9408
- undestroy,
9409
- errorOrDestroy
9410
- };
9411
9428
 
9412
9429
  var errorsBrowser = {};
9413
9430
 
@@ -9537,92 +9554,109 @@ createErrorType('ERR_UNKNOWN_ENCODING', function (arg) {
9537
9554
  createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');
9538
9555
  errorsBrowser.codes = codes;
9539
9556
 
9540
- const ERR_INVALID_OPT_VALUE = errorsBrowser.codes.ERR_INVALID_OPT_VALUE;
9541
- function highWaterMarkFrom(options, isDuplex, duplexKey) {
9542
- return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
9543
- }
9544
- function getHighWaterMark(state, options, duplexKey, isDuplex) {
9545
- const hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
9546
- if (hwm != null) {
9547
- if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {
9548
- const name = isDuplex ? duplexKey : 'highWaterMark';
9549
- throw new ERR_INVALID_OPT_VALUE(name, hwm);
9550
- }
9551
- return Math.floor(hwm);
9552
- }
9557
+ var state;
9558
+ var hasRequiredState;
9553
9559
 
9554
- // Default value
9555
- return state.objectMode ? 16 : 16 * 1024;
9560
+ function requireState () {
9561
+ if (hasRequiredState) return state;
9562
+ hasRequiredState = 1;
9563
+
9564
+ const ERR_INVALID_OPT_VALUE = errorsBrowser.codes.ERR_INVALID_OPT_VALUE;
9565
+ function highWaterMarkFrom(options, isDuplex, duplexKey) {
9566
+ return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
9567
+ }
9568
+ function getHighWaterMark(state, options, duplexKey, isDuplex) {
9569
+ const hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
9570
+ if (hwm != null) {
9571
+ if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {
9572
+ const name = isDuplex ? duplexKey : 'highWaterMark';
9573
+ throw new ERR_INVALID_OPT_VALUE(name, hwm);
9574
+ }
9575
+ return Math.floor(hwm);
9576
+ }
9577
+
9578
+ // Default value
9579
+ return state.objectMode ? 16 : 16 * 1024;
9580
+ }
9581
+ state = {
9582
+ getHighWaterMark
9583
+ };
9584
+ return state;
9556
9585
  }
9557
- var state = {
9558
- getHighWaterMark
9559
- };
9560
9586
 
9561
- /**
9562
- * Module exports.
9563
- */
9587
+ var browser$b;
9588
+ var hasRequiredBrowser$a;
9564
9589
 
9565
- var browser$b = deprecate;
9590
+ function requireBrowser$a () {
9591
+ if (hasRequiredBrowser$a) return browser$b;
9592
+ hasRequiredBrowser$a = 1;
9593
+ /**
9594
+ * Module exports.
9595
+ */
9566
9596
 
9567
- /**
9568
- * Mark that a method should not be used.
9569
- * Returns a modified function which warns once by default.
9570
- *
9571
- * If `localStorage.noDeprecation = true` is set, then it is a no-op.
9572
- *
9573
- * If `localStorage.throwDeprecation = true` is set, then deprecated functions
9574
- * will throw an Error when invoked.
9575
- *
9576
- * If `localStorage.traceDeprecation = true` is set, then deprecated functions
9577
- * will invoke `console.trace()` instead of `console.error()`.
9578
- *
9579
- * @param {Function} fn - the function to deprecate
9580
- * @param {String} msg - the string to print to the console when `fn` is invoked
9581
- * @returns {Function} a new "deprecated" version of `fn`
9582
- * @api public
9583
- */
9597
+ browser$b = deprecate;
9584
9598
 
9585
- function deprecate (fn, msg) {
9586
- if (config('noDeprecation')) {
9587
- return fn;
9588
- }
9599
+ /**
9600
+ * Mark that a method should not be used.
9601
+ * Returns a modified function which warns once by default.
9602
+ *
9603
+ * If `localStorage.noDeprecation = true` is set, then it is a no-op.
9604
+ *
9605
+ * If `localStorage.throwDeprecation = true` is set, then deprecated functions
9606
+ * will throw an Error when invoked.
9607
+ *
9608
+ * If `localStorage.traceDeprecation = true` is set, then deprecated functions
9609
+ * will invoke `console.trace()` instead of `console.error()`.
9610
+ *
9611
+ * @param {Function} fn - the function to deprecate
9612
+ * @param {String} msg - the string to print to the console when `fn` is invoked
9613
+ * @returns {Function} a new "deprecated" version of `fn`
9614
+ * @api public
9615
+ */
9589
9616
 
9590
- var warned = false;
9591
- function deprecated() {
9592
- if (!warned) {
9593
- if (config('throwDeprecation')) {
9594
- throw new Error(msg);
9595
- } else if (config('traceDeprecation')) {
9596
- console.trace(msg);
9597
- } else {
9598
- console.warn(msg);
9599
- }
9600
- warned = true;
9601
- }
9602
- return fn.apply(this, arguments);
9603
- }
9617
+ function deprecate (fn, msg) {
9618
+ if (config('noDeprecation')) {
9619
+ return fn;
9620
+ }
9604
9621
 
9605
- return deprecated;
9606
- }
9622
+ var warned = false;
9623
+ function deprecated() {
9624
+ if (!warned) {
9625
+ if (config('throwDeprecation')) {
9626
+ throw new Error(msg);
9627
+ } else if (config('traceDeprecation')) {
9628
+ console.trace(msg);
9629
+ } else {
9630
+ console.warn(msg);
9631
+ }
9632
+ warned = true;
9633
+ }
9634
+ return fn.apply(this, arguments);
9635
+ }
9607
9636
 
9608
- /**
9609
- * Checks `localStorage` for boolean values for the given `name`.
9610
- *
9611
- * @param {String} name
9612
- * @returns {Boolean}
9613
- * @api private
9614
- */
9637
+ return deprecated;
9638
+ }
9615
9639
 
9616
- function config (name) {
9617
- // accessing global.localStorage can trigger a DOMException in sandboxed iframes
9618
- try {
9619
- if (!commonjsGlobal.localStorage) return false;
9620
- } catch (_) {
9621
- return false;
9622
- }
9623
- var val = commonjsGlobal.localStorage[name];
9624
- if (null == val) return false;
9625
- return String(val).toLowerCase() === 'true';
9640
+ /**
9641
+ * Checks `localStorage` for boolean values for the given `name`.
9642
+ *
9643
+ * @param {String} name
9644
+ * @returns {Boolean}
9645
+ * @api private
9646
+ */
9647
+
9648
+ function config (name) {
9649
+ // accessing global.localStorage can trigger a DOMException in sandboxed iframes
9650
+ try {
9651
+ if (!commonjsGlobal.localStorage) return false;
9652
+ } catch (_) {
9653
+ return false;
9654
+ }
9655
+ var val = commonjsGlobal.localStorage[name];
9656
+ if (null == val) return false;
9657
+ return String(val).toLowerCase() === 'true';
9658
+ }
9659
+ return browser$b;
9626
9660
  }
9627
9661
 
9628
9662
  var _stream_writable;
@@ -9653,12 +9687,12 @@ function require_stream_writable () {
9653
9687
 
9654
9688
  /*<replacement>*/
9655
9689
  const internalUtil = {
9656
- deprecate: browser$b
9690
+ deprecate: requireBrowser$a()
9657
9691
  };
9658
9692
  /*</replacement>*/
9659
9693
 
9660
9694
  /*<replacement>*/
9661
- var Stream = streamBrowser;
9695
+ var Stream = requireStreamBrowser();
9662
9696
  /*</replacement>*/
9663
9697
 
9664
9698
  const Buffer = require$$6$1.Buffer;
@@ -9669,8 +9703,8 @@ function require_stream_writable () {
9669
9703
  function _isUint8Array(obj) {
9670
9704
  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
9671
9705
  }
9672
- const destroyImpl = destroy_1;
9673
- const _require = state,
9706
+ const destroyImpl = requireDestroy();
9707
+ const _require = requireState(),
9674
9708
  getHighWaterMark = _require.getHighWaterMark;
9675
9709
  const _require$codes = errorsBrowser.codes,
9676
9710
  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
@@ -10864,7 +10898,7 @@ function require_stream_readable () {
10864
10898
  /*</replacement>*/
10865
10899
 
10866
10900
  /*<replacement>*/
10867
- var Stream = streamBrowser;
10901
+ var Stream = requireStreamBrowser();
10868
10902
  /*</replacement>*/
10869
10903
 
10870
10904
  const Buffer = require$$6$1.Buffer;
@@ -10887,8 +10921,8 @@ function require_stream_readable () {
10887
10921
  /*</replacement>*/
10888
10922
 
10889
10923
  const BufferList = requireBuffer_list();
10890
- const destroyImpl = destroy_1;
10891
- const _require = state,
10924
+ const destroyImpl = requireDestroy();
10925
+ const _require = requireState(),
10892
10926
  getHighWaterMark = _require.getHighWaterMark;
10893
10927
  const _require$codes = errorsBrowser.codes,
10894
10928
  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
@@ -14341,7 +14375,7 @@ function WriteReq(chunk, encoding, cb) {
14341
14375
 
14342
14376
  function WritableState(options, stream) {
14343
14377
  Object.defineProperty(this, 'buffer', {
14344
- get: deprecate$1(function () {
14378
+ get: deprecate(function () {
14345
14379
  return this.getBuffer();
14346
14380
  }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
14347
14381
  });
@@ -39342,7 +39376,7 @@ const blocksFromEncryptedCarBlock = async (cid, get, keyMaterial) => {
39342
39376
  }
39343
39377
  };
39344
39378
 
39345
- const defaultConfig$1 = {
39379
+ const defaultConfig$2 = {
39346
39380
  headerKeyPrefix: 'fp.'
39347
39381
  };
39348
39382
 
@@ -39350,7 +39384,7 @@ const defaultConfig$1 = {
39350
39384
 
39351
39385
  class Browser extends Base {
39352
39386
  constructor (name, config = {}) {
39353
- super(name, Object.assign({}, defaultConfig$1, config));
39387
+ super(name, Object.assign({}, defaultConfig$2, config));
39354
39388
  }
39355
39389
 
39356
39390
  withDB = async dbWorkFun => {
@@ -39972,13 +40006,13 @@ var browserPonyfill = {
39972
40006
 
39973
40007
  var fetch = /*@__PURE__*/getDefaultExportFromCjs(browserPonyfillExports);
39974
40008
 
39975
- const defaultConfig = {
40009
+ const defaultConfig$1 = {
39976
40010
  url: 'http://localhost:4000'
39977
40011
  };
39978
40012
 
39979
40013
  class Rest extends Base {
39980
40014
  constructor (name, config = {}) {
39981
- super(name, Object.assign({}, defaultConfig, config));
40015
+ super(name, Object.assign({}, defaultConfig$1, config));
39982
40016
  // console.log('Rest', name, config)
39983
40017
  }
39984
40018
 
@@ -40030,6 +40064,48 @@ class Rest extends Base {
40030
40064
  }
40031
40065
  }
40032
40066
 
40067
+ const defaultConfig = {
40068
+ upload: () => {},
40069
+ url: (cid) => `https://${cid}.ipfs.w3s.link/`
40070
+ };
40071
+
40072
+ class UCAN extends Base {
40073
+ constructor (name, config = {}) {
40074
+ super(name, Object.assign({}, defaultConfig, config));
40075
+ }
40076
+
40077
+ async writeCars (cars) {
40078
+ if (this.config.readonly) return
40079
+ for (const { cid, bytes } of cars) {
40080
+ const upCid = await this.config.upload(bytes);
40081
+ console.log('writeCar UCAN', cid, upCid);
40082
+ // if (!response.ok) throw new Error(`An error occurred: ${response.statusText}`)
40083
+ }
40084
+ }
40085
+
40086
+ async readCar (carCid) {
40087
+ const carURL = this.config.url(carCid);
40088
+ const response = await fetch(carURL);
40089
+ if (!response.ok) throw new Error(`An error occurred: ${response.statusText}`)
40090
+ const got = await response.arrayBuffer();
40091
+ return new Uint8Array(got)
40092
+ }
40093
+
40094
+ async loadHeader (branch = 'main') {
40095
+ return headerMock.get(branch)
40096
+ }
40097
+
40098
+ async writeHeader (branch, header) {
40099
+ if (this.config.readonly) return
40100
+ const pHeader = this.prepareHeader(header);
40101
+ // console.log('writeHeader rt', branch, pHeader)
40102
+
40103
+ headerMock.set(branch, pHeader);
40104
+ }
40105
+ }
40106
+
40107
+ const headerMock = new Map();
40108
+
40033
40109
  const Loader = {
40034
40110
  appropriate: (name, config = {}) => {
40035
40111
  if (config.StorageClass) {
@@ -40040,6 +40116,10 @@ const Loader = {
40040
40116
  return new Rest(name, config)
40041
40117
  }
40042
40118
 
40119
+ if (config.type === 'ucan') {
40120
+ return new UCAN(name, config)
40121
+ }
40122
+
40043
40123
  return new Browser(name, config)
40044
40124
  }
40045
40125
  };