@sonicjs-cms/core 2.0.0-alpha.3 → 2.0.0-alpha.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 (47) hide show
  1. package/dist/chunk-3MNMOLSA.js +133 -0
  2. package/dist/chunk-3MNMOLSA.js.map +1 -0
  3. package/dist/chunk-5RDID2QZ.js +7026 -0
  4. package/dist/chunk-5RDID2QZ.js.map +1 -0
  5. package/dist/chunk-AGOE25LF.cjs +137 -0
  6. package/dist/chunk-AGOE25LF.cjs.map +1 -0
  7. package/dist/chunk-KWFUNPSQ.cjs +7035 -0
  8. package/dist/chunk-KWFUNPSQ.cjs.map +1 -0
  9. package/dist/index.cjs +12 -6
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +9 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/routes.cjs +34 -2
  14. package/dist/routes.js +5 -1
  15. package/dist/services.cjs +13 -1
  16. package/dist/services.js +1 -1
  17. package/package.json +1 -1
  18. package/dist/chunk-4URGXJP7.js +0 -3
  19. package/dist/chunk-4URGXJP7.js.map +0 -1
  20. package/dist/chunk-ALTMI5Y2.cjs +0 -4
  21. package/dist/chunk-ALTMI5Y2.cjs.map +0 -1
  22. package/dist/chunk-BOLQHE4J.cjs +0 -11
  23. package/dist/chunk-BOLQHE4J.cjs.map +0 -1
  24. package/dist/chunk-HD7R6T6I.js +0 -9
  25. package/dist/chunk-HD7R6T6I.js.map +0 -1
  26. package/dist/collection-config-FLlGtsh9.d.cts +0 -107
  27. package/dist/collection-config-FLlGtsh9.d.ts +0 -107
  28. package/dist/index-BlsY5XNH.d.ts +0 -8333
  29. package/dist/index-D45jaIlr.d.cts +0 -8333
  30. package/dist/index.d.cts +0 -136
  31. package/dist/index.d.ts +0 -136
  32. package/dist/middleware.d.cts +0 -206
  33. package/dist/middleware.d.ts +0 -206
  34. package/dist/plugin-UzmDImQc.d.cts +0 -357
  35. package/dist/plugin-UzmDImQc.d.ts +0 -357
  36. package/dist/plugins.d.cts +0 -330
  37. package/dist/plugins.d.ts +0 -330
  38. package/dist/routes.d.cts +0 -17
  39. package/dist/routes.d.ts +0 -17
  40. package/dist/services.d.cts +0 -5
  41. package/dist/services.d.ts +0 -5
  42. package/dist/templates.d.cts +0 -140
  43. package/dist/templates.d.ts +0 -140
  44. package/dist/types.d.cts +0 -41
  45. package/dist/types.d.ts +0 -41
  46. package/dist/utils.d.cts +0 -184
  47. package/dist/utils.d.ts +0 -184
