@sudobility/di 1.4.30 → 1.5.0

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 (133) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/mocks/analytics.mock.d.ts +62 -0
  6. package/dist/mocks/analytics.mock.d.ts.map +1 -0
  7. package/dist/mocks/analytics.mock.js +127 -0
  8. package/dist/mocks/analytics.mock.js.map +1 -0
  9. package/dist/mocks/env.mock.d.ts +38 -0
  10. package/dist/mocks/env.mock.d.ts.map +1 -0
  11. package/dist/mocks/env.mock.js +104 -0
  12. package/dist/mocks/env.mock.js.map +1 -0
  13. package/dist/mocks/index.d.ts +9 -0
  14. package/dist/mocks/index.d.ts.map +1 -0
  15. package/dist/mocks/index.js +9 -0
  16. package/dist/mocks/index.js.map +1 -0
  17. package/dist/mocks/logging.mock.d.ts +35 -0
  18. package/dist/mocks/logging.mock.d.ts.map +1 -0
  19. package/dist/mocks/logging.mock.js +78 -0
  20. package/dist/mocks/logging.mock.js.map +1 -0
  21. package/dist/mocks/navigation.mock.d.ts +77 -0
  22. package/dist/mocks/navigation.mock.d.ts.map +1 -0
  23. package/dist/mocks/navigation.mock.js +277 -0
  24. package/dist/mocks/navigation.mock.js.map +1 -0
  25. package/dist/mocks/network.mock.d.ts +36 -0
  26. package/dist/mocks/network.mock.d.ts.map +1 -0
  27. package/dist/mocks/network.mock.js +76 -0
  28. package/dist/mocks/network.mock.js.map +1 -0
  29. package/dist/mocks/notification.mock.d.ts +77 -0
  30. package/dist/mocks/notification.mock.d.ts.map +1 -0
  31. package/dist/mocks/notification.mock.js +210 -0
  32. package/dist/mocks/notification.mock.js.map +1 -0
  33. package/dist/mocks/storage.mock.d.ts +74 -0
  34. package/dist/mocks/storage.mock.d.ts.map +1 -0
  35. package/dist/mocks/storage.mock.js +241 -0
  36. package/dist/mocks/storage.mock.js.map +1 -0
  37. package/dist/mocks/theme.mock.d.ts +26 -0
  38. package/dist/mocks/theme.mock.d.ts.map +1 -0
  39. package/dist/mocks/theme.mock.js +65 -0
  40. package/dist/mocks/theme.mock.js.map +1 -0
  41. package/dist/navigation/navigation.d.ts +7 -1
  42. package/dist/navigation/navigation.d.ts.map +1 -1
  43. package/dist/network/platform-network.d.ts +15 -0
  44. package/dist/network/platform-network.d.ts.map +1 -1
  45. package/dist/rn/analytics/analytics.rn.d.ts +19 -0
  46. package/dist/rn/analytics/analytics.rn.d.ts.map +1 -0
  47. package/dist/rn/analytics/analytics.rn.js +103 -0
  48. package/dist/rn/analytics/analytics.rn.js.map +1 -0
  49. package/dist/rn/env/env.rn.d.ts +14 -0
  50. package/dist/rn/env/env.rn.d.ts.map +1 -0
  51. package/dist/rn/env/env.rn.js +58 -0
  52. package/dist/rn/env/env.rn.js.map +1 -0
  53. package/dist/rn/index.d.ts +13 -0
  54. package/dist/rn/index.d.ts.map +1 -0
  55. package/dist/rn/index.js +12 -0
  56. package/dist/rn/index.js.map +1 -0
  57. package/dist/rn/logging/logging.rn.d.ts +28 -0
  58. package/dist/rn/logging/logging.rn.d.ts.map +1 -0
  59. package/dist/rn/logging/logging.rn.js +78 -0
  60. package/dist/rn/logging/logging.rn.js.map +1 -0
  61. package/dist/rn/navigation/navigation.rn.d.ts +29 -0
  62. package/dist/rn/navigation/navigation.rn.d.ts.map +1 -0
  63. package/dist/rn/navigation/navigation.rn.js +161 -0
  64. package/dist/rn/navigation/navigation.rn.js.map +1 -0
  65. package/dist/rn/network/network-singleton.d.ts +8 -0
  66. package/dist/rn/network/network-singleton.d.ts.map +1 -0
  67. package/dist/rn/network/network-singleton.js +36 -0
  68. package/dist/rn/network/network-singleton.js.map +1 -0
  69. package/dist/rn/network/network.rn.d.ts +41 -0
  70. package/dist/rn/network/network.rn.d.ts.map +1 -0
  71. package/dist/rn/network/network.rn.js +185 -0
  72. package/dist/rn/network/network.rn.js.map +1 -0
  73. package/dist/rn/notification/notification.rn.d.ts +26 -0
  74. package/dist/rn/notification/notification.rn.d.ts.map +1 -0
  75. package/dist/rn/notification/notification.rn.js +187 -0
  76. package/dist/rn/notification/notification.rn.js.map +1 -0
  77. package/dist/rn/storage/storage-singleton.d.ts +25 -0
  78. package/dist/rn/storage/storage-singleton.d.ts.map +1 -0
  79. package/dist/rn/storage/storage-singleton.js +68 -0
  80. package/dist/rn/storage/storage-singleton.js.map +1 -0
  81. package/dist/rn/storage/storage.rn.d.ts +33 -0
  82. package/dist/rn/storage/storage.rn.d.ts.map +1 -0
  83. package/dist/rn/storage/storage.rn.js +113 -0
  84. package/dist/rn/storage/storage.rn.js.map +1 -0
  85. package/dist/rn/theme/theme.rn.d.ts +31 -0
  86. package/dist/rn/theme/theme.rn.d.ts.map +1 -0
  87. package/dist/rn/theme/theme.rn.js +116 -0
  88. package/dist/rn/theme/theme.rn.js.map +1 -0
  89. package/dist/web/firebase/firebase.interface.d.ts +81 -0
  90. package/dist/web/firebase/firebase.interface.d.ts.map +1 -0
  91. package/dist/web/firebase/firebase.interface.js +2 -0
  92. package/dist/web/firebase/firebase.interface.js.map +1 -0
  93. package/dist/web/firebase/firebase.web.d.ts +19 -0
  94. package/dist/web/firebase/firebase.web.d.ts.map +1 -0
  95. package/dist/web/firebase/firebase.web.js +325 -0
  96. package/dist/web/firebase/firebase.web.js.map +1 -0
  97. package/dist/web/index.d.ts +12 -0
  98. package/dist/web/index.d.ts.map +1 -0
  99. package/dist/web/index.js +10 -0
  100. package/dist/web/index.js.map +1 -0
  101. package/dist/web/navigation/navigation.web.d.ts +34 -0
  102. package/dist/web/navigation/navigation.web.d.ts.map +1 -0
  103. package/dist/web/navigation/navigation.web.js +176 -0
  104. package/dist/web/navigation/navigation.web.js.map +1 -0
  105. package/dist/web/navigation/ui-navigation.d.ts +51 -0
  106. package/dist/web/navigation/ui-navigation.d.ts.map +1 -0
  107. package/dist/web/navigation/ui-navigation.js +2 -0
  108. package/dist/web/navigation/ui-navigation.js.map +1 -0
  109. package/dist/web/network/network-singleton.d.ts +5 -0
  110. package/dist/web/network/network-singleton.d.ts.map +1 -0
  111. package/dist/web/network/network-singleton.js +21 -0
  112. package/dist/web/network/network-singleton.js.map +1 -0
  113. package/dist/web/network/network.web.d.ts +12 -0
  114. package/dist/web/network/network.web.d.ts.map +1 -0
  115. package/dist/web/network/network.web.js +124 -0
  116. package/dist/web/network/network.web.js.map +1 -0
  117. package/dist/web/network/web-network.service.d.ts +24 -0
  118. package/dist/web/network/web-network.service.d.ts.map +1 -0
  119. package/dist/web/network/web-network.service.js +150 -0
  120. package/dist/web/network/web-network.service.js.map +1 -0
  121. package/dist/web/storage/storage-singleton.d.ts +5 -0
  122. package/dist/web/storage/storage-singleton.d.ts.map +1 -0
  123. package/dist/web/storage/storage-singleton.js +19 -0
  124. package/dist/web/storage/storage-singleton.js.map +1 -0
  125. package/dist/web/storage/storage.web.d.ts +22 -0
  126. package/dist/web/storage/storage.web.d.ts.map +1 -0
  127. package/dist/web/storage/storage.web.js +107 -0
  128. package/dist/web/storage/storage.web.js.map +1 -0
  129. package/dist/web/storage/web-storage.service.d.ts +23 -0
  130. package/dist/web/storage/web-storage.service.d.ts.map +1 -0
  131. package/dist/web/storage/web-storage.service.js +137 -0
  132. package/dist/web/storage/web-storage.service.js.map +1 -0
  133. package/package.json +51 -6
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export * from './logging/index.js';
12
12
  export * from './service-keys.js';
