Skip to content

Feature/compt 57 cacheable cacheevict decorators#3

Merged
y-aithnini merged 8 commits intodevelopfrom
feature/COMPT-57-cacheable-cacheevict-decorators
Apr 3, 2026
Merged

Feature/compt 57 cacheable cacheevict decorators#3
y-aithnini merged 8 commits intodevelopfrom
feature/COMPT-57-cacheable-cacheevict-decorators

Conversation

@y-aithnini
Copy link
Copy Markdown
Contributor

Summary

  • What does this PR change?

Why

  • Why is this change needed?

Checklist

  • Added/updated tests (if behavior changed)
  • npm run lint passes
  • npm run typecheck passes
  • npm test passes
  • npm run build passes
  • Added a changeset (npx changeset) if this affects consumers

Notes

  • Anything reviewers should pay attention to?

@y-aithnini y-aithnini requested a review from a team as a code owner April 3, 2026 11:15
Copilot AI review requested due to automatic review settings April 3, 2026 11:15
@y-aithnini y-aithnini merged commit ccd8c89 into develop Apr 3, 2026
1 check passed
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 3, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds consumer-facing method decorators to CacheKit to support automatic cache-aside reads and post-operation cache eviction, wired into the module lifecycle so decorators can access CacheService without explicit injection.

