jazz-tools 0.18.3 → 0.18.4
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/.turbo/turbo-build.log +35 -35
- package/CHANGELOG.md +10 -0
- package/dist/{chunk-IERUTUXB.js → chunk-LHQQZH7I.js} +121 -36
- package/dist/chunk-LHQQZH7I.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/react-core/index.js +120 -35
- package/dist/react-core/index.js.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/tools/coValues/account.d.ts.map +1 -1
- package/dist/tools/coValues/coFeed.d.ts +12 -0
- package/dist/tools/coValues/coFeed.d.ts.map +1 -1
- package/dist/tools/coValues/coMap.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +19 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts +61 -11
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts.map +1 -1
- package/dist/tools/subscribe/CoValueCoreSubscription.test.d.ts +2 -0
- package/dist/tools/subscribe/CoValueCoreSubscription.test.d.ts.map +1 -0
- package/dist/tools/testing.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/tools/coValues/account.ts +3 -1
- package/src/tools/coValues/coFeed.ts +5 -0
- package/src/tools/coValues/coMap.ts +3 -1
- package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +19 -0
- package/src/tools/subscribe/CoValueCoreSubscription.test.ts +1000 -0
- package/src/tools/subscribe/CoValueCoreSubscription.ts +179 -43
- package/src/tools/tests/account.test.ts +12 -0
- package/src/tools/tests/coFeed.test.ts +25 -0
- package/src/tools/tests/coList.test.ts +20 -0
- package/src/tools/tests/coMap.record.test.ts +1 -0
- package/src/tools/tests/coMap.test.ts +12 -2
- package/dist/chunk-IERUTUXB.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
> jazz-tools@0.18.
|
2
|
+
> jazz-tools@0.18.4 build /home/runner/_work/jazz/jazz/packages/jazz-tools
|
3
3
|
> tsup && pnpm types && pnpm build:svelte
|
4
4
|
|
5
5
|
[34mCLI[39m Building entry: {"index":"src/index.ts","testing":"src/testing.ts"}
|
@@ -107,22 +107,15 @@
|
|
107
107
|
[34mESM[39m Build start
|
108
108
|
[34mCLI[39m Cleaning output folder
|
109
109
|
[34mESM[39m Build start
|
110
|
-
[32mESM[39m [1mdist/worker/index.js [22m[32m2.33 KB[39m
|
111
|
-
[32mESM[39m [1mdist/worker/index.js.map [22m[32m4.79 KB[39m
|
112
|
-
[32mESM[39m ⚡️ Build success in 17ms
|
113
110
|
[32mESM[39m [1mdist/tiptap/index.js [22m[32m564.00 B[39m
|
114
111
|
[32mESM[39m [1mdist/tiptap/index.js.map [22m[32m1.21 KB[39m
|
115
|
-
[32mESM[39m ⚡️ Build success in
|
112
|
+
[32mESM[39m ⚡️ Build success in 23ms
|
116
113
|
[32mESM[39m [1mdist/react/ssr.js [22m[32m688.00 B[39m
|
117
114
|
[32mESM[39m [1mdist/react/ssr.js.map [22m[32m1.12 KB[39m
|
118
|
-
[32mESM[39m ⚡️ Build success in
|
119
|
-
[32mESM[39m [1mdist/
|
120
|
-
[32mESM[39m [1mdist/
|
121
|
-
[32mESM[39m
|
122
|
-
[32mESM[39m [1mdist/better-auth/auth/client.js.map [22m[32m8.12 KB[39m
|
123
|
-
[32mESM[39m [1mdist/better-auth/auth/server.js.map [22m[32m10.66 KB[39m
|
124
|
-
[32mESM[39m [1mdist/better-auth/auth/react.js.map [22m[32m3.37 KB[39m
|
125
|
-
[32mESM[39m ⚡️ Build success in 19ms
|
115
|
+
[32mESM[39m ⚡️ Build success in 26ms
|
116
|
+
[32mESM[39m [1mdist/worker/index.js [22m[32m2.33 KB[39m
|
117
|
+
[32mESM[39m [1mdist/worker/index.js.map [22m[32m4.79 KB[39m
|
118
|
+
[32mESM[39m ⚡️ Build success in 24ms
|
126
119
|
[32mESM[39m [1mdist/media/index.js [22m[32m236.00 B[39m
|
127
120
|
[32mESM[39m [1mdist/media/index.browser.js [22m[32m2.79 KB[39m
|
128
121
|
[32mESM[39m [1mdist/media/index.native.js [22m[32m2.90 KB[39m
|
@@ -133,67 +126,74 @@
|
|
133
126
|
[32mESM[39m [1mdist/media/index.native.js.map [22m[32m6.09 KB[39m
|
134
127
|
[32mESM[39m [1mdist/media/index.server.js.map [22m[32m6.37 KB[39m
|
135
128
|
[32mESM[39m [1mdist/media/chunk-W3S526L3.js.map [22m[32m16.57 KB[39m
|
136
|
-
[32mESM[39m ⚡️ Build success in
|
129
|
+
[32mESM[39m ⚡️ Build success in 30ms
|
130
|
+
[32mESM[39m [1mdist/better-auth/auth/react.js [22m[32m1.19 KB[39m
|
131
|
+
[32mESM[39m [1mdist/better-auth/auth/server.js [22m[32m5.94 KB[39m
|
132
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js [22m[32m4.36 KB[39m
|
133
|
+
[32mESM[39m [1mdist/better-auth/auth/react.js.map [22m[32m3.37 KB[39m
|
134
|
+
[32mESM[39m [1mdist/better-auth/auth/server.js.map [22m[32m10.66 KB[39m
|
135
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js.map [22m[32m8.12 KB[39m
|
136
|
+
[32mESM[39m ⚡️ Build success in 24ms
|
137
137
|
[32mESM[39m [1mdist/react-native/index.js [22m[32m2.53 KB[39m
|
138
138
|
[32mESM[39m [1mdist/react-native/testing.js [22m[32m120.00 B[39m
|
139
139
|
[32mESM[39m [1mdist/react-native/crypto.js [22m[32m161.00 B[39m
|
140
140
|
[32mESM[39m [1mdist/react-native/index.js.map [22m[32m5.68 KB[39m
|
141
141
|
[32mESM[39m [1mdist/react-native/testing.js.map [22m[32m176.00 B[39m
|
142
142
|
[32mESM[39m [1mdist/react-native/crypto.js.map [22m[32m197.00 B[39m
|
143
|
-
[32mESM[39m ⚡️ Build success in
|
143
|
+
[32mESM[39m ⚡️ Build success in 35ms
|
144
144
|
[32mESM[39m [1mdist/browser/index.js [22m[32m13.44 KB[39m
|
145
145
|
[32mESM[39m [1mdist/browser/index.js.map [22m[32m28.70 KB[39m
|
146
|
-
[32mESM[39m ⚡️ Build success in
|
146
|
+
[32mESM[39m ⚡️ Build success in 39ms
|
147
147
|
[32mESM[39m [1mdist/expo/index.js [22m[32m4.68 KB[39m
|
148
148
|
[32mESM[39m [1mdist/expo/testing.js [22m[32m112.00 B[39m
|
149
149
|
[32mESM[39m [1mdist/expo/crypto.js [22m[32m153.00 B[39m
|
150
150
|
[32mESM[39m [1mdist/expo/index.js.map [22m[32m10.23 KB[39m
|
151
151
|
[32mESM[39m [1mdist/expo/testing.js.map [22m[32m168.00 B[39m
|
152
152
|
[32mESM[39m [1mdist/expo/crypto.js.map [22m[32m189.00 B[39m
|
153
|
-
[32mESM[39m ⚡️ Build success in
|
154
|
-
[32mESM[39m [1mdist/react-native-core/index.js [22m[32m17.90 KB[39m
|
153
|
+
[32mESM[39m ⚡️ Build success in 38ms
|
155
154
|
[32mESM[39m [1mdist/react-native-core/testing.js [22m[32m119.00 B[39m
|
155
|
+
[32mESM[39m [1mdist/react-native-core/index.js [22m[32m17.90 KB[39m
|
156
156
|
[32mESM[39m [1mdist/react-native-core/crypto.js [22m[32m2.10 KB[39m
|
157
|
+
[32mESM[39m [1mdist/react-native-core/testing.js.map [22m[32m175.00 B[39m
|
157
158
|
[32mESM[39m [1mdist/react-native-core/index.js.map [22m[32m36.66 KB[39m
|
158
159
|
[32mESM[39m [1mdist/react-native-core/crypto.js.map [22m[32m4.25 KB[39m
|
159
|
-
[32mESM[39m
|
160
|
-
[32mESM[39m ⚡️ Build success in 37ms
|
161
|
-
[32mESM[39m [1mdist/react/testing.js [22m[32m122.00 B[39m
|
160
|
+
[32mESM[39m ⚡️ Build success in 45ms
|
162
161
|
[32mESM[39m [1mdist/react/index.js [22m[32m24.66 KB[39m
|
162
|
+
[32mESM[39m [1mdist/react/testing.js [22m[32m122.00 B[39m
|
163
163
|
[32mESM[39m [1mdist/react/testing.js.map [22m[32m165.00 B[39m
|
164
164
|
[32mESM[39m [1mdist/react/index.js.map [22m[32m53.43 KB[39m
|
165
|
-
[32mESM[39m ⚡️ Build success in
|
165
|
+
[32mESM[39m ⚡️ Build success in 48ms
|
166
166
|
[32mESM[39m [1mdist/prosemirror/index.js [22m[32m77.63 KB[39m
|
167
167
|
[32mESM[39m [1mdist/prosemirror/index.js.map [22m[32m306.98 KB[39m
|
168
|
-
[32mESM[39m ⚡️ Build success in
|
168
|
+
[32mESM[39m ⚡️ Build success in 50ms
|
169
169
|
[32mESM[39m [1mdist/inspector/index.js [22m[32m61.52 KB[39m
|
170
170
|
[32mESM[39m [1mdist/inspector/index.js.map [22m[32m109.98 KB[39m
|
171
|
-
[32mESM[39m ⚡️ Build success in
|
171
|
+
[32mESM[39m ⚡️ Build success in 70ms
|
172
172
|
[32mESM[39m [1mdist/testing.js [22m[32m7.17 KB[39m
|
173
173
|
[32mESM[39m [1mdist/index.js [22m[32m26.13 KB[39m
|
174
|
-
[32mESM[39m [1mdist/chunk-
|
174
|
+
[32mESM[39m [1mdist/chunk-LHQQZH7I.js [22m[32m166.47 KB[39m
|
175
175
|
[32mESM[39m [1mdist/testing.js.map [22m[32m14.10 KB[39m
|
176
176
|
[32mESM[39m [1mdist/index.js.map [22m[32m52.92 KB[39m
|
177
|
-
[32mESM[39m [1mdist/chunk-
|
178
|
-
[32mESM[39m ⚡️ Build success in
|
179
|
-
[32mESM[39m [1mdist/react-core/index.js [22m[32m141.07 KB[39m
|
180
|
-
[32mESM[39m [1mdist/react-core/testing.js [22m[32m1.17 KB[39m
|
177
|
+
[32mESM[39m [1mdist/chunk-LHQQZH7I.js.map [22m[32m395.85 KB[39m
|
178
|
+
[32mESM[39m ⚡️ Build success in 90ms
|
181
179
|
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js [22m[32m279.00 B[39m
|
182
|
-
[32mESM[39m [1mdist/react-core/testing.js
|
180
|
+
[32mESM[39m [1mdist/react-core/testing.js [22m[32m1.17 KB[39m
|
181
|
+
[32mESM[39m [1mdist/react-core/index.js [22m[32m143.63 KB[39m
|
183
182
|
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js.map [22m[32m533.00 B[39m
|
184
|
-
[32mESM[39m [1mdist/react-core/
|
185
|
-
[32mESM[39m
|
183
|
+
[32mESM[39m [1mdist/react-core/testing.js.map [22m[32m1.82 KB[39m
|
184
|
+
[32mESM[39m [1mdist/react-core/index.js.map [22m[32m390.27 KB[39m
|
185
|
+
[32mESM[39m ⚡️ Build success in 92ms
|
186
186
|
[32mESM[39m [1mdist/inspector/register-custom-element.js [22m[32m218.00 B[39m
|
187
187
|
[32mESM[39m [1mdist/inspector/register-custom-element.js.map [22m[32m314.00 B[39m
|
188
188
|
[32mESM[39m [1mdist/inspector/custom-element-WCY6D3QJ.js [22m[32m1.53 MB[39m
|
189
189
|
[32mESM[39m [1mdist/inspector/custom-element-WCY6D3QJ.js.map [22m[32m2.35 MB[39m
|
190
|
-
[32mESM[39m ⚡️ Build success in
|
190
|
+
[32mESM[39m ⚡️ Build success in 125ms
|
191
191
|
|
192
|
-
> jazz-tools@0.18.
|
192
|
+
> jazz-tools@0.18.4 types /home/runner/_work/jazz/jazz/packages/jazz-tools
|
193
193
|
> tsc --outDir dist
|
194
194
|
|
195
195
|
|
196
|
-
> jazz-tools@0.18.
|
196
|
+
> jazz-tools@0.18.4 build:svelte /home/runner/_work/jazz/jazz/packages/jazz-tools
|
197
197
|
> rm -rf dist/svelte && svelte-package -i src/svelte -o dist/svelte --tsconfig tsconfig.svelte.json
|
198
198
|
|
199
199
|
src/svelte -> dist/svelte
|
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# jazz-tools
|
2
2
|
|
3
|
+
## 0.18.4
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- 84313aa: Add `$jazz.id` to `toJSON` in Account, CoMap, CoFeed & FileStream
|
8
|
+
- 89aab7b: Deprecate `co.map().catchall`. Use a `co.record` nested inside a `co.map` if you need to store key-value properties.
|
9
|
+
- cojson@0.18.4
|
10
|
+
- cojson-storage-indexeddb@0.18.4
|
11
|
+
- cojson-transport-ws@0.18.4
|
12
|
+
|
3
13
|
## 0.18.3
|
4
14
|
|
5
15
|
### Patch Changes
|
@@ -228,7 +228,9 @@ var _CoMap = class _CoMap extends CoValueBase {
|
|
228
228
|
*/
|
229
229
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
230
230
|
toJSON(_key, processedValues) {
|
231
|
-
const result = {
|
231
|
+
const result = {
|
232
|
+
$jazz: { id: this.$jazz.id }
|
233
|
+
};
|
232
234
|
for (const key of this.$jazz.raw.keys()) {
|
233
235
|
const tKey = key;
|
234
236
|
const descriptor = this.$jazz.getDescriptor(tKey);
|
@@ -1557,6 +1559,7 @@ var _CoFeed = class _CoFeed extends CoValueBase {
|
|
1557
1559
|
const itemDescriptor = this.$jazz.schema[ItemsSym];
|
1558
1560
|
const mapper = itemDescriptor === "json" ? (v) => v : "encoded" in itemDescriptor ? itemDescriptor.encoded.encode : (v) => v && v.$jazz.id;
|
1559
1561
|
return {
|
1562
|
+
$jazz: { id: this.$jazz.id },
|
1560
1563
|
...Object.fromEntries(
|
1561
1564
|
Object.entries(this).map(([account, entry]) => [
|
1562
1565
|
account,
|
@@ -2005,6 +2008,7 @@ var FileStream = class extends CoValueBase {
|
|
2005
2008
|
*/
|
2006
2009
|
toJSON() {
|
2007
2010
|
return {
|
2011
|
+
$jazz: { id: this.$jazz.id },
|
2008
2012
|
...this.getChunks()
|
2009
2013
|
};
|
2010
2014
|
}
|
@@ -2216,7 +2220,9 @@ var Account = class extends CoValueBase {
|
|
2216
2220
|
}
|
2217
2221
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
2218
2222
|
toJSON() {
|
2219
|
-
return {
|
2223
|
+
return {
|
2224
|
+
$jazz: { id: this.$jazz.id }
|
2225
|
+
};
|
2220
2226
|
}
|
2221
2227
|
[inspect]() {
|
2222
2228
|
return this.toJSON();
|
@@ -3416,56 +3422,135 @@ function applyCoValueMigrations(instance) {
|
|
3416
3422
|
|
3417
3423
|
// src/tools/subscribe/CoValueCoreSubscription.ts
|
3418
3424
|
var CoValueCoreSubscription = class {
|
3419
|
-
constructor(
|
3420
|
-
this.node = node;
|
3421
|
-
this.id = id;
|
3422
|
-
this.listener = listener;
|
3423
|
-
this.skipRetry = skipRetry;
|
3425
|
+
constructor(localNode, id, listener, skipRetry, branch) {
|
3424
3426
|
this._unsubscribe = () => {
|
3425
3427
|
};
|
3426
3428
|
this.unsubscribed = false;
|
3427
|
-
|
3428
|
-
|
3429
|
-
|
3429
|
+
this.localNode = localNode;
|
3430
|
+
this.listener = listener;
|
3431
|
+
this.skipRetry = skipRetry;
|
3432
|
+
this.branchName = branch?.name;
|
3433
|
+
this.branchOwnerId = branch?.owner?.$jazz.raw.id;
|
3434
|
+
this.source = localNode.getCoValue(id);
|
3435
|
+
this.initializeSubscription();
|
3436
|
+
}
|
3437
|
+
/**
|
3438
|
+
* Main entry point for subscription initialization.
|
3439
|
+
* Determines the subscription strategy based on current availability and branch requirements.
|
3440
|
+
*/
|
3441
|
+
initializeSubscription() {
|
3442
|
+
const source = this.source;
|
3443
|
+
if (source.isAvailable()) {
|
3444
|
+
this.handleAvailableSource(source);
|
3445
|
+
return;
|
3446
|
+
}
|
3447
|
+
if (this.branchName) {
|
3448
|
+
this.handleBranchCheckout();
|
3449
|
+
return;
|
3450
|
+
}
|
3451
|
+
this.loadCoValue();
|
3452
|
+
}
|
3453
|
+
/**
|
3454
|
+
* Handles the case where the CoValue source is immediately available.
|
3455
|
+
* Either subscribes directly or attempts to get the requested branch.
|
3456
|
+
*/
|
3457
|
+
handleAvailableSource(source) {
|
3458
|
+
if (!this.branchName) {
|
3459
|
+
this.subscribe(source.getCurrentContent());
|
3460
|
+
return;
|
3461
|
+
}
|
3462
|
+
const branch = source.getBranch(this.branchName, this.branchOwnerId);
|
3463
|
+
if (branch.isAvailable()) {
|
3464
|
+
this.subscribe(branch.getCurrentContent());
|
3465
|
+
return;
|
3430
3466
|
} else {
|
3431
|
-
this.
|
3432
|
-
if (this.unsubscribed) return;
|
3433
|
-
if (value.isAvailable()) {
|
3434
|
-
this.subscribe(value.getCurrentContent());
|
3435
|
-
} else {
|
3436
|
-
this.subscribeToState();
|
3437
|
-
this.listener("unavailable");
|
3438
|
-
}
|
3439
|
-
}).catch((error) => {
|
3440
|
-
console.error("Unexpected error loading CoValue: ", error);
|
3441
|
-
this.listener("unavailable");
|
3442
|
-
});
|
3467
|
+
this.handleBranchCheckout();
|
3443
3468
|
}
|
3444
3469
|
}
|
3445
|
-
|
3446
|
-
|
3447
|
-
|
3448
|
-
|
3449
|
-
|
3450
|
-
|
3470
|
+
/**
|
3471
|
+
* Attempts to checkout a specific branch of the CoValue.
|
3472
|
+
* This is called when the source isn't available but a branch is requested.
|
3473
|
+
*/
|
3474
|
+
handleBranchCheckout() {
|
3475
|
+
this.localNode.checkoutBranch(this.source.id, this.branchName, this.branchOwnerId).then((value) => {
|
3476
|
+
if (this.unsubscribed) return;
|
3477
|
+
if (value !== "unavailable") {
|
3478
|
+
this.subscribe(value);
|
3479
|
+
} else {
|
3480
|
+
this.handleUnavailableBranch();
|
3451
3481
|
}
|
3452
|
-
|
3453
|
-
|
3454
|
-
|
3482
|
+
}).catch((error) => {
|
3483
|
+
console.error(error);
|
3484
|
+
this.emit("unavailable");
|
3485
|
+
});
|
3486
|
+
}
|
3487
|
+
/**
|
3488
|
+
* Handles the case where a branch checkout fails.
|
3489
|
+
* Determines whether to retry or report unavailability.
|
3490
|
+
*/
|
3491
|
+
handleUnavailableBranch() {
|
3492
|
+
const source = this.source;
|
3493
|
+
if (source.isAvailable()) {
|
3494
|
+
throw new Error("Branch is unavailable");
|
3495
|
+
}
|
3496
|
+
this.subscribeToUnavailableSource();
|
3497
|
+
this.emit("unavailable");
|
3498
|
+
}
|
3499
|
+
/**
|
3500
|
+
* Loads the CoValue core from the network/storage.
|
3501
|
+
* This is the fallback strategy when immediate availability fails.
|
3502
|
+
*/
|
3503
|
+
loadCoValue() {
|
3504
|
+
this.localNode.loadCoValueCore(this.source.id, void 0, this.skipRetry).then((value) => {
|
3505
|
+
if (this.unsubscribed) return;
|
3506
|
+
if (value.isAvailable()) {
|
3507
|
+
this.subscribe(value.getCurrentContent());
|
3508
|
+
} else {
|
3509
|
+
this.subscribeToUnavailableSource();
|
3510
|
+
this.emit("unavailable");
|
3511
|
+
}
|
3512
|
+
}).catch((error) => {
|
3513
|
+
console.error(error);
|
3514
|
+
this.emit("unavailable");
|
3515
|
+
});
|
3516
|
+
}
|
3517
|
+
/**
|
3518
|
+
* Subscribes to state changes of an unavailable CoValue source.
|
3519
|
+
* This allows the subscription to become active when the source becomes available after a first loading attempt.
|
3520
|
+
*/
|
3521
|
+
subscribeToUnavailableSource() {
|
3522
|
+
const source = this.source;
|
3523
|
+
const handleStateChange = (_, unsubFromStateChange) => {
|
3524
|
+
if (!source.isAvailable()) {
|
3525
|
+
return;
|
3455
3526
|
}
|
3456
|
-
};
|
3457
|
-
const unsubFromStateChange = entry.subscribe(handleStateChange);
|
3458
|
-
this._unsubscribe = () => {
|
3459
3527
|
unsubFromStateChange();
|
3528
|
+
if (this.branchName) {
|
3529
|
+
this.handleBranchCheckout();
|
3530
|
+
} else {
|
3531
|
+
this.subscribe(source.getCurrentContent());
|
3532
|
+
}
|
3460
3533
|
};
|
3534
|
+
this._unsubscribe = source.subscribe(handleStateChange);
|
3461
3535
|
}
|
3536
|
+
/**
|
3537
|
+
* Subscribes to a specific CoValue and notifies the listener.
|
3538
|
+
* This is the final step where we actually start receiving updates.
|
3539
|
+
*/
|
3462
3540
|
subscribe(value) {
|
3463
3541
|
if (this.unsubscribed) return;
|
3464
3542
|
this._unsubscribe = value.subscribe((value2) => {
|
3465
|
-
this.
|
3543
|
+
this.emit(value2);
|
3466
3544
|
});
|
3545
|
+
}
|
3546
|
+
emit(value) {
|
3547
|
+
if (this.unsubscribed) return;
|
3467
3548
|
this.listener(value);
|
3468
3549
|
}
|
3550
|
+
/**
|
3551
|
+
* Unsubscribes from all active subscriptions and marks the instance as unsubscribed.
|
3552
|
+
* This prevents any further operations and ensures proper cleanup.
|
3553
|
+
*/
|
3469
3554
|
unsubscribe() {
|
3470
3555
|
if (this.unsubscribed) return;
|
3471
3556
|
this.unsubscribed = true;
|
@@ -5731,4 +5816,4 @@ export {
|
|
5731
5816
|
JazzContextManager
|
5732
5817
|
};
|
5733
5818
|
/* istanbul ignore file -- @preserve */
|
5734
|
-
//# sourceMappingURL=chunk-
|
5819
|
+
//# sourceMappingURL=chunk-LHQQZH7I.js.map
|