@peerbit/any-store-opfs 1.1.4 → 1.1.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IAC3C,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IAC3C,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAC/B,UAAgC,EACM,EAAE;IACxC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,sBAAsB,EAAE,CAAC;QACzD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,CACzC,UAAU,CAAC,sBAAsB,EAAE,CACnC,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,KAAK,CAAC;QACb,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,UAAgC,EAAE,EAAE;IACpE,2HAA2H;IAC3H,kCAAkC;IAClC;;;QAGI;IACJ,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,OAAO,eAAe;IACnB,OAAO,CAAwB;IAC/B,UAAU,CAAW;IAErB,eAAe,CAGrB;IAEF;QACC,MAAM,aAAa,GAAG,WAAW,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzB,MAAM,YAAY,GAAG,CACpB,IAAgC,EAChC,SAAmB,EAAE,EACV,EAAE;YACb,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,GAA8B,IAAK,CAAC;YACzC,IAAI,SAAS,GAAW,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,qBAAqB;YAErE,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;gBAChC,SAAS,GAAG,CAAC,CAAC;gBACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC3B,IAAI,CAAC;4BACJ,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;4BAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;4BACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;4BACpC,SAAS,IAAI,UAAU,CAAC;4BACxB,MAAM,CAAC,KAAK,EAAE,CAAC;wBAChB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BAChB,8BAA8B;4BAC9B,oGAAoG;wBACrG,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC,CAAC;YACF,uHAAuH;YACvH,oEAAoE;YACpE,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;gBACvB,MAAM,KAAK,CAAC;gBAEZ,IAAI,CAAC,CAAC,EAAE,CAAC;oBACR,CAAC,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC3C,IAAI,SAAS,EAAE,CAAC;wBACf,CAAC,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;4BACrD,MAAM,EAAE,IAAI;yBACZ,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;gBACD,MAAM,aAAa,EAAE,CAAC;gBACtB,MAAM,GAAG,IAAI,CAAC;YACf,CAAC,CAAC;YACF,OAAO;gBACN,KAAK,EAAE,KAAK,IAAI,EAAE;oBACjB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wBAClC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzC,CAAC;oBACD,SAAS,GAAG,CAAC,CAAC;oBACd,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC;gBAED,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;oBAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,CAAC;wBACJ,MAAM,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;4BACnC,OAAO;wBACR,CAAC;6BAAM,CAAC;4BACP,MAAM,KAAK,CAAC;wBACb,CAAC;oBACF,CAAC;oBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACzC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;wBACtB,SAAS,IAAI,QAAQ,CAAC;wBACtB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC5B,CAAC;gBACF,CAAC;gBAED,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;oBAC1B,IAAI,CAAC;wBACJ,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC1D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;wBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;wBACxC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,IACC,KAAK,YAAY,YAAY;4BAC7B,KAAK,CAAC,IAAI,KAAK,eAAe,EAC7B,CAAC;4BACF,OAAO,SAAS,CAAC;wBAClB,CAAC;6BAAM,IAAI,KAAK,EAAE,CAAC;4BAClB,OAAO,SAAS,CAAC;wBAClB,CAAC;6BAAM,CAAC;4BACP,MAAM,KAAK,CAAC;wBACb,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,KAAiB,EAAE,EAAE;oBAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;oBAEnC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE;wBACpD,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC;oBACH,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBAC5D,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC7B,eAAe,CAAC,KAAK,EAAE,CAAC;oBACxB,eAAe,CAAC,KAAK,EAAE,CAAC;oBAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACzC,IAAI,QAAQ,EAAE,CAAC;wBACd,SAAS,IAAI,QAAQ,CAAC;oBACvB,CAAC;oBACD,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC3C,CAAC;gBAED,IAAI,EAAE,KAAK,IAAI,EAAE;oBAChB,OAAO,SAAS,CAAC;gBAClB,CAAC;gBACD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAE1C,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACxB,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;oBACrC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE;wBAC1D,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC;oBACH,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;oBACnC,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACrD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;oBACvD,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;oBACvB,OAAO,SAAS,CAAC;gBAClB,CAAC;gBAED,KAAK,CAAC,CAAC,QAAQ;oBACd,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;wBAClC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACvB,MAAM;gCACL,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gCAClB,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;6BACvD,CAAC;wBACH,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,KAAK,EAAE,KAAK,IAAI,EAAE;oBACjB,SAAS,GAAG,SAAgB,CAAC,CAAC,aAAa;oBAC3C,MAAM,GAAG,KAAK,CAAC;oBACf,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI;gBACJ,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;aACrB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,YAAY,EAAE,CAAC;QAEjC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACJ,IAAI,OAAO,YAAY,MAAM,CAAC,aAAa,EAAE,CAAC;oBAC7C,IAAI,OAAO,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACxC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;4BACnD,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;wBAC9B,CAAC;wBACD,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAC9C,aAAa,CACb,CAAC;wBACF,OAAO;oBACR,CAAC;oBAED,MAAM,CAAC,GACN,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;wBACzB,CAAC,CAAC,IAAI,CAAC,UAAU;wBACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrD,IAAI,CAAC,CAAC,EAAE,CAAC;wBACR,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBACnE,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC;wBAChD,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAC/C,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC;wBAChD,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAC/C,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC9C,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzB,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAC7C,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,iBAAiB,EAAE,CAAC;wBACxD,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACf,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;4BAChD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAChD,CAAC;wBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACnC,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,kBAAkB,CAAC;4BAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAa,CAAC,CAAC,CAAC,CAAC;4BAC/C,MAAM,EAAE,IAAI,CAAC,IAAI;gCAChB,CAAC,CAAC,EAAE;gCACJ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAE,IAAI,CAAC,KAAa,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;yBACpB,CAAC,EACF,aAAa,CACb,CAAC;wBACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACzC,CAAC;oBACF,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,iBAAiB,EAAE,CAAC;wBACxD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACxC,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EACvD,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACvC,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,QAAQ,CAAC;4BACnB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;4BAChD,KAAK,EAAE,OAAO,CAAC,KAAK;yBACpB,CAAC,EACF,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC9C,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;wBACxC,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAC7C,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC/C,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,SAAS,CAAC;4BACpB,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;4BACpB,KAAK,EAAE,OAAO,CAAC,KAAK;yBACpB,CAAC,EACF,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC;wBACjD,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,WAAW,CAAC;4BACtB,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;4BACxB,KAAK,EAAE,OAAO,CAAC,KAAK;yBACpB,CAAC,EACF,aAAa,CACb,CAAC;oBACH,CAAC;yBAAM,IAAI,OAAO,YAAY,MAAM,CAAC,YAAY,EAAE,CAAC;wBACnD,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAE/B,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAClD,aAAa,CACb,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,OAAO,CACjB,OAAO,EACP,IAAI,MAAM,CAAC,UAAU,CAAC;oBACrB,KAAK,EAAG,KAAa,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,WAAW,CAAC,IAAI;oBAC7D,KAAK,EAAG,OAAe,CAAC,OAAO,CAAC,IAAI,EAAE;iBACtC,CAAC,EACF,aAAa,CACb,CAAC;YACH,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CACZ,OAA6B,EAC7B,QAA8B,EAC9B,aAAa,GAAG,WAAW;QAE3B,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,aAAa,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACD;AAED,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/any-store-opfs",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "description": "OPFS worker",
5
5
  "sideEffects": true,
