katanakit-js 2.1.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 (153) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/LICENSE +22 -0
  3. package/README.md +446 -0
  4. package/dist/adapters/astro/astro.service.d.ts +18 -0
  5. package/dist/adapters/astro/astro.service.d.ts.map +1 -0
  6. package/dist/adapters/astro/astro.service.js +83 -0
  7. package/dist/adapters/astro/astro.service.js.map +1 -0
  8. package/dist/adapters/astro/index.d.ts +4 -0
  9. package/dist/adapters/astro/index.d.ts.map +1 -0
  10. package/dist/adapters/astro/index.js +4 -0
  11. package/dist/adapters/astro/index.js.map +1 -0
  12. package/dist/adapters/astro/rss.service.d.ts +115 -0
  13. package/dist/adapters/astro/rss.service.d.ts.map +1 -0
  14. package/dist/adapters/astro/rss.service.js +231 -0
  15. package/dist/adapters/astro/rss.service.js.map +1 -0
  16. package/dist/adapters/express/app.d.ts +4 -0
  17. package/dist/adapters/express/app.d.ts.map +1 -0
  18. package/dist/adapters/express/app.js +4 -0
  19. package/dist/adapters/express/app.js.map +1 -0
  20. package/dist/adapters/express/index.d.ts +5 -0
  21. package/dist/adapters/express/index.d.ts.map +1 -0
  22. package/dist/adapters/express/index.js +5 -0
  23. package/dist/adapters/express/index.js.map +1 -0
  24. package/dist/adapters/express/main.d.ts +2 -0
  25. package/dist/adapters/express/main.d.ts.map +1 -0
  26. package/dist/adapters/express/main.js +3 -0
  27. package/dist/adapters/express/main.js.map +1 -0
  28. package/dist/adapters/express/products.controller.d.ts +10 -0
  29. package/dist/adapters/express/products.controller.d.ts.map +1 -0
  30. package/dist/adapters/express/products.controller.js +53 -0
  31. package/dist/adapters/express/products.controller.js.map +1 -0
  32. package/dist/adapters/express/router.d.ts +3 -0
  33. package/dist/adapters/express/router.d.ts.map +1 -0
  34. package/dist/adapters/express/router.js +14 -0
  35. package/dist/adapters/express/router.js.map +1 -0
  36. package/dist/adapters/express/server.d.ts +15 -0
  37. package/dist/adapters/express/server.d.ts.map +1 -0
  38. package/dist/adapters/express/server.js +59 -0
  39. package/dist/adapters/express/server.js.map +1 -0
  40. package/dist/adapters/index.d.ts +2 -0
  41. package/dist/adapters/index.d.ts.map +1 -0
  42. package/dist/adapters/index.js +2 -0
  43. package/dist/adapters/index.js.map +1 -0
  44. package/dist/adapters/nuxt/index.d.ts +2 -0
  45. package/dist/adapters/nuxt/index.d.ts.map +1 -0
  46. package/dist/adapters/nuxt/index.js +2 -0
  47. package/dist/adapters/nuxt/index.js.map +1 -0
  48. package/dist/adapters/nuxt/nuxt.service.d.ts +83 -0
  49. package/dist/adapters/nuxt/nuxt.service.d.ts.map +1 -0
  50. package/dist/adapters/nuxt/nuxt.service.js +104 -0
  51. package/dist/adapters/nuxt/nuxt.service.js.map +1 -0
  52. package/dist/config/index.d.ts +3 -0
  53. package/dist/config/index.d.ts.map +1 -0
  54. package/dist/config/index.js +3 -0
  55. package/dist/config/index.js.map +1 -0
  56. package/dist/config/seo.service.d.ts +72 -0
  57. package/dist/config/seo.service.d.ts.map +1 -0
  58. package/dist/config/seo.service.js +190 -0
  59. package/dist/config/seo.service.js.map +1 -0
  60. package/dist/config/site.config.d.ts +89 -0
  61. package/dist/config/site.config.d.ts.map +1 -0
  62. package/dist/config/site.config.js +59 -0
  63. package/dist/config/site.config.js.map +1 -0
  64. package/dist/core/index.d.ts +13 -0
  65. package/dist/core/index.d.ts.map +1 -0
  66. package/dist/core/index.js +13 -0
  67. package/dist/core/index.js.map +1 -0
  68. package/dist/core/services/dates.service.d.ts +24 -0
  69. package/dist/core/services/dates.service.d.ts.map +1 -0
  70. package/dist/core/services/dates.service.js +64 -0
  71. package/dist/core/services/dates.service.js.map +1 -0
  72. package/dist/core/services/error.service.d.ts +25 -0
  73. package/dist/core/services/error.service.d.ts.map +1 -0
  74. package/dist/core/services/error.service.js +39 -0
  75. package/dist/core/services/error.service.js.map +1 -0
  76. package/dist/core/services/formatter.service.d.ts +36 -0
  77. package/dist/core/services/formatter.service.d.ts.map +1 -0
  78. package/dist/core/services/formatter.service.js +64 -0
  79. package/dist/core/services/formatter.service.js.map +1 -0
  80. package/dist/core/services/generator.service.d.ts +34 -0
  81. package/dist/core/services/generator.service.d.ts.map +1 -0
  82. package/dist/core/services/generator.service.js +83 -0
  83. package/dist/core/services/generator.service.js.map +1 -0
  84. package/dist/core/services/geometry.service.d.ts +45 -0
  85. package/dist/core/services/geometry.service.d.ts.map +1 -0
  86. package/dist/core/services/geometry.service.js +100 -0
  87. package/dist/core/services/geometry.service.js.map +1 -0
  88. package/dist/core/services/http.service.d.ts +22 -0
  89. package/dist/core/services/http.service.d.ts.map +1 -0
  90. package/dist/core/services/http.service.js +124 -0
  91. package/dist/core/services/http.service.js.map +1 -0
  92. package/dist/core/services/logger.service.d.ts +36 -0
  93. package/dist/core/services/logger.service.d.ts.map +1 -0
  94. package/dist/core/services/logger.service.js +60 -0
  95. package/dist/core/services/logger.service.js.map +1 -0
  96. package/dist/core/services/reactive.service.d.ts +22 -0
  97. package/dist/core/services/reactive.service.d.ts.map +1 -0
  98. package/dist/core/services/reactive.service.js +167 -0
  99. package/dist/core/services/reactive.service.js.map +1 -0
  100. package/dist/core/services/timing.service.d.ts +23 -0
  101. package/dist/core/services/timing.service.d.ts.map +1 -0
  102. package/dist/core/services/timing.service.js +217 -0
  103. package/dist/core/services/timing.service.js.map +1 -0
  104. package/dist/core/services/utils.service.d.ts +44 -0
  105. package/dist/core/services/utils.service.d.ts.map +1 -0
  106. package/dist/core/services/utils.service.js +143 -0
  107. package/dist/core/services/utils.service.js.map +1 -0
  108. package/dist/index.d.ts +6 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +6 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/infrastructure/dom/dom.service.d.ts +49 -0
  113. package/dist/infrastructure/dom/dom.service.d.ts.map +1 -0
  114. package/dist/infrastructure/dom/dom.service.js +133 -0
  115. package/dist/infrastructure/dom/dom.service.js.map +1 -0
  116. package/dist/infrastructure/index.d.ts +11 -0
  117. package/dist/infrastructure/index.d.ts.map +1 -0
  118. package/dist/infrastructure/index.js +11 -0
  119. package/dist/infrastructure/index.js.map +1 -0
  120. package/dist/infrastructure/observer/observer.service.d.ts +34 -0
  121. package/dist/infrastructure/observer/observer.service.d.ts.map +1 -0
  122. package/dist/infrastructure/observer/observer.service.js +145 -0
  123. package/dist/infrastructure/observer/observer.service.js.map +1 -0
  124. package/dist/infrastructure/sensors/sensors.service.d.ts +25 -0
  125. package/dist/infrastructure/sensors/sensors.service.d.ts.map +1 -0
  126. package/dist/infrastructure/sensors/sensors.service.js +133 -0
  127. package/dist/infrastructure/sensors/sensors.service.js.map +1 -0
  128. package/dist/infrastructure/storage/storage.service.d.ts +48 -0
  129. package/dist/infrastructure/storage/storage.service.d.ts.map +1 -0
  130. package/dist/infrastructure/storage/storage.service.js +108 -0
  131. package/dist/infrastructure/storage/storage.service.js.map +1 -0
  132. package/dist/infrastructure/theme/theme.service.d.ts +30 -0
  133. package/dist/infrastructure/theme/theme.service.d.ts.map +1 -0
  134. package/dist/infrastructure/theme/theme.service.js +104 -0
  135. package/dist/infrastructure/theme/theme.service.js.map +1 -0
  136. package/dist/infrastructure/viewport/viewport.service.d.ts +38 -0
  137. package/dist/infrastructure/viewport/viewport.service.d.ts.map +1 -0
  138. package/dist/infrastructure/viewport/viewport.service.js +145 -0
  139. package/dist/infrastructure/viewport/viewport.service.js.map +1 -0
  140. package/dist/infrastructure/worker/worker.service.d.ts +42 -0
  141. package/dist/infrastructure/worker/worker.service.d.ts.map +1 -0
  142. package/dist/infrastructure/worker/worker.service.js +151 -0
  143. package/dist/infrastructure/worker/worker.service.js.map +1 -0
  144. package/dist/prisma/db.d.ts +4 -0
  145. package/dist/prisma/db.d.ts.map +1 -0
  146. package/dist/prisma/db.js +12 -0
  147. package/dist/prisma/db.js.map +1 -0
  148. package/dist/prisma/schema.json +411 -0
  149. package/dist/types/index.d.ts +436 -0
  150. package/dist/types/index.d.ts.map +1 -0
  151. package/dist/types/index.js +2 -0
  152. package/dist/types/index.js.map +1 -0
  153. package/package.json +117 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.service.js","sourceRoot":"","sources":["../../../src/infrastructure/dom/dom.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export * from "./dom/dom.service.js";
2
+ export * from "./observer/observer.service.js";
3
+ export * from "./sensors/sensors.service.js";
4
+ export * from "./storage/storage.service.js";
5
+ export { default as StorageService } from "./storage/storage.service.js";
6
+ export * from "./theme/theme.service.js";
7
+ export * from "./viewport/viewport.service.js";
8
+ export { default as ViewportService } from "./viewport/viewport.service.js";
9
+ export * from "./worker/worker.service.js";
10
+ export { default as WorkerService } from "./worker/worker.service.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAC5E,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from "./dom/dom.service.js";
2
+ export * from "./observer/observer.service.js";
3
+ export * from "./sensors/sensors.service.js";
4
+ export * from "./storage/storage.service.js";
5
+ export { default as StorageService } from "./storage/storage.service.js";
6
+ export * from "./theme/theme.service.js";
7
+ export * from "./viewport/viewport.service.js";
8
+ export { default as ViewportService } from "./viewport/viewport.service.js";
9
+ export * from "./worker/worker.service.js";
10
+ export { default as WorkerService } from "./worker/worker.service.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzE,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAC5E,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { ObserverCallback, ObserverTarget } from "../../types/index.js";
2
+ /**
3
+ * Singleton wrapper around the native IntersectionObserver API.
4
+ */
5
+ export declare class ObserverService {
6
+ private static instance;
7
+ private registry;
8
+ private constructor();
9
+ static getInstance(): ObserverService;
10
+ static useIsSupported(): boolean;
11
+ useCreate(key: string, callback: ObserverCallback, options?: IntersectionObserverInit, autoUnobserve?: boolean): this;
12
+ private resolveTarget;
13
+ useObserve(key: string, element: ObserverTarget): this;
14
+ useObserveAll(key: string, selector: string): this;
15
+ useUnobserve(key: string, element: HTMLElement): this;
16
+ useDisconnect(key: string): this;
17
+ useDisconnectAll(): this;
18
+ useHas(key: string): boolean;
19
+ useKeys(): string[];
20
+ }
21
+ /**
22
+ * Singleton service for lazy loading images using IntersectionObserver.
23
+ */
24
+ export declare class LazyLoaderService {
25
+ private static instance;
26
+ private registry;
27
+ private constructor();
28
+ static getInstance(): LazyLoaderService;
29
+ useInit(key?: string, selector?: string, rootMargin?: string): this;
30
+ useStop(key: string): this;
31
+ useStopAll(): this;
32
+ useHas(key: string): boolean;
33
+ }
34
+ //# sourceMappingURL=observer.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observer.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/observer/observer.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,gBAAgB,EAGhB,cAAc,EACd,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAyC;IAEzD,OAAO,eAAiB;IAExB,MAAM,CAAC,WAAW,IAAI,eAAe,CAKpC;IAED,MAAM,CAAC,cAAc,IAAI,OAAO,CAE/B;IAED,SAAS,CACR,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,wBAA6C,EACtD,aAAa,UAAO,GAClB,IAAI,CAyBN;IAED,OAAO,CAAC,aAAa;IAIrB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAarD;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMjD;IAED,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAOpD;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQ/B;IAED,gBAAgB,IAAI,IAAI,CAKvB;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED,OAAO,IAAI,MAAM,EAAE,CAElB;CACD;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAA2C;IAE3D,OAAO,eAAiB;IAExB,MAAM,CAAC,WAAW,IAAI,iBAAiB,CAKtC;IAED,OAAO,CAAC,GAAG,SAAY,EAAE,QAAQ,SAAkB,EAAE,UAAU,SAAU,GAAG,IAAI,CA2B/E;IAED,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAOzB;IAED,UAAU,IAAI,IAAI,CAKjB;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3B;CACD"}
@@ -0,0 +1,145 @@
1
+ import { useLog } from "../../core/services/logger.service.js";
2
+ /**
3
+ * Singleton wrapper around the native IntersectionObserver API.
4
+ */
5
+ export class ObserverService {
6
+ static instance;
7
+ registry = new Map();
8
+ constructor() { }
9
+ static getInstance() {
10
+ if (!ObserverService.instance) {
11
+ ObserverService.instance = new ObserverService();
12
+ }
13
+ return ObserverService.instance;
14
+ }
15
+ static useIsSupported() {
16
+ return typeof window !== "undefined" && "IntersectionObserver" in window;
17
+ }
18
+ useCreate(key, callback, options = { threshold: 0.1 }, autoUnobserve = true) {
19
+ if (!ObserverService.useIsSupported()) {
20
+ useLog("warn", "[ObserverService] IntersectionObserver not supported.");
21
+ return this;
22
+ }
23
+ if (this.registry.has(key)) {
24
+ this.useDisconnect(key);
25
+ }
26
+ const config = { callback, options, autoUnobserve };
27
+ const observer = new IntersectionObserver((entries) => {
28
+ for (const entry of entries) {
29
+ if (entry.isIntersecting) {
30
+ config.callback(entry);
31
+ if (config.autoUnobserve) {
32
+ this.useUnobserve(key, entry.target);
33
+ }
34
+ }
35
+ }
36
+ }, config.options);
37
+ this.registry.set(key, { config, observer, targets: new Set() });
38
+ return this;
39
+ }
40
+ resolveTarget(element) {
41
+ return typeof element === "string" ? document.querySelector(element) : element;
42
+ }
43
+ useObserve(key, element) {
44
+ const entry = this.registry.get(key);
45
+ if (!entry?.observer)
46
+ return this;
47
+ const target = this.resolveTarget(element);
48
+ if (!target) {
49
+ useLog("warn", `[ObserverService] Target not found for key "${key}":`, element);
50
+ return this;
51
+ }
52
+ entry.targets.add(target);
53
+ entry.observer.observe(target);
54
+ return this;
55
+ }
56
+ useObserveAll(key, selector) {
57
+ if (!ObserverService.useIsSupported())
58
+ return this;
59
+ for (const el of document.querySelectorAll(selector)) {
60
+ this.useObserve(key, el);
61
+ }
62
+ return this;
63
+ }
64
+ useUnobserve(key, element) {
65
+ const entry = this.registry.get(key);
66
+ if (!entry?.observer)
67
+ return this;
68
+ entry.observer.unobserve(element);
69
+ entry.targets.delete(element);
70
+ return this;
71
+ }
72
+ useDisconnect(key) {
73
+ const entry = this.registry.get(key);
74
+ if (!entry)
75
+ return this;
76
+ entry.observer?.disconnect();
77
+ entry.targets.clear();
78
+ this.registry.delete(key);
79
+ return this;
80
+ }
81
+ useDisconnectAll() {
82
+ for (const key of this.registry.keys()) {
83
+ this.useDisconnect(key);
84
+ }
85
+ return this;
86
+ }
87
+ useHas(key) {
88
+ return this.registry.has(key);
89
+ }
90
+ useKeys() {
91
+ return Array.from(this.registry.keys());
92
+ }
93
+ }
94
+ /**
95
+ * Singleton service for lazy loading images using IntersectionObserver.
96
+ */
97
+ export class LazyLoaderService {
98
+ static instance;
99
+ registry = new Map();
100
+ constructor() { }
101
+ static getInstance() {
102
+ if (!LazyLoaderService.instance) {
103
+ LazyLoaderService.instance = new LazyLoaderService();
104
+ }
105
+ return LazyLoaderService.instance;
106
+ }
107
+ useInit(key = "default", selector = "img[data-src]", rootMargin = "200px") {
108
+ if (!ObserverService.useIsSupported())
109
+ return this;
110
+ if (this.registry.has(key)) {
111
+ this.useStop(key);
112
+ }
113
+ const observer = ObserverService.getInstance();
114
+ const observerKey = `lazy_loader_${key}`;
115
+ observer.useCreate(observerKey, (entry) => {
116
+ const img = entry.target;
117
+ const dataSrc = img.dataset.src;
118
+ if (dataSrc) {
119
+ img.src = dataSrc;
120
+ img.removeAttribute("data-src");
121
+ }
122
+ }, { rootMargin }, true);
123
+ observer.useObserveAll(observerKey, selector);
124
+ this.registry.set(key, { selector, observerKey });
125
+ return this;
126
+ }
127
+ useStop(key) {
128
+ const entry = this.registry.get(key);
129
+ if (!entry)
130
+ return this;
131
+ ObserverService.getInstance().useDisconnect(entry.observerKey);
132
+ this.registry.delete(key);
133
+ return this;
134
+ }
135
+ useStopAll() {
136
+ for (const key of this.registry.keys()) {
137
+ this.useStop(key);
138
+ }
139
+ return this;
140
+ }
141
+ useHas(key) {
142
+ return this.registry.has(key);
143
+ }
144
+ }
145
+ //# sourceMappingURL=observer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observer.service.js","sourceRoot":"","sources":["../../../src/infrastructure/observer/observer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { BatteryManager, GeoPosition } from "../../types/index.js";
2
+ /**
3
+ * Device sensors and hardware APIs: camera, microphone, geolocation,
4
+ * gyroscope and vibration.
5
+ */
6
+ export declare class SensorsUtils {
7
+ private static instance;
8
+ private constructor();
9
+ static getInstance(): SensorsUtils;
10
+ private isBrowser;
11
+ useGetMediaStream(constraints?: MediaStreamConstraints): Promise<MediaStream | null>;
12
+ useStopMediaStream(stream: MediaStream | null): void;
13
+ useGetFrontCamera(): Promise<MediaStream | null>;
14
+ useGetBackCamera(): Promise<MediaStream | null>;
15
+ useGetGeolocation(options?: PositionOptions): Promise<GeoPosition | null>;
16
+ useWatchGeolocation(callback: (position: GeoPosition) => void, options?: PositionOptions): (() => void) | null;
17
+ useRequestMotionPermission(): Promise<boolean>;
18
+ useOnDeviceOrientation(callback: (event: DeviceOrientationEvent) => void): (() => void) | null;
19
+ useOnDeviceMotion(callback: (event: DeviceMotionEvent) => void): (() => void) | null;
20
+ useVibrate(pattern: number | number[]): boolean;
21
+ useStopVibration(): boolean;
22
+ useGetBattery(): Promise<BatteryManager | null>;
23
+ }
24
+ export declare const sensorsUtils: SensorsUtils;
25
+ //# sourceMappingURL=sensors.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensors.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/sensors/sensors.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExE;;;GAGG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IAEtC,OAAO,eAAiB;IAExB,MAAM,CAAC,WAAW,IAAI,YAAY,CAKjC;IAED,OAAO,CAAC,SAAS;IAIX,iBAAiB,CACtB,WAAW,GAAE,sBAAqD,GAChE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAY7B;IAED,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAMnD;IAEK,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAErD;IAEK,gBAAgB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAEpD;IAEK,iBAAiB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmB9E;IAED,mBAAmB,CAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EACzC,OAAO,CAAC,EAAE,eAAe,GACvB,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAkBrB;IAEK,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC,CAqBnD;IAED,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAQ7F;IAED,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAQnF;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAK9C;IAED,gBAAgB,IAAI,OAAO,CAE1B;IAEK,aAAa,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAepD;CACD;AAGD,eAAO,MAAM,YAAY,cAA6B,CAAC"}
@@ -0,0 +1,133 @@
1
+ import { useLog } from "../../core/services/logger.service.js";
2
+ /**
3
+ * Device sensors and hardware APIs: camera, microphone, geolocation,
4
+ * gyroscope and vibration.
5
+ */
6
+ export class SensorsUtils {
7
+ static instance;
8
+ constructor() { }
9
+ static getInstance() {
10
+ if (!SensorsUtils.instance) {
11
+ SensorsUtils.instance = new SensorsUtils();
12
+ }
13
+ return SensorsUtils.instance;
14
+ }
15
+ isBrowser() {
16
+ return typeof window !== "undefined" && typeof navigator !== "undefined";
17
+ }
18
+ async useGetMediaStream(constraints = { video: true, audio: true }) {
19
+ if (!this.isBrowser() || !navigator.mediaDevices?.getUserMedia) {
20
+ useLog("warn", "[getMediaStream] API not supported in this environment.");
21
+ return null;
22
+ }
23
+ try {
24
+ return await navigator.mediaDevices.getUserMedia(constraints);
25
+ }
26
+ catch (error) {
27
+ useLog("error", "[getMediaStream] Permission denied or error:", error);
28
+ return null;
29
+ }
30
+ }
31
+ useStopMediaStream(stream) {
32
+ if (stream) {
33
+ for (const track of stream.getTracks()) {
34
+ track.stop();
35
+ }
36
+ }
37
+ }
38
+ async useGetFrontCamera() {
39
+ return this.useGetMediaStream({ video: { facingMode: "user" }, audio: true });
40
+ }
41
+ async useGetBackCamera() {
42
+ return this.useGetMediaStream({ video: { facingMode: "environment" }, audio: true });
43
+ }
44
+ async useGetGeolocation(options) {
45
+ if (!this.isBrowser() || !navigator.geolocation)
46
+ return null;
47
+ return new Promise((resolve) => {
48
+ navigator.geolocation.getCurrentPosition((position) => {
49
+ resolve({
50
+ lat: position.coords.latitude,
51
+ lng: position.coords.longitude,
52
+ accuracy: position.coords.accuracy,
53
+ });
54
+ }, (error) => {
55
+ useLog("error", "[getGeolocation] Error:", error.message);
56
+ resolve(null);
57
+ }, { enableHighAccuracy: true, timeout: 10000, ...options });
58
+ });
59
+ }
60
+ useWatchGeolocation(callback, options) {
61
+ if (!this.isBrowser() || !navigator.geolocation)
62
+ return null;
63
+ const watchId = navigator.geolocation.watchPosition((position) => {
64
+ callback({
65
+ lat: position.coords.latitude,
66
+ lng: position.coords.longitude,
67
+ accuracy: position.coords.accuracy,
68
+ });
69
+ }, (error) => {
70
+ useLog("error", "[watchGeolocation] Error:", error.message);
71
+ }, { enableHighAccuracy: true, ...options });
72
+ return () => navigator.geolocation.clearWatch(watchId);
73
+ }
74
+ async useRequestMotionPermission() {
75
+ if (!this.isBrowser())
76
+ return false;
77
+ const DeviceOrientationEventExtended = DeviceOrientationEvent;
78
+ if (typeof DeviceOrientationEventExtended !== "undefined" &&
79
+ typeof DeviceOrientationEventExtended.requestPermission === "function") {
80
+ try {
81
+ const response = await DeviceOrientationEventExtended.requestPermission();
82
+ return response === "granted";
83
+ }
84
+ catch (error) {
85
+ useLog("error", "[requestMotionPermission] Error:", error);
86
+ return false;
87
+ }
88
+ }
89
+ return true;
90
+ }
91
+ useOnDeviceOrientation(callback) {
92
+ if (!this.isBrowser())
93
+ return null;
94
+ window.addEventListener("deviceorientation", callback);
95
+ return () => {
96
+ window.removeEventListener("deviceorientation", callback);
97
+ };
98
+ }
99
+ useOnDeviceMotion(callback) {
100
+ if (!this.isBrowser())
101
+ return null;
102
+ window.addEventListener("devicemotion", callback);
103
+ return () => {
104
+ window.removeEventListener("devicemotion", callback);
105
+ };
106
+ }
107
+ useVibrate(pattern) {
108
+ if (this.isBrowser() && "vibrate" in navigator) {
109
+ return navigator.vibrate(pattern);
110
+ }
111
+ return false;
112
+ }
113
+ useStopVibration() {
114
+ return this.useVibrate(0);
115
+ }
116
+ async useGetBattery() {
117
+ if (!this.isBrowser())
118
+ return null;
119
+ const nav = navigator;
120
+ if (!nav.getBattery)
121
+ return null;
122
+ try {
123
+ return await nav.getBattery();
124
+ }
125
+ catch (error) {
126
+ useLog("error", "[getBattery] Error:", error);
127
+ return null;
128
+ }
129
+ }
130
+ }
131
+ // Singleton instance export.
132
+ export const sensorsUtils = SensorsUtils.getInstance();
133
+ //# sourceMappingURL=sensors.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensors.service.js","sourceRoot":"","sources":["../../../src/infrastructure/sensors/sensors.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { StorageStrategy, StorageTarget } from "../../types/index.js";
2
+ /**
3
+ * Base strategy handling safe JSON serialization over a Web Storage backend.
4
+ */
5
+ declare abstract class WebStorageStrategy implements StorageStrategy {
6
+ private readonly storage;
7
+ protected constructor(storage: Storage);
8
+ useGetItem<T = unknown>(key: string): T | null;
9
+ useSetItem(key: string, value: unknown): void;
10
+ useRemoveItem(key: string): void;
11
+ useClear(): void;
12
+ }
13
+ /**
14
+ * Concrete strategy backed by `window.localStorage`.
15
+ */
16
+ export declare class LocalStorageStrategy extends WebStorageStrategy {
17
+ constructor();
18
+ }
19
+ /**
20
+ * Concrete strategy backed by `window.sessionStorage`.
21
+ */
22
+ export declare class SessionStorageStrategy extends WebStorageStrategy {
23
+ constructor();
24
+ }
25
+ /**
26
+ * Concrete strategy backed by an in-memory store (SSR fallback).
27
+ */
28
+ export declare class MemoryStorageStrategy extends WebStorageStrategy {
29
+ constructor();
30
+ }
31
+ /**
32
+ * Storage facade (Singleton + Strategy). Lazily picks browser storage or an
33
+ * in-memory fallback so importing this module never crashes in SSR (Node/Bun).
34
+ */
35
+ export default class StorageService {
36
+ private static instance;
37
+ private strategies;
38
+ private constructor();
39
+ static getInstance(): StorageService;
40
+ private getStrategies;
41
+ useGetStorage: <T = unknown>(key: string, target?: StorageTarget) => T | null;
42
+ useSetStorage: (key: string, value: unknown, target?: StorageTarget) => void;
43
+ useRemoveStorage: (key: string, target?: StorageTarget) => void;
44
+ useClearStorage: (target?: StorageTarget) => void;
45
+ }
46
+ export declare const useClearStorage: (target?: StorageTarget) => void, useGetStorage: <T = unknown>(key: string, target?: StorageTarget) => T | null, useRemoveStorage: (key: string, target?: StorageTarget) => void, useSetStorage: (key: string, value: unknown, target?: StorageTarget) => void;
47
+ export {};
48
+ //# sourceMappingURL=storage.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E;;GAEG;AACH,uBAAe,kBAAmB,YAAW,eAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAA9C,SAAS,aAA8B,OAAO,EAAE,OAAO,EAAI;IAE3D,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAO7C;IAED,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAG5C;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/B;IAED,QAAQ,IAAI,IAAI,CAEf;CACD;AAiCD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC3D,cAEC;CACD;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC7D,cAEC;CACD;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC5D,cAEC;CACD;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,UAAU,CAAuD;IAEzE,OAAO,eAAiB;IAExB,OAAc,WAAW,IAAI,cAAc,CAK1C;IAED,OAAO,CAAC,aAAa;IAWd,aAAa,GAAI,CAAC,GAAG,OAAO,OAC7B,MAAM,WACH,aAAa,KACnB,CAAC,GAAG,IAAI,CAAoD;IAExD,aAAa,QACd,MAAM,SACJ,OAAO,WACN,aAAa,KACnB,IAAI,CAAwD;IAExD,gBAAgB,QAAS,MAAM,WAAU,aAAa,KAAoB,IAAI,CACpC;IAE1C,eAAe,YAAY,aAAa,KAAoB,IAAI,CAC9B;CACzC;AAGD,eAAO,MAAQ,eAAe,YALK,aAAa,KAAoB,IAAI,EAKxC,aAAa,GAnBpB,CAAC,iBACnB,MAAM,WACH,aAAa,eAiBwB,gBAAgB,QAR9B,MAAM,WAAU,aAAa,KAAoB,IAAI,EAQrB,aAAa,QAbvE,MAAM,SACJ,OAAO,WACN,aAAa,KACnB,IAWyB,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Base strategy handling safe JSON serialization over a Web Storage backend.
3
+ */
4
+ class WebStorageStrategy {
5
+ storage;
6
+ constructor(storage) {
7
+ this.storage = storage;
8
+ }
9
+ useGetItem(key) {
10
+ try {
11
+ const raw = this.storage.getItem(key);
12
+ return raw ? JSON.parse(raw) : null;
13
+ }
14
+ catch {
15
+ return this.storage.getItem(key);
16
+ }
17
+ }
18
+ useSetItem(key, value) {
19
+ const serialized = typeof value === "string" ? value : JSON.stringify(value);
20
+ this.storage.setItem(key, serialized);
21
+ }
22
+ useRemoveItem(key) {
23
+ this.storage.removeItem(key);
24
+ }
25
+ useClear() {
26
+ this.storage.clear();
27
+ }
28
+ }
29
+ /**
30
+ * In-memory Web Storage implementation used as an SSR fallback.
31
+ */
32
+ class MemoryStorage {
33
+ store = new Map();
34
+ get length() {
35
+ return this.store.size;
36
+ }
37
+ clear() {
38
+ this.store.clear();
39
+ }
40
+ getItem(key) {
41
+ return this.store.get(key) ?? null;
42
+ }
43
+ key(index) {
44
+ return Array.from(this.store.keys())[index] ?? null;
45
+ }
46
+ removeItem(key) {
47
+ this.store.delete(key);
48
+ }
49
+ setItem(key, value) {
50
+ this.store.set(key, value);
51
+ }
52
+ }
53
+ /**
54
+ * Concrete strategy backed by `window.localStorage`.
55
+ */
56
+ export class LocalStorageStrategy extends WebStorageStrategy {
57
+ constructor() {
58
+ super(window.localStorage);
59
+ }
60
+ }
61
+ /**
62
+ * Concrete strategy backed by `window.sessionStorage`.
63
+ */
64
+ export class SessionStorageStrategy extends WebStorageStrategy {
65
+ constructor() {
66
+ super(window.sessionStorage);
67
+ }
68
+ }
69
+ /**
70
+ * Concrete strategy backed by an in-memory store (SSR fallback).
71
+ */
72
+ export class MemoryStorageStrategy extends WebStorageStrategy {
73
+ constructor() {
74
+ super(new MemoryStorage());
75
+ }
76
+ }
77
+ /**
78
+ * Storage facade (Singleton + Strategy). Lazily picks browser storage or an
79
+ * in-memory fallback so importing this module never crashes in SSR (Node/Bun).
80
+ */
81
+ export default class StorageService {
82
+ static instance;
83
+ strategies = null;
84
+ constructor() { }
85
+ static getInstance() {
86
+ if (!StorageService.instance) {
87
+ StorageService.instance = new StorageService();
88
+ }
89
+ return StorageService.instance;
90
+ }
91
+ getStrategies() {
92
+ if (!this.strategies) {
93
+ const hasWindow = typeof window !== "undefined";
94
+ this.strategies = {
95
+ localStorage: hasWindow ? new LocalStorageStrategy() : new MemoryStorageStrategy(),
96
+ sessionStorage: hasWindow ? new SessionStorageStrategy() : new MemoryStorageStrategy(),
97
+ };
98
+ }
99
+ return this.strategies;
100
+ }
101
+ useGetStorage = (key, target = "localStorage") => this.getStrategies()[target].useGetItem(key);
102
+ useSetStorage = (key, value, target = "localStorage") => this.getStrategies()[target].useSetItem(key, value);
103
+ useRemoveStorage = (key, target = "localStorage") => this.getStrategies()[target].useRemoveItem(key);
104
+ useClearStorage = (target = "localStorage") => this.getStrategies()[target].useClear();
105
+ }
106
+ // Singleton instance and destructured exports.
107
+ export const { useClearStorage, useGetStorage, useRemoveStorage, useSetStorage } = StorageService.getInstance();
108
+ //# sourceMappingURL=storage.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/storage.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { IThemeService, ThemeMode, ThemeOptions } from "../../types/index.js";
2
+ /**
3
+ * Theme facade (Singleton) over the DOM and Storage, with a media-query listener.
4
+ */
5
+ export declare class ThemeService implements IThemeService {
6
+ private static instance;
7
+ private mode;
8
+ private storageKey;
9
+ private attribute;
10
+ private target;
11
+ private onChange?;
12
+ private mediaQuery;
13
+ private cleanMediaQueryListener;
14
+ private constructor();
15
+ static getInstance(): ThemeService;
16
+ private IS_BROWSER;
17
+ useInitTheme: (options?: ThemeOptions) => void;
18
+ useSetThemeMode: (mode: ThemeMode) => void;
19
+ useGetThemeMode: () => ThemeMode;
20
+ useGetResolved: () => "light" | "dark";
21
+ usePrefersColorScheme: () => boolean;
22
+ useToggleTheme: () => void;
23
+ useResetTheme: () => void;
24
+ useDestroyTheme: () => void;
25
+ private APPLY_THEME;
26
+ private SETUP_MEDIA_QUERY_LISTENER;
27
+ }
28
+ export declare const THEME_SERVICE: ThemeService;
29
+ export declare const useInitTheme: (options?: ThemeOptions) => void, useSetThemeMode: (mode: ThemeMode) => void, useGetThemeMode: () => ThemeMode, useGetResolved: () => "light" | "dark", usePrefersColorScheme: () => boolean, useToggleTheme: () => void, useResetTheme: () => void, useDestroyTheme: () => void;
30
+ //# sourceMappingURL=theme.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.service.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/theme/theme.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAUnF;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IAEtC,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAAwD;IACzE,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,uBAAuB,CAA6B;IAE5D,OAAO,eAAiB;IAExB,OAAc,WAAW,IAAI,YAAY,CAKxC;IAED,OAAO,CAAC,UAAU,CAEhB;IAEK,YAAY,aAAa,YAAY,KAAQ,IAAI,CAatD;IAEK,eAAe,SAAU,SAAS,KAAG,IAAI,CAM9C;IAEK,eAAe,QAAO,SAAS,CAAc;IAE7C,cAAc,QAAO,OAAO,GAAG,MAAM,CAG1C;IAEK,qBAAqB,QAAO,OAAO,CAGxC;IAEK,cAAc,QAAO,IAAI,CAG9B;IAEK,aAAa,QAAO,IAAI,CAK7B;IAEK,eAAe,QAAO,IAAI,CAM/B;IAEF,OAAO,CAAC,WAAW,CAajB;IAEF,OAAO,CAAC,0BAA0B,CAiBhC;CACF;AAGD,eAAO,MAAM,aAAa,EAAE,YAAyC,CAAC;AAEtE,eAAO,MACN,YAAY,aA9FoB,YAAY,KAAQ,IAAI,EA+FxD,eAAe,SAhFiB,SAAS,KAAG,IAAI,EAiFhD,eAAe,QAzEc,SAAS,EA0EtC,cAAc,QAxEc,OAAO,GAAG,MAAM,EAyE5C,qBAAqB,QApEc,OAAO,EAqE1C,cAAc,QAhEc,IAAI,EAiEhC,aAAa,QA5Dc,IAAI,EA6D/B,eAAe,QAtDc,IAuDC,CAAC"}