All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
0.7.10 (2024-06-07)
- storage-pool: strip leading slashes from sticky paths (2ad2f64)
0.7.9 (2024-06-06)
- spec: add TussleStoragePerfEvent and optional event$ Observable to TussleStorageService (3b80854)
- storage-pool: add performance reporting capability (1249292)
- storage-r2: add performance reporting capability (e4a9860)
0.7.8 (2024-06-06)
- storage-pool: add select callback to expose sub-store prioritization (23a8910)
0.7.7 (2024-06-03)
- storage-r2: fix FixedLengthStream did not see all expected bytes when using checkpointMaxBufferSize (6d9b1ba)
0.7.6 (2024-05-29)
Note: Version bump only for package @klowner/tussle
0.7.5 (2024-05-29)
- cloudflare-example-r2: switch to wrangler 3 which uses sqlite based R2 driver which avoids name conflict bug (c45f613)
- storage-r2: ensure state reconstruction picks the higher value key of two equally-timed uploads (82b035a)
- add middleware test for tus Upload-Metadata header (80a57a7)
- core,storage-r2: add basic support for termination protocol extension (f544ffd)
- spec: add TussleStorageServiceWithDeleteCapability type which includes deleteFile() (5298280)
- storage-r2: add option to limit working buffer size of checkpoint ReadableStream slicer (c87e507)
0.7.4 (2023-06-15)
- storage-r2: update rebucket error callback types (6ec4e81)
0.7.3 (2023-06-15)
- storage-r2: avoid predicted future state, rebuild state from known truths only (67fd69b)
- storage-r2: add internal state as second parameter to ReBucket error callback (08adb58)
- storage-r2: move R2File.body() optimizations to R2File.slice(), body() now calls slice() (9ef0834)
- upgrade miniflare to 3.0.1 (e5440a9)
0.7.2 (2023-05-28)
- storage-r2: automerge and parallel/concatenation requests should now interop as expected (eb2b41f)
0.7.1 (2023-05-09)
Note: Version bump only for package @klowner/tussle
0.7.0 (2023-05-09)
- storage-r2: Update README.md (bc1df27)
- storage-r2: use etagMatches: 'never-match' to avoid R2 body response (docs claim lower latency) (add2ca0)
- core: add (hopefully) functional creation-with-upload implementation (93460c1)
- storage-r2: add documentation for skipMerge (8c6417f)
- storage-r2: add majority of support for auto-merge upon upload completion (b08939f)
- storage-r2: add test coverage for checkpoints (e7a4146)
- storage-r2: add tests for auto-merge (91489fb)
0.6.12 (2023-03-28)
- enable declaration maps (ee3f7c6)
0.6.11 (2023-02-06)
- core: try to do a better job of surfacing creation errors thrown by storage service (4941671)
- storage-r2: disable R2 put() retries in ReBucket until I find a strategy for retrying already-read ReadableStreams (2423991)
0.6.10 (2023-02-01)
- storage-r2: add optional 'ReBucket' adapter class to provide automatic retry for R2 bucket operations (fc0bb2c)
- storage-r2: add test for lousyUUID default params (01720ca)
0.6.9 (2023-01-15)
- storage-r2: remove nanoid in favor of built-in lousyUUID, also provide option for users to provide their own method (or use nanoid) (651a89e)
0.6.8 (2022-12-15)
- storage-r2: calculate R2File size from sum of chunk sizes (68d914a)
0.6.7 (2022-12-11)
- storage-r2: fix race-condition causing file reassembly to potentially scramble chunk order (0137528)
0.6.6 (2022-12-10)
- storage-r2: only check upload-length during concatenation if it's provided (spec says it's optional) (5bd7436)
0.6.5 (2022-12-06)
- storage-r2: add a ton of tests, hopefully fix parallel upload state reconstruction (585fa9d)
- state-memory: use Map instead of bare object (f66d3fa)
- storage-r2: update R2File.delete() to use single call to bucket.delete() now that it accepts arrays (1a56397)
0.6.4 (2022-11-15)
Note: Version bump only for package @klowner/tussle
0.6.3 (2022-11-15)
- core: don't require upload-length if request is upload-concat: final (3f47529)
- middleware-koa: remove success path for unknown HTTP verbs (fb85fd5)
- spec: add x-http-method-override header http verb override to middleware tests (f08f89d)
- state-namespace: extract TussleStateNamespace from core and move to separate @tussle/state-namespace package (017dbbc)
0.6.2 (2022-11-11)
- storage-r2: cap R2File.slice() length to file's total size (29b33fd)
0.6.1 (2022-11-09)
- state-cloudflareworkerkv: change setItem value from T|string to Readonly (d642de2)
- storage-r2: add slice method to R2File (ranged-reads from or dered R2 record keys) (b3c6f3a)
0.6.0 (2022-11-03)
- cloudflare-worker-r2: exclude 'dom' from libs in example client tsconfig (6d116ad)
- core: create handler refactor (aae27a1)
- core: handler throws error if Upload-Length missing (8d258b5)
- storage-r2: remove @tussle/core type imports in favor of @tussle/spec (9d9b5d2)
- storage-r2: add split builds (a4c5975)
0.5.4 (2022-10-28)
- spec: add offset requirement to TussleStorageCreateFileResponse interface (ff8f45b)
0.5.3 (2022-10-28)
- core: Handle unnecessary spaces in Upload-Metadata (907ae2f)
- storage-r2: Store empty record (with metadata) in R2 upon initial creation. (ed27a30)
0.5.2 (2022-10-27)
- storage-r2: remove static qualifier from supportedExtensions so core can actually pick it up. (a48626b)
0.5.1 (2022-10-26)
Note: Version bump only for package @klowner/tussle
0.5.0 (2022-10-26)
- storage-r2: Add auto-checkpoint feature for non-chunked uploads (b1e035d)
0.4.5 (2022-10-08)
Note: Version bump only for package @klowner/tussle
0.4.4 (2022-10-07)
Note: Version bump only for package @klowner/tussle
0.4.3 (2022-10-07)
Note: Version bump only for package @klowner/tussle
0.4.2 (2022-10-07)
Note: Version bump only for package @klowner/tussle
0.4.1 (2022-10-07)
Note: Version bump only for package @klowner/tussle
0.4.0 (2022-10-07)
Note: Version bump only for package @klowner/tussle
0.3.2 (2022-09-15)
Note: Version bump only for package @klowner/tussle
0.3.1 (2022-09-14)
Note: Version bump only for package @klowner/tussle
0.3.0 (2022-09-14)
Note: Version bump only for package @klowner/tussle
0.2.13 (2022-07-19)
Note: Version bump only for package @klowner/tussle
0.2.12 (2022-07-12)
Note: Version bump only for package @klowner/tussle
0.2.11 (2022-07-12)
Note: Version bump only for package @klowner/tussle
0.2.10 (2022-07-06)
Note: Version bump only for package @klowner/tussle
0.2.9 (2022-07-06)
Note: Version bump only for package @klowner/tussle
0.2.8 (2022-07-05)
Note: Version bump only for package @klowner/tussle
0.2.7 (2022-05-16)
Note: Version bump only for package @klowner/tussle
0.2.6 (2022-05-10)
Note: Version bump only for package @klowner/tussle
0.2.5 (2022-05-05)
Note: Version bump only for package @klowner/tussle
0.2.4 (2022-05-02)
Note: Version bump only for package @klowner/tussle
0.2.3 (2022-05-02)
Note: Version bump only for package @klowner/tussle
0.2.2 (2022-04-28)
Note: Version bump only for package @klowner/tussle
0.2.1 (2022-04-22)
Note: Version bump only for package @klowner/tussle
0.2.0 (2022-04-22)
Note: Version bump only for package @klowner/tussle
0.1.1 (2022-04-05)
Note: Version bump only for package @klowner/tussle
0.1.0 (2022-04-05)
Note: Version bump only for package @klowner/tussle
0.0.5 (2021-05-10)
Note: Version bump only for package @klowner/tussle
0.0.4 (2021-02-11)
Note: Version bump only for package @klowner/tussle
0.0.3 (2020-11-28)
Note: Version bump only for package @klowner/tussle
0.0.2 (2020-11-19)
Note: Version bump only for package @klowner/tussle
0.0.1 (2020-10-03)
Note: Version bump only for package @klowner/tussle