13
13
  export * from './hooks/index.js';
14
14
  export * from './utils/index.js';
15
+ export * from './mocks/index.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AAGzD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AAGzD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -12,4 +12,5 @@ export * from './logging/index.js';
12
12
  export * from './service-keys.js';
13
13
  export * from './hooks/index.js';
14
14
  export * from './utils/index.js';
15
+ export * from './mocks/index.js';
15
16
  //# 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":"AAQA,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AAGzD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAGlD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AAGzD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { AnalyticsEvent, type Optional } from '@sudobility/types';
2
+ import type { AnalyticsClient, AnalyticsContextProvider, AnalyticsEventData } from '../analytics/analytics.js';
3
+ import type { PlatformAnalytics } from '../analytics/platform-analytics.js';
4
+ export interface RecordedAnalyticsEvent {
5
+ event: AnalyticsEvent | string;
6
+ parameters?: Record<string, unknown> | undefined;
7
+ timestamp: number;
8
+ }
9
+ export declare class MockAnalyticsClient implements AnalyticsClient {
10
+ private events;
11
+ private userProperties;
12
+ private userId;
13
+ private enabled;
14
+ private currentScreen;
15
+ trackEvent(event: AnalyticsEvent | AnalyticsEventData): void;
16
+ setUserProperties(properties: Record<string, unknown>): void;
17
+ setUserId(userId: Optional<string>): void;
18
+ setAnalyticsEnabled(enabled: boolean): void;
19
+ setCurrentScreen(screenName: string, screenClass?: Optional<string>): void;
20
+ getTrackedEvents(): RecordedAnalyticsEvent[];
21
+ getEventsByType(eventType: AnalyticsEvent): RecordedAnalyticsEvent[];
22
+ getLastEvent(): RecordedAnalyticsEvent | undefined;
23
+ getUserProperties(): Record<string, unknown>;
24
+ getUserId(): Optional<string>;
25
+ isEnabled(): boolean;
26
+ getCurrentScreen(): {
27
+ name: string;
28
+ class?: Optional<string>;
29
+ } | null;
30
+ reset(): void;
31
+ }
32
+ export declare class MockAnalyticsContextProvider implements AnalyticsContextProvider {
33
+ private context;
34
+ constructor(initialContext?: Record<string, unknown>);
35
+ getCurrentContext(): Record<string, unknown>;
36
+ setContext(context: Record<string, unknown>): void;
37
+ addContext(key: string, value: unknown): void;
38
+ reset(): void;
39
+ }
40
+ export declare class MockPlatformAnalytics implements PlatformAnalytics {
41
+ private events;
42
+ private userProperties;
43
+ private userId;
44
+ private enabled;
45
+ trackEvent(event: string, properties: Record<string, unknown>): void;
46
+ setUserProperty(key: string, value: string): void;
47
+ setUserId(userId: string): void;
48
+ isEnabled(): boolean;
49
+ getTrackedEvents(): Array<{
50
+ event: string;
51
+ properties: Record<string, unknown>;
52
+ }>;
53
+ getEventsByName(eventName: string): Array<{
54
+ event: string;
55
+ properties: Record<string, unknown>;
56
+ }>;
57
+ getUserProperties(): Record<string, string>;
58
+ getUserId(): string;
59
+ setEnabled(enabled: boolean): void;
60
+ reset(): void;
61
+ }
62
+ //# sourceMappingURL=analytics.mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.mock.d.ts","sourceRoot":"","sources":["../../src/mocks/analytics.mock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ export class MockAnalyticsClient {
2
+ constructor() {
3
+ this.events = [];
4
+ this.userProperties = {};
5
+ this.userId = null;
6
+ this.enabled = true;
7
+ this.currentScreen = null;
8
+ }
9
+ trackEvent(event) {
10
+ if (!this.enabled)
11
+ return;
12
+ if (typeof event === 'object' && 'event' in event) {
13
+ this.events.push({
14
+ event: event.event,
15
+ parameters: event.parameters ?? undefined,
16
+ timestamp: Date.now(),
17
+ });
18
+ }
19
+ else {
20
+ this.events.push({
21
+ event,
22
+ timestamp: Date.now(),
23
+ });
24
+ }
25
+ }
26
+ setUserProperties(properties) {
27
+ this.userProperties = { ...this.userProperties, ...properties };
28
+ }
29
+ setUserId(userId) {
30
+ this.userId = userId;
31
+ }
32
+ setAnalyticsEnabled(enabled) {
33
+ this.enabled = enabled;
34
+ }
35
+ setCurrentScreen(screenName, screenClass) {
36
+ this.currentScreen = { name: screenName, class: screenClass };
37
+ }
38
+ getTrackedEvents() {
39
+ return [...this.events];
40
+ }
41
+ getEventsByType(eventType) {
42
+ return this.events.filter((e) => e.event === eventType);
43
+ }
44
+ getLastEvent() {
45
+ return this.events[this.events.length - 1];
46
+ }
47
+ getUserProperties() {
48
+ return { ...this.userProperties };
49
+ }
50
+ getUserId() {
51
+ return this.userId;
52
+ }
53
+ isEnabled() {
54
+ return this.enabled;
55
+ }
56
+ getCurrentScreen() {
57
+ return this.currentScreen;
58
+ }
59
+ reset() {
60
+ this.events = [];
61
+ this.userProperties = {};
62
+ this.userId = null;
63
+ this.enabled = true;
64
+ this.currentScreen = null;
65
+ }
66
+ }
67
+ export class MockAnalyticsContextProvider {
68
+ constructor(initialContext = {}) {
69
+ this.context = initialContext;
70
+ }
71
+ getCurrentContext() {
72
+ return { ...this.context };
73
+ }
74
+ setContext(context) {
75
+ this.context = context;
76
+ }
77
+ addContext(key, value) {
78
+ this.context[key] = value;
79
+ }
80
+ reset() {
81
+ this.context = {};
82
+ }
83
+ }
84
+ export class MockPlatformAnalytics {
85
+ constructor() {
86
+ this.events = [];
87
+ this.userProperties = {};
88
+ this.userId = '';
89
+ this.enabled = true;
90
+ }
91
+ trackEvent(event, properties) {
92
+ if (!this.enabled)
93
+ return;
94
+ this.events.push({ event, properties });
95
+ }
96
+ setUserProperty(key, value) {
97
+ this.userProperties[key] = value;
98
+ }
99
+ setUserId(userId) {
100
+ this.userId = userId;
101
+ }
102
+ isEnabled() {
103
+ return this.enabled;
104
+ }
105
+ getTrackedEvents() {
106
+ return [...this.events];
107
+ }
108
+ getEventsByName(eventName) {
109
+ return this.events.filter((e) => e.event === eventName);
110
+ }
111
+ getUserProperties() {
112
+ return { ...this.userProperties };
113
+ }
114
+ getUserId() {
115
+ return this.userId;
116
+ }
117
+ setEnabled(enabled) {
118
+ this.enabled = enabled;
119
+ }
120
+ reset() {
121
+ this.events = [];
122
+ this.userProperties = {};
123
+ this.userId = '';
124
+ this.enabled = true;
125
+ }
126
+ }
127
+ //# sourceMappingURL=analytics.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.mock.js","sourceRoot":"","sources":["../../src/mocks/analytics.mock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Optional } from '@sudobility/types';
2
+ import type { EnvProvider, AppConfig, EnvironmentVariables, FirebaseConfig, EnvFactory, EnvUtils } from '../env.js';
3
+ export declare class MockEnvProvider implements EnvProvider {
4
+ private variables;
5
+ constructor(variables?: EnvironmentVariables);
6
+ get<K extends keyof EnvironmentVariables>(key: K, defaultValue?: Optional<string>): Optional<EnvironmentVariables[K] | string>;
7
+ isDevelopment(): boolean;
8
+ isProduction(): boolean;
9
+ isTest(): boolean;
10
+ getAll(): EnvironmentVariables;
11
+ setVariable(key: string, value: Optional<string>): void;
12
+ reset(variables?: EnvironmentVariables): void;
13
+ }
14
+ export declare function createMockFirebaseConfig(overrides?: Partial<FirebaseConfig>): FirebaseConfig;
15
+ export declare function createMockAppConfig(overrides?: Partial<AppConfig>): AppConfig;
16
+ export declare class MockEnvFactory implements EnvFactory {
17
+ private platform;
18
+ private envProvider;
19
+ private appConfig;
20
+ constructor(variables?: EnvironmentVariables, configOverrides?: Partial<AppConfig>);
21
+ createEnvProvider(): EnvProvider;
22
+ createAppConfig(_envProvider: EnvProvider): AppConfig;
23
+ detectPlatform(): 'web' | 'react-native' | 'node';
24
+ setPlatform(platform: 'web' | 'react-native' | 'node'): void;
25
+ setAppConfig(config: Partial<AppConfig>): void;
26
+ getEnvProvider(): MockEnvProvider;
27
+ }
28
+ export declare class MockEnvUtils implements EnvUtils {
29
+ private variables;
30
+ constructor(variables?: EnvironmentVariables);
31
+ isDevelopment(): boolean;
32
+ isProduction(): boolean;
33
+ isTest(): boolean;
34
+ get(key: string, defaultValue?: Optional<string>): Optional<string>;
35
+ setVariable(key: string, value: Optional<string>): void;
36
+ reset(variables?: EnvironmentVariables): void;
37
+ }
38
+ //# sourceMappingURL=env.mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.mock.d.ts","sourceRoot":"","sources":["../../src/mocks/env.mock.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,QAAQ,EACT,MAAM,WAAW,CAAC;AAYnB,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,SAAS,CAAuB;gBAE5B,SAAS,GAAE,oBAA2C;IAIlE,GAAG,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACtC,GAAG,EAAE,CAAC,EACN,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC9B,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAK7C,aAAa,IAAI,OAAO;IAIxB,YAAY,IAAI,OAAO;IAIvB,MAAM,IAAI,OAAO;IAIjB,MAAM,IAAI,oBAAoB;IAS9B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAOvD,KAAK,CAAC,SAAS,GAAE,oBAA2C,GAAG,IAAI;CAGpE;AAKD,wBAAgB,wBAAwB,CACtC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,cAAc,CAYhB;AAKD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,SAAS,CAAM,GACjC,SAAS,CAaX;AAYD,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAY;gBAG3B,SAAS,GAAE,oBAA2C,EACtD,eAAe,GAAE,OAAO,CAAC,SAAS,CAAM;IAM1C,iBAAiB,IAAI,WAAW;IAIhC,eAAe,CAAC,YAAY,EAAE,WAAW,GAAG,SAAS;IAIrD,cAAc,IAAI,KAAK,GAAG,cAAc,GAAG,MAAM;IASjD,WAAW,CAAC,QAAQ,EAAE,KAAK,GAAG,cAAc,GAAG,MAAM,GAAG,IAAI;IAO5D,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAO9C,cAAc,IAAI,eAAe;CAGlC;AAWD,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,SAAS,CAAuB;gBAE5B,SAAS,GAAE,oBAA2C;IAIlE,aAAa,IAAI,OAAO;IAIxB,YAAY,IAAI,OAAO;IAIvB,MAAM,IAAI,OAAO;IAIjB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAUnE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAOvD,KAAK,CAAC,SAAS,GAAE,oBAA2C,GAAG,IAAI;CAGpE"}
@@ -0,0 +1,104 @@
1
+ export class MockEnvProvider {
2
+ constructor(variables = { NODE_ENV: 'test' }) {
3
+ this.variables = variables;
4
+ }
5
+ get(key, defaultValue) {
6
+ const value = this.variables[key];
7
+ return value !== undefined ? value : defaultValue;
8
+ }
9
+ isDevelopment() {
10
+ return this.variables.NODE_ENV === 'development';
11
+ }
12
+ isProduction() {
13
+ return this.variables.NODE_ENV === 'production';
14
+ }
15
+ isTest() {
16
+ return this.variables.NODE_ENV === 'test';
17
+ }
18
+ getAll() {
19
+ return { ...this.variables };
20
+ }
21
+ setVariable(key, value) {
22
+ this.variables[key] = value;
23
+ }
24
+ reset(variables = { NODE_ENV: 'test' }) {
25
+ this.variables = variables;
26
+ }
27
+ }
28
+ export function createMockFirebaseConfig(overrides = {}) {
29
+ return {
30
+ apiKey: 'mock-api-key',
31
+ authDomain: 'mock-project.firebaseapp.com',
32
+ projectId: 'mock-project',
33
+ storageBucket: 'mock-project.appspot.com',
34
+ messagingSenderId: '123456789',
35
+ appId: '1:123456789:web:abc123',
36
+ measurementId: 'G-MOCK123',
37
+ vapidKey: 'mock-vapid-key',
38
+ ...overrides,
39
+ };
40
+ }
41
+ export function createMockAppConfig(overrides = {}) {
42
+ return {
43
+ wildDuckBackendUrl: 'http://localhost:3000',
44
+ indexerBackendUrl: 'http://localhost:3001',
45
+ revenueCatApiKey: 'mock-revenuecat-key',
46
+ walletConnectProjectId: 'mock-walletconnect-id',
47
+ privyAppId: 'mock-privy-id',
48
+ firebase: createMockFirebaseConfig(overrides.firebase),
49
+ useCloudflareWorker: false,
50
+ cloudflareWorkerUrl: 'http://localhost:8787',
51
+ useMockFallback: true,
52
+ ...overrides,
53
+ };
54
+ }
55
+ export class MockEnvFactory {
56
+ constructor(variables = { NODE_ENV: 'test' }, configOverrides = {}) {
57
+ this.platform = 'node';
58
+ this.envProvider = new MockEnvProvider(variables);
59
+ this.appConfig = createMockAppConfig(configOverrides);
60
+ }
61
+ createEnvProvider() {
62
+ return this.envProvider;
63
+ }
64
+ createAppConfig(_envProvider) {
65
+ return this.appConfig;
66
+ }
67
+ detectPlatform() {
68
+ return this.platform;
69
+ }
70
+ setPlatform(platform) {
71
+ this.platform = platform;
72
+ }
73
+ setAppConfig(config) {
74
+ this.appConfig = { ...this.appConfig, ...config };
75
+ }
76
+ getEnvProvider() {
77
+ return this.envProvider;
78
+ }
79
+ }
80
+ export class MockEnvUtils {
81
+ constructor(variables = { NODE_ENV: 'test' }) {
82
+ this.variables = variables;
83
+ }
84
+ isDevelopment() {
85
+ return this.variables.NODE_ENV === 'development';
86
+ }
87
+ isProduction() {
88
+ return this.variables.NODE_ENV === 'production';
89
+ }
90
+ isTest() {
91
+ return this.variables.NODE_ENV === 'test';
92
+ }
93
+ get(key, defaultValue) {
94
+ const value = this.variables[key];
95
+ return value !== undefined ? value : defaultValue;
96
+ }
97
+ setVariable(key, value) {
98
+ this.variables[key] = value;
99
+ }
100
+ reset(variables = { NODE_ENV: 'test' }) {
101
+ this.variables = variables;
102
+ }
103
+ }
104
+ //# sourceMappingURL=env.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.mock.js","sourceRoot":"","sources":["../../src/mocks/env.mock.ts"],"names":[],"mappings":"AA2BA,MAAM,OAAO,eAAe;IAG1B,YAAY,YAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE;QAChE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,GAAG,CACD,GAAM,EACN,YAA+B;QAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAa,CAAC,CAAC;QAC5C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACpD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,aAAa,CAAC;IACnD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,YAAY,CAAC;IAClD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAOD,WAAW,CAAC,GAAW,EAAE,KAAuB;QAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IAKD,KAAK,CAAC,YAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAKD,MAAM,UAAU,wBAAwB,CACtC,YAAqC,EAAE;IAEvC,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,8BAA8B;QAC1C,SAAS,EAAE,cAAc;QACzB,aAAa,EAAE,0BAA0B;QACzC,iBAAiB,EAAE,WAAW;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,aAAa,EAAE,WAAW;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAKD,MAAM,UAAU,mBAAmB,CACjC,YAAgC,EAAE;IAElC,OAAO;QACL,kBAAkB,EAAE,uBAAuB;QAC3C,iBAAiB,EAAE,uBAAuB;QAC1C,gBAAgB,EAAE,qBAAqB;QACvC,sBAAsB,EAAE,uBAAuB;QAC/C,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,wBAAwB,CAAC,SAAS,CAAC,QAAQ,CAAC;QACtD,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,uBAAuB;QAC5C,eAAe,EAAE,IAAI;QACrB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAYD,MAAM,OAAO,cAAc;IAKzB,YACE,YAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE,EACtD,kBAAsC,EAAE;QANlC,aAAQ,GAAoC,MAAM,CAAC;QAQzD,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,eAAe,CAAC,YAAyB;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAOD,WAAW,CAAC,QAAyC;QACnD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAKD,YAAY,CAAC,MAA0B;QACrC,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;IACpD,CAAC;IAKD,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAWD,MAAM,OAAO,YAAY;IAGvB,YAAY,YAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE;QAChE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,aAAa,CAAC;IACnD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,YAAY,CAAC;IAClD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,YAA+B;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACpD,CAAC;IAOD,WAAW,CAAC,GAAW,EAAE,KAAuB;QAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IAKD,KAAK,CAAC,YAAkC,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export { MockEnvProvider, MockEnvFactory, MockEnvUtils, createMockFirebaseConfig, createMockAppConfig, } from './env.mock.js';
2
+ export { MockAnalyticsClient, MockAnalyticsContextProvider, MockPlatformAnalytics, type RecordedAnalyticsEvent, } from './analytics.mock.js';
3
+ export { MockPlatformNetwork, type RecordedRequest, type MockResponseConfig, } from './network.mock.js';
4
+ export { MockPlatformStorage, MockAdvancedPlatformStorage, MockStorageProvider, MockStorageService, MockSerializedStorageService, MockStorageFactory, } from './storage.mock.js';
5
+ export { MockNavigationService, MockNavigationHook, MockLocationHook, type RecordedNavigation, } from './navigation.mock.js';
6
+ export { MockNotificationService, MockNotificationClient, MockNotificationContextProvider, MockPlatformNotifications, createMockNotificationConfig, type RecordedNotification, type RecordedPlatformNotification, } from './notification.mock.js';
7
+ export { MockPlatformTheme, type RecordedThemeChange } from './theme.mock.js';
8
+ export { MockLogger, MockLoggerProvider, createNoOpLogger, createDebugLogger, type RecordedLogEntry, } from './logging.mock.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,eAAe,EACf,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { MockEnvProvider, MockEnvFactory, MockEnvUtils, createMockFirebaseConfig, createMockAppConfig, } from './env.mock.js';
2
+ export { MockAnalyticsClient, MockAnalyticsContextProvider, MockPlatformAnalytics, } from './analytics.mock.js';
3
+ export { MockPlatformNetwork, } from './network.mock.js';
4
+ export { MockPlatformStorage, MockAdvancedPlatformStorage, MockStorageProvider, MockStorageService, MockSerializedStorageService, MockStorageFactory, } from './storage.mock.js';
5
+ export { MockNavigationService, MockNavigationHook, MockLocationHook, } from './navigation.mock.js';
6
+ export { MockNotificationService, MockNotificationClient, MockNotificationContextProvider, MockPlatformNotifications, createMockNotificationConfig, } from './notification.mock.js';
7
+ export { MockPlatformTheme } from './theme.mock.js';
8
+ export { MockLogger, MockLoggerProvider, createNoOpLogger, createDebugLogger, } from './logging.mock.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mocks/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,eAAe,EACf,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,GAG7B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAA4B,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { LogType, type Logger, type LoggerProvider } from '../logging/logging.interface.js';
2
+ export interface RecordedLogEntry {
3
+ args: unknown[];
4
+ timestamp: number;
5
+ }
6
+ export declare class MockLogger implements Logger {
7
+ readonly type: LogType;
8
+ private entries;
9
+ private enabled;
10
+ constructor(type?: LogType);
11
+ log(...args: any[]): void;
12
+ getLogEntries(): RecordedLogEntry[];
13
+ getLastEntry(): RecordedLogEntry | undefined;
14
+ getEntriesContaining(search: string): RecordedLogEntry[];
15
+ getEntryCount(): number;
16
+ hasLogged(message: string): boolean;
17
+ setEnabled(enabled: boolean): void;
18
+ isEnabled(): boolean;
19
+ clear(): void;
20
+ reset(): void;
21
+ }
22
+ export declare class MockLoggerProvider implements LoggerProvider {
23
+ private logger;
24
+ private logTypeChanges;
25
+ constructor(initialType?: LogType);
26
+ getLogger(): Logger;
27
+ setLogType(type: LogType): void;
28
+ getMockLogger(): MockLogger;
29
+ getLogTypeChanges(): LogType[];
30
+ getCurrentLogType(): LogType;
31
+ reset(): void;
32
+ }
33
+ export declare function createNoOpLogger(): Logger;
34
+ export declare function createDebugLogger(): MockLogger;
35
+ //# sourceMappingURL=logging.mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.mock.d.ts","sourceRoot":"","sources":["../../src/mocks/logging.mock.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,OAAO,EACP,KAAK,MAAM,EACX,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD,qBAAa,UAAW,YAAW,MAAM;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,IAAI,GAAE,OAAyB;IAK3C,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAczB,aAAa,IAAI,gBAAgB,EAAE;IAOnC,YAAY,IAAI,gBAAgB,GAAG,SAAS;IAO5C,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;IASxD,aAAa,IAAI,MAAM;IAOvB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASnC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOlC,SAAS,IAAI,OAAO;IAOpB,KAAK,IAAI,IAAI;IAOb,KAAK,IAAI,IAAI;CAId;AAaD,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,cAAc,CAAiB;gBAE3B,WAAW,GAAE,OAAyB;IAKlD,SAAS,IAAI,MAAM;IAInB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAU/B,aAAa,IAAI,UAAU;IAO3B,iBAAiB,IAAI,OAAO,EAAE;IAO9B,iBAAiB,IAAI,OAAO;IAO5B,KAAK,IAAI,IAAI;CAId;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAMD,wBAAgB,iBAAiB,IAAI,UAAU,CAE9C"}
@@ -0,0 +1,78 @@
1
+ import { LogType, } from '../logging/logging.interface.js';
2
+ export class MockLogger {
3
+ constructor(type = LogType.Console) {
4
+ this.entries = [];
5
+ this.enabled = true;
6
+ this.type = type;
7
+ }
8
+ log(...args) {
9
+ if (!this.enabled || this.type === LogType.None)
10
+ return;
11
+ this.entries.push({
12
+ args: [...args],
13
+ timestamp: Date.now(),
14
+ });
15
+ }
16
+ getLogEntries() {
17
+ return [...this.entries];
18
+ }
19
+ getLastEntry() {
20
+ return this.entries[this.entries.length - 1];
21
+ }
22
+ getEntriesContaining(search) {
23
+ return this.entries.filter((entry) => entry.args.some((arg) => String(arg).includes(search)));
24
+ }
25
+ getEntryCount() {
26
+ return this.entries.length;
27
+ }
28
+ hasLogged(message) {
29
+ return this.entries.some((entry) => entry.args.some((arg) => String(arg).includes(message)));
30
+ }
31
+ setEnabled(enabled) {
32
+ this.enabled = enabled;
33
+ }
34
+ isEnabled() {
35
+ return this.enabled && this.type !== LogType.None;
36
+ }
37
+ clear() {
38
+ this.entries = [];
39
+ }
40
+ reset() {
41
+ this.entries = [];
42
+ this.enabled = true;
43
+ }
44
+ }
45
+ export class MockLoggerProvider {
46
+ constructor(initialType = LogType.Console) {
47
+ this.logTypeChanges = [];
48
+ this.logger = new MockLogger(initialType);
49
+ this.logTypeChanges.push(initialType);
50
+ }
51
+ getLogger() {
52
+ return this.logger;
53
+ }
54
+ setLogType(type) {
55
+ this.logTypeChanges.push(type);
56
+ this.logger = new MockLogger(type);
57
+ }
58
+ getMockLogger() {
59
+ return this.logger;
60
+ }
61
+ getLogTypeChanges() {
62
+ return [...this.logTypeChanges];
63
+ }
64
+ getCurrentLogType() {
65
+ return this.logger.type;
66
+ }
67
+ reset() {
68
+ this.logger = new MockLogger(LogType.Console);
69
+ this.logTypeChanges = [LogType.Console];
70
+ }
71
+ }
72
+ export function createNoOpLogger() {
73
+ return new MockLogger(LogType.None);
74
+ }
75
+ export function createDebugLogger() {
76
+ return new MockLogger(LogType.Console);
77
+ }
78
+ //# sourceMappingURL=logging.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.mock.js","sourceRoot":"","sources":["../../src/mocks/logging.mock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { Optional } from '@sudobility/types';
2
+ import type { NavigationService, NavigationOptions, NavigationState, NavigationHook, LocationHook } from '../navigation/navigation.js';
3
+ export interface RecordedNavigation {
4
+ type: 'navigate' | 'goBack' | 'goForward' | 'replace';
5
+ path?: string | undefined;
6
+ options?: NavigationOptions | undefined;
7
+ timestamp: number;
8
+ }
9
+ export declare class MockNavigationService implements NavigationService {
10
+ private history;
11
+ private historyIndex;
12
+ private params;
13
+ private searchParams;
14
+ private state;
15
+ private listeners;
16
+ private supported;
17
+ private navigationEvents;
18
+ navigate(path: string, options?: Optional<NavigationOptions>): void;
19
+ goBack(fallbackPath?: Optional<string>): void;
20
+ goForward(): void;
21
+ replace(path: string, options?: Optional<NavigationOptions>): void;
22
+ getCurrentState(): NavigationState;
23
+ getCurrentPath(): string;
24
+ getSearchParams(): Record<string, string>;
25
+ getParams(): Record<string, string>;
26
+ canGoBack(): boolean;
27
+ canGoForward(): boolean;
28
+ addListener(listener: (state: NavigationState) => void): () => void;
29
+ isSupported(): boolean;
30
+ private notifyListeners;
31
+ setParams(params: Record<string, string>): void;
32
+ setSearchParams(searchParams: Record<string, string>): void;
33
+ setState(state: unknown): void;
34
+ getState(): unknown;
35
+ setSupported(supported: boolean): void;
36
+ getNavigationHistory(): RecordedNavigation[];
37
+ getUrlHistory(): string[];
38
+ getHistoryIndex(): number;
39
+ getListenerCount(): number;
40
+ reset(): void;
41
+ }
42
+ export declare class MockNavigationHook implements NavigationHook {
43
+ currentPath: string;
44
+ searchParams: Record<string, string>;
45
+ params: Record<string, string>;
46
+ canGoBack: boolean;
47
+ isSupported: boolean;
48
+ private navigationHistory;
49
+ navigate: (path: string, options?: Optional<NavigationOptions>) => void;
50
+ goBack: (fallbackPath?: Optional<string>) => void;
51
+ replace: (path: string, options?: Optional<NavigationOptions>) => void;
52
+ setCurrentPath(path: string): void;
53
+ setSearchParams(params: Record<string, string>): void;
54
+ setParams(params: Record<string, string>): void;
55
+ setCanGoBack(canGoBack: boolean): void;
56
+ setIsSupported(supported: boolean): void;
57
+ getNavigationHistory(): RecordedNavigation[];
58
+ reset(): void;
59
+ }
60
+ export declare class MockLocationHook implements LocationHook {
61
+ pathname: string;
62
+ search: string;
63
+ searchParams: Record<string, string>;
64
+ hash: string;
65
+ state: unknown;
66
+ key: string;
67
+ constructor(url?: string);
68
+ setFromUrl(url: string): void;
69
+ setPathname(pathname: string): void;
70
+ setSearch(search: string): void;
71
+ setSearchParams(params: Record<string, string>): void;
72
+ setHash(hash: string): void;
73
+ setState(state: unknown): void;
74
+ setKey(key: string): void;
75
+ reset(): void;
76
+ }
77
+ //# sourceMappingURL=navigation.mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.mock.d.ts","sourceRoot":"","sources":["../../src/mocks/navigation.mock.ts"],"names":[],"mappings":"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"}