@mrjasonroy/cache-components-cache-handler 16.0.0-alpha.4 → 16.0.1

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.
package/README.md CHANGED
@@ -64,10 +64,13 @@ export default createMemoryCacheHandler({
64
64
 
65
65
  ```javascript
66
66
  // data-cache-handler.mjs (Data Cache for "use cache")
67
- import { createMemoryDataCacheHandler } from "@mrjasonroy/cache-components-cache-handler";
67
+ import { createCacheHandler } from "@mrjasonroy/cache-components-cache-handler";
68
68
 
69
- export default createMemoryDataCacheHandler({
70
- ttl: 3600, // 1 hour default
69
+ export default createCacheHandler({
70
+ type: process.env.NODE_ENV === "production" ? "redis" : "memory",
71
+ url: process.env.REDIS_URL,
72
+ password: process.env.REDIS_PASSWORD,
73
+ debug: process.env.NODE_ENV === "development",
71
74
  });
72
75
  ```
73
76
 
@@ -76,16 +79,18 @@ export default createMemoryDataCacheHandler({
76
79
  ```typescript
77
80
  // next.config.js
78
81
  import {
79
- createMemoryCacheHandler,
80
82
  createCompositeHandler,
83
+ createMemoryCacheHandler,
84
+ RedisCacheHandler,
81
85
  } from "@mrjasonroy/cache-components-cache-handler";
82
86
 
83
87
  const memoryHandler = createMemoryCacheHandler({
84
88
  maxItemsNumber: 100, // Small L1 cache
85
89
  });
86
90
 
87
- const redisHandler = createRedisHandler({
88
- // Your Redis handler implementation
91
+ const redisHandler = new RedisCacheHandler({
92
+ redis: process.env.REDIS_URL ?? "redis://localhost:6379",
93
+ defaultTTL: 3600,
89
94
  });
90
95
 
91
96
  export default {
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Zero-config cache handler factory
3
+ * Automatically configures handlers based on type and environment variables
4
+ */
5
+ import type { DataCacheHandler } from "./types.js";
6
+ export type CacheHandlerType = "memory" | "redis" | "valkey" | "elasticache";
7
+ export interface CacheHandlerOptions {
8
+ /**
9
+ * Cache backend type
10
+ */
11
+ type: CacheHandlerType;
12
+ /**
13
+ * Redis/Valkey URL (e.g., "redis://localhost:6379")
14
+ * @default process.env.REDIS_URL || process.env.VALKEY_URL
15
+ */
16
+ url?: string;
17
+ /**
18
+ * ElastiCache/Redis endpoint hostname
19
+ * @default process.env.ELASTICACHE_ENDPOINT
20
+ */
21
+ endpoint?: string;
22
+ /**
23
+ * ElastiCache/Redis port
24
+ * @default process.env.ELASTICACHE_PORT || 6379
25
+ */
26
+ port?: number;
27
+ /**
28
+ * Enable TLS/SSL
29
+ * @default true for elasticache, false for redis/valkey
30
+ */
31
+ tls?: boolean;
32
+ /**
33
+ * Auth token/password
34
+ * @default process.env.ELASTICACHE_AUTH_TOKEN or process.env.REDIS_PASSWORD
35
+ */
36
+ password?: string;
37
+ /**
38
+ * Key prefix for cache entries
39
+ * @default "nextjs:cache:"
40
+ */
41
+ keyPrefix?: string;
42
+ /**
43
+ * Key prefix for tags
44
+ * @default "nextjs:tags:"
45
+ */
46
+ tagPrefix?: string;
47
+ /**
48
+ * Enable debug logging
49
+ * @default false
50
+ */
51
+ debug?: boolean;
52
+ /**
53
+ * Max memory size (for memory handler only)
54
+ * @default 100MB
55
+ */
56
+ maxSize?: number;
57
+ }
58
+ /**
59
+ * Create a cache handler with zero configuration
60
+ *
61
+ * @example
62
+ * ```javascript
63
+ * // Zero config - uses environment variables
64
+ * export default createCacheHandler({ type: "redis" });
65
+ *
66
+ * // With overrides
67
+ * export default createCacheHandler({
68
+ * type: "elasticache",
69
+ * endpoint: "my-cluster.cache.amazonaws.com",
70
+ * password: process.env.AUTH_TOKEN
71
+ * });
72
+ * ```
73
+ */
74
+ export declare function createCacheHandler(options: CacheHandlerOptions): DataCacheHandler;
75
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/data-cache/factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiCnD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,gBAAgB,CAAC;IAEvB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,CAiFjF"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Zero-config cache handler factory
3
+ * Automatically configures handlers based on type and environment variables
4
+ */
5
+ import { createRequire } from "node:module";
6
+ import { createMemoryDataCacheHandler } from "./memory.js";
7
+ import { createRedisDataCacheHandler } from "./redis.js";
8
+ const nodeRequire = createRequire(import.meta.url);
9
+ /**
10
+ * Lazy load ioredis and return the constructor
11
+ */
12
+ function loadIoredis(type) {
13
+ try {
14
+ return nodeRequire("ioredis");
15
+ }
16
+ catch {
17
+ throw new Error(`ioredis is required for ${type} cache handler. Install it with: npm install ioredis`);
18
+ }
19
+ }
20
+ /**
21
+ * Create adapter for ioredis (lowercase methods) to match RedisClient interface (camelCase)
22
+ */
23
+ function createRedisAdapter(redis) {
24
+ return {
25
+ get: (key) => redis.get(key),
26
+ set: (key, value) => redis.set(key, value),
27
+ del: (...keys) => redis.del(...keys),
28
+ exists: (...keys) => redis.exists(...keys),
29
+ ttl: (key) => redis.ttl(key),
30
+ hGet: (key, field) => redis.hget(key, field),
31
+ hSet: (key, field, value) => redis.hset(key, field, value),
32
+ hGetAll: (key) => redis.hgetall(key),
33
+ };
34
+ }
35
+ /**
36
+ * Create a cache handler with zero configuration
37
+ *
38
+ * @example
39
+ * ```javascript
40
+ * // Zero config - uses environment variables
41
+ * export default createCacheHandler({ type: "redis" });
42
+ *
43
+ * // With overrides
44
+ * export default createCacheHandler({
45
+ * type: "elasticache",
46
+ * endpoint: "my-cluster.cache.amazonaws.com",
47
+ * password: process.env.AUTH_TOKEN
48
+ * });
49
+ * ```
50
+ */
51
+ export function createCacheHandler(options) {
52
+ const { type, debug = false } = options;
53
+ switch (type) {
54
+ case "memory":
55
+ return createMemoryDataCacheHandler({
56
+ maxSize: options.maxSize ?? 100 * 1024 * 1024,
57
+ debug,
58
+ });
59
+ case "redis":
60
+ case "valkey": {
61
+ const Redis = loadIoredis(type);
62
+ const url = options.url || process.env.REDIS_URL || process.env.VALKEY_URL || "redis://localhost:6379";
63
+ const password = options.password ?? process.env.REDIS_PASSWORD;
64
+ const tlsEnabled = options.tls ?? false;
65
+ const redis = password || tlsEnabled
66
+ ? new Redis(url, {
67
+ ...(password ? { password } : {}),
68
+ ...(tlsEnabled ? { tls: {} } : {}),
69
+ })
70
+ : new Redis(url);
71
+ const redisAdapter = createRedisAdapter(redis);
72
+ return createRedisDataCacheHandler({
73
+ redis: redisAdapter,
74
+ keyPrefix: options.keyPrefix,
75
+ tagPrefix: options.tagPrefix,
76
+ debug,
77
+ });
78
+ }
79
+ case "elasticache": {
80
+ const Redis = loadIoredis(type);
81
+ const endpoint = options.endpoint || process.env.ELASTICACHE_ENDPOINT;
82
+ if (!endpoint) {
83
+ throw new Error("ElastiCache endpoint is required. Set ELASTICACHE_ENDPOINT environment variable or pass 'endpoint' option.");
84
+ }
85
+ const port = options.port ||
86
+ (process.env.ELASTICACHE_PORT ? Number.parseInt(process.env.ELASTICACHE_PORT, 10) : 6379);
87
+ const tls = options.tls ?? process.env.ELASTICACHE_TLS !== "false";
88
+ const password = options.password || process.env.ELASTICACHE_AUTH_TOKEN || process.env.REDIS_PASSWORD;
89
+ const redis = new Redis({
90
+ host: endpoint,
91
+ port,
92
+ tls: tls ? {} : undefined,
93
+ password,
94
+ connectTimeout: 10000,
95
+ retryStrategy: (times) => {
96
+ if (times > 3)
97
+ return null;
98
+ return Math.min(times * 200, 2000);
99
+ },
100
+ });
101
+ const redisAdapter = createRedisAdapter(redis);
102
+ return createRedisDataCacheHandler({
103
+ redis: redisAdapter,
104
+ keyPrefix: options.keyPrefix,
105
+ tagPrefix: options.tagPrefix,
106
+ debug,
107
+ });
108
+ }
109
+ default:
110
+ throw new Error(`Unknown cache handler type: ${type}`);
111
+ }
112
+ }
113
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/data-cache/factory.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,9 @@ export function bufferToString(value) {
13
13
  if (Buffer.isBuffer(value)) {
14
14
  return value.toString("base64");
15
15
  }
16
+ if (Array.isArray(value)) {
17
+ return value.map(bufferToString);
18
+ }
16
19
  if (typeof value === "object" && value !== null) {
17
20
  const result = {};
18
21
  for (const [key, val] of Object.entries(value)) {
@@ -20,9 +23,6 @@ export function bufferToString(value) {
20
23
  }
21
24
  return result;
22
25
  }
23
- if (Array.isArray(value)) {
24
- return value.map(bufferToString);
25
- }
26
26
  return value;
27
27
  }
28
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/helpers/buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,QAAiB;IAC7D,IAAI,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/helpers/buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,QAAiB;IAC7D,IAAI,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export { calculateLifespan, isExpired } from "./helpers/lifespan.js";
11
11
  export { createCacheConfig, createCacheConfigWithProfiles, type CacheHandlerConfig, } from "./helpers/next-config.js";
12
12
  export type { CacheHandler, CacheHandlerContext, CacheHandlerGetMeta, CacheHandlerOptions, CacheHandlerValue, CacheValue, LifespanParameters, } from "./types.js";
13
13
  export { IMPLICIT_TAG_PREFIX } from "./types.js";
14
+ export { createCacheHandler, type CacheHandlerOptions as DataCacheHandlerOptions, type CacheHandlerType, } from "./data-cache/factory.js";
14
15
  export { createMemoryDataCacheHandler, type MemoryDataCacheHandlerOptions, } from "./data-cache/memory.js";
15
16
  export { createRedisDataCacheHandler, type RedisClient, type RedisDataCacheHandlerOptions, } from "./data-cache/redis.js";
16
17
  export type { DataCacheEntry, DataCacheHandler, Timestamp, } from "./data-cache/types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMjD,OAAO,EACL,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,KAAK,WAAW,EAChB,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,GACV,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOjD,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,IAAI,uBAAuB,EACnD,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,4BAA4B,EAC5B,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,KAAK,WAAW,EAChB,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,GACV,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -18,6 +18,9 @@ export { IMPLICIT_TAG_PREFIX } from "./types.js";
18
18
  // =============================================================================
19
19
  // Data Cache Handlers (for "use cache" directive)
20
20
  // =============================================================================
21
+ // Zero-config factory (recommended)
22
+ export { createCacheHandler, } from "./data-cache/factory.js";
23
+ // Advanced: Direct handler creation
21
24
  export { createMemoryDataCacheHandler, } from "./data-cache/memory.js";
22
25
  export { createRedisDataCacheHandler, } from "./data-cache/redis.js";
23
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAChF,2DAA2D;AAC3D,gFAAgF;AAEhF,OAAO,EACL,gBAAgB,EAEhB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,WAAW;AACX,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,6BAA6B,GAE9B,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,gFAAgF;AAChF,kDAAkD;AAClD,gFAAgF;AAEhF,OAAO,EACL,4BAA4B,GAE7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2BAA2B,GAG5B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAChF,2DAA2D;AAC3D,gFAAgF;AAEhF,OAAO,EACL,gBAAgB,EAEhB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,WAAW;AACX,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,6BAA6B,GAE9B,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,gFAAgF;AAChF,kDAAkD;AAClD,gFAAgF;AAEhF,oCAAoC;AACpC,OAAO,EACL,kBAAkB,GAGnB,MAAM,yBAAyB,CAAC;AAEjC,oCAAoC;AACpC,OAAO,EACL,4BAA4B,GAE7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,2BAA2B,GAG5B,MAAM,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrjasonroy/cache-components-cache-handler",
3
- "version": "16.0.0-alpha.4",
3
+ "version": "16.0.1",
4
4
  "description": "Cache handler for Next.js 16+ with support for 'use cache' directive and Cache Components",
5
5
  "author": "Jason Roy",
6
6
  "license": "MIT",
@@ -11,7 +11,6 @@
11
11
  ".": {
12
12
  "types": "./dist/index.d.ts",
13
13
  "import": "./dist/index.js",
14
- "require": "./dist/index.js",
15
14
  "default": "./dist/index.js"
16
15
  }
17
16
  },