@sonicjs-cms/core 2.0.1 → 2.0.2

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 (55) hide show
  1. package/dist/{chunk-SRCY43RN.cjs → chunk-3NVJ6W27.cjs} +2 -2
  2. package/dist/chunk-3NVJ6W27.cjs.map +1 -0
  3. package/dist/chunk-4BJGEGX5.cjs +236 -0
  4. package/dist/chunk-4BJGEGX5.cjs.map +1 -0
  5. package/dist/{chunk-5FDDDD4J.cjs → chunk-7G6XT62S.cjs} +321 -311
  6. package/dist/chunk-7G6XT62S.cjs.map +1 -0
  7. package/dist/chunk-ALOS2CBJ.cjs.map +1 -1
  8. package/dist/chunk-CDBVZEWR.js.map +1 -1
  9. package/dist/{chunk-BITQ4MFX.js → chunk-EAELJXRV.js} +93 -115
  10. package/dist/chunk-EAELJXRV.js.map +1 -0
  11. package/dist/chunk-FICTAGD4.js +59 -0
  12. package/dist/chunk-FICTAGD4.js.map +1 -0
  13. package/dist/{chunk-FVMV5DKA.cjs → chunk-HJZOA2O5.cjs} +93 -115
  14. package/dist/chunk-HJZOA2O5.cjs.map +1 -0
  15. package/dist/chunk-LEG4KNFP.cjs.map +1 -1
  16. package/dist/{chunk-5XTB4FE5.js → chunk-LH4Z7QID.js} +2 -2
  17. package/dist/chunk-LH4Z7QID.js.map +1 -0
  18. package/dist/chunk-M6FPVS7E.js +214 -0
  19. package/dist/chunk-M6FPVS7E.js.map +1 -0
  20. package/dist/chunk-O46XKBFM.js.map +1 -1
  21. package/dist/chunk-RCQ2HIQD.cjs +61 -0
  22. package/dist/chunk-RCQ2HIQD.cjs.map +1 -0
  23. package/dist/{chunk-QSF34IYQ.js → chunk-SGGHTIWV.js} +218 -208
  24. package/dist/chunk-SGGHTIWV.js.map +1 -0
  25. package/dist/{chunk-NK6FN5R5.cjs → chunk-UL32L2KV.cjs} +3 -60
  26. package/dist/chunk-UL32L2KV.cjs.map +1 -0
  27. package/dist/{chunk-OL2OE3VJ.js → chunk-XJETEIRU.js} +4 -60
  28. package/dist/chunk-XJETEIRU.js.map +1 -0
  29. package/dist/index.cjs +134 -119
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.js +16 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/middleware.cjs +26 -21
  34. package/dist/middleware.js +2 -1
  35. package/dist/plugins.cjs +7 -7
  36. package/dist/plugins.js +1 -1
  37. package/dist/routes.cjs +25 -24
  38. package/dist/routes.js +5 -4
  39. package/dist/services.cjs +7 -7
  40. package/dist/services.js +1 -1
  41. package/dist/utils.cjs +16 -15
  42. package/dist/utils.js +2 -1
  43. package/package.json +1 -1
  44. package/dist/chunk-5FDDDD4J.cjs.map +0 -1
  45. package/dist/chunk-5XTB4FE5.js.map +0 -1
  46. package/dist/chunk-BITQ4MFX.js.map +0 -1
  47. package/dist/chunk-FVMV5DKA.cjs.map +0 -1
  48. package/dist/chunk-KM4AJFXI.cjs +0 -101
  49. package/dist/chunk-KM4AJFXI.cjs.map +0 -1
  50. package/dist/chunk-NK6FN5R5.cjs.map +0 -1
  51. package/dist/chunk-OL2OE3VJ.js.map +0 -1
  52. package/dist/chunk-QSF34IYQ.js.map +0 -1
  53. package/dist/chunk-SRCY43RN.cjs.map +0 -1
  54. package/dist/chunk-TY3NHEBN.js +0 -80
  55. package/dist/chunk-TY3NHEBN.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ // src/utils/metrics.ts