@@ -0,0 +1,137 @@
1
+ 'use strict';
2
+
3
+ // src/services/cache.ts
4
+ var CacheService = class {
5
+ config;
6
+ memoryCache = /* @__PURE__ */ new Map();
7
+ constructor(config) {
8
+ this.config = config;
9
+ }
10
+ /**
11
+ * Generate cache key with prefix
12
+ */
13
+ generateKey(type, identifier) {
14
+ const parts = [this.config.keyPrefix, type];
15
+ if (identifier) {
16
+ parts.push(identifier);
17
+ }
18
+ return parts.join(":");
19
+ }
20
+ /**
21
+ * Get value from cache
22
+ */
23
+ async get(key) {
24
+ const cached = this.memoryCache.get(key);
25
+ if (!cached) {
26
+ return null;
27
+ }
28
+ if (Date.now() > cached.expires) {
29
+ this.memoryCache.delete(key);
30
+ return null;
31
+ }
32
+ return cached.value;
33
+ }
34
+ /**
35
+ * Get value from cache with source information
36
+ */
37
+ async getWithSource(key) {
38
+ const cached = this.memoryCache.get(key);
39
+ if (!cached) {
40
+ return {
41
+ hit: false,
42
+ data: null,
43
+ source: "none"
44
+ };
45
+ }
46
+ if (Date.now() > cached.expires) {
47
+ this.memoryCache.delete(key);
48
+ return {
49
+ hit: false,
50
+ data: null,
51
+ source: "expired"
52
+ };
53
+ }
54
+ return {
55
+ hit: true,
56
+ data: cached.value,
57
+ source: "memory",
58
+ ttl: (cached.expires - Date.now()) / 1e3
59
+ // TTL in seconds
60
+ };
61
+ }
62
+ /**
63
+ * Set value in cache
64
+ */
65
+ async set(key, value, ttl) {
66
+ const expires = Date.now() + (ttl || this.config.ttl) * 1e3;
67
+ this.memoryCache.set(key, { value, expires });
68
+ }
69
+ /**
70
+ * Delete specific key from cache
71
+ */
72
+ async delete(key) {
73
+ this.memoryCache.delete(key);
74
+ }
75
+ /**
76
+ * Invalidate cache keys matching a pattern
77
+ * For memory cache, we do simple string matching
78
+ */
79
+ async invalidate(pattern) {
80
+ const regexPattern = pattern.replace(/\*/g, ".*").replace(/\?/g, ".");
81
+ const regex = new RegExp(`^${regexPattern}$`);
82
+ for (const key of this.memoryCache.keys()) {
83
+ if (regex.test(key)) {
84
+ this.memoryCache.delete(key);
85
+ }
86
+ }
87
+ }
88
+ /**
89
+ * Clear all cache
90
+ */
91
+ async clear() {
92
+ this.memoryCache.clear();
93
+ }
94
+ /**
95
+ * Get value from cache or set it using a callback
96
+ */
97
+ async getOrSet(key, callback, ttl) {
98
+ const cached = await this.get(key);
99
+ if (cached !== null) {
100
+ return cached;
101
+ }
102
+ const value = await callback();
103
+ await this.set(key, value, ttl);
104
+ return value;
105
+ }
106
+ };
107
+ var CACHE_CONFIGS = {
108
+ api: {
109
+ ttl: 300,
110
+ // 5 minutes
111
+ keyPrefix: "api"
112
+ },
113
+ user: {
114
+ ttl: 600,
115
+ // 10 minutes
116
+ keyPrefix: "user"
117
+ },
118
+ content: {
119
+ ttl: 300,
120
+ // 5 minutes
121
+ keyPrefix: "content"
122
+ },
123
+ collection: {
124
+ ttl: 600,
125
+ // 10 minutes
126
+ keyPrefix: "collection"
127
+ }
128
+ };
129
+ function getCacheService(config) {
130
+ return new CacheService(config);
131
+ }
132
+
133
+ exports.CACHE_CONFIGS = CACHE_CONFIGS;
134
+ exports.CacheService = CacheService;
135
+ exports.getCacheService = getCacheService;
136
+ //# sourceMappingURL=chunk-AGOE25LF.cjs.map
137
+ //# sourceMappingURL=chunk-AGOE25LF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/cache.ts"],"names":[],"mappings":"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","file":"chunk-AGOE25LF.cjs","sourcesContent":["/**\n * Simple Cache Service\n *\n * Provides basic caching functionality for the core package\n * Can be extended with KV or other storage backends\n */\n\nexport interface CacheConfig {\n ttl: number // Time to live in seconds\n keyPrefix: string\n}\n\nexport class CacheService {\n private config: CacheConfig\n private memoryCache: Map<string, { value: any; expires: number }> = new Map()\n\n constructor(config: CacheConfig) {\n this.config = config\n }\n\n /**\n * Generate cache key with prefix\n */\n generateKey(type: string, identifier?: string): string {\n const parts = [this.config.keyPrefix, type]\n if (identifier) {\n parts.push(identifier)\n }\n return parts.join(':')\n }\n\n /**\n * Get value from cache\n */\n async get<T>(key: string): Promise<T | null> {\n const cached = this.memoryCache.get(key)\n\n if (!cached) {\n return null\n }\n\n // Check if expired\n if (Date.now() > cached.expires) {\n this.memoryCache.delete(key)\n return null\n }\n\n return cached.value as T\n }\n\n /**\n * Get value from cache with source information\n */\n async getWithSource<T>(key: string): Promise<{\n hit: boolean\n data: T | null\n source: string\n ttl?: number\n }> {\n const cached = this.memoryCache.get(key)\n\n if (!cached) {\n return {\n hit: false,\n data: null,\n source: 'none'\n }\n }\n\n // Check if expired\n if (Date.now() > cached.expires) {\n this.memoryCache.delete(key)\n return {\n hit: false,\n data: null,\n source: 'expired'\n }\n }\n\n return {\n hit: true,\n data: cached.value as T,\n source: 'memory',\n ttl: (cached.expires - Date.now()) / 1000 // TTL in seconds\n }\n }\n\n /**\n * Set value in cache\n */\n async set(key: string, value: any, ttl?: number): Promise<void> {\n const expires = Date.now() + ((ttl || this.config.ttl) * 1000)\n this.memoryCache.set(key, { value, expires })\n }\n\n /**\n * Delete specific key from cache\n */\n async delete(key: string): Promise<void> {\n this.memoryCache.delete(key)\n }\n\n /**\n * Invalidate cache keys matching a pattern\n * For memory cache, we do simple string matching\n */\n async invalidate(pattern: string): Promise<void> {\n // Convert glob pattern to regex\n const regexPattern = pattern\n .replace(/\\*/g, '.*')\n .replace(/\\?/g, '.')\n const regex = new RegExp(`^${regexPattern}$`)\n\n // Find and delete matching keys\n for (const key of this.memoryCache.keys()) {\n if (regex.test(key)) {\n this.memoryCache.delete(key)\n }\n }\n }\n\n /**\n * Clear all cache\n */\n async clear(): Promise<void> {\n this.memoryCache.clear()\n }\n\n /**\n * Get value from cache or set it using a callback\n */\n async getOrSet<T>(key: string, callback: () => Promise<T>, ttl?: number): Promise<T> {\n const cached = await this.get<T>(key)\n\n if (cached !== null) {\n return cached\n }\n\n const value = await callback()\n await this.set(key, value, ttl)\n return value\n }\n}\n\n/**\n * Cache configurations for different data types\n */\nexport const CACHE_CONFIGS = {\n api: {\n ttl: 300, // 5 minutes\n keyPrefix: 'api'\n },\n user: {\n ttl: 600, // 10 minutes\n keyPrefix: 'user'\n },\n content: {\n ttl: 300, // 5 minutes\n keyPrefix: 'content'\n },\n collection: {\n ttl: 600, // 10 minutes\n keyPrefix: 'collection'\n }\n}\n\n/**\n * Get cache service instance for a config\n */\nexport function getCacheService(config: CacheConfig): CacheService {\n return new CacheService(config)\n}\n"]}