1.6 KiB
1.6 KiB
Tasks: storage-set-partial
1. Abstract API
- 1.1 Add
abstract setPartial(key, offset, bytes, signal?): Promise<void>toAbstractStorage. - 1.2 Add
protected defaultSetPartial(...)helper alongsidedefaultGetPartial. - 1.3 Add required readonly
capabilitiesproperty; default all flagsfalse.
2. MemoryStorage native impl
- 2.1
MemoryStorage.setPartial(key, offset, bytes)— resize backingUint8Array,arr.set(bytes, offset). - 2.2
capabilities = { partialReads: true, partialWrites: true, nativeStreams: true, atomicWrites: true, contentAddressable: false }. - 2.3
NamespacedStorage.setPartialdelegates with prefixed key; capabilities mirror inner.
3. storage-s3 fallback wiring
- 3.1
S3Storage.setPartial = defaultSetPartialvia thin override. - 3.2
capabilities = { partialReads: <native if Range>, partialWrites: false, nativeStreams: true, atomicWrites: true, contentAddressable: false }.
4. Spec
- 4.1 Add
STORAGE-PARTIAL-WRITE-01…STORAGE-PARTIAL-WRITE-04with**Verified by:**lines.
5. Conformance tests
- 5.1
src/abstract/abstract.spec-conformance.test.ts—-01(signature),-02(sparse extension),-03(overlap overwrite),-04(capabilities default). - 5.2
src/memory/memory.spec-conformance.test.ts— nativesetPartial,partialWrites === true.
6. Verify
- 6.1
bunx turbo lint typecheck test --filter=@suaveplan/storagegreen. - 6.2
bunx turbo test:coverage --filter=@suaveplan/storage100/100/100/100. - 6.3
bun scripts/openspec-conformance.ts @suaveplan/storagePASS.