-
LockManager is now exported as WebLockManager. Update package-root imports to use WebLockManager; the old LockManager alias is not retained.
-
set rejects undefined, and flat keys or namespaces containing ":" are rejected. Unnamespaced SecureStorage keys now use secure:: instead of secure:, so legacy ciphertext requires explicit raw migration. Listener data or corruption errors now terminate the affected registration and surface asynchronously.
-
support aggregate batch update comparison
-
add batch storage operations and subscriptions (dff46a7)
- add multi-key overloads for get, set, and update
- add subscribe with FIFO event formatting and keep watch as a per-key projection
- align Storage, SecureStorage, and MonoStorage locking, corruption, recovery, and no-op semantics
- introduce strict physical-key decoding and explicit SecureStorage legacy migration
- cover runtime, type-level, locking, codec, React, and batch-planner behavior
-
helpers: add functional storage API (5c2c43c)
- add one-shot get/set and provider factories for all storage areas
- support secure and mono providers through typed overloads
- document provider reuse and cover runtime and type contracts
-
support aggregate batch update comparison (18d9e78)
-
types: support storage without explicit state (70dce43)
- add default state generics across providers, factories, and related public types
- preserve strict schema typing while documenting the loose playground mode
- cover genericless and typed usage with compile-time assertions
-
restructure README around functional API (f7f841b)
- make functional helpers and storage-area selection the primary onboarding path
- consolidate class, batch, locking, watch, secure, and MonoStorage documentation
- clarify provider scope, recovery behavior, public errors, and runtime limits
-
update package description (053e844)
Highlight the functional API, type safety, batch operations, encryption, and subscriptions in npm package metadata.
-
release: align breaking-change bumps before 1.0 (96c550c)
- treat breaking commits as minor releases on 0.x and major releases on 1.x
- recognize bang syntax, parser flags, notes, and breaking footers consistently
- preserve the minor release policy for revert commits
- add focused release-policy tests and contributor documentation
-
locking: rename LockManager to WebLockManager (daecdaa)
- move the Web Locks implementation and tests into src/locking
- add a locking barrel and re-export built-in lockers from the package root
- keep WebLockManager as the default locker for storage providers
- document the built-in implementation and verify its public type export
- Anjey Tsibylskij (@atldays) — commits: 9
-
add custom equality comparison for
updatemethod (89874b9)- Introduce
compareoption forupdate()to skip writes based on custom equality logic. - Extend
StorageUpdateOptionswithcomparefield for precise control over update logic. - Ensure no-op writes do not trigger unnecessary updates or storage writes.
- Add comprehensive test coverage for
compareusage. - Update documentation with examples to demonstrate custom
compareusage.
- Introduce
-
improve atomic updates section in README (f457ced)
- Expand explanation of atomic updates for browser extensions.
- Provide examples for extension state shared across multiple contexts.
- Clarify use cases such as counters, retries, toggles, and queue metadata.
- Anjey Tsibylskij (@atldays) — commits: 3
-
add LockManager to serialize concurrent operations (8b9d49c)
- Introduce
LockManagerfor atomic storage updates, leveraging the Web Locks API. - Enhance storage operations with lock options for
update,remove, andclear. - Expand test coverage to include concurrency handling and custom locks implementation.
- Introduce
-
enhance package metadata and dependencies (87a6a31)
-
handle non-string values in SecureStorage changes gracefully (65f3e9e)
-
release: specify npm registry in release-it config (b540405)
-
add CI badge to README (79fd044)
-
improve and expand documentation for storage features (bb0af71)
- Provide clearer descriptions of storage APIs, features, and use cases.
- Enhance examples for SecureStorage, MonoStorage, atomic updates, and React bindings.
- Include notes on Web Locks API reliance, namespaces, and storage areas.
- Update examples with modern TypeScript syntax and best practices.
-
husky: update pre-commit hook to handle partially staged files (6c14915)
-
release: update release workflow, Node version, and npm config (f62686e)
-
deps: update dependencies and lockfile to latest versions (82b41d1)
-
update formatting, mailmap, and test label icon (4ee7b34)
- Adjusted
.release-it.cjsto include an icon for the "test" label. - Updated
jest.config.tsto enforce consistent spacing within objects. - Added
.mailmapfile to consolidate and standardize author email aliases.
- Adjusted
-
release: simplify and clean up release-it configuration (ff864e1)
-
simplify and standardize async storage operations (ae61d0c)
- Replace custom promises with
callWithPromisefor consistency and readability. - Remove unnecessary
throwRuntimeErrorcalls and redundant error handling. - Streamline
onChangedlistener management usinghandleListenerhelper.
- Replace custom promises with
- Anjey Tsibylskij (@atldays) — commits: 13
- Addon Stack (@addon-stack) — commits: 1
-
enhance watch callbacks with key differentiation (97e4557)
- Updated
watchto include key-specific callbacks and pass key names to global callbacks. - Refactored
StorageWatchOptionsinto separate callback types for consistency. - Adjusted tests to validate key-specific callback behavior and new parameters.
- Improved error handling in
AbstractStoragefor unhandled key changes.
- Updated
-
update README and CONTRIBUTING guidelines for clarity (aa79667)
- Expanded peer dependency details in README (including @types/react-dom).
- Updated descriptions for
watch()callbacks andgetAll()behavior. - Clarified SecureStorage key formatting for namespaced storage.
- Improved MonoStorage
watch()explanation with deep comparison info. - Revised CONTRIBUTING.md to align with a Simplified GitFlow model.
- Removed references to
release/*andhotfix/*branches in release process.
-
replace release workflows with unified release pipeline (a39f5d4)
- Consolidated
release-prepare.ymlandrelease-publish.ymlinto a singlerelease.yml. - Streamlined CI with dynamic matrix computation for better flexibility and coverage.
- Updated
.release-it.cjswith enhanced contributor logic and changelog formatting. - Introduced
.gitattributesto enforce consistent line endings across the repo. - Improved biome configuration to exclude coverage and dist directories.
- Consolidated
-
update dependencies and replace @adnbn/browser with @addon-core/browser (fa3bbaa)
- Updated
@addon-core/browserto v0.2.1, replacing@adnbn/browser. - Bumped multiple Jest-related dependencies to v30.2.0 for consistency.
- Included new transitive dependency
signal-exitv4.1.0.
- Updated
-
replace shallowEqual with
dequalfor deep equality checks (d2a5e43)- Removed custom
shallowEqualmethod in favor of usingdequalfor better accuracy. - Updated
MonoStoragelogic to apply deep equality checks with importeddequal. - Adjusted
.gitignorewith additional entries for environment and build artifacts. - Updated
package-lock.jsonwithdequaldependency and removed unused modules.
- Removed custom
- Addon Stack (@addon-stack) — 5 commits
- Addon Stack — 2 commits
-
update release-it config to hide unused sections (1ce0a4d)
- Updated configuration to hide
docs,build, andchoresections in changelogs. - Removed
choreandbuildfrom patch types for version bump logic. - Added
releaseNamefield in GitHub releases for better naming consistency.
- Updated configuration to hide
-
update release-it configuration for better npm publish (ae54a77)
-
release-it: remove redundant
releaseNamefield from config (92bfca4)- Deleted the
releaseNamefield under the GitHub section as it is not used. - Simplifies the configuration for release management.
- Deleted the
-
update release-it config to hide unused sections (1ce0a4d)
- Updated configuration to hide
docs,build, andchoresections in changelogs. - Removed
choreandbuildfrom patch types for version bump logic. - Added
releaseNamefield in GitHub releases for better naming consistency.
- Updated configuration to hide
-
update release-it configuration for better npm publish (ae54a77)
-
ci: migrate from semantic-release to release-it (157a07b)
- Removed all semantic-release-related configurations and workflows.
- Added release-it configurations for preview and publish workflows.
- Updated package dependencies to replace semantic-release with release-it.
-
release-it: add shorthash fallback and adjust release name format (af14a46)
-
release-it: remove redundant
releaseNamefield from config (92bfca4)- Deleted the
releaseNamefield under the GitHub section as it is not used. - Simplifies the configuration for release management.
- Deleted the
-
release-it: update templates for consistent formatting and naming (a8d5293)
-
release-it: use
Map.getfor type lookup in commit transformation (6b697be)
-
add CI job and update npm install commands (009ec1f)
- Introduced a reusable
cijob inrelease-publish.ymlandrelease-prepare.ymlworkflows. - Updated
npm citonpm installfor dependency installation in both workflows.
- Introduced a reusable
-
update workflows for release management and clean up dependencies (85da77d)
- Added
nameandneeds: cifields inrelease-publish.ymlandrelease-prepare.yml. - Removed redundant
npm run buildstep fromrelease-publish.yml. - Cleaned up unused dependencies from
package-lock.jsonfor better maintenance.
- Added
-
update workflows for release preparation and publishing (af18584)
- Added Git user configuration step in
release-publish.ymlfor commits made by workflows. - Enabled
hotfix/**branch triggering inrelease-prepare.ymlfor flexible hotfix management.
- Added Git user configuration step in
-
release-it: add repoUrl for commit links in changelogs (5835e68)
-
release-it: enhance configuration for structured release notes (405a947)
- Added
contextto include package name in changelog and header templates. - Updated
headerPartialand introducedmainTemplatefor improved formatting. - Refined
commitPartialto ensure proper handling of commit details. - Simplified npm and GitHub release configurations for consistency.
- Added
-
release-it: refactor types configuration and enhance commit processing (d11d849)
- Refactored type definitions into a shared
typesarray with additional metadata. - Introduced
typesMapfor better type lookup and handling during commit transformation. - Updated
contextto reuse parsed package information frompackage.json. - Enhanced
transformto filter out hidden commit types and reformat body content. - Adjusted sorting and templates for structured and consistent release notes generation.
- Refactored type definitions into a shared
-
release-it: refine configuration for enhanced changelogs and bump logic (034ea8a)
- Made "chore" commits visible in changelogs, aligning with structured release notes.
- Enhanced
recommendedBumpOptsto classify commit types and prioritize breaking changes. - Improved
writerOptstemplates for consistent formatting with fallback handling. - Adjusted
filerules inbiome.jsonfor expanded file type handling in source and tests.
-
906ed65Thanks @addon-stack! - added storage providers and utilities:Storage,SecureStorage,MonoStorage- React hook
useStoragefor convenient use of storage in components - Factories
Storage.Local/Sync/Session, namespace support, andwatchfor change subscriptions
- migrate: switched to
Biomefor linting and code formatting - chore: updated
npmscripts and configs for consistency and stability - chore: refined
lint-staged, simplified pre-commit scripts - chore: mass auto-formatting and import ordering
- chore: simplified release preparation — commit changes directly to the release branch
- CI: current CI (type checks, tests, build,
npm pack --dry-run) updated to match new scripts/linter
- feat: introduce Storage, SecureStorage, MonoStorage and useStorage hook —
4459fd5 - migrate to Biome —
2b4d1a3 - update scripts/configs —
8daee6b - lint-staged/pre-commit tweaks —
4ed5053,5ad57ac - simplify release workflow —
0365825
0365825Thanks @addon-stack! - simplify release workflow by committing changes directly to release branch
cbbb134Thanks @addon-stack! - add Contributor Covenant Code of Conduct
c997bd4Thanks @addon-stack! - ### Improve release workflows for branch-based releases- Updated
release-publish.ymlto usenpm publishwith provenance and public access. - Enhanced token configurations for compatibility.
- Modified
release-prepare.ymlto handle branch-based release preparation. - Added automatic branch creation and targeted PR updates for release branches.
- Updated
4018660Thanks @addon-stack! - Add MIT license to package and project files- Added
MITlicense topackage.json. - Created
LICENSE.mdcontaining copyright and license details.
- Added
40c75ebThanks @addon-stack! - ### Configure workflows for release preparation and publishing- Added
release-prepare.ymlto automate versioning and changelog generation with Changesets. - Renamed and updated
release.ymltorelease-publish.ymlfor npm publishing. - Enhanced
ci.ymlworkflow with support for workflow calls. - Updated Changesets configuration and added
releasescript inpackage.json.
- Added
-
120ca74Thanks @addon-stack! - #### 0.1.1 — Patch (upcoming)- Added: CI workflow for automated releases via Changesets and npm publication.
- Added:
commitlintfor commit message validation. - Style: Unified code formatting (double quotes, indentation).
- Chore: Cleaned up unused dependencies and added
overridesforglob.
- Introduced package
@addon-core/storagewith CJS/ESM/types exports. - Build: Configured bundling with
@rslib/core(build,dev). - Tooling: Set up TypeScript,
Biome,ESLint,Prettier,Jest,husky, andlint-staged. - Scripts:
typecheck,test,test:run,test:related. - CI: Added
ci.ymlto runbiome check,typecheck, tests, build, andnpm pack --dry-run; includes Node 18/20/22 matrix formainand PRs tomain. - Releases: Added
release.ymlusingchangesets/action@v1for creating release PRs or publishing to npm (npm publish --provenance --access public). - Changesets: Added