smol-string 0.0.2 → 0.1.0-beta

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,28 +1,28 @@
1
- import { i as F, c as a, e as G, U as h } from "./wasm-helper-57a16a1d.js";
2
- const k = (I) => F(I, "data:application/wasm;base64,AGFzbQEAAAABUQxgBH9/f38Bf2AFf39/f38AYAZ/f39/f38Bf2ABfwF/YAN/f38AYAJ/fwBgAX8AYAR/f39/AGACf38BfmACf38Bf2ADf39/AX9gBX9+fn5+AAMdHAMEAwQFBAYFBwgACQkJBgQJCQoHBQQAAgELCgoEBQFwAQQEBQMBABEGDgJ/AUGAgMAAC38AQQALB0QGBm1lbW9yeQIACmFsbG9jVWludDgAAAthbGxvY1VpbnQxNgACBGZyZWUABAhjb21wcmVzcwALCmRlY29tcHJlc3MAEAkJAQBBAQsDFhcYCv83HF4BAX8jgICAgABBEGsiASSAgICAACABI4GAgIAAQZiAwIAAaikDADcDACABQQhqIAEgABCBgICAAAJAIAEvAQwNACABKAIIIQAgAUEQaiSAgICAACAADwsDfwAMAAsLcQIBfwF+I4CAgIAAQRBrIgMkgICAgABCgICAgBAhBAJAQQFFDQACQCACDQBC/////w8hBAwBCyABKAIAIAJBAEEAIAEoAgQoAgARgICAgAAAIgJFrUIghiACrYQhBAsgACAENwIAIANBEGokgICAgAALXgEBfyOAgICAAEEQayIBJICAgIAAIAEjgYCAgABBmIDAgABqKQMANwMAIAFBCGogASAAEIOAgIAAAkAgAS8BDA0AIAEoAgghACABQRBqJICAgIAAIAAPCwN/AAwACwuHAQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyACQQBIOgAMAkACQCACQX9KDQBCgICAgBAhBAwBCwJAIAJBAXQiAg0AQv7///8PIQQMAQsgASgCACACQQFBACABKAIEKAIAEYCAgIAAACICRa1CIIYgAq2EIQQLIAAgBDcCACADQRBqJICAgIAACxkAI4GAgIAAQZiAwIAAaiAAIAEQhYCAgAALOAEBfwJAIAJBACACGyIDRQ0AIAAoAgAgAUGq1arVeiACGyADQQBBACAAKAIEKAIIEYGAgIAAAAsLDwAgACAAQQxqEIeAgIAAC3ABA38CQCAAKAIAIgJFDQACQCACQXRqIgNBCGooAgAiAkEKbCACQQ9qQXxxakEDakF8cSICQQAgAhsiBEUNACABKAIAIANBBCACGyAEQQJBACABKAIEKAIIEYGAgIAAAAsgAEEANgIIIABBADYCAAsL2AIDBH8BfgR/I4CAgIAAQRBrIgQkgICAgAAjgYCAgAAhBSABKAIAIQYCQAJAIAEoAgQNACAFQYCAwIAAaiEHDAELIAIgAxCJgICAACEIAkACQCAGDQBBACEFQX8hCQwBCyAGQXxqKAIAIgVBf2ohCQsgBkF4aiEKIAkgCKdxIQEgCEI5iKchCwNAI4GAgIAAQYCAwIAAaiEHIAYgAWosAAAiDEUNASAFRQ0BAkAgDEF/Sg0AIAsgDEH/AHFHDQAgAiADIAooAgAgAUEDdGoiDCgCACAMKAIEEIqAgIAAQQFxRQ0AIARBAToADCAEIAE2AgggBEEIaiEHDAILIAVBf2ohBSABQQFqIAlxIQEMAAsLAkACQCAHLQAEDQBBACEBQQAhBQwBCyAGQXRqKAIAIAcoAgBBAXRqLwEAIQFBgIAEIQULIAAgBSABcjYBACAEQRBqJICAgIAAC+wFBQJ/AX4BfwJ+An8jgICAgABB4ABrIgIkgICAgAACQAJAAkACQAJAIAFBEEsNACABQQNNDQEgADUAAEIghiAAIAFBAXZB/P///wdxIgNqNQAAhCEEIAAgAUF8aiIFajUAAEIghiAAIAUgA2tqNQAAhCEGQqya4tOj0vD6HyEHDAQLQQAhA0KsmuLTo9Lw+h8hB0EAIQUgAUEwSQ0CQQAhBUKsmuLTo9Lw+h8hB0KsmuLTo9Lw+h8hBEKsmuLTo9Lw+h8hBgNAIAVBMGoiCCABTw0CIAJBwABqIAAgBWoiBSkACCAGhUIAIAUpAABC29HQhZra34FnhUIAEJmAgIAAIAJBMGogBUEYaikAACAEhUIAIAVBEGopAABC442j5Inemt6Of4VCABCZgICAACACQSBqIAVBKGopAAAgB4VCACAFQSBqKQAAQsOZ3anHudnM2ACFQgAQmYCAgAAgAkHAAGpBCGopAwAgAikDQIUhBiACQSBqQQhqKQMAIAIpAyCFIQcgAkEwakEIaikDACACKQMwhSEEIAghBQwACwtCACEGQqya4tOj0vD6HyEHAkAgAQ0AQgAhBAwDCyAAIAFBAXZqMQAAQgiGIAAxAABCEIaEIAEgAGpBf2oxAACEIQQMAgsgBCAHhSAGhSEHCyAAIAVqIQkgASAFayEIAkADQCADQRBqIgUgCE8NASACQdAAaiAJIANqIgNBCGopAAAgB4VCACADKQAAQtvR0IWa2t+BZ4VCABCZgICAACACQdAAakEIaikDACACKQNQhSEHIAUhAwwACwsgASAAaiIDQXhqKQAAIQYgA0FwaikAACEECyACQRBqIARC29HQhZra34FnhUIAIAYgB4VCABCZgICAACACIAJBEGpBCGopAwBC29HQhZra34FnhUIAIAGtIAIpAxCFQq/I9cXHrIe7oH+FQgAQmYCAgAAgAkEIaikDACEHIAIpAwAhBCACQeAAaiSAgICAACAHIASFC1gBAn9BACEEAkAgASADRw0AAkAgACACRw0AQQEPCwNAIAFFIQQgAUUNASABQX9qIQEgAi0AACEDIAAtAAAhBSAAQQFqIQAgAkEBaiECIAUgA0YNAAsLIAQLiRMGAX8BfgV/AX4cfwF+I4CAgIAAQaABayICJICAgIAAAkACQAJAIAENACOBgICAAEGYgMCAAGopAwAhA0Gq1arVeiEEQQAhBUEAIQYMAQtBACEHIAJBGGpBCGoiCEEANgIAIAJCADcDGCACI4GAgIAAQZiAwIAAaikDACIJNwIkIAIgCTcCdCACQQA2AnAgAkKq1arVCjcCaAJAIAJB6ABqIAEQjICAgABB//8DcUUNACACQRhqEIaAgIAADAILIAJBGGpBDGohCiAJQiCIpyELIAIpAnQhAyACKAJwIQUgAigCbCEGIAIoAmghBCAJpyEMQYACIQ1BACEOA0AgBiEPIA5BAmohByAAIA5qIRBBACEGAkACQAJAAkACQAJAAkACQAJAAkADQAJAAkAgByAGaiABTw0AIAJBMGogAkEYaiAQIAZBAmoiERCIgICAACACLQAyDQEgAigCGCESIAIoAiANBgJAAkAgEg0AQQEhBwwBCyASQXxqKAIArULQAH4iCSAJQuQAgn1C5AB8QtAAgKchBwtBACETIAJB6ABqQQhqIhRBADYCACACQgA3A2hBAA0FAkACQEIBQSAgB2drrUL//wODhqciB0EIIAdBCEsbIhVBAXQgFUEPakF8cSIWIBVBA3RqIhdqQQNqQXxxIgcNAEF8IQcMAQtBACETIAwgB0ECQQAgCygCABGAgICAAAAiB0UNBgsgB0EIaiIYIBU2AgAgByAHIBZqNgIEIAcgByAXajYCACACIAdBDGoiBzYCaCAHQQAgFRCagICAACETIAIgFa1C0AB+QuQAgKciGTYCcCACKAIcIhpFDQRB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"), J = await k(), A = J.exports;
3
- function c(I) {
4
- const { ptr: C, length: Q } = a(I, A), E = A.compress(C, Q);
5
- A.free(C, Q);
6
- const { start: g, end: i, capacity: o } = G(A.memory, E), D = new Uint16Array(A.memory.buffer.slice(g, i)), w = h(D);
7
- return A.free(g, o), w;
8
- }
9
- function s(I) {
10
- const C = A.allocUint16(I.length), Q = new Uint16Array(
11
- A.memory.buffer,
12
- C,
13
- I.length
14
- );
15
- for (let B = 0; B < I.length; B++)
16
- Q[B] = I.charCodeAt(B);
17
- const E = A.decompress(
18
- C,
19
- I.length
20
- );
21
- A.free(C, I.length);
22
- const { start: g, end: i, capacity: o } = G(A.memory, E), D = new Uint8Array(A.memory.buffer.slice(g, i)), w = new TextDecoder().decode(D);
23
- return A.free(g, o), w;
24
- }
25
- export {
26
- c as compress,
27
- s as decompress
28
- };
1
+ import { i as w, c as a, e as k, U as h } from "./wasm-helper-C1VfMvbY.js";
2
+ const J = (I) => w(I, "data:application/wasm;base64,AGFzbQEAAAABVg1gBH9/f38Bf2AFf39/f38AYAZ/f39/f38Bf2ABfwF/YAN/f38AYAJ/fwBgAX8AYAR/f39/AGACf38BfmACf38Bf2ADf39/AX9gAn5+AX5gBH9/fn4AAx8eAwQDBAUEBgUHCAAJCQcJBgQJCQoHBQQAAgELDAoKBAUBcAEEBAUDAQARBg4CfwFBgIDAAAt/AEEACwdEBgZtZW1vcnkCAAphbGxvY1VpbnQ4AAALYWxsb2NVaW50MTYAAgRmcmVlAAQIY29tcHJlc3MACwpkZWNvbXByZXNzABEJCQEAQQELAxcYGQrqNx5eAQF/I4CAgIAAQRBrIgEkgICAgAAgASOBgICAAEGYgMCAAGopAwA3AwAgAUEIaiABIAAQgYCAgAACQCABLwEMDQAgASgCCCEAIAFBEGokgICAgAAgAA8LA38ADAALC3ECAX8BfiOAgICAAEEQayIDJICAgIAAQoCAgIAQIQQCQEEBRQ0AAkAgAg0AQv////8PIQQMAQsgASgCACACQQBBACABKAIEKAIAEYCAgIAAACICRa1CIIYgAq2EIQQLIAAgBDcCACADQRBqJICAgIAAC14BAX8jgICAgABBEGsiASSAgICAACABI4GAgIAAQZiAwIAAaikDADcDACABQQhqIAEgABCDgICAAAJAIAEvAQwNACABKAIIIQAgAUEQaiSAgICAACAADwsDfwAMAAsLhwECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgAkEASDoADAJAAkAgAkF/Sg0AQoCAgIAQIQQMAQsCQCACQQF0IgINAEL+////DyEEDAELIAEoAgAgAkEBQQAgASgCBCgCABGAgICAAAAiAkWtQiCGIAKthCEECyAAIAQ3AgAgA0EQaiSAgICAAAsZACOBgICAAEGYgMCAAGogACABEIWAgIAACzgBAX8CQCACQQAgAhsiA0UNACAAKAIAIAFBqtWq1XogAhsgA0EAQQAgACgCBCgCCBGBgICAAAALCw8AIAAgAEEMahCHgICAAAtwAQN/AkAgACgCACICRQ0AAkAgAkF0aiIDQQhqKAIAIgJBCmwgAkEPakF8cWpBA2pBfHEiAkEAIAIbIgRFDQAgASgCACADQQQgAhsgBEECQQAgASgCBCgCCBGBgICAAAALIABBADYCCCAAQQA2AgALC9gCAwR/AX4EfyOAgICAAEEQayIEJICAgIAAI4GAgIAAIQUgASgCACEGAkACQCABKAIEDQAgBUGAgMCAAGohBwwBCyACIAMQiYCAgAAhCAJAAkAgBg0AQQAhBUF/IQkMAQsgBkF8aigCACIFQX9qIQkLIAZBeGohCiAJIAincSEBIAhCOYinIQsDQCOBgICAAEGAgMCAAGohByAGIAFqLAAAIgxFDQEgBUUNAQJAIAxBf0oNACALIAxB/wBxRw0AIAIgAyAKKAIAIAFBA3RqIgwoAgAgDCgCBBCKgICAAEEBcUUNACAEQQE6AAwgBCABNgIIIARBCGohBwwCCyAFQX9qIQUgAUEBaiAJcSEBDAALCwJAAkAgBy0ABA0AQQAhAUEAIQUMAQsgBkF0aigCACAHKAIAQQF0ai8BACEBQYCABCEFCyAAIAUgAXI2AQAgBEEQaiSAgICAAAuhCwIBfwt+I4CAgIAAQcAAayICJICAgIAAIAGtIQMCQAJAIAFBIEsNAAJAIAFBEU8NAAJAIAFBCEkNACAAKQAAQs+Awfyyx9rwmn98IgRCJ4kgASAAakF4aikAACIFfCADQgGGQs+Awfyyx9rwmn98IgZ+IgMgAyAFQhuJIAZ+IAR8hSAGfiIEQi+IhSAEhSAGfiIEQi+IIASFIAZ+IQYMAwsCQCABQQRJDQAgADUAAEIDhiADfCABIABqQXxqNQAAIgSFIANCAYZCz4DB/LLH2vCaf3wiBn4iBUIviCAEhSAFhSAGfiIEQi+IIASFIAZ+IQYMAwsCQCABDQBCz4DB/LLH2vCafyEGDAMLIAEgAGpBf2otAABBAnQgAWqtQqfirL7Ji/LSQ34gACABQQF2ajEAAEIIhiAAMQAAhELPgMH8ssfa8Jp/foUiBkIviCAGhULPgMH8ssfa8Jp/fiEGDAILIAApAAgiBELPgMH8ssfa8Jp/fEIuiSAAKQAAQvPk4/T7za3JtH9+IgV8IAEgAGoiAEF4aikAACADQgGGQs+Awfyyx9rwmn98IgZ+IgN8IgcgByADQiKJIAUgBHxCFYl8IABBcGopAABCz4DB/LLH2vCaf358hSAGfiIEQi+IhSAEhSAGfiIEQi+IIASFIAZ+IQYMAQsCQCABQcEASQ0AIAEgAGoiAUFYaikAACEHIAFBSGopAAAhBiABQXBqKQAAIQggAiABQUBqIAMgAUFQaikAACADfCABQWhqKQAAEJqAgIAAIgkQm4CAgAAgAikDCCEEIAIpAwAhBSACQRBqIAFBYGogBiAIfCIGQvPk4/T7za3JtH98IAcQm4CAgABCACADQn98QkCDfSEKIAApAAAgB0Lz5OP0+82tybR/fnwhCCACKQMYIQMgAikDECEHA0AgACkAMCELIAApACghDCACQSBqIAAgBELz5OP0+82tybR/fiAGIAV8IAh8IAApAAh8QhuJQvPk4/T7za3JtH9+IAOFIg0gB3wQm4CAgAAgDCAFfCEMIAYgBHwhBiACKQMoIQQgAikDICEFIAJBMGogAEEgaiAJIAd8Qh+JQvPk4/T7za3JtH9+IgggA3wgACkAECAMIAYgC3xCFolC8+Tj9PvNrcm0f358IgZ8EJuAgIAAIABBwABqIQAgAikDOCEDIAIpAzAhByANIQkgCkLAAHwiCkIAUg0ACyAGQi+IIAaFQvPk4/T7za3JtH9+IA18IAUgBxCagICAAHwgBCADEJqAgIAAIAh8EJqAgIAAIQYMAQsgASAAaiIBQXBqKQAAIANCAYZCz4DB/LLH2vCaf3wiBH4iBSABQWBqKQAAIgN8IAApABhCCX4iByAAKQAQQs+Awfyyx9rwmn9+fCIIIAFBaGopAAAiBnwiCSAAKQAIIgp8IAkgAUF4aikAACINfCAIQhaJIAZ8Igh8IAcgDSAAKQAAQs+Awfyyx9rwmn9+fCIJIAOFfEIBfCIDIAV8IAlCFYkgCkIiiSAGfEIJfnwgA3wgBH4iBkI4hiAGQoD+A4NCKIaEIAZCgID8B4NCGIYgBkKAgID4D4NCCIaEhCAGQgiIQoCAgPgPgyAGQhiIQoCA/AeDhCAGQiiIQoD+A4MgBkI4iISEhHwgBH4iBkI4hiAGQoD+A4NCKIaEIAZCgID8B4NCGIYgBkKAgID4D4NCCIaEhCAGQgiIQoCAgPgPgyAGQhiIQoCA/AeDhCAGQiiIQoD+A4MgBkI4iISEhHwgBH4iBkI4hiAGQoD+A4NCKIaEIAZCgID8B4NCGIYgBkKAgID4D4NCCIaEhCAGQgiIQoCAgPgPgyAGQhiIQoCA/AeDhCAGQiiIQoD+A4MgBkI4iISEhHwgBH58IgZCL4ggBoUgBH4gCHwhBgsgAkHAAGokgICAgAAgBgtYAQJ/QQAhBAJAIAEgA0cNAAJAIAAgAkcNAEEBDwsDQCABRSEEIAFFDQEgAUF/aiEBIAItAAAhAyAALQAAIQUgAEEBaiEAIAJBAWohAiAFIANGDQALCyAEC5kKBQF/AX4HfwF+A38jgICAgABBkAFrIgIkgICAgAACQAJAAkAgAQ0AI4GAgIAAQZiAwIAAaikDACEDQarVqtV6IQRBACEFQQAhBgwBC0EAIQcgAkEYakEIakEANgIAIAJCADcDGCACI4GAgIAAQZiAwIAAaikDACIDNwIkIAJB+ABqQQhqQQA2AgAgAkIANwN4IAFB//8DIAFB//8DSRtB5ABsQdAAbiEIIAJBJGohCQJAAkBBAA0AQXwhBkIBQSAgCGdrrUL//wODhqciCEEIIAhBCEsbIghBAXQgCEEPakF8cSIKIAhBA3RqIgVqQQNqQXxxIgRFDQEgA6cgBEECQQAgA0IgiKcoAgARgICAgAAAIgYNAQsgAkH4AGogCRCHgICAACACQRhqEIaAgIAADAILIAYgCDYCCCAGIAYgCmo2AgQgBiAGIAVqNgIAIAIgBkEMaiIGNgJ4QQAhByAGQQAgCBCcgICAABogAkH4AGpBCGoiBiAIQdAAbEHkAG4iCDYCACACQRhqQQhqIgooAgAhBSAKIAg2AgAgBiAFNgIAIAJBADYCHCACKQMYIQsgAiACKQN4NwMYIAIgCzcDeCACQfgAaiAJEIeAgIAAIAIgAzcChAEgAkEANgKAASACQqrVqtUKNwJ4AkAgAkH4AGogARCMgICAAEH//wNxRQ0AIAJBGGoQhoCAgAAMAgsgAikChAEhAyACKAKAASEFIAIoAnwhDCACKAJ4IQRBgAIhDUEAIQcDQCAAIAdqIQhBAiEGAkACQAJAA0ACQAJAIAcgBmoiCSABTw0AIAJBLGogAkEYaiAIIAYQiICAgAAgAi0ALg0BIAohByAGQQJGDQMMBQsCQCAHQQFqIAFJDQAgCC0AACEGDAQLIAJBMGpBEGogAkEYakEQaigCADYCACACQTBqQQhqIAJBGGpBCGopAwA3AwAgAiACKQMYNwMwIAJBxABqIAJBMGogCCAGEIiAgIAAAkACQAJAIAItAEYNACAGQQJHDQEgCC0AACEGDAILIAIvAUQhBgwFCyACQcgAakEQaiACQRhqQRBqKAIANgIAIAJByABqQQhqIAJBGGpBCGopAwA3AwAgAiACKQMYNwNIIAJB4ABqIAJByABqIAggBkF/ahCIgICAACACLwFgIQYLIAQgDEEBdGogBjsBACAMQQFqIQwgCSAAakF/ai0AACEGDAMLIAZBAWohBiACLwEsIQoMAAsLIAgtAAAhBwwBCyAEIAxBAXRqIAY7AQAgDEEBaiEGIAJBGGoQhoCAgAAMAgsgBCAMQQF0aiAHOwEAIAxBAWohDiAJQX9qIQcCQCANQf//A3FB/v8DRw0AAkAgAigCGCIGRQ0AIAZBACAGQXxqKAIAIggQnICAgAAaIAJBADYCHCACIAitQtAAfkLkAIA+AiALIAQgDkEBdGpB/v8DOwEAIAxBAmohDEGAAiENDAELIAJBGGogCCAGIA0QjYCAgAAgDUEBaiENIA4hDAwACwsgAiADNwIQIAIgBDYCBCACIAY2AgggAiAFNgIMIAYhAQJAIAUgBkEEaiIITw0AQQAhByACQQRqIAUgCBCOgICAABCMgICAAEH//wNxDQEgAigCBCEEIAIoAgghAQsgBCABQQF0aiIBIAZBAXQiBzsBACABQQJqIAZBD3Y7AQAgAUEEaiAFQQF0OwEAIAFBBmogBUEPdjsBACAEIAdqIQcLIAJBkAFqJICAgIAAIAcLkwIBBn8jgICAgABBEGsiAiSAgICAAEEAIQMCQCAAKAIIIgQgAU8NACAAKAIAIQUCQCAERQ0AIAIgAUEASDoACCABQX9MDQAgACgCDCAFIARBAXRBASABQQF0QQAgAEEQaigCACgCBBGCgICAAABBAXFFDQAgACABNgIIQQAhAwwBCyACIAApAgw3AwAgAkEIaiACIAEQg4CAgAAgAi8BDCIDDQAgAigCCCAAKAIAIAAoAgRBAXQQnYCAgAAhBkEAIQMCQCAEQQF0QQAgBBsiB0UNACAAKAIMIAVBAiAEGyAHQQFBACAAQRBqKAIAKAIIEYGAgIAAAAsgACABNgIIIAAgBjYCAAsgAkEQaiSAgICAACADC5gDAwJ/AX4GfyOAgICAAEEQayIEJICAgIAAAkAgACgCBEUNACAAKAIAIQUgASACEImAgIAAIQYCQAJAIAUNAEEAIQdBfyEIDAELIAVBfGooAgAiB0F/aiEICyAFQXhqIQkgCCAGp3EhCiAGQjmIpyELA0AgBSAKaiwAACIMRQ0BIAdFDQECQCAMQX9KDQAgCyAMQf8AcUcNACABIAIgCSgCACAKQQN0aiIMKAIAIAwoAgQQioCAgABBAXFFDQAgBEEBOgAMDAILIAdBf2ohByAKQQFqIAhxIQoMAAsLIAEgAhCJgICAACEGQX8hDAJAIAAoAgAiB0UNACAHQXxqKAIAQX9qIQwLIAwgBqdxIQoCQANAIAcgCmoiBSwAAEF/Sg0BIApBAWogDHEhCgwACwsgACAAKAIIQX9qNgIIIAUgBkI5iKdBgAFyOgAAIAAoAgBBeGooAgAgCkEDdGoiByACNgIEIAcgATYCACAAKAIAQXRqKAIAIApBAXRqIAM7AQAgACAAKAIEQQFqNgIEIARBEGokgICAgAALJQEBfwNAQX8gAEEBdiAAakEIaiICIAIgAEkbIgAgAUkNAAsgAAs/AQF/I4CAgIAAQRBrIgEkgICAgAAgASAAKQIMNwMIIAFBCGogACgCACAAKAIIEJCAgIAAIAFBEGokgICAgAALNwEBfwJAIAJBA3RBACACGyIDRQ0AIAAoAgAgAUEEIAIbIANBAkEAIAAoAgQoAggRgYCAgAAACwvbBwMBfwF+CX8jgICAgABBwABrIgIkgICAgAAjgYCAgABBmIDAgABqKQMAIQMCQAJAAkACQCABDQBBqtWq1XohBEEAIQVBACEGDAELIAJBADYCICACQqrVqtUKNwIYIAIgAzcCJCACQQBB//8DEI6AgIAAIgdB/////wFLOgAsIAdBgICAgAJPDQECQAJAIAdBA3QiCA0AQXwhCAwBCyADpyAIQQJBACADQiCIpygCABGAgICAAAAiCEUNAgsgAiAHNgIgIAIgCDYCGEEAIQcCQANAIAdB+P8fRg0BIAggB2pCADcCACAHQQhqIQcMAAsLIAJB//8DNgIcIAIgAzcCOEEAIQcgAkEANgI0IAJCqtWq1Qo3AiwgAkEsaiABQRhsEJKAgIAAQf//A3ENASACKQI4IQMgAigCNCEFIAIoAiwiBCACKAIwIgZqIAAtAAA6AAAgCCAALwEAQQN0aiIJQQE2AgQgCSAENgIAIAZBAWohCkEBIQlBgAIhCwNAIAohBgJAAkACQAJAIAkgAU8NAAJAIAAgCUEBdGovAQAiCkH+/wNHDQAgCUEBaiIJIAFPDQFBACEHAkADQCAHQfj/H0YNASAIIAdqQgA3AgAgB0EIaiEHDAALCwJAIAAgCUEBdGovAQAiB0GAAkkNACACQf//AzYCHAwICyAEIAZqIAc6AAAgBkEBaiEKQYACIQsMBAsgCkGAAkkNAQJAIAggCkEDdGoiCigCACIMDQAgBCAGaiAEIAdqIgogBiAHayIMEJ2AgIAAGiAEIAwgBmoiDGogCi0AADoAACAMQQFqIQoMAwsgBCAGaiAMIAooAgQiChCdgICAABogCiAGaiEKDAILIAJB//8DNgIcIAJBGGoQj4CAgAAMBAsgBCAGaiAKOgAAIAZBAWohCgsgCCALQf//A3FBA3RqIgwgBiAHa0EBajYCBCAMIAQgB2o2AgAgC0EBaiELCyAJQQFqIQkgBiEHDAALCyACIAM3AhAgAiAENgIEIAIgBjYCCCACIAU2AgwCQAJAIAUgBkEIaiIISQ0AIAYhBwwBC0EAIQcgAkEEaiAFIAgQjoCAgAAQkoCAgABB//8DcQ0CIAIoAgQhBCACKAIMIQUgAigCCCEHCyAEIAdqIgcgBjoAACAHQQdqIAVBGHY6AAAgB0EGaiAFQRB2OgAAIAdBBWogBUEIdjoAACAHQQRqIAU6AAAgB0EDaiAGQRh2OgAAIAdBAmogBkEQdjoAACAHQQFqIAZBCHY6AAAgBCAGaiEHDAELIAJBGGoQj4CAgABBACEHCyACQcAAaiSAgICAACAHC9oBAQV/I4CAgIAAQSBrIgIkgICAgABBACEDAkAgACgCCCIEIAFPDQAgACgCACEFAkACQCAERQ0AQQANACAAKAIMIAUgBEEAIAFBACAAQRBqKAIAKAIEEYKAgIAAAEEBcUUNACAAIAE2AggMAQsgAiAAQQxqIgYpAgA3AxAgAkEYaiACQRBqIAEQgYCAgAAgAi8BHCIDDQEgAigCGCAAKAIAIAAoAgQQnYCAgAAhAyAGIAUgBBCFgICAACAAIAE2AgggACADNgIAC0EAIQMLIAJBIGokgICAgAAgAwvSAgMGfwF+B38jgICAgABBEGsiAySAgICAACAAKAIEIQQgACgCACEFQQAhBiACQf8BcSEHA38CQAJAAkAgBiAERw0AQX8hCAwBCwJAIAUgBkEEdGoiAkEIaikDACIJQgBTDQAgAikDAHsgCXt8pyABSQ0CCyAGQQd0IghBgAFqIQoDQCAIIApPDQIgCCAAKQIAIglCGYinQYB/cSICIAggAksbIgsgCGshDCAJp0EIIAlCIIinGyENIAhBEHRoIQ5BACECAkADQAJAIAwgAkcNACALIQ8MAgtB/wEgCCACaiIPQQdxIhBBB3N2QQEgEHRxIA0gD0EDdmotAABxRQ0BIAJBAWoiAiABSQ0AIA4gB0kNAAsgAyAJNwMIIANBCGogCCABQQAQlICAgAAMAgsgD0EBaiEIDAALCyADQRBqJICAgIAAIAgPCyAGQQFqIQYMAAsLVAEBfyADQQFxIQQCQANAIAJFDQEgACgCAEEIIAAoAgQbIAFBA3ZqIgMgAy0AAEF+IAFBB3EiA3dxIAQgA3RyOgAAIAFBAWohASACQX9qIQIMAAsLC9sBAQN/I4CAgIAAQRBrIgIkgICAgAACQCAAQYAQTw0AI4GAgIAAQaiAwIAAaiAAIAFBgBAgAUGAEEkbIABrEJaAgIAACwJAIAFBgBBNDQACQCOBgICAAEGggMCAAGooAgQNACOBgICAAEGggMCAAGoiA0GAIDYCBCADIAFBf2oiAUEQdCIENgIAIARBAEGAgAQQnICAgAAaCyACI4GAgIAAQaCAwIAAaikDADcDCCACQQhqIABBgBAgAEGAEEsbIgBBgHBqIAEgAGsQloCAgAALIAJBEGokgICAgAALOwEBfyOAgICAAEEQayIDJICAgIAAIAMgACkCADcDCCADQQhqIAEgAkEBEJSAgIAAIANBEGokgICAgAALvQEBBH9BACEEAkAgAUGBgHxPDQACQCOBgICAAEGogMCAAGogAUH//wNqQRB2IgEgAhCTgICAACIEQX9HDQACQCOBgICAAEGggMCAAGogASACEJOAgIAAIgRBf0YNACAEQYAQaiEEDAELQQAhBEEBIAJ0IgU/ACIGQRB0IgJqQX9qQQAgBWtxIgUgAmtBEHYiByABakAAQQFIDQEgByAGaiEEIAUgAkYNACAGIAQQlYCAgAALIARBEHQhBAsgBAtPAQF/AkAgAkH//wNqIgZBgIB8cSAETyICRQ0AIARB//8DakEQdiIEIAZBEHYiBkYNACAEIAFB//8DakEQdiIBaiABIAZqEJWAgIAACyACCyEAIAFB//8DakEQdiIBIAEgAkH//wNqQRB2ahCVgICAAAs+ACABIACFQuna4NmOwfrvnX9+IgBCL4ggAYUgAIVC6drg2Y7B+u+df34iAUIviCABhULp2uDZjsH6751/fgtCAQJ+IAAgASkAACACfCICIAEpAAh8IAEpABB8IgQgASkAGCIFfDcDACAAIARCFIkgAnwgBSACIAN8fEIriXw3AwgLLAEBfwJAIAJFDQAgACEDA0AgAyABOgAAIANBAWohAyACQX9qIgINAAsLIAALQgEBfwJAIAJFDQAgAkF/aiECIAAhAwNAIAMgAS0AADoAACACRQ0BIAJBf2ohAiABQQFqIQEgA0EBaiEDDAALCyAACwtBAgBBgIDAAAsIAAAAAAAAAAAAQYiAwAALKAEAAAACAAAAAwAAAAAAAAAAAAAACAAQAKqqqqoAAAAAMAAQABAAAAA="), F = await J(), A = F.exports;
3
+ function f(I) {
4
+ const { ptr: g, length: Q } = a(I, A), E = A.compress(g, Q);
5
+ A.free(g, Q);
6
+ const { start: C, end: i, capacity: D } = k(A.memory, E), o = new Uint16Array(A.memory.buffer.slice(C, i)), G = h(o);
7
+ return A.free(C, D), G;
8
+ }
9
+ function s(I) {
10
+ const g = A.allocUint16(I.length), Q = new Uint16Array(
11
+ A.memory.buffer,
12
+ g,
13
+ I.length
14
+ );
15
+ for (let B = 0; B < I.length; B++)
16
+ Q[B] = I.charCodeAt(B);
17
+ const E = A.decompress(
18
+ g,
19
+ I.length
20
+ );
21
+ A.free(g, 2 * I.length);
22
+ const { start: C, end: i, capacity: D } = k(A.memory, E), o = new Uint8Array(A.memory.buffer.slice(C, i)), G = new TextDecoder().decode(o);
23
+ return A.free(C, D), G;
24
+ }
25
+ export {
26
+ f as compress,
27
+ s as decompress
28
+ };
@@ -1,56 +1,56 @@
1
- function o(n, e) {
2
- const t = new TextEncoder().encode(n), a = e.allocUint8(t.length);
3
- return new Uint8Array(
4
- e.memory.buffer,
5
- a,
6
- t.length
7
- ).set(t), { ptr: a, length: t.length };
8
- }
9
- function f(n) {
10
- const e = new Array(n.length);
11
- for (let t = 0; t < n.length; t++)
12
- e[t] = String.fromCharCode(n[t]);
13
- return e.join("");
14
- }
15
- function c(n, e) {
16
- const t = new Uint32Array(
17
- n.buffer.slice(e, e + 8)
18
- ), a = t.at(0), r = t.at(1);
19
- return {
20
- start: e - a,
21
- end: e,
22
- capacity: r
23
- };
24
- }
25
- const l = async (n = {}, e) => {
26
- let t;
27
- if (e.startsWith("data:")) {
28
- const a = e.replace(/^data:.*?base64,/, "");
29
- let r;
30
- if (typeof Buffer == "function" && typeof Buffer.from == "function")
31
- r = Buffer.from(a, "base64");
32
- else if (typeof atob == "function") {
33
- const s = atob(a);
34
- r = new Uint8Array(s.length);
35
- for (let i = 0; i < s.length; i++)
36
- r[i] = s.charCodeAt(i);
37
- } else
38
- throw new Error("Failed to decode base64-encoded data URL, Buffer and atob are not supported");
39
- t = await WebAssembly.instantiate(r, n);
40
- } else {
41
- const a = await fetch(e), r = a.headers.get("Content-Type") || "";
42
- if ("instantiateStreaming" in WebAssembly && r.startsWith("application/wasm"))
43
- t = await WebAssembly.instantiateStreaming(a, n);
44
- else {
45
- const s = await a.arrayBuffer();
46
- t = await WebAssembly.instantiate(s, n);
47
- }
48
- }
49
- return t.instance;
50
- };
51
- export {
52
- f as U,
53
- o as c,
54
- c as e,
55
- l as i
56
- };
1
+ function o(n, e) {
2
+ const t = new TextEncoder().encode(n), a = e.allocUint8(t.length);
3
+ return new Uint8Array(
4
+ e.memory.buffer,
5
+ a,
6
+ t.length
7
+ ).set(t), { ptr: a, length: t.length };
8
+ }
9
+ function f(n) {
10
+ const e = new Array(n.length);
11
+ for (let t = 0; t < n.length; t++)
12
+ e[t] = String.fromCharCode(n[t]);
13
+ return e.join("");
14
+ }
15
+ function c(n, e) {
16
+ const t = new Uint32Array(
17
+ n.buffer.slice(e, e + 8)
18
+ ), a = t.at(0), r = t.at(1);
19
+ return {
20
+ start: e - a,
21
+ end: e,
22
+ capacity: r
23
+ };
24
+ }
25
+ const l = async (n = {}, e) => {
26
+ let t;
27
+ if (e.startsWith("data:")) {
28
+ const a = e.replace(/^data:.*?base64,/, "");
29
+ let r;
30
+ if (typeof Buffer == "function" && typeof Buffer.from == "function")
31
+ r = Buffer.from(a, "base64");
32
+ else if (typeof atob == "function") {
33
+ const s = atob(a);
34
+ r = new Uint8Array(s.length);
35
+ for (let i = 0; i < s.length; i++)
36
+ r[i] = s.charCodeAt(i);
37
+ } else
38
+ throw new Error("Failed to decode base64-encoded data URL, Buffer and atob are not supported");
39
+ t = await WebAssembly.instantiate(r, n);
40
+ } else {
41
+ const a = await fetch(e), r = a.headers.get("Content-Type") || "";
42
+ if ("instantiateStreaming" in WebAssembly && r.startsWith("application/wasm"))
43
+ t = await WebAssembly.instantiateStreaming(a, n);
44
+ else {
45
+ const s = await a.arrayBuffer();
46
+ t = await WebAssembly.instantiate(s, n);
47
+ }
48
+ }
49
+ return t.instance;
50
+ };
51
+ export {
52
+ f as U,
53
+ o as c,
54
+ c as e,
55
+ l as i
56
+ };
@@ -1,5 +1,5 @@
1
- export type Message = {
2
- command: string;
3
- id: number;
4
- data: string;
5
- };
1
+ export type Message = {
2
+ command: string;
3
+ id: number;
4
+ data: string;
5
+ };
package/dist/worker.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type Message = {
2
- command: string;
3
- id: number;
4
- data: string;
5
- };
1
+ export type Message = {
2
+ command: string;
3
+ id: number;
4
+ data: string;
5
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smol-string",
3
- "version": "0.0.2",
3
+ "version": "0.1.0-beta",
4
4
  "description": "Compression for browser localStorage",
5
5
  "author": "Senryoku <maretverdant@gmail.com>",
6
6
  "repository": {
@@ -52,11 +52,12 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@vitest/browser": "^0.34.6",
55
+ "smol-string": "^0.0.2-beta",
55
56
  "typescript": "^5.2.2",
56
- "vite": "^4.4.5",
57
+ "vite": "^5.0.0",
58
+ "vite-plugin-dts": "^3.6.2",
59
+ "vite-plugin-top-level-await": "^1.3.1",
57
60
  "vitest": "^0.34.6",
58
- "webdriverio": "^8.20.4",
59
- "vite-plugin-dts": "^3.6.2"
60
- },
61
- "dependencies": {}
61
+ "webdriverio": "^8.20.4"
62
+ }
62
63
  }