4
+ var MetricsTracker = class {
5
+ requests = [];
6
+ windowSize = 1e4;
7
+ // 10 seconds window
8
+ /**
9
+ * Record a new request
10
+ */
11
+ recordRequest() {
12
+ const now = Date.now();
13
+ this.requests.push({ timestamp: now });
14
+ this.cleanup(now);
15
+ }
16
+ /**
17
+ * Clean up old requests outside the window
18
+ */
19
+ cleanup(now) {
20
+ const cutoff = now - this.windowSize;
21
+ this.requests = this.requests.filter((req) => req.timestamp > cutoff);
22
+ }
23
+ /**
24
+ * Get current requests per second
25
+ */
26
+ getRequestsPerSecond() {
27
+ const now = Date.now();
28
+ this.cleanup(now);
29
+ if (this.requests.length === 0) {
30
+ return 0;
31
+ }
32
+ const oneSecondAgo = now - 1e3;
33
+ const recentRequests = this.requests.filter((req) => req.timestamp > oneSecondAgo);
34
+ return recentRequests.length;
35
+ }
36
+ /**
37
+ * Get total requests in the current window
38
+ */
39
+ getTotalRequests() {
40
+ const now = Date.now();
41
+ this.cleanup(now);
42
+ return this.requests.length;
43
+ }
44
+ /**
45
+ * Get average requests per second over the window
46
+ */
47
+ getAverageRPS() {
48
+ const now = Date.now();
49
+ this.cleanup(now);
50
+ if (this.requests.length === 0) {
51
+ return 0;
52
+ }
53
+ const windowSeconds = this.windowSize / 1e3;
54
+ return this.requests.length / windowSeconds;
55
+ }
56
+ };
57
+ var metricsTracker = new MetricsTracker();
58
+
59
+ exports.metricsTracker = metricsTracker;
60
+ //# sourceMappingURL=chunk-RCQ2HIQD.cjs.map
61
+ //# sourceMappingURL=chunk-RCQ2HIQD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/metrics.ts"],"names":[],"mappings":";;;AASA,IAAM,iBAAN,MAAqB;AAAA,EACX,WAA6B,EAAC;AAAA,EACrB,UAAA,GAAa,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9B,aAAA,GAAsB;AACpB,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,EAAE,SAAA,EAAW,KAAK,CAAA;AACrC,IAAA,IAAA,CAAK,QAAQ,GAAG,CAAA;AAAA;AAClB;AAAA;AAAA;AAAA,EAKQ,QAAQ,GAAA,EAAmB;AACjC,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,UAAA;AAC1B,IAAA,IAAA,CAAK,WAAW,IAAA,CAAK,QAAA,CAAS,OAAO,CAAA,GAAA,KAAO,GAAA,CAAI,YAAY,MAAM,CAAA;AAAA;AACpE;AAAA;AAAA;AAAA,EAKA,oBAAA,GAA+B;AAC7B,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,IAAA,CAAK,QAAQ,GAAG,CAAA;AAEhB,IAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAC9B,MAAA,OAAO,CAAA;AAAA;AAIT,IAAA,MAAM,eAAe,GAAA,GAAM,GAAA;AAC3B,IAAA,MAAM,iBAAiB,IAAA,CAAK,QAAA,CAAS,OAAO,CAAA,GAAA,KAAO,GAAA,CAAI,YAAY,YAAY,CAAA;AAE/E,IAAA,OAAO,cAAA,CAAe,MAAA;AAAA;AACxB;AAAA;AAAA;AAAA,EAKA,gBAAA,GAA2B;AACzB,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,IAAA,CAAK,QAAQ,GAAG,CAAA;AAChB,IAAA,OAAO,KAAK,QAAA,CAAS,MAAA;AAAA;AACvB;AAAA;AAAA;AAAA,EAKA,aAAA,GAAwB;AACtB,IAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,IAAA,IAAA,CAAK,QAAQ,GAAG,CAAA;AAEhB,IAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAC9B,MAAA,OAAO,CAAA;AAAA;AAGT,IAAA,MAAM,aAAA,GAAgB,KAAK,UAAA,GAAa,GAAA;AACxC,IAAA,OAAO,IAAA,CAAK,SAAS,MAAA,GAAS,aAAA;AAAA;AAElC,CAAA;AAGO,IAAM,cAAA,GAAiB,IAAI,cAAA","file":"chunk-RCQ2HIQD.cjs","sourcesContent":["/**\n * Simple in-memory metrics tracker for real-time analytics\n * Tracks requests per second using a sliding window\n */\n\ninterface RequestMetrics {\n timestamp: number\n}\n\nclass MetricsTracker {\n private requests: RequestMetrics[] = []\n private readonly windowSize = 10000 // 10 seconds window\n\n /**\n * Record a new request\n */\n recordRequest(): void {\n const now = Date.now()\n this.requests.push({ timestamp: now })\n this.cleanup(now)\n }\n\n /**\n * Clean up old requests outside the window\n */\n private cleanup(now: number): void {\n const cutoff = now - this.windowSize\n this.requests = this.requests.filter(req => req.timestamp > cutoff)\n }\n\n /**\n * Get current requests per second\n */\n getRequestsPerSecond(): number {\n const now = Date.now()\n this.cleanup(now)\n\n if (this.requests.length === 0) {\n return 0\n }\n\n // Calculate RPS over the last second\n const oneSecondAgo = now - 1000\n const recentRequests = this.requests.filter(req => req.timestamp > oneSecondAgo)\n\n return recentRequests.length\n }\n\n /**\n * Get total requests in the current window\n */\n getTotalRequests(): number {\n const now = Date.now()\n this.cleanup(now)\n return this.requests.length\n }\n\n /**\n * Get average requests per second over the window\n */\n getAverageRPS(): number {\n const now = Date.now()\n this.cleanup(now)\n\n if (this.requests.length === 0) {\n return 0\n }\n\n const windowSeconds = this.windowSize / 1000\n return this.requests.length / windowSeconds\n }\n}\n\n// Global singleton instance\nexport const metricsTracker = new MetricsTracker()\n"]}