6
6
  "type": "module",
@@ -63,10 +63,10 @@
63
63
  "@dao-xyz/borsh": "^6.0.0",
64
64
  "uuid": "^10.0.0",
65
65
  "elliptic": "^6.6.1",
66
- "@peerbit/crypto": "3.0.0",
67
- "@peerbit/logger": "2.0.0",
66
+ "@peerbit/crypto": "3.0.1",
68
67
  "@peerbit/time": "3.0.0",
69
- "@peerbit/any-store-interface": "1.1.0"
68
+ "@peerbit/any-store-interface": "1.1.0",
69
+ "@peerbit/logger": "2.0.0"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/uuid": "^9.0.8",
package/src/opfs-store.ts CHANGED
@@ -3,13 +3,21 @@ import { type AnyStore, type MaybePromise } from "@peerbit/any-store-interface";
3
3
  import * as memory from "@peerbit/any-store-interface/messages";
4
4
  import { v4 as uuid } from "uuid";
5
5
  import { createWorker } from "./create.js";
6
+ import {
7
+ getTransferables,
8
+ type OPFSRequest,
9
+ type OPFSResponse,
10
+ type OPFSStoreProtocol,
11
+ isOPFSResponse,
12
+ } from "./protocol.js";
6
13
 
7
- function memoryIterator(
14
+ function storeIterator(
8
15
  client: {
9
- request<T extends memory.MemoryRequest>(
10
- request: memory.MemoryRequest,
11
- ): Promise<T>;
16
+ request(
17
+ request: OPFSRequest | memory.MemoryRequest,
18
+ ): Promise<OPFSResponse | memory.MemoryRequest>;
12
19
  },
20
+ protocol: OPFSStoreProtocol,
13
21
  level: string[],
14
22
  ): {
15
23
  [Symbol.asyncIterator]: () => AsyncIterator<[string, Uint8Array], void, void>;
@@ -19,18 +27,37 @@ function memoryIterator(
19
27
  const iteratorId = uuid();
20
28
  return {
21
29
  next: async () => {
22
- const resp = await client.request<memory.RESP_Iterator_Next>(
23
- new memory.REQ_Iterator_Next({ id: iteratorId, level }),
30
+ const response = await client.request(
31
+ protocol === "legacy"
32
+ ? new memory.REQ_Iterator_Next({ id: iteratorId, level })
33
+ : {
34
+ type: "iterator-next",
35
+ id: iteratorId,
36
+ level,
37
+ messageId: uuid(),
38
+ },
24
39
  );
25
- if (resp.keys.length > 1) {
40
+ const cloneResponse =
41
+ isOPFSResponse(response) && response.type === "iterator-next"
42
+ ? response
43
+ : undefined;
44
+ const keys =
45
+ response instanceof memory.RESP_Iterator_Next
46
+ ? response.keys
47
+ : cloneResponse?.keys ?? [];
48
+ const values =
49
+ response instanceof memory.RESP_Iterator_Next
50
+ ? response.values
51
+ : cloneResponse?.values ?? [];
52
+ if (keys.length > 1) {
26
53
  throw new Error("Unsupported iteration response");
27
54
  }
28
55
  // Will only have 0 or 1 element for now
29
56
  // eslint-disable-next-line no-unreachable-loop
30
- for (let i = 0; i < resp.keys.length; i++) {
57
+ for (let i = 0; i < keys.length; i++) {
31
58
  return {
32
59
  done: false,
33
- value: [resp.keys[i], resp.values[i]] as [string, Uint8Array],
60
+ value: [keys[i], values[i]] as [string, Uint8Array],
34
61
  } as { done: false; value: [string, Uint8Array] };
35
62
  }
36
63
  return { done: true, value: undefined } as {
@@ -39,8 +66,15 @@ function memoryIterator(
39
66
  };
40
67
  },
41
68
  async return() {
42
- await client.request<memory.RESP_Iterator_Next>(
43
- new memory.REQ_Iterator_Stop({ id: iteratorId, level }),
69
+ await client.request(
70
+ protocol === "legacy"
71
+ ? new memory.REQ_Iterator_Stop({ id: iteratorId, level })
72
+ : {
73
+ type: "iterator-stop",
74
+ id: iteratorId,
75
+ level,
76
+ messageId: uuid(),
77
+ },
44
78
  );
45
79
  return { done: true, value: undefined } as {
46
80
  done: true;
@@ -56,69 +90,122 @@ export class OPFSStore implements AnyStore {
56
90
  worker: Worker;
57
91
  levelMap: Map<string, AnyStore>;
58
92
  root: AnyStore;
93
+ private readonly protocol: OPFSStoreProtocol;
59
94
 
60
95
  private _responseCallbacks: Map<
61
96
  string,
62
- { fn: (message: memory.MemoryRequest) => any; once: boolean }
97
+ {
98
+ fn: (message: OPFSResponse | memory.MemoryRequest) => any;
99
+ once: boolean;
100
+ }
63
101
  > = new Map();
64
102
 
65
103
  private _createStorage: (level: string[]) => AnyStore;
66
- constructor(readonly directory?: string) {
104
+ constructor(
105
+ readonly directory?: string,
106
+ options: { protocol?: OPFSStoreProtocol } = {},
107
+ ) {
108
+ this.protocol = options.protocol ?? "clone";
67
109
  this.levelMap = new Map();
68
110
  this._createStorage = (level: string[] = []): AnyStore => {
69
111
  return {
70
112
  clear: async () => {
71
- await this.request<memory.RESP_Clear>(
72
- new memory.REQ_Clear({ level }),
113
+ await this.request(
114
+ this.protocol === "legacy"
115
+ ? new memory.REQ_Clear({ level })
116
+ : { type: "clear", level, messageId: uuid() },
73
117
  );
74
118
  },
75
119
  del: async (key) => {
76
- await this.request<memory.RESP_Del>(
77
- new memory.REQ_Del({ level, key }),
120
+ await this.request(
121
+ this.protocol === "legacy"
122
+ ? new memory.REQ_Del({ level, key })
123
+ : { type: "del", level, key, messageId: uuid() },
78
124
  );
79
125
  },
80
126
  get: async (key) => {
81
- return (
82
- await this.request<memory.RESP_Get>(
83
- new memory.REQ_Get({ level, key }),
84
- )
85
- ).bytes;
127
+ const response = await this.request(
128
+ this.protocol === "legacy"
129
+ ? new memory.REQ_Get({ level, key })
130
+ : { type: "get", level, key, messageId: uuid() },
131
+ );
132
+ if (response instanceof memory.RESP_Get) {
133
+ return response.bytes;
134
+ }
135
+ if (isOPFSResponse(response) && response.type === "get") {
136
+ return response.bytes;
137
+ }
138
+ return undefined;
86
139
  },
87
140
  put: async (key, value) => {
88
- await this.request<memory.RESP_Put>(
89
- new memory.REQ_Put({ level, key, bytes: value }),
141
+ await this.request(
142
+ this.protocol === "legacy"
143
+ ? new memory.REQ_Put({ level, key, bytes: value })
144
+ : {
145
+ type: "put",
146
+ level,
147
+ key,
148
+ bytes: value,
149
+ messageId: uuid(),
150
+ },
90
151
  );
91
152
  },
92
- status: async () =>
93
- (
94
- await this.request<memory.RESP_Status>(
95
- new memory.REQ_Status({ level }),
96
- )
97
- ).status,
153
+ status: async () => {
154
+ const response = await this.request(
155
+ this.protocol === "legacy"
156
+ ? new memory.REQ_Status({ level })
157
+ : { type: "status", level, messageId: uuid() },
158
+ );
159
+ if (response instanceof memory.RESP_Status) {
160
+ return response.status;
161
+ }
162
+ if (!isOPFSResponse(response) || response.type !== "status") {
163
+ throw new Error("Unexpected OPFS status response");
164
+ }
165
+ return response.status;
166
+ },
98
167
  sublevel: async (name) => {
99
- await this.request(new memory.REQ_Sublevel({ level, name }));
168
+ await this.request(
169
+ this.protocol === "legacy"
170
+ ? new memory.REQ_Sublevel({ level, name })
171
+ : { type: "sublevel", level, name, messageId: uuid() },
172
+ );
100
173
  const newLevels = [...level, name];
101
174
  const sublevel = this._createStorage(newLevels);
102
175
  this.levelMap.set(memory.levelKey(newLevels), sublevel);
103
176
  return sublevel;
104
177
  },
105
178
 
106
- iterator: () => memoryIterator(this, level),
179
+ iterator: () => storeIterator(this, this.protocol, level),
107
180
  close: async () => {
108
- await this.request<memory.RESP_Close>(
109
- new memory.REQ_Close({ level }),
181
+ await this.request(
182
+ this.protocol === "legacy"
183
+ ? new memory.REQ_Close({ level })
184
+ : { type: "close", level, messageId: uuid() },
110
185
  );
111
186
  /* this.levelMap.delete(memory.levelKey(level)); */
112
187
  },
113
188
  open: async () => {
114
- await this.request<memory.RESP_Open>(new memory.REQ_Open({ level }));
189
+ await this.request(
190
+ this.protocol === "legacy"
191
+ ? new memory.REQ_Open({ level })
192
+ : { type: "open", level, messageId: uuid() },
193
+ );
115
194
  },
116
195
 
117
196
  size: async () => {
118
- const size = await this.request<memory.RESP_Size>(
119
- new memory.REQ_Size({ level }),
197
+ const response = await this.request(
198
+ this.protocol === "legacy"
199
+ ? new memory.REQ_Size({ level })
200
+ : { type: "size", level, messageId: uuid() },
120
201
  );
121
- return size.size;
202
+ if (response instanceof memory.RESP_Size) {
203
+ return response.size;
204
+ }
205
+ if (!isOPFSResponse(response) || response.type !== "size") {
206
+ throw new Error("Unexpected OPFS size response");
207
+ }
208
+ return response.size;
122
209
  },
123
210
  persisted: directory != null ? () => true : () => false,
124
211
  };
@@ -144,7 +231,14 @@ export class OPFSStore implements AnyStore {
144
231
  this.worker = createWorker(this.directory);
145
232
  this.root = this._createStorage([]);
146
233
  this.worker.addEventListener("message", async (ev) => {
147
- const message = deserialize(ev.data, memory.MemoryMessage);
234
+ const message = isOPFSResponse(ev.data)
235
+ ? ev.data
236
+ : deserialize(
237
+ ev.data instanceof Uint8Array
238
+ ? ev.data
239
+ : new Uint8Array(ev.data as ArrayBuffer),
240
+ memory.MemoryMessage,
241
+ );
148
242
  this._responseCallbacks.get(message.messageId)!.fn(message);
149
243
  });
150
244
  await this.root.open();
@@ -179,24 +273,30 @@ export class OPFSStore implements AnyStore {
179
273
  return this.root.size();
180
274
  }
181
275
 
182
- async request<T extends memory.MemoryRequest>(
183
- request: memory.MemoryRequest,
184
- ): Promise<T> {
185
- return new Promise<T>((resolve, reject) => {
186
- const onResponse = (message: memory.MemoryRequest) => {
276
+ async request(
277
+ request: OPFSRequest | memory.MemoryRequest,
278
+ ): Promise<OPFSResponse | memory.MemoryRequest> {
279
+ return new Promise<OPFSResponse | memory.MemoryRequest>((resolve, reject) => {
280
+ const onResponse = (message: OPFSResponse | memory.MemoryRequest) => {
187
281
  this._responseCallbacks.delete(request.messageId);
188
282
  if (message instanceof memory.RESP_Error) {
189
283
  reject(new Error(message.error));
284
+ } else if (isOPFSResponse(message) && message.type === "error") {
285
+ reject(new Error(message.error));
190
286
  } else {
191
- resolve(message as T);
287
+ resolve(message);
192
288
  }
193
289
  };
194
290
  this._responseCallbacks.set(request.messageId, {
195
291
  fn: onResponse,
196
292
  once: true,
197
293
  });
198
- const bytes = serialize(request);
199
- this.worker.postMessage(bytes, [bytes.buffer]);
294
+ if (request instanceof memory.MemoryRequest) {
295
+ const bytes = serialize(request);
296
+ this.worker.postMessage(bytes, [bytes.buffer]);
297
+ return;
298
+ }
299
+ this.worker.postMessage(request, getTransferables(request));
200
300
  });
201
301
  }
202
302
 
@@ -0,0 +1,128 @@
1
+ export type OPFSStoreProtocol = "clone" | "legacy";
2
+
3
+ export type OPFSRequest =
4
+ | {
5
+ type: "open" | "close" | "clear" | "size" | "status";
6
+ messageId: string;
7
+ level: string[];
8
+ }
9
+ | {
10
+ type: "get" | "del";
11
+ messageId: string;
12
+ level: string[];
13
+ key: string;
14
+ }
15
+ | {
16
+ type: "put";
17
+ messageId: string;
18
+ level: string[];
19
+ key: string;
20
+ bytes: Uint8Array;
21
+ }
22
+ | {
23
+ type: "sublevel";
24
+ messageId: string;
25
+ level: string[];
26
+ name: string;
27
+ }
28
+ | {
29
+ type: "iterator-next" | "iterator-stop";
30
+ messageId: string;
31
+ level: string[];
32
+ id: string;
33
+ };
34
+
35
+ export type OPFSResponse =
36
+ | {
37
+ type: "ack";
38
+ messageId: string;
39
+ level: string[];
40
+ }
41
+ | {
42
+ type: "status";
43
+ messageId: string;
44
+ level: string[];
45
+ status: "opening" | "open" | "closing" | "closed";
46
+ }
47
+ | {
48
+ type: "get";
49
+ messageId: string;
50
+ level: string[];
51
+ bytes?: Uint8Array;
52
+ }
53
+ | {
54
+ type: "size";
55
+ messageId: string;
56
+ level: string[];
57
+ size: number;
58
+ }
59
+ | {
60
+ type: "iterator-next";
61
+ messageId: string;
62
+ level: string[];
63
+ keys: string[];
64
+ values: Uint8Array[];
65
+ }
66
+ | {
67
+ type: "error";
68
+ messageId: string;
69
+ level: string[];
70
+ error: string;
71
+ };
72
+
73
+ const REQUEST_TYPES = new Set<OPFSRequest["type"]>([
74
+ "open",
75
+ "close",
76
+ "clear",
77
+ "size",
78
+ "status",
79
+ "get",
80
+ "del",
81
+ "put",
82
+ "sublevel",
83
+ "iterator-next",
84
+ "iterator-stop",
85
+ ]);
86
+
87
+ const RESPONSE_TYPES = new Set<OPFSResponse["type"]>([
88
+ "ack",
89
+ "status",
90
+ "get",
91
+ "size",
92
+ "iterator-next",
93
+ "error",
94
+ ]);
95
+
96
+ export const isOPFSRequest = (value: unknown): value is OPFSRequest => {
97
+ return (
98
+ typeof value === "object" &&
99
+ value !== null &&
100
+ typeof (value as OPFSRequest).messageId === "string" &&
101
+ Array.isArray((value as OPFSRequest).level) &&
102
+ REQUEST_TYPES.has((value as OPFSRequest).type)
103
+ );
104
+ };
105
+
106
+ export const isOPFSResponse = (value: unknown): value is OPFSResponse => {
107
+ return (
108
+ typeof value === "object" &&
109
+ value !== null &&
110
+ typeof (value as OPFSResponse).messageId === "string" &&
111
+ Array.isArray((value as OPFSResponse).level) &&
112
+ RESPONSE_TYPES.has((value as OPFSResponse).type)
113
+ );
114
+ };
115
+
116
+ export const getTransferables = (
117
+ message: OPFSRequest | OPFSResponse,
118
+ ): Transferable[] => {
119
+ if (message.type === "get" && "bytes" in message && message.bytes) {
120
+ return [message.bytes.buffer as ArrayBuffer];
121
+ }
122
+ if (message.type === "iterator-next" && "values" in message) {
123
+ return message.values.map(
124
+ (value: Uint8Array) => value.buffer as ArrayBuffer,
125
+ );
126
+ }
127
+ return [];
128
+ };