package/src/common.ts CHANGED
@@ -2,7 +2,7 @@ export function copyToWasmBuffer(
2
2
  str: string,
3
3
  exports: { allocUint8: (size: number) => number; memory: any }
4
4
  ) {
5
- // There's also an 'encodeInto' method to avoid a copy, but by encoding first, we con allocate only exactly what we need.
5
+ // There's also an 'encodeInto' method to avoid a copy, but by encoding first, we can allocate only exactly what we need.
6
6
  const utf8Str = new TextEncoder().encode(str);
7
7
  const ptrToStr = exports.allocUint8(utf8Str.length);
8
8
  const inBuffer = new Uint8Array(
Binary file
package/src/module.wasm CHANGED
Binary file
@@ -28,8 +28,12 @@ export function compressPacked(str: string) {
28
28
 
29
29
  exports.free(ptr, length);
30
30
 
31
+ //console.log(ptrToFooter);
32
+
31
33
  const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
32
34
 
35
+ //console.log(start, end, capacity / (1024 * 1024));
36
+
33
37
  // Includes the tokenCount at the end of the stream (2 * u16).
34
38
  const compressed = new Uint16Array(exports.memory.buffer.slice(start, end));
35
39
 
@@ -61,7 +65,7 @@ export function decompressPacked(compressedStr: string) {
61
65
  tokenCount
62
66
  );
63
67
 
64
- exports.free(ptrToCompressed, compressedStr.length - 2);
68
+ exports.free(ptrToCompressed, 2 * (compressedStr.length - 2));
65
69
 
66
70
  const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
67
71
  const content = new Uint8Array(exports.memory.buffer.slice(start, end));
@@ -1,29 +1,29 @@
1
- // @ts-expect-error
2
- import Worker from "./worker-packed.js?worker&inline";
3
-
4
- const worker = new Worker();
5
-
6
- let nextID = 0;
7
- const resolver: Record<number, (str: string) => void> = {};
8
-
9
- worker.onmessage = function (e: { data: { id: number; data: string } }) {
10
- const id = e.data.id;
11
- resolver[id](e.data.data);
12
- delete resolver[id];
13
- };
14
-
15
- export async function compressPacked(data: string) {
16
- const id = nextID++;
17
- return new Promise((resolve) => {
18
- resolver[id] = resolve;
19
- worker.postMessage({ command: "compress", id, data });
20
- });
21
- }
22
-
23
- export async function decompressPacked(data: string) {
24
- const id = nextID++;
25
- return new Promise((resolve) => {
26
- resolver[id] = resolve;
27
- worker.postMessage({ command: "decompress", id, data });
28
- });
29
- }
1
+ // @ts-expect-error
2
+ import Worker from "./worker-packed.js?worker&inline";
3
+
4
+ const worker = new Worker();
5
+
6
+ let nextID = 0;
7
+ const resolver: Record<number, (str: string) => void> = {};
8
+
9
+ worker.onmessage = function (e: { data: { id: number; data: string } }) {
10
+ const id = e.data.id;
11
+ resolver[id](e.data.data);
12
+ delete resolver[id];
13
+ };
14
+
15
+ export async function compressPacked(data: string) {
16
+ const id = nextID++;
17
+ return new Promise<string>((resolve) => {
18
+ resolver[id] = resolve;
19
+ worker.postMessage({ command: "compress", id, data });
20
+ });
21
+ }
22
+
23
+ export async function decompressPacked(data: string) {
24
+ const id = nextID++;
25
+ return new Promise<string>((resolve) => {
26
+ resolver[id] = resolve;
27
+ worker.postMessage({ command: "decompress", id, data });
28
+ });
29
+ }
@@ -1,29 +1,29 @@
1
- // @ts-expect-error
2
- import Worker from "./worker.js?worker&inline";
3
-
4
- const worker = new Worker();
5
-
6
- let nextID = 0;
7
- const resolver: Record<number, (str: string) => void> = {};
8
-
9
- worker.onmessage = function (e: { data: { id: number; data: string } }) {
10
- const id = e.data.id;
11
- resolver[id](e.data.data);
12
- delete resolver[id];
13
- };
14
-
15
- export async function compress(data: string) {
16
- const id = nextID++;
17
- return new Promise((resolve) => {
18
- resolver[id] = resolve;
19
- worker.postMessage({ command: "compress", id, data });
20
- });
21
- }
22
-
23
- export async function decompress(data: string) {
24
- const id = nextID++;
25
- return new Promise((resolve) => {
26
- resolver[id] = resolve;
27
- worker.postMessage({ command: "decompress", id, data });
28
- });
29
- }
1
+ // @ts-expect-error
2
+ import Worker from "./worker.js?worker&inline";
3
+
4
+ const worker = new Worker();
5
+
6
+ let nextID = 0;
7
+ const resolver: Record<number, (str: string) => void> = {};
8
+
9
+ worker.onmessage = function (e: { data: { id: number; data: string } }) {
10
+ const id = e.data.id;
11
+ resolver[id](e.data.data);
12
+ delete resolver[id];
13
+ };
14
+
15
+ export async function compress(data: string) {
16
+ const id = nextID++;
17
+ return new Promise<string>((resolve) => {
18
+ resolver[id] = resolve;
19
+ worker.postMessage({ command: "compress", id, data });
20
+ });
21
+ }
22
+
23
+ export async function decompress(data: string) {
24
+ const id = nextID++;
25
+ return new Promise<string>((resolve) => {
26
+ resolver[id] = resolve;
27
+ worker.postMessage({ command: "decompress", id, data });
28
+ });
29
+ }
@@ -49,7 +49,7 @@ export function decompress(compressedStr: string) {
49
49
  compressedStr.length
50
50
  );
51
51
 
52
- exports.free(ptrToCompressed, compressedStr.length);
52
+ exports.free(ptrToCompressed, 2 * compressedStr.length);
53
53
 
54
54
  const { start, end, capacity } = extractFooter(exports.memory, ptrToFooter);
55
55
  const content = new Uint8Array(exports.memory.buffer.slice(start, end));
@@ -1,21 +1,21 @@
1
- import { compressPacked, decompressPacked } from "./smol-string-packed.js";
2
-
3
- export type Message = {
4
- command: string;
5
- id: number;
6
- data: string;
7
- };
8
-
9
- onmessage = async function (e: { data: Message }) {
10
- const { command, id, data } = e.data;
11
- switch (command) {
12
- case "decompress": {
13
- postMessage({ id, data: decompressPacked(data) });
14
- break;
15
- }
16
- case "compress": {
17
- postMessage({ id, data: compressPacked(data) });
18
- break;
19
- }
20
- }
21
- };
1
+ import { compressPacked, decompressPacked } from "./smol-string-packed.js";
2
+
3
+ export type Message = {
4
+ command: string;
5
+ id: number;
6
+ data: string;
7
+ };
8
+
9
+ self.onmessage = function (e: { data: Message }) {
10
+ const { command, id, data } = e.data;
11
+ switch (command) {
12
+ case "decompress": {
13
+ self.postMessage({ id, data: decompressPacked(data) });
14
+ break;
15
+ }
16
+ case "compress": {
17
+ self.postMessage({ id, data: compressPacked(data) });
18
+ break;
19
+ }
20
+ }
21
+ };
package/src/worker.ts CHANGED
@@ -1,21 +1,21 @@
1
- import { compress, decompress } from "./smol-string.js";
2
-
3
- export type Message = {
4
- command: string;
5
- id: number;
6
- data: string;
7
- };
8
-
9
- onmessage = async function (e: { data: Message }) {
10
- const { command, id, data } = e.data;
11
- switch (command) {
12
- case "decompress": {
13
- postMessage({ id, data: decompress(data) });
14
- break;
15
- }
16
- case "compress": {
17
- postMessage({ id, data: compress(data) });
18
- break;
19
- }
20
- }
21
- };
1
+ import { compress, decompress } from "./smol-string.js";
2
+
3
+ export type Message = {
4
+ command: string;
5
+ id: number;
6
+ data: string;
7
+ };
8
+
9
+ self.onmessage = function (e: { data: Message }) {
10
+ const { command, id, data } = e.data;
11
+ switch (command) {
12
+ case "decompress": {
13
+ self.postMessage({ id, data: decompress(data) });
14
+ break;
15
+ }
16
+ case "compress": {
17
+ self.postMessage({ id, data: compress(data) });
18
+ break;
19
+ }
20
+ }
21
+ };
package/vite.config.ts CHANGED
@@ -3,6 +3,8 @@ import { defineConfig } from "vite";
3
3
  import dts from "vite-plugin-dts";
4
4
  import pkg from "./package.json" assert { type: "json" };
5
5
 
6
+ import topLevelAwait from "vite-plugin-top-level-await";
7
+
6
8
  export default defineConfig({
7
9
  build: {
8
10
  lib: {
@@ -17,7 +19,7 @@ export default defineConfig({
17
19
  },
18
20
  rollupOptions: {
19
21
  external: [
20
- ...Object.keys(pkg.dependencies), // don't bundle dependencies
22
+ ...Object.keys(pkg["dependencies"] ?? {}), // don't bundle dependencies
21
23
  /^node:.*/, // don't bundle built-in Node.js modules (use protocol imports!)
22
24
  ],
23
25
  },
@@ -25,6 +27,16 @@ export default defineConfig({
25
27
  },
26
28
  worker: {
27
29
  format: "es",
30
+ plugins() {
31
+ return [
32
+ topLevelAwait({
33
+ // The export name of top-level await promise for each chunk module
34
+ promiseExportName: "__tla",
35
+ // The function to generate import names of top-level await promise in each chunk module
36
+ promiseImportName: (i) => `__tla_${i}`,
37
+ }),
38
+ ];
39
+ },
28
40
  },
29
41
  plugins: [
30
42
  dts(), // emit TS declaration files
@@ -1,29 +0,0 @@
1
- import { describe, expect, test } from "vitest";
2
-
3
- import { TestData } from "./common.js";
4
-
5
- import { compress, decompress } from "../dist/smol-string.js";
6
- import {
7
- compressPacked,
8
- decompressPacked,
9
- } from "../dist/smol-string-packed.js";
10
-
11
- describe("compress and decompress", () => {
12
- for (const { name, input } of TestData) {
13
- test(name, async () => {
14
- const compressed = compress(input);
15
- const decompressed = decompress(compressed);
16
- expect(decompressed).toBe(input);
17
- });
18
- }
19
- });
20
-
21
- describe("compressPacked and decompressPacked", () => {
22
- for (const { name, input } of TestData) {
23
- test(name, async () => {
24
- const compressed = compressPacked(input);
25
- const decompressed = decompressPacked(compressed);
26
- expect(decompressed).toBe(input);
27
- });
28
- }
29
- });
package/test/common.ts DELETED
@@ -1,15 +0,0 @@
1
- export const json_512kb = import("../../test/data/512KB.json");
2
- export const json_1mb = import("../../test/data/1MB.json");
3
- export const rw_medium = import("../../test/data/rw_medium.json");
4
- export const rw_large = import("../../test/data/rw_large.json");
5
-
6
- export const TestData = [
7
- {
8
- name: "Simple String",
9
- input: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum",
10
- },
11
- { name: "json_512kb", input: JSON.stringify(await json_512kb) },
12
- { name: "json_1mb", input: JSON.stringify(await json_1mb) },
13
- { name: "rw_medium", input: JSON.stringify(await rw_medium) },
14
- { name: "rw_large", input: JSON.stringify(await rw_large) },
15
- ];
@@ -1,51 +0,0 @@
1
- import { describe, bench, expect, test, beforeAll } from "vitest";
2
-
3
- import { TestData } from "./common.js";
4
-
5
- import { compress, decompress } from "../dist/smol-string.js";
6
-
7
- import {
8
- compressPacked,
9
- decompressPacked,
10
- } from "../dist/smol-string-packed.js";
11
-
12
- const options = { iterations: 5 };
13
-
14
- describe.each(TestData)("Compression: $name", ({ name, input }) => {
15
- bench(
16
- "compress",
17
- async () => {
18
- compress(input);
19
- },
20
- options
21
- );
22
- bench(
23
- "compressPacked",
24
- async () => {
25
- compressPacked(input);
26
- },
27
- options
28
- );
29
- });
30
-
31
- describe.each(TestData)("Decompression: $name", ({ name, input }) => {
32
- let compressed = compress(input);
33
- let compressedPacked = compressPacked(input);
34
-
35
- bench(
36
- "decompress",
37
- async () => {
38
- const decompressed = decompress(compressed);
39
- expect(decompressed).toBe(input);
40
- },
41
- options
42
- );
43
- bench(
44
- "decompressPacked",
45
- async () => {
46
- const decompressed = decompressPacked(compressedPacked);
47
- expect(decompressed).toBe(input);
48
- },
49
- options
50
- );
51
- });