Changes:

  • Added @Cacheable and @CacheEvict decorators and exported them from the public entrypoint.
  • Introduced utilities for cache key template resolution and a module-scoped CacheService reference used by decorators.
  • Updated CacheModule to populate the decorator-accessible CacheService reference during onModuleInit().

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tsconfig.json Updates TS path aliases (currently introduces a duplicate @utils/* key).
src/utils/resolve-cache-key.util.ts Adds runtime {n} placeholder interpolation for cache key templates.
src/utils/cache-service-ref.ts Adds a module-scoped singleton reference used by decorators to access CacheService.
src/index.ts Exposes Cacheable / CacheEvict as part of the package public API.
src/decorators/cacheable.decorator.ts Implements cache-aside behavior around method execution.
src/decorators/cache-evict.decorator.ts Implements cache eviction after successful method execution.
src/cache-kit.module.ts Populates the decorator-accessible cache service reference on module init.

Comment on lines +77 to +78
// Persist the result under the resolved key for future calls
await cacheService.set(resolvedKey, result, ttlSeconds);
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cacheable will attempt to cache whatever the wrapped method returns. If the method returns undefined (common for void/command-style methods), JSON.stringify(undefined) yields undefined, which is not valid JSON and will cause reads to always miss (or potentially fail depending on the store implementation). Consider skipping cacheService.set() when the result is undefined, or coercing/handling it explicitly.

Suggested change
// Persist the result under the resolved key for future calls
await cacheService.set(resolvedKey, result, ttlSeconds);
// Persist the result under the resolved key for future calls.
// Skip caching undefined because some cache stores serialize values as JSON,
// and JSON.stringify(undefined) does not produce a valid cache payload.
if (result !== undefined) {
await cacheService.set(resolvedKey, result, ttlSeconds);
}

Copilot uses AI. Check for mistakes.
Comment on lines +46 to +52
* Called once by CacheModule.onModuleInit().
*
* @param service - The resolved CacheService from NestJS DI
*/
set(service: CacheService): void {
// Overwrite any prior value — safe for hot-reload scenarios
_instance = service;
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CacheServiceRef.set() unconditionally overwrites the previously stored instance. If CacheModule.register() is imported more than once in the same process (e.g., different feature modules with different cache configs), whichever module initializes last will silently take over and all decorators will use the wrong CacheService. Consider preventing re-initialization (throw if already set with a different instance) or otherwise scoping the reference so multiple module instances can coexist safely.

Suggested change
* Called once by CacheModule.onModuleInit().
*
* @param service - The resolved CacheService from NestJS DI
*/
set(service: CacheService): void {
// Overwrite any prior value — safe for hot-reload scenarios
_instance = service;
* Called by CacheModule.onModuleInit().
*
* Re-initialisation is allowed only when the same instance is provided again
* (for example, during an idempotent bootstrap path). A different instance is
* rejected because decorators resolve this module-scoped reference globally,
* and silently replacing it would make them use the wrong CacheService.
*
* @param service - The resolved CacheService from NestJS DI
* @throws {Error} If a different CacheService instance was already registered
*/
set(service: CacheService): void {
if (_instance === null) {
_instance = service;
return;
}
if (_instance !== service) {
throw new Error(
"[CacheKit] CacheServiceRef has already been initialised with a different instance. " +
"Multiple CacheModule.register() or CacheModule.registerAsync() imports in the same " +
"process are not supported by the global decorator cache reference.",
);
}

Copilot uses AI. Check for mistakes.
Comment on lines +55 to +61
// Method decorators for automatic caching and cache invalidation.
// Apply these to service methods — no manual CacheService injection needed.

// Cache-aside decorator: returns cached value or calls the method and stores the result
export { Cacheable } from "./decorators/cacheable.decorator";
// Cache eviction decorator: deletes the cache entry after the method executes
export { CacheEvict } from "./decorators/cache-evict.decorator";
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR adds new public exports (Cacheable, CacheEvict) from the package entrypoint. Since this changes the consumer-facing API, add a changeset (npx changeset) so the version/changelog is updated consistently with the repo’s release workflow.

Copilot uses AI. Check for mistakes.
Zaiidmo added a commit that referenced this pull request Apr 7, 2026
* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>
y-aithnini added a commit that referenced this pull request Apr 7, 2026
* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>
y-aithnini added a commit that referenced this pull request Apr 7, 2026
* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>
Zaiidmo added a commit that referenced this pull request Apr 7, 2026
* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

* install dep

* Fix/sonar test inclusions (#10)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* chore: set version to 0.0.1 for initial publish

* Fix/sonar test inclusions (#12)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* Fix/sonar test inclusions (#14)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* Fix/align version 1.0.0 (#17)

* chore: align version to 1.0.0 to match master

* chore: revert version to 0.0.1 as required

* fix(chore): reverted versions tags and fixed merge conflits

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>
Zaiidmo added a commit that referenced this pull request Apr 7, 2026
* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

* install dep

* Fix/sonar test inclusions (#10)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* chore: set version to 0.0.1 for initial publish

* Fix/sonar test inclusions (#12)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* Fix/sonar test inclusions (#14)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* Fix/align version 1.0.0 (#17)

* chore: align version to 1.0.0 to match master

* chore: revert version to 0.0.1 as required

* fix(chore): reverted versions tags and fixed merge conflits

* 0.0.1

* chore: dump version 1

---------

Co-authored-by: y-aithnini <y.aithnini@ciscod.com>
Zaiidmo added a commit that referenced this pull request Apr 7, 2026
* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

* install dep

* Fix/sonar test inclusions (#10)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* chore: set version to 0.0.1 for initial publish

* Fix/sonar test inclusions (#12)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* Fix/sonar test inclusions (#14)

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/

* Develop (#7)

* ops: UPDATED publish workflow and dependabot PR limits

* ops (ci): standardize publish validation and dependabot across all packages

- Replace git tag --list strategy with package.json-driven tag validation
  in all 16 publish workflows; use git rev-parse to verify the exact tag
  exists rather than guessing the latest repo-wide tag
- Update error guidance to reflect feat/** → develop → master flow
- Standardize dependabot to npm-only, grouped, monthly cadence across
  all 16 packages; remove github-actions ecosystem updates
- Add missing dependabot.yml to AuthKit-UI, ChartKit-UI, HealthKit,
  HooksKit, paymentkit, StorageKit

* security: added CODEOWNER file for branches security

* ops: updated relese check workflow#

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters (#1)

* Feature/compt 56 cache module service (#2)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* Feature/compt 57 cacheable cacheevict decorators (#3)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* Feature/compt 58 test suite (#4)

* feat(COMPT-55): add ICacheStore port and Redis/InMemory adapters

* feat(COMPT-56): add CacheModule, CacheService, and DI tokens

* style: fix Prettier formatting across all files

* style: fix Prettier formatting after develop merge

* fix(lint): fix import order and replace any types with proper NestJS types

* feat(COMPT-57): add @Cacheable and @CacheEvict decorators with key interpolation

* test(COMPT-58): add full test suite with 95%+ coverage across all adapters, service, and decorators

* fix(lint): fix import/order and no-require-imports violations in spec files

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset (#5)

* docs(COMPT-59): add README, update peer deps, create v0.1.0 changeset

* style: fix Prettier formatting across all files

* improvement: replace KEYS with SCAN, fix @Cacheable null-return bug, clean up index exports (#6)

* ci: update release check workflow

* fix(ci): fix SonarCloud coverage — use src/**/*.spec.ts instead of test/ (#8)

* ops: updated release check jobs ]

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* chore: set version to 0.0.1 for initial publish

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>

* Fix/align version 1.0.0 (#17)

* chore: align version to 1.0.0 to match master

* chore: revert version to 0.0.1 as required

* fix(chore): reverted versions tags and fixed merge conflits

* 0.0.1

* chore: dump version 1

* fix: switch build to CommonJS and add exports field to package.json (#20)

The package was shipping ESM output without 'type: module' and without
.js extensions on internal imports — making it unloadable in Node.js.

- tsconfig.build.json: module=CommonJS, moduleResolution=Node10
- package.json: added exports field with require/default conditions

* Fix/cjs build and publish fields (#22)

* fix: switch build to CommonJS and add exports field to package.json

The package was shipping ESM output without 'type: module' and without
.js extensions on internal imports — making it unloadable in Node.js.

- tsconfig.build.json: module=CommonJS, moduleResolution=Node10
- package.json: added exports field with require/default conditions

* chore: bump version to 0.0.2

---------

Co-authored-by: Zaiidmo <zaiidmoumnii@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants