@arikajs/cache 0.0.4 → 0.0.5

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.
Files changed (92) hide show
  1. package/README.md +62 -118
  2. package/dist/CacheLock.d.ts +38 -0
  3. package/dist/CacheLock.d.ts.map +1 -0
  4. package/dist/CacheLock.js +100 -0
  5. package/dist/CacheLock.js.map +1 -0
  6. package/dist/CacheManager.d.ts +8 -1
  7. package/dist/CacheManager.d.ts.map +1 -1
  8. package/dist/CacheManager.js +17 -2
  9. package/dist/CacheManager.js.map +1 -1
  10. package/dist/Contracts/Store.d.ts +4 -0
  11. package/dist/Contracts/Store.d.ts.map +1 -1
  12. package/dist/Drivers/DatabaseDriver.d.ts +6 -1
  13. package/dist/Drivers/DatabaseDriver.d.ts.map +1 -1
  14. package/dist/Drivers/DatabaseDriver.js +70 -10
  15. package/dist/Drivers/DatabaseDriver.js.map +1 -1
  16. package/dist/Drivers/FileDriver.d.ts +19 -0
  17. package/dist/Drivers/FileDriver.d.ts.map +1 -0
  18. package/dist/Drivers/FileDriver.js +111 -0
  19. package/dist/Drivers/FileDriver.js.map +1 -0
  20. package/dist/Drivers/MemoryDriver.d.ts +4 -0
  21. package/dist/Drivers/MemoryDriver.d.ts.map +1 -1
  22. package/dist/Drivers/MemoryDriver.js +25 -0
  23. package/dist/Drivers/MemoryDriver.js.map +1 -1
  24. package/dist/Drivers/RedisDriver.d.ts +4 -0
  25. package/dist/Drivers/RedisDriver.d.ts.map +1 -1
  26. package/dist/Drivers/RedisDriver.js +46 -0
  27. package/dist/Drivers/RedisDriver.js.map +1 -1
  28. package/dist/Repository.d.ts +6 -0
  29. package/dist/Repository.d.ts.map +1 -1
  30. package/dist/Repository.js +42 -0
  31. package/dist/Repository.js.map +1 -1
  32. package/dist/TagSet.d.ts +24 -0
  33. package/dist/TagSet.d.ts.map +1 -0
  34. package/dist/TagSet.js +46 -0
  35. package/dist/TagSet.js.map +1 -0
  36. package/dist/TaggedStore.d.ts +21 -0
  37. package/dist/TaggedStore.d.ts.map +1 -0
  38. package/dist/TaggedStore.js +100 -0
  39. package/dist/TaggedStore.js.map +1 -0
  40. package/dist/index.d.ts +5 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +6 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/src/CacheLock.d.ts +38 -0
  45. package/dist/src/CacheLock.d.ts.map +1 -0
  46. package/dist/src/CacheLock.js +100 -0
  47. package/dist/src/CacheLock.js.map +1 -0
  48. package/dist/src/CacheManager.d.ts +35 -0
  49. package/dist/src/CacheManager.d.ts.map +1 -0
  50. package/dist/src/CacheManager.js +79 -0
  51. package/dist/src/CacheManager.js.map +1 -0
  52. package/dist/src/Contracts/Store.d.ts +15 -0
  53. package/dist/src/Contracts/Store.d.ts.map +1 -0
  54. package/dist/src/Contracts/Store.js +3 -0
  55. package/dist/src/Contracts/Store.js.map +1 -0
  56. package/dist/src/Drivers/DatabaseDriver.d.ts +21 -0
  57. package/dist/src/Drivers/DatabaseDriver.d.ts.map +1 -0
  58. package/dist/src/Drivers/DatabaseDriver.js +146 -0
  59. package/dist/src/Drivers/DatabaseDriver.js.map +1 -0
  60. package/dist/src/Drivers/FileDriver.d.ts +19 -0
  61. package/dist/src/Drivers/FileDriver.d.ts.map +1 -0
  62. package/dist/src/Drivers/FileDriver.js +111 -0
  63. package/dist/src/Drivers/FileDriver.js.map +1 -0
  64. package/dist/src/Drivers/MemoryDriver.d.ts +22 -0
  65. package/dist/src/Drivers/MemoryDriver.d.ts.map +1 -0
  66. package/dist/src/Drivers/MemoryDriver.js +78 -0
  67. package/dist/src/Drivers/MemoryDriver.js.map +1 -0
  68. package/dist/src/Drivers/RedisDriver.d.ts +24 -0
  69. package/dist/src/Drivers/RedisDriver.d.ts.map +1 -0
  70. package/dist/src/Drivers/RedisDriver.js +124 -0
  71. package/dist/src/Drivers/RedisDriver.js.map +1 -0
  72. package/dist/src/Repository.d.ts +25 -0
  73. package/dist/src/Repository.d.ts.map +1 -0
  74. package/dist/src/Repository.js +110 -0
  75. package/dist/src/Repository.js.map +1 -0
  76. package/dist/src/TagSet.d.ts +24 -0
  77. package/dist/src/TagSet.d.ts.map +1 -0
  78. package/dist/src/TagSet.js +46 -0
  79. package/dist/src/TagSet.js.map +1 -0
  80. package/dist/src/TaggedStore.d.ts +21 -0
  81. package/dist/src/TaggedStore.d.ts.map +1 -0
  82. package/dist/src/TaggedStore.js +100 -0
  83. package/dist/src/TaggedStore.js.map +1 -0
  84. package/dist/src/index.d.ts +29 -0
  85. package/dist/src/index.d.ts.map +1 -0
  86. package/dist/src/index.js +46 -0
  87. package/dist/src/index.js.map +1 -0
  88. package/dist/tests/Cache.test.d.ts +2 -0
  89. package/dist/tests/Cache.test.d.ts.map +1 -0
  90. package/dist/tests/Cache.test.js +126 -0
  91. package/dist/tests/Cache.test.js.map +1 -0
  92. package/package.json +7 -5
@@ -0,0 +1,21 @@
1
+ import { Store } from './Contracts/Store';
2
+ import { TagSet } from './TagSet';
3
+ export declare class TaggedStore implements Store {
4
+ protected store: Store;
5
+ protected tags: TagSet;
6
+ constructor(store: Store, tags: TagSet);
7
+ protected prefixKey(key: string): Promise<string>;
8
+ get(key: string): Promise<any>;
9
+ put(key: string, value: any, seconds: number): Promise<void>;
10
+ add(key: string, value: any, seconds: number): Promise<boolean>;
11
+ increment(key: string, value?: number): Promise<number>;
12
+ decrement(key: string, value?: number): Promise<number>;
13
+ forever(key: string, value: any): Promise<void>;
14
+ forget(key: string): Promise<void>;
15
+ flush(): Promise<void>;
16
+ getPrefix(): string;
17
+ getMultiple(keys: string[]): Promise<Record<string, any>>;
18
+ putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
19
+ forgetMultiple(keys: string[]): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=TaggedStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaggedStore.d.ts","sourceRoot":"","sources":["../src/TaggedStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,WAAY,YAAW,KAAK;IACzB,SAAS,CAAC,KAAK,EAAE,KAAK;IAAE,SAAS,CAAC,IAAI,EAAE,MAAM;gBAApC,KAAK,EAAE,KAAK,EAAY,IAAI,EAAE,MAAM;cAE1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,SAAS,IAAI,MAAM;IAIb,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IA2BzD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAa7D"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaggedStore = void 0;
4
+ class TaggedStore {
5
+ constructor(store, tags) {
6
+ this.store = store;
7
+ this.tags = tags;
8
+ }
9
+ async prefixKey(key) {
10
+ return (await this.tags.getNamespace()) + key;
11
+ }
12
+ async get(key) {
13
+ return await this.store.get(await this.prefixKey(key));
14
+ }
15
+ async put(key, value, seconds) {
16
+ await this.store.put(await this.prefixKey(key), value, seconds);
17
+ }
18
+ async add(key, value, seconds) {
19
+ if (this.store.add) {
20
+ return await this.store.add(await this.prefixKey(key), value, seconds);
21
+ }
22
+ if (await this.get(key) !== null)
23
+ return false;
24
+ await this.put(key, value, seconds);
25
+ return true;
26
+ }
27
+ async increment(key, value = 1) {
28
+ return await this.store.increment(await this.prefixKey(key), value);
29
+ }
30
+ async decrement(key, value = 1) {
31
+ return await this.store.decrement(await this.prefixKey(key), value);
32
+ }
33
+ async forever(key, value) {
34
+ await this.store.forever(await this.prefixKey(key), value);
35
+ }
36
+ async forget(key) {
37
+ await this.store.forget(await this.prefixKey(key));
38
+ }
39
+ async flush() {
40
+ await this.tags.reset();
41
+ }
42
+ getPrefix() {
43
+ return this.store.getPrefix();
44
+ }
45
+ async getMultiple(keys) {
46
+ const namespace = await this.tags.getNamespace();
47
+ const prefixedKeys = keys.map(k => namespace + k);
48
+ if (this.store.getMultiple) {
49
+ const results = await this.store.getMultiple(prefixedKeys);
50
+ const mapped = {};
51
+ for (const [key, value] of Object.entries(results)) {
52
+ // If the underlying store returns prefixed keys (e.g. database driver), it might not include namespace.
53
+ // We just rely on mapping index-to-index since we pass exactly prefixedKeys.
54
+ }
55
+ // A safer approach: fetch everything and rebuild map
56
+ const finalMap = {};
57
+ for (let i = 0; i < keys.length; i++) {
58
+ finalMap[keys[i]] = results[prefixedKeys[i]];
59
+ }
60
+ return finalMap;
61
+ }
62
+ // Fallback for custom drivers
63
+ const fallback = {};
64
+ for (const key of keys) {
65
+ fallback[key] = await this.get(key);
66
+ }
67
+ return fallback;
68
+ }
69
+ async putMultiple(values, seconds) {
70
+ const namespace = await this.tags.getNamespace();
71
+ const prefixedValues = {};
72
+ for (const [key, value] of Object.entries(values)) {
73
+ prefixedValues[namespace + key] = value;
74
+ }
75
+ if (this.store.putMultiple) {
76
+ await this.store.putMultiple(prefixedValues, seconds);
77
+ }
78
+ else {
79
+ // Fallback
80
+ for (const [k, v] of Object.entries(prefixedValues)) {
81
+ await this.store.put(k, v, seconds);
82
+ }
83
+ }
84
+ }
85
+ async forgetMultiple(keys) {
86
+ const namespace = await this.tags.getNamespace();
87
+ const prefixedKeys = keys.map(k => namespace + k);
88
+ if (this.store.forgetMultiple) {
89
+ await this.store.forgetMultiple(prefixedKeys);
90
+ }
91
+ else {
92
+ // Fallback
93
+ for (const k of prefixedKeys) {
94
+ await this.store.forget(k);
95
+ }
96
+ }
97
+ }
98
+ }
99
+ exports.TaggedStore = TaggedStore;
100
+ //# sourceMappingURL=TaggedStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaggedStore.js","sourceRoot":"","sources":["../src/TaggedStore.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,6 +16,11 @@ export declare class Cache {
16
16
  static pull(key: string, defaultValue?: any): Promise<any>;
17
17
  static remember(key: string, seconds: number, callback: () => Promise<any>): Promise<any>;
18
18
  static rememberForever(key: string, callback: () => Promise<any>): Promise<any>;
19
+ static getMultiple(keys: string[]): Promise<Record<string, any>>;
20
+ static putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
21
+ static forgetMultiple(keys: string[]): Promise<void>;
22
+ static lock(name: string, seconds?: number, owner?: string | null): import("./CacheLock").CacheLock;
23
+ static tags(names: string | string[]): import("./Repository").Repository;
19
24
  }
20
25
  export { CacheManager, Store };
21
26
  export { Repository } from './Repository';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,qBAAa,KAAK;WACA,UAAU,CAAC,OAAO,EAAE,YAAY;IAI9C,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY;WAO7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;WAIb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,GAAG,CAAC,GAAG,EAAE,MAAM;WACf,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;WAC/B,MAAM,CAAC,GAAG,EAAE,MAAM;WAClB,KAAK;WACL,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;WACnE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;CAChF;AAED,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,qBAAa,KAAK;WACA,UAAU,CAAC,OAAO,EAAE,YAAY;IAI9C,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY;WAO7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;WAIb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,GAAG,CAAC,GAAG,EAAE,MAAM;WACf,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;WAC/B,MAAM,CAAC,GAAG,EAAE,MAAM;WAClB,KAAK;WACL,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;WACnE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;WAGzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE;WAC1B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM;WACxD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;WACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;WACnE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAC9C;AAED,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -29,6 +29,12 @@ class Cache {
29
29
  static async pull(key, defaultValue = null) { return this.getManager().pull(key, defaultValue); }
30
30
  static async remember(key, seconds, callback) { return this.getManager().remember(key, seconds, callback); }
31
31
  static async rememberForever(key, callback) { return this.getManager().rememberForever(key, callback); }
32
+ // Enterprise methods
33
+ static async getMultiple(keys) { return this.getManager().getMultiple(keys); }
34
+ static async putMultiple(values, seconds) { return this.getManager().putMultiple(values, seconds); }
35
+ static async forgetMultiple(keys) { return this.getManager().forgetMultiple(keys); }
36
+ static lock(name, seconds = 0, owner = null) { return this.getManager().lock(name, seconds, owner); }
37
+ static tags(names) { return this.getManager().tags(names); }
32
38
  }
33
39
  exports.Cache = Cache;
34
40
  var Repository_1 = require("./Repository");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { Store } from './Contracts/Store';
2
+ export declare class CacheLock {
3
+ protected store: Store;
4
+ protected name: string;
5
+ protected seconds: number;
6
+ protected ownerId: string | null;
7
+ constructor(store: Store, name: string, seconds: number, ownerId?: string | null);
8
+ /**
9
+ * Attempt to acquire the lock. If a callback is provided, it will be executed
10
+ * and the lock will automatically be released afterward.
11
+ */
12
+ get(callback?: () => Promise<any>): Promise<any>;
13
+ /**
14
+ * Atomically attempt to acquire the lock.
15
+ */
16
+ acquire(): Promise<boolean>;
17
+ /**
18
+ * Release the lock, but only if we still own it.
19
+ */
20
+ release(): Promise<boolean>;
21
+ /**
22
+ * Force the lock to release, discarding ownership checks.
23
+ */
24
+ forceRelease(): Promise<void>;
25
+ /**
26
+ * Attempt to acquire the lock, blocking for a given number of seconds.
27
+ */
28
+ block(seconds: number, callback?: () => Promise<any>): Promise<any>;
29
+ /**
30
+ * Get the current owner ID assigned to this lock.
31
+ */
32
+ owner(): string;
33
+ /**
34
+ * Generate a unique identifier for the lock owner.
35
+ */
36
+ protected generateOwnerId(): string;
37
+ }
38
+ //# sourceMappingURL=CacheLock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheLock.d.ts","sourceRoot":"","sources":["../../src/CacheLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qBAAa,SAAS;IAEd,SAAS,CAAC,KAAK,EAAE,KAAK;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM;IACtB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;gBAHtB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,GAAG,IAAW;IAO3C;;;OAGG;IACU,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAc7D;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAaxC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxC;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;OAEG;IACU,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAwBhF;;OAEG;IACI,KAAK,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM;CAGtC"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CacheLock = void 0;
4
+ class CacheLock {
5
+ constructor(store, name, seconds, ownerId = null) {
6
+ this.store = store;
7
+ this.name = name;
8
+ this.seconds = seconds;
9
+ this.ownerId = ownerId;
10
+ if (!this.ownerId) {
11
+ this.ownerId = this.generateOwnerId();
12
+ }
13
+ }
14
+ /**
15
+ * Attempt to acquire the lock. If a callback is provided, it will be executed
16
+ * and the lock will automatically be released afterward.
17
+ */
18
+ async get(callback) {
19
+ const acquired = await this.acquire();
20
+ if (acquired && callback) {
21
+ try {
22
+ return await callback();
23
+ }
24
+ finally {
25
+ await this.release();
26
+ }
27
+ }
28
+ return acquired;
29
+ }
30
+ /**
31
+ * Atomically attempt to acquire the lock.
32
+ */
33
+ async acquire() {
34
+ if (!this.store.add) {
35
+ // Fallback for custom drivers that don't implement atomic add.
36
+ // THIS IS NOT COMPLETELY ATOMIC in distributed systems.
37
+ if (await this.store.get(this.name) !== null) {
38
+ return false;
39
+ }
40
+ await this.store.put(this.name, this.ownerId, this.seconds);
41
+ return true;
42
+ }
43
+ return await this.store.add(this.name, this.ownerId, this.seconds);
44
+ }
45
+ /**
46
+ * Release the lock, but only if we still own it.
47
+ */
48
+ async release() {
49
+ const currentOwner = await this.store.get(this.name);
50
+ if (currentOwner === this.ownerId) {
51
+ await this.store.forget(this.name);
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ /**
57
+ * Force the lock to release, discarding ownership checks.
58
+ */
59
+ async forceRelease() {
60
+ await this.store.forget(this.name);
61
+ }
62
+ /**
63
+ * Attempt to acquire the lock, blocking for a given number of seconds.
64
+ */
65
+ async block(seconds, callback) {
66
+ const startingTime = Date.now();
67
+ while (true) {
68
+ if (await this.acquire()) {
69
+ if (callback) {
70
+ try {
71
+ return await callback();
72
+ }
73
+ finally {
74
+ await this.release();
75
+ }
76
+ }
77
+ return true;
78
+ }
79
+ if (Date.now() - startingTime >= seconds * 1000) {
80
+ throw new Error(`Could not acquire cache lock [${this.name}] within ${seconds} seconds.`);
81
+ }
82
+ // Sleep for 250ms before trying again
83
+ await new Promise(resolve => setTimeout(resolve, 250));
84
+ }
85
+ }
86
+ /**
87
+ * Get the current owner ID assigned to this lock.
88
+ */
89
+ owner() {
90
+ return this.ownerId;
91
+ }
92
+ /**
93
+ * Generate a unique identifier for the lock owner.
94
+ */
95
+ generateOwnerId() {
96
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
97
+ }
98
+ }
99
+ exports.CacheLock = CacheLock;
100
+ //# sourceMappingURL=CacheLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheLock.js","sourceRoot":"","sources":["../../src/CacheLock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Repository } from './Repository';
2
+ import { Store } from './Contracts/Store';
3
+ export declare class CacheManager {
4
+ protected config: any;
5
+ protected stores: Map<string, Repository>;
6
+ protected customCreators: Map<string, (config: any) => Store>;
7
+ protected database: any;
8
+ protected basePath: string;
9
+ constructor(config: any, database?: any, basePath?: string);
10
+ store(name?: string): Repository;
11
+ protected resolve(name: string): Repository;
12
+ protected createMemoryDriver(): Store;
13
+ protected createDatabaseDriver(config: any): Store;
14
+ protected createRedisDriver(config: any): Store;
15
+ protected createFileDriver(config: any): Store;
16
+ extend(driver: string, callback: (config: any) => Store): this;
17
+ get(key: string, defaultValue?: any): Promise<any>;
18
+ put(key: string, value: any, seconds: number): Promise<void>;
19
+ has(key: string): Promise<boolean>;
20
+ forever(key: string, value: any): Promise<void>;
21
+ forget(key: string): Promise<void>;
22
+ flush(): Promise<void>;
23
+ increment(key: string, value?: number): Promise<number>;
24
+ decrement(key: string, value?: number): Promise<number>;
25
+ add(key: string, value: any, seconds: number): Promise<boolean>;
26
+ pull(key: string, defaultValue?: any): Promise<any>;
27
+ remember(key: string, seconds: number, callback: () => Promise<any>): Promise<any>;
28
+ rememberForever(key: string, callback: () => Promise<any>): Promise<any>;
29
+ getMultiple(keys: string[]): Promise<Record<string, any>>;
30
+ putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
31
+ forgetMultiple(keys: string[]): Promise<void>;
32
+ lock(name: string, seconds?: number, owner?: string | null): import("./CacheLock").CacheLock;
33
+ tags(names: string | string[]): Repository;
34
+ }
35
+ //# sourceMappingURL=CacheManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/CacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qBAAa,YAAY;IAMT,SAAS,CAAC,MAAM,EAAE,GAAG;IALjC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IACtD,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,CAAa;IAC1E,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC;IACxB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAsB;IAK5E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IAUvC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAoB3C,SAAS,CAAC,kBAAkB,IAAI,KAAK;IAIrC,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK;IASlD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK;IAO/C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK;IAYvC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,KAAK,GAAG,IAAI;IAMxD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAC5C,GAAG,CAAC,GAAG,EAAE,MAAM;IACf,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAC/B,MAAM,CAAC,GAAG,EAAE,MAAM;IAClB,KAAK;IACL,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;IACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IACnE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IAGzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE;IAC1B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM;IACxD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;IACnE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CACvC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CacheManager = void 0;
4
+ const Repository_1 = require("./Repository");
5
+ const MemoryDriver_1 = require("./Drivers/MemoryDriver");
6
+ const DatabaseDriver_1 = require("./Drivers/DatabaseDriver");
7
+ const RedisDriver_1 = require("./Drivers/RedisDriver");
8
+ const FileDriver_1 = require("./Drivers/FileDriver");
9
+ class CacheManager {
10
+ constructor(config, database, basePath = process.cwd()) {
11
+ this.config = config;
12
+ this.stores = new Map();
13
+ this.customCreators = new Map();
14
+ this.database = database;
15
+ this.basePath = basePath;
16
+ }
17
+ store(name) {
18
+ const storeName = name || this.config.default;
19
+ if (!this.stores.has(storeName)) {
20
+ this.stores.set(storeName, this.resolve(storeName));
21
+ }
22
+ return this.stores.get(storeName);
23
+ }
24
+ resolve(name) {
25
+ const config = this.config.stores[name];
26
+ if (!config) {
27
+ throw new Error(`Cache store [${name}] is not defined.`);
28
+ }
29
+ if (this.customCreators.has(config.driver)) {
30
+ return new Repository_1.Repository(this.customCreators.get(config.driver)(config));
31
+ }
32
+ const driverMethod = `create${config.driver.charAt(0).toUpperCase() + config.driver.slice(1)}Driver`;
33
+ if (typeof this[driverMethod] === 'function') {
34
+ return new Repository_1.Repository(this[driverMethod](config));
35
+ }
36
+ throw new Error(`Driver [${config.driver}] is not supported.`);
37
+ }
38
+ createMemoryDriver() {
39
+ return new MemoryDriver_1.MemoryDriver();
40
+ }
41
+ createDatabaseDriver(config) {
42
+ return new DatabaseDriver_1.DatabaseDriver(this.database, config.table, this.config.prefix || '', config.connection);
43
+ }
44
+ createRedisDriver(config) {
45
+ return new RedisDriver_1.RedisDriver(config, this.config.prefix || '');
46
+ }
47
+ createFileDriver(config) {
48
+ const path = require('path');
49
+ const directory = path.isAbsolute(config.path)
50
+ ? config.path
51
+ : path.resolve(this.basePath, config.path);
52
+ return new FileDriver_1.FileDriver(directory, this.config.prefix || '');
53
+ }
54
+ extend(driver, callback) {
55
+ this.customCreators.set(driver, callback);
56
+ return this;
57
+ }
58
+ // Proxy common methods to default store
59
+ async get(key, defaultValue = null) { return this.store().get(key, defaultValue); }
60
+ async put(key, value, seconds) { return this.store().put(key, value, seconds); }
61
+ async has(key) { return this.store().has(key); }
62
+ async forever(key, value) { return this.store().forever(key, value); }
63
+ async forget(key) { return this.store().forget(key); }
64
+ async flush() { return this.store().flush(); }
65
+ async increment(key, value = 1) { return this.store().increment(key, value); }
66
+ async decrement(key, value = 1) { return this.store().decrement(key, value); }
67
+ async add(key, value, seconds) { return this.store().add(key, value, seconds); }
68
+ async pull(key, defaultValue = null) { return this.store().pull(key, defaultValue); }
69
+ async remember(key, seconds, callback) { return this.store().remember(key, seconds, callback); }
70
+ async rememberForever(key, callback) { return this.store().rememberForever(key, callback); }
71
+ // Enterprise methods
72
+ async getMultiple(keys) { return this.store().getMultiple(keys); }
73
+ async putMultiple(values, seconds) { return this.store().putMultiple(values, seconds); }
74
+ async forgetMultiple(keys) { return this.store().forgetMultiple(keys); }
75
+ lock(name, seconds = 0, owner = null) { return this.store().lock(name, seconds, owner); }
76
+ tags(names) { return this.store().tags(names); }
77
+ }
78
+ exports.CacheManager = CacheManager;
79
+ //# sourceMappingURL=CacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../src/CacheManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface Store {
2
+ get(key: string): Promise<any>;
3
+ put(key: string, value: any, seconds: number): Promise<void>;
4
+ increment(key: string, value?: number): Promise<number>;
5
+ decrement(key: string, value?: number): Promise<number>;
6
+ forever(key: string, value: any): Promise<void>;
7
+ forget(key: string): Promise<void>;
8
+ flush(): Promise<void>;
9
+ getPrefix(): string;
10
+ add?(key: string, value: any, seconds: number): Promise<boolean>;
11
+ getMultiple?(keys: string[]): Promise<Record<string, any>>;
12
+ putMultiple?(values: Record<string, any>, seconds: number): Promise<void>;
13
+ forgetMultiple?(keys: string[]): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../../src/Contracts/Store.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,KAAK;IAClB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,SAAS,IAAI,MAAM,CAAC;IAGpB,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../../src/Contracts/Store.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { Store } from '../Contracts/Store';
2
+ export declare class DatabaseDriver implements Store {
3
+ private database;
4
+ private table;
5
+ private prefix;
6
+ private connection?;
7
+ constructor(database: any, table: string, prefix?: string, connection?: string | undefined);
8
+ get(key: string): Promise<any>;
9
+ put(key: string, value: any, seconds: number): Promise<void>;
10
+ increment(key: string, value?: number): Promise<number>;
11
+ decrement(key: string, value?: number): Promise<number>;
12
+ forever(key: string, value: any): Promise<void>;
13
+ forget(key: string): Promise<void>;
14
+ flush(): Promise<void>;
15
+ add(key: string, value: any, seconds: number): Promise<boolean>;
16
+ getMultiple(keys: string[]): Promise<Record<string, any>>;
17
+ putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
18
+ forgetMultiple(keys: string[]): Promise<void>;
19
+ getPrefix(): string;
20
+ }
21
+ //# sourceMappingURL=DatabaseDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../src/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,qBAAa,cAAe,YAAW,KAAK;IAEpC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;gBAHX,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAW,EACnB,UAAU,CAAC,EAAE,MAAM,YAAA;IAGlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB5D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B/D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IA2BzD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,SAAS,IAAI,MAAM;CAG7B"}