joopjs 2.0.6 → 2.1.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.
- package/.claude/skills/observables.md +28 -0
- package/.claude/skills/setup.md +14 -3
- package/.cursor/rules/joopjs.mdc +4 -5
- package/.github/copilot-instructions.md +3 -1
- package/.windsurf/rules/joopjs.md +4 -0
- package/CHANGELOG.md +31 -2
- package/README.md +19 -7
- package/ai-rules/AGENTS.md +21 -0
- package/ai-rules/GEMINI.md +17 -3
- package/dist/ai/index.js +15 -3
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/index.mjs +15 -3
- package/dist/ai/index.mjs.map +1 -1
- package/dist/analytics/index.js +10 -2
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +10 -2
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/angular/index.d.mts +98 -27
- package/dist/angular/index.d.ts +98 -27
- package/dist/angular/index.js +44 -0
- package/dist/angular/index.js.map +1 -1
- package/dist/angular/index.mjs +39 -1
- package/dist/angular/index.mjs.map +1 -1
- package/dist/api/index.js +15 -3
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +15 -3
- package/dist/api/index.mjs.map +1 -1
- package/dist/auth/index.js +15 -3
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/index.mjs +15 -3
- package/dist/auth/index.mjs.map +1 -1
- package/dist/banking/index.js +15 -3
- package/dist/banking/index.js.map +1 -1
- package/dist/banking/index.mjs +15 -3
- package/dist/banking/index.mjs.map +1 -1
- package/dist/cache/index.js +15 -3
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/index.mjs +15 -3
- package/dist/cache/index.mjs.map +1 -1
- package/dist/{index-DFqEoX_l.d.ts → consent.service-CIHNtx9h.d.ts} +1 -2
- package/dist/{index-B_ksKpS1.d.mts → consent.service-DQ-JAEJx.d.mts} +1 -2
- package/dist/core/index.d.mts +34 -1
- package/dist/core/index.d.ts +34 -1
- package/dist/core/index.js +56 -5
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +54 -6
- package/dist/core/index.mjs.map +1 -1
- package/dist/deeplink/index.js +15 -3
- package/dist/deeplink/index.js.map +1 -1
- package/dist/deeplink/index.mjs +15 -3
- package/dist/deeplink/index.mjs.map +1 -1
- package/dist/device/index.js +15 -3
- package/dist/device/index.js.map +1 -1
- package/dist/device/index.mjs +15 -3
- package/dist/device/index.mjs.map +1 -1
- package/dist/forms/index.js +15 -3
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/index.mjs +15 -3
- package/dist/forms/index.mjs.map +1 -1
- package/dist/i18n/index.js +15 -3
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/index.mjs +15 -3
- package/dist/i18n/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +50 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -8
- package/dist/index.mjs.map +1 -1
- package/dist/{joop-CA3DMeOO.d.ts → joop-Dim2yEKG.d.ts} +1 -1
- package/dist/{joop-Bx7Iwj5p.d.mts → joop-GkQw13f9.d.mts} +1 -1
- package/dist/native-bridge/index.js +10 -2
- package/dist/native-bridge/index.js.map +1 -1
- package/dist/native-bridge/index.mjs +10 -2
- package/dist/native-bridge/index.mjs.map +1 -1
- package/dist/network/index.js +15 -3
- package/dist/network/index.js.map +1 -1
- package/dist/network/index.mjs +15 -3
- package/dist/network/index.mjs.map +1 -1
- package/dist/observability/index.js +15 -3
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/index.mjs +15 -3
- package/dist/observability/index.mjs.map +1 -1
- package/dist/pwa/index.js +15 -3
- package/dist/pwa/index.js.map +1 -1
- package/dist/pwa/index.mjs +15 -3
- package/dist/pwa/index.mjs.map +1 -1
- package/dist/react/index.d.mts +2 -2
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +15 -3
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +15 -3
- package/dist/react/index.mjs.map +1 -1
- package/dist/router/index.js +15 -3
- package/dist/router/index.js.map +1 -1
- package/dist/router/index.mjs +15 -3
- package/dist/router/index.mjs.map +1 -1
- package/dist/security/index.js +15 -3
- package/dist/security/index.js.map +1 -1
- package/dist/security/index.mjs +15 -3
- package/dist/security/index.mjs.map +1 -1
- package/dist/session/index.js +15 -3
- package/dist/session/index.js.map +1 -1
- package/dist/session/index.mjs +15 -3
- package/dist/session/index.mjs.map +1 -1
- package/dist/state/index.js +15 -3
- package/dist/state/index.js.map +1 -1
- package/dist/state/index.mjs +15 -3
- package/dist/state/index.mjs.map +1 -1
- package/dist/storage/index.js +15 -3
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/index.mjs +15 -3
- package/dist/storage/index.mjs.map +1 -1
- package/dist/sync/index.js +15 -3
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/index.mjs +15 -3
- package/dist/sync/index.mjs.map +1 -1
- package/dist/theme/index.js +15 -3
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +15 -3
- package/dist/theme/index.mjs.map +1 -1
- package/dist/ui/index.js +15 -3
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +15 -3
- package/dist/ui/index.mjs.map +1 -1
- package/dist/utilities/index.js +46 -4
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/index.mjs +46 -4
- package/dist/utilities/index.mjs.map +1 -1
- package/dist/vue/index.d.mts +2 -2
- package/dist/vue/index.d.ts +2 -2
- package/dist/vue/index.js +15 -3
- package/dist/vue/index.js.map +1 -1
- package/dist/vue/index.mjs +15 -3
- package/dist/vue/index.mjs.map +1 -1
- package/dist/workflow/index.js +15 -3
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/index.mjs +15 -3
- package/dist/workflow/index.mjs.map +1 -1
- package/package.json +16 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { J as JoopInstance, c as createJoop } from './joop-
|
|
1
|
+
export { J as JoopInstance, c as createJoop } from './joop-GkQw13f9.mjs';
|
|
2
2
|
export { JoopCapabilities, JoopPlatform, JoopPlatformConfig, JoopPlatformType } from './platform/index.mjs';
|
|
3
3
|
export { J as JoopAppState, f as JoopBiometricAdapter, k as JoopCompressionAdapter, l as JoopCompressionFormat, m as JoopCryptoAdapter, c as JoopEffectiveType, e as JoopKeyVaultAdapter, i as JoopLifecycleAdapter, j as JoopNetworkAdapter, a as JoopNetworkState, b as JoopNetworkType, n as JoopPlatformAdapterConfig, g as JoopPushAdapter, h as JoopPushPayload, d as JoopStorageAdapter, o as JoopWorkerAdapter } from './adapters-B6slG6hQ.mjs';
|
|
4
4
|
import { J as JoopObservable, a as JoopBehaviorSubject, b as JoopSubject } from './index-Dz0gOur2.mjs';
|
|
@@ -6,7 +6,7 @@ export { L as Listener, U as Unsubscribe } from './index-Dz0gOur2.mjs';
|
|
|
6
6
|
export { a as JoopApp, J as JoopConfig, f as JoopLanguage, d as JoopLocalization, e as JoopLoggerConfig, g as JoopLoggerTypeConfig, h as JoopOpenBankingConfig, i as JoopPaymentGatewayConfig, c as JoopSession, b as JoopTimeout } from './config.models-Cqg04fAQ.mjs';
|
|
7
7
|
export { b as JoopAesService, J as JoopGcmService, d as JoopHttpOptions, c as JoopRequestOptions, a as JoopRsaService } from './aes.service-CkoupAww.mjs';
|
|
8
8
|
export { b as JoopCircuitBreaker, k as JoopCircuitBreakerConfig, l as JoopCircuitBreakerOpenError, m as JoopCircuitBreakerRegistry, n as JoopCircuitBreakerState, o as JoopCircuitBreakerStats, p as JoopCircuitState, q as JoopCsvOptions, r as JoopDownloadOptions, s as JoopEncryptionError, t as JoopError, u as JoopErrorButton, v as JoopErrorInterceptor, w as JoopErrorType, h as JoopExportService, x as JoopFetchOptions, f as JoopFileSaverService, J as JoopHttpClient, y as JoopHttpError, z as JoopIdempotencyConfig, j as JoopIdempotencyService, a as JoopInterceptorPipeline, A as JoopLoadingState, B as JoopMappedComponent, C as JoopMappedResponse, c as JoopOfflineQueue, D as JoopPollConfig, d as JoopPollingService, E as JoopRawResponse, F as JoopRawResponse6, G as JoopRequest, H as JoopRequestInterceptor, e as JoopRequestService, I as JoopResponse, K as JoopResponseInterceptor, g as JoopResponseMapper, L as JoopWebhookOptions, M as JoopWebhookProvider, i as JoopWebhookVerifier, N as isHttpError } from './idempotency.service-_6LqhivP.mjs';
|
|
9
|
-
export {
|
|
9
|
+
export { J as JoopConsentCategory, a as JoopConsentService, b as JoopConsentState, c as JoopEnvironmentName, d as JoopEnvironmentProfile, e as JoopEnvironmentService, f as JoopFeatureFlagService, g as JoopFlagContext, h as JoopFlagDefinition, i as JoopHealthCheck, j as JoopHealthCheckResult, k as JoopHealthService, s as JoopLogEntry, l as JoopLogger, t as JoopLoggerOptions, m as JoopPlugin, n as JoopPluginService, o as JoopRateLimiter, p as JoopTokenBucket, q as JoopTokenBucketConfig, r as logger } from './consent.service-DQ-JAEJx.mjs';
|
|
10
10
|
export { a as JoopHttpMethod, b as JoopLogLevel, J as JoopScopeType } from './index-CqDKWTUP.mjs';
|
|
11
11
|
export { J as JoopConfigService, c as configService } from './config.service-Cz4QQLlf.mjs';
|
|
12
12
|
export { J as JoopDataStorage, a as JoopScopeMapService } from './data-storage.service-LvhGRCmw.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { J as JoopInstance, c as createJoop } from './joop-
|
|
1
|
+
export { J as JoopInstance, c as createJoop } from './joop-Dim2yEKG.js';
|
|
2
2
|
export { JoopCapabilities, JoopPlatform, JoopPlatformConfig, JoopPlatformType } from './platform/index.js';
|
|
3
3
|
export { J as JoopAppState, f as JoopBiometricAdapter, k as JoopCompressionAdapter, l as JoopCompressionFormat, m as JoopCryptoAdapter, c as JoopEffectiveType, e as JoopKeyVaultAdapter, i as JoopLifecycleAdapter, j as JoopNetworkAdapter, a as JoopNetworkState, b as JoopNetworkType, n as JoopPlatformAdapterConfig, g as JoopPushAdapter, h as JoopPushPayload, d as JoopStorageAdapter, o as JoopWorkerAdapter } from './adapters-B6slG6hQ.js';
|
|
4
4
|
import { J as JoopObservable, a as JoopBehaviorSubject, b as JoopSubject } from './index-Dz0gOur2.js';
|
|
@@ -6,7 +6,7 @@ export { L as Listener, U as Unsubscribe } from './index-Dz0gOur2.js';
|
|
|
6
6
|
export { a as JoopApp, J as JoopConfig, f as JoopLanguage, d as JoopLocalization, e as JoopLoggerConfig, g as JoopLoggerTypeConfig, h as JoopOpenBankingConfig, i as JoopPaymentGatewayConfig, c as JoopSession, b as JoopTimeout } from './config.models-Cqg04fAQ.js';
|
|
7
7
|
export { b as JoopAesService, J as JoopGcmService, d as JoopHttpOptions, c as JoopRequestOptions, a as JoopRsaService } from './aes.service-CkoupAww.js';
|
|
8
8
|
export { b as JoopCircuitBreaker, k as JoopCircuitBreakerConfig, l as JoopCircuitBreakerOpenError, m as JoopCircuitBreakerRegistry, n as JoopCircuitBreakerState, o as JoopCircuitBreakerStats, p as JoopCircuitState, q as JoopCsvOptions, r as JoopDownloadOptions, s as JoopEncryptionError, t as JoopError, u as JoopErrorButton, v as JoopErrorInterceptor, w as JoopErrorType, h as JoopExportService, x as JoopFetchOptions, f as JoopFileSaverService, J as JoopHttpClient, y as JoopHttpError, z as JoopIdempotencyConfig, j as JoopIdempotencyService, a as JoopInterceptorPipeline, A as JoopLoadingState, B as JoopMappedComponent, C as JoopMappedResponse, c as JoopOfflineQueue, D as JoopPollConfig, d as JoopPollingService, E as JoopRawResponse, F as JoopRawResponse6, G as JoopRequest, H as JoopRequestInterceptor, e as JoopRequestService, I as JoopResponse, K as JoopResponseInterceptor, g as JoopResponseMapper, L as JoopWebhookOptions, M as JoopWebhookProvider, i as JoopWebhookVerifier, N as isHttpError } from './idempotency.service-eOKoISRD.js';
|
|
9
|
-
export {
|
|
9
|
+
export { J as JoopConsentCategory, a as JoopConsentService, b as JoopConsentState, c as JoopEnvironmentName, d as JoopEnvironmentProfile, e as JoopEnvironmentService, f as JoopFeatureFlagService, g as JoopFlagContext, h as JoopFlagDefinition, i as JoopHealthCheck, j as JoopHealthCheckResult, k as JoopHealthService, s as JoopLogEntry, l as JoopLogger, t as JoopLoggerOptions, m as JoopPlugin, n as JoopPluginService, o as JoopRateLimiter, p as JoopTokenBucket, q as JoopTokenBucketConfig, r as logger } from './consent.service-CIHNtx9h.js';
|
|
10
10
|
export { a as JoopHttpMethod, b as JoopLogLevel, J as JoopScopeType } from './index-CqDKWTUP.js';
|
|
11
11
|
export { J as JoopConfigService, c as configService } from './config.service-CrCvI-JS.js';
|
|
12
12
|
export { J as JoopDataStorage, a as JoopScopeMapService } from './data-storage.service-DT6xaTxE.js';
|
package/dist/index.js
CHANGED
|
@@ -55,6 +55,36 @@ function flattenObject(obj, prefix = "") {
|
|
|
55
55
|
return result;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
// src/core/global-singleton.ts
|
|
59
|
+
var MAJOR = "2";
|
|
60
|
+
var REGISTRY_KEY = /* @__PURE__ */ Symbol.for(`joopjs.singletons.v${MAJOR}`);
|
|
61
|
+
function getRegistry() {
|
|
62
|
+
const g = globalThis;
|
|
63
|
+
let reg = g[REGISTRY_KEY];
|
|
64
|
+
if (!reg) {
|
|
65
|
+
reg = { major: MAJOR, instances: /* @__PURE__ */ new Map(), copies: 0, warned: false, warningsSilenced: false };
|
|
66
|
+
g[REGISTRY_KEY] = reg;
|
|
67
|
+
}
|
|
68
|
+
return reg;
|
|
69
|
+
}
|
|
70
|
+
(() => {
|
|
71
|
+
const reg = getRegistry();
|
|
72
|
+
reg.copies += 1;
|
|
73
|
+
if (reg.copies > 1 && !reg.warned && !reg.warningsSilenced) {
|
|
74
|
+
reg.warned = true;
|
|
75
|
+
console.warn(
|
|
76
|
+
`[joopjs] ${reg.copies} copies of joopjs detected in one runtime. Singletons (logger, config, event bus, \u2026) are being de-duplicated via globalThis so state stays shared, but you are shipping duplicate bytes. Share joopjs as a federation singleton: shared: { joopjs: { singleton: true, requiredVersion: '^2.0.0' } }. Call silenceDuplicateCopyWarning() to suppress this.`
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
})();
|
|
80
|
+
function globalSingleton(key, factory) {
|
|
81
|
+
const reg = getRegistry();
|
|
82
|
+
if (!reg.instances.has(key)) {
|
|
83
|
+
reg.instances.set(key, factory());
|
|
84
|
+
}
|
|
85
|
+
return reg.instances.get(key);
|
|
86
|
+
}
|
|
87
|
+
|
|
58
88
|
// src/core/config/config.service.ts
|
|
59
89
|
var JoopConfigService = class {
|
|
60
90
|
_config = null;
|
|
@@ -124,9 +154,12 @@ var JoopConfigService = class {
|
|
|
124
154
|
return this._config;
|
|
125
155
|
}
|
|
126
156
|
};
|
|
127
|
-
var configService = new JoopConfigService();
|
|
157
|
+
var configService = globalSingleton("config", () => new JoopConfigService());
|
|
128
158
|
|
|
129
159
|
// src/events/index.ts
|
|
160
|
+
var _onListenerError = (error) => {
|
|
161
|
+
console.error("[joopjs] a subject subscriber threw during emission:", error);
|
|
162
|
+
};
|
|
130
163
|
var JoopSubject = class {
|
|
131
164
|
_listeners = [];
|
|
132
165
|
subscribe(listener) {
|
|
@@ -136,8 +169,13 @@ var JoopSubject = class {
|
|
|
136
169
|
};
|
|
137
170
|
}
|
|
138
171
|
next(value) {
|
|
139
|
-
|
|
140
|
-
|
|
172
|
+
const listeners = this._listeners.slice();
|
|
173
|
+
for (const listener of listeners) {
|
|
174
|
+
try {
|
|
175
|
+
listener(value);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
_onListenerError(error);
|
|
178
|
+
}
|
|
141
179
|
}
|
|
142
180
|
}
|
|
143
181
|
asObservable() {
|
|
@@ -158,7 +196,11 @@ var JoopBehaviorSubject = class extends JoopSubject {
|
|
|
158
196
|
super.next(value);
|
|
159
197
|
}
|
|
160
198
|
subscribe(listener) {
|
|
161
|
-
|
|
199
|
+
try {
|
|
200
|
+
listener(this._value);
|
|
201
|
+
} catch (error) {
|
|
202
|
+
_onListenerError(error);
|
|
203
|
+
}
|
|
162
204
|
return super.subscribe(listener);
|
|
163
205
|
}
|
|
164
206
|
asObservable() {
|
|
@@ -245,7 +287,7 @@ var JoopLogger = class {
|
|
|
245
287
|
}
|
|
246
288
|
}
|
|
247
289
|
};
|
|
248
|
-
var logger = new JoopLogger();
|
|
290
|
+
var logger = globalSingleton("logger", () => new JoopLogger());
|
|
249
291
|
|
|
250
292
|
// src/core/plugin.service.ts
|
|
251
293
|
var JoopPluginService = class {
|
|
@@ -880,7 +922,7 @@ var JoopClientProfile = class {
|
|
|
880
922
|
this.extra = {};
|
|
881
923
|
}
|
|
882
924
|
};
|
|
883
|
-
var clientProfile = new JoopClientProfile();
|
|
925
|
+
var clientProfile = globalSingleton("clientProfile", () => new JoopClientProfile());
|
|
884
926
|
|
|
885
927
|
// src/api/http/http-client.ts
|
|
886
928
|
var JoopHttpClient = class {
|
|
@@ -4064,7 +4106,7 @@ var JoopClipboardService = class {
|
|
|
4064
4106
|
}
|
|
4065
4107
|
}
|
|
4066
4108
|
};
|
|
4067
|
-
var clipboard = new JoopClipboardService();
|
|
4109
|
+
var clipboard = globalSingleton("clipboard", () => new JoopClipboardService());
|
|
4068
4110
|
|
|
4069
4111
|
// src/utilities/image.utility.ts
|
|
4070
4112
|
var JoopImageService = class {
|
|
@@ -18471,7 +18513,7 @@ var JoopEventBus = class {
|
|
|
18471
18513
|
}
|
|
18472
18514
|
}
|
|
18473
18515
|
};
|
|
18474
|
-
var joopEventBus = new JoopEventBus();
|
|
18516
|
+
var joopEventBus = globalSingleton("eventBus", () => new JoopEventBus());
|
|
18475
18517
|
|
|
18476
18518
|
// src/kyc/kyc-state-machine.ts
|
|
18477
18519
|
var TRANSITIONS = {
|