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/utilities/index.mjs
CHANGED
|
@@ -146,6 +146,9 @@ function getRandomNum(min, max) {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// src/events/index.ts
|
|
149
|
+
var _onListenerError = (error) => {
|
|
150
|
+
console.error("[joopjs] a subject subscriber threw during emission:", error);
|
|
151
|
+
};
|
|
149
152
|
var JoopSubject = class {
|
|
150
153
|
_listeners = [];
|
|
151
154
|
subscribe(listener) {
|
|
@@ -155,8 +158,13 @@ var JoopSubject = class {
|
|
|
155
158
|
};
|
|
156
159
|
}
|
|
157
160
|
next(value) {
|
|
158
|
-
|
|
159
|
-
|
|
161
|
+
const listeners = this._listeners.slice();
|
|
162
|
+
for (const listener of listeners) {
|
|
163
|
+
try {
|
|
164
|
+
listener(value);
|
|
165
|
+
} catch (error) {
|
|
166
|
+
_onListenerError(error);
|
|
167
|
+
}
|
|
160
168
|
}
|
|
161
169
|
}
|
|
162
170
|
asObservable() {
|
|
@@ -177,7 +185,11 @@ var JoopBehaviorSubject = class extends JoopSubject {
|
|
|
177
185
|
super.next(value);
|
|
178
186
|
}
|
|
179
187
|
subscribe(listener) {
|
|
180
|
-
|
|
188
|
+
try {
|
|
189
|
+
listener(this._value);
|
|
190
|
+
} catch (error) {
|
|
191
|
+
_onListenerError(error);
|
|
192
|
+
}
|
|
181
193
|
return super.subscribe(listener);
|
|
182
194
|
}
|
|
183
195
|
asObservable() {
|
|
@@ -203,6 +215,36 @@ var JoopObservable = class {
|
|
|
203
215
|
}
|
|
204
216
|
};
|
|
205
217
|
|
|
218
|
+
// src/core/global-singleton.ts
|
|
219
|
+
var MAJOR = "2";
|
|
220
|
+
var REGISTRY_KEY = /* @__PURE__ */ Symbol.for(`joopjs.singletons.v${MAJOR}`);
|
|
221
|
+
function getRegistry() {
|
|
222
|
+
const g = globalThis;
|
|
223
|
+
let reg = g[REGISTRY_KEY];
|
|
224
|
+
if (!reg) {
|
|
225
|
+
reg = { major: MAJOR, instances: /* @__PURE__ */ new Map(), copies: 0, warned: false, warningsSilenced: false };
|
|
226
|
+
g[REGISTRY_KEY] = reg;
|
|
227
|
+
}
|
|
228
|
+
return reg;
|
|
229
|
+
}
|
|
230
|
+
(() => {
|
|
231
|
+
const reg = getRegistry();
|
|
232
|
+
reg.copies += 1;
|
|
233
|
+
if (reg.copies > 1 && !reg.warned && !reg.warningsSilenced) {
|
|
234
|
+
reg.warned = true;
|
|
235
|
+
console.warn(
|
|
236
|
+
`[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.`
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
})();
|
|
240
|
+
function globalSingleton(key, factory) {
|
|
241
|
+
const reg = getRegistry();
|
|
242
|
+
if (!reg.instances.has(key)) {
|
|
243
|
+
reg.instances.set(key, factory());
|
|
244
|
+
}
|
|
245
|
+
return reg.instances.get(key);
|
|
246
|
+
}
|
|
247
|
+
|
|
206
248
|
// src/utilities/clipboard.utility.ts
|
|
207
249
|
var JoopClipboardService = class {
|
|
208
250
|
_events$ = new JoopSubject();
|
|
@@ -258,7 +300,7 @@ var JoopClipboardService = class {
|
|
|
258
300
|
}
|
|
259
301
|
}
|
|
260
302
|
};
|
|
261
|
-
var clipboard = new JoopClipboardService();
|
|
303
|
+
var clipboard = globalSingleton("clipboard", () => new JoopClipboardService());
|
|
262
304
|
|
|
263
305
|
// src/utilities/image.utility.ts
|
|
264
306
|
var JoopImageService = class {
|