@kithinji/orca 1.0.16 → 1.0.17
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/dist/browser/index.iife.js +584 -73
- package/dist/browser/index.iife.js.map +4 -4
- package/dist/browser/index.mjs +605 -94
- package/dist/browser/index.mjs.map +4 -4
- package/dist/node/index.cjs +635 -70
- package/dist/node/index.cjs.map +4 -4
- package/dist/node/index.mjs +615 -70
- package/dist/node/index.mjs.map +4 -4
- package/dist/types/browser/dom/dom.d.ts.map +1 -1
- package/dist/types/node/factory.d.ts.map +1 -1
- package/dist/types/shared/decorators.d.ts +2 -0
- package/dist/types/shared/decorators.d.ts.map +1 -1
- package/dist/types/shared/observable/bsubject.d.ts +11 -0
- package/dist/types/shared/observable/bsubject.d.ts.map +1 -0
- package/dist/types/shared/observable/index.d.ts +2 -0
- package/dist/types/shared/observable/index.d.ts.map +1 -1
- package/dist/types/shared/observable/observable.d.ts +15 -7
- package/dist/types/shared/observable/observable.d.ts.map +1 -1
- package/dist/types/shared/observable/subject.d.ts +13 -0
- package/dist/types/shared/observable/subject.d.ts.map +1 -0
- package/dist/types/shared/signal/signal.d.ts.map +1 -1
- package/dist/types/shared/symbols.d.ts +1 -0
- package/dist/types/shared/symbols.d.ts.map +1 -1
- package/dist/types/shared/types.d.ts +5 -1
- package/dist/types/shared/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -30,6 +30,7 @@ var kithinjiorca = (() => {
|
|
|
30
30
|
__export(index_browser_exports, {
|
|
31
31
|
BOOTSTRAP: () => BOOTSTRAP,
|
|
32
32
|
BOOTSTRAP_VNODE: () => BOOTSTRAP_VNODE,
|
|
33
|
+
BehaviorSubject: () => BehaviorSubject,
|
|
33
34
|
Body: () => Body,
|
|
34
35
|
BrowserFactory: () => BrowserFactory,
|
|
35
36
|
COMPONENT: () => COMPONENT,
|
|
@@ -76,18 +77,27 @@ var kithinjiorca = (() => {
|
|
|
76
77
|
Param: () => Param,
|
|
77
78
|
Post: () => Post,
|
|
78
79
|
ProviderNormalizer: () => ProviderNormalizer,
|
|
80
|
+
Query: () => Query,
|
|
79
81
|
RouterModule: () => RouterModule,
|
|
80
82
|
RouterOutlet: () => RouterOutlet,
|
|
81
83
|
SIGNATURE_METADATA_KEY: () => SIGNATURE_METADATA_KEY,
|
|
84
|
+
SSE_ROUTE: () => SSE_ROUTE,
|
|
82
85
|
Signature: () => Signature,
|
|
86
|
+
Sse: () => Sse,
|
|
87
|
+
Subject: () => Subject,
|
|
83
88
|
assert$: () => assert$,
|
|
84
89
|
batch: () => batch,
|
|
85
90
|
browser: () => browser_exports,
|
|
91
|
+
catchError: () => catchError,
|
|
86
92
|
collectAllProvidersFromNode: () => collectAllProvidersFromNode,
|
|
87
93
|
computed: () => computed,
|
|
94
|
+
concatMap: () => concatMap,
|
|
88
95
|
createComponent: () => createComponent,
|
|
89
96
|
createRoot: () => createRoot,
|
|
97
|
+
debounceTime: () => debounceTime,
|
|
98
|
+
distinctUntilChanged: () => distinctUntilChanged,
|
|
90
99
|
effect: () => effect,
|
|
100
|
+
filter: () => filter,
|
|
91
101
|
from: () => from,
|
|
92
102
|
getCurrentInjector: () => getCurrentInjector,
|
|
93
103
|
getSignatureMetadata: () => getSignatureMetadata,
|
|
@@ -101,16 +111,26 @@ var kithinjiorca = (() => {
|
|
|
101
111
|
isSignal: () => isSignal,
|
|
102
112
|
jsx: () => jsx,
|
|
103
113
|
jsxs: () => jsxs,
|
|
114
|
+
map: () => map,
|
|
115
|
+
mergeMap: () => mergeMap,
|
|
104
116
|
observable: () => observable,
|
|
105
117
|
of: () => of,
|
|
106
118
|
parseSignatureSchemas: () => parseSignatureSchemas,
|
|
119
|
+
reduce: () => reduce,
|
|
120
|
+
scan: () => scan,
|
|
107
121
|
setCurrentInjector: () => setCurrentInjector,
|
|
108
122
|
shared: () => shared_exports,
|
|
109
123
|
signal: () => signal,
|
|
124
|
+
skip: () => skip,
|
|
110
125
|
spread: () => spread,
|
|
126
|
+
startWith: () => startWith,
|
|
111
127
|
style: () => style,
|
|
128
|
+
switchMap: () => switchMap,
|
|
112
129
|
symbolValueReplacer: () => symbolValueReplacer,
|
|
113
130
|
symbolValueReviver: () => symbolValueReviver,
|
|
131
|
+
take: () => take,
|
|
132
|
+
tap: () => tap,
|
|
133
|
+
throttleTime: () => throttleTime,
|
|
114
134
|
toSignal: () => toSignal,
|
|
115
135
|
untracked: () => untracked
|
|
116
136
|
});
|
|
@@ -121,6 +141,7 @@ var kithinjiorca = (() => {
|
|
|
121
141
|
__export(shared_exports, {
|
|
122
142
|
BOOTSTRAP: () => BOOTSTRAP,
|
|
123
143
|
BOOTSTRAP_VNODE: () => BOOTSTRAP_VNODE,
|
|
144
|
+
BehaviorSubject: () => BehaviorSubject,
|
|
124
145
|
Body: () => Body,
|
|
125
146
|
COMPONENT: () => COMPONENT,
|
|
126
147
|
COMPONENT_DEPS: () => COMPONENT_DEPS,
|
|
@@ -166,19 +187,28 @@ var kithinjiorca = (() => {
|
|
|
166
187
|
Param: () => Param,
|
|
167
188
|
Post: () => Post,
|
|
168
189
|
ProviderNormalizer: () => ProviderNormalizer,
|
|
190
|
+
Query: () => Query,
|
|
169
191
|
RouterModule: () => RouterModule,
|
|
170
192
|
RouterOutlet: () => RouterOutlet,
|
|
171
193
|
SIGNATURE_METADATA_KEY: () => SIGNATURE_METADATA_KEY,
|
|
194
|
+
SSE_ROUTE: () => SSE_ROUTE,
|
|
172
195
|
Signature: () => Signature,
|
|
196
|
+
Sse: () => Sse,
|
|
173
197
|
StreamRenderer: () => StreamRenderer,
|
|
174
198
|
StringRenderer: () => StringRenderer,
|
|
199
|
+
Subject: () => Subject,
|
|
175
200
|
VNode: () => VNode,
|
|
176
201
|
assert$: () => assert$,
|
|
177
202
|
batch: () => batch,
|
|
203
|
+
catchError: () => catchError,
|
|
178
204
|
collectAllProvidersFromNode: () => collectAllProvidersFromNode,
|
|
179
205
|
computed: () => computed,
|
|
206
|
+
concatMap: () => concatMap,
|
|
180
207
|
createRoot: () => createRoot,
|
|
208
|
+
debounceTime: () => debounceTime,
|
|
209
|
+
distinctUntilChanged: () => distinctUntilChanged,
|
|
181
210
|
effect: () => effect,
|
|
211
|
+
filter: () => filter,
|
|
182
212
|
from: () => from,
|
|
183
213
|
getCurrentInjector: () => getCurrentInjector,
|
|
184
214
|
getSignatureMetadata: () => getSignatureMetadata,
|
|
@@ -191,14 +221,24 @@ var kithinjiorca = (() => {
|
|
|
191
221
|
isSignal: () => isSignal,
|
|
192
222
|
jsx: () => jsx,
|
|
193
223
|
jsxs: () => jsxs,
|
|
224
|
+
map: () => map,
|
|
225
|
+
mergeMap: () => mergeMap,
|
|
194
226
|
observable: () => observable,
|
|
195
227
|
of: () => of,
|
|
196
228
|
parseSignatureSchemas: () => parseSignatureSchemas,
|
|
229
|
+
reduce: () => reduce,
|
|
230
|
+
scan: () => scan,
|
|
197
231
|
setCurrentInjector: () => setCurrentInjector,
|
|
198
232
|
signal: () => signal,
|
|
233
|
+
skip: () => skip,
|
|
234
|
+
startWith: () => startWith,
|
|
199
235
|
store: () => store,
|
|
236
|
+
switchMap: () => switchMap,
|
|
200
237
|
symbolValueReplacer: () => symbolValueReplacer,
|
|
201
238
|
symbolValueReviver: () => symbolValueReviver,
|
|
239
|
+
take: () => take,
|
|
240
|
+
tap: () => tap,
|
|
241
|
+
throttleTime: () => throttleTime,
|
|
202
242
|
toSignal: () => toSignal,
|
|
203
243
|
untracked: () => untracked
|
|
204
244
|
});
|
|
@@ -244,6 +284,7 @@ var kithinjiorca = (() => {
|
|
|
244
284
|
var PATH_KEY = Symbol("orca:path");
|
|
245
285
|
var EXPRESS_ADAPTER_HOST = Symbol("orca:express");
|
|
246
286
|
var SIGNATURE_METADATA_KEY = Symbol("orca:signature:schemas");
|
|
287
|
+
var SSE_ROUTE = Symbol("orca:sse:route");
|
|
247
288
|
var ERROR_ELEMENT = Symbol.for("orca:error");
|
|
248
289
|
var ORCA_ELEMENT_TYPE = Symbol.for("orca:element");
|
|
249
290
|
var ORCA_FRAGMENT_TYPE = Symbol.for("orca:fragment");
|
|
@@ -254,6 +295,10 @@ var kithinjiorca = (() => {
|
|
|
254
295
|
var HandlerParamType = /* @__PURE__ */ ((HandlerParamType2) => {
|
|
255
296
|
HandlerParamType2["ROUTE_PARAM"] = "ROUTE_PARAM";
|
|
256
297
|
HandlerParamType2["BODY"] = "BODY";
|
|
298
|
+
HandlerParamType2["QUERY"] = "QUERY";
|
|
299
|
+
HandlerParamType2["HEADERS"] = "HEADERS";
|
|
300
|
+
HandlerParamType2["REQUEST"] = "REQUEST";
|
|
301
|
+
HandlerParamType2["RESPONSE"] = "RESPONSE";
|
|
257
302
|
return HandlerParamType2;
|
|
258
303
|
})(HandlerParamType || {});
|
|
259
304
|
var HttpMethod = /* @__PURE__ */ ((HttpMethod2) => {
|
|
@@ -329,6 +374,9 @@ var kithinjiorca = (() => {
|
|
|
329
374
|
function Body(key) {
|
|
330
375
|
return getHandlerParamDecorator("BODY" /* BODY */, key);
|
|
331
376
|
}
|
|
377
|
+
function Query(key) {
|
|
378
|
+
return getHandlerParamDecorator("QUERY" /* QUERY */, key);
|
|
379
|
+
}
|
|
332
380
|
function getRouteDecorator(httpMethod, path) {
|
|
333
381
|
return function(target, key, descriptor) {
|
|
334
382
|
Reflect.defineMetadata(HTTP_METHOD_KEY, httpMethod, target, key);
|
|
@@ -341,6 +389,13 @@ var kithinjiorca = (() => {
|
|
|
341
389
|
function Post(path) {
|
|
342
390
|
return getRouteDecorator("post" /* POST */, path ?? "");
|
|
343
391
|
}
|
|
392
|
+
function Sse(path) {
|
|
393
|
+
return function(target, propertyKey, descriptor) {
|
|
394
|
+
Reflect.defineMetadata(SSE_ROUTE, true, target, propertyKey);
|
|
395
|
+
Reflect.defineMetadata(PATH_KEY, path, target, propertyKey);
|
|
396
|
+
Reflect.defineMetadata(HTTP_METHOD_KEY, "get" /* GET */, target, propertyKey);
|
|
397
|
+
};
|
|
398
|
+
}
|
|
344
399
|
function Signature(...schemas) {
|
|
345
400
|
return function(target, propertyKey, descriptor) {
|
|
346
401
|
Reflect.defineMetadata(SIGNATURE_METADATA_KEY, schemas, target, propertyKey);
|
|
@@ -877,14 +932,14 @@ var kithinjiorca = (() => {
|
|
|
877
932
|
return "";
|
|
878
933
|
}
|
|
879
934
|
escapeHtml(text) {
|
|
880
|
-
const
|
|
935
|
+
const map2 = {
|
|
881
936
|
"&": "&",
|
|
882
937
|
"<": "<",
|
|
883
938
|
">": ">",
|
|
884
939
|
'"': """,
|
|
885
940
|
"'": "'"
|
|
886
941
|
};
|
|
887
|
-
return text.replace(/[&<>"']/g, (m) =>
|
|
942
|
+
return text.replace(/[&<>"']/g, (m) => map2[m]);
|
|
888
943
|
}
|
|
889
944
|
};
|
|
890
945
|
|
|
@@ -1232,10 +1287,11 @@ var kithinjiorca = (() => {
|
|
|
1232
1287
|
let value = initialValue;
|
|
1233
1288
|
const subscribers = /* @__PURE__ */ new Set();
|
|
1234
1289
|
const notify = () => {
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1290
|
+
subscribers.forEach((sub) => pendingEffects.add(sub));
|
|
1291
|
+
if (batchDepth === 0) {
|
|
1292
|
+
const effects = Array.from(pendingEffects);
|
|
1293
|
+
pendingEffects.clear();
|
|
1294
|
+
effects.forEach((effect2) => effect2.execute());
|
|
1239
1295
|
}
|
|
1240
1296
|
};
|
|
1241
1297
|
return {
|
|
@@ -1355,67 +1411,40 @@ var kithinjiorca = (() => {
|
|
|
1355
1411
|
constructor(producer) {
|
|
1356
1412
|
this.producer = producer;
|
|
1357
1413
|
this.__isObservable = true;
|
|
1358
|
-
this.subscribers = /* @__PURE__ */ new Set();
|
|
1359
|
-
}
|
|
1360
|
-
get $value() {
|
|
1361
|
-
return this._value;
|
|
1362
|
-
}
|
|
1363
|
-
setValue(newValue) {
|
|
1364
|
-
this._value = newValue;
|
|
1365
1414
|
}
|
|
1366
1415
|
subscribe(observerOrNext, error, complete) {
|
|
1367
1416
|
const observer = typeof observerOrNext === "function" ? { next: observerOrNext, error, complete } : observerOrNext;
|
|
1368
|
-
this.subscribers.add(observer);
|
|
1369
1417
|
let cleanup;
|
|
1418
|
+
let isUnsubscribed = false;
|
|
1370
1419
|
if (this.producer) {
|
|
1371
1420
|
try {
|
|
1372
1421
|
cleanup = this.producer(observer);
|
|
1373
1422
|
} catch (err) {
|
|
1374
1423
|
if (observer.error) {
|
|
1375
|
-
|
|
1424
|
+
try {
|
|
1425
|
+
observer.error(err);
|
|
1426
|
+
} catch (e) {
|
|
1427
|
+
console.error("Error in error handler during subscription:", e);
|
|
1428
|
+
}
|
|
1429
|
+
} else {
|
|
1430
|
+
throw err;
|
|
1376
1431
|
}
|
|
1377
1432
|
}
|
|
1378
1433
|
}
|
|
1379
1434
|
return {
|
|
1380
1435
|
unsubscribe: () => {
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
try {
|
|
1391
|
-
observer.next(value);
|
|
1392
|
-
} catch (err) {
|
|
1393
|
-
console.error("Error in observer:", err);
|
|
1394
|
-
}
|
|
1395
|
-
});
|
|
1396
|
-
}
|
|
1397
|
-
error(err) {
|
|
1398
|
-
this.subscribers.forEach((observer) => {
|
|
1399
|
-
if (observer.error) {
|
|
1400
|
-
try {
|
|
1401
|
-
observer.error(err);
|
|
1402
|
-
} catch (e) {
|
|
1403
|
-
console.error("Error in error handler:", e);
|
|
1404
|
-
}
|
|
1405
|
-
}
|
|
1406
|
-
});
|
|
1407
|
-
}
|
|
1408
|
-
complete() {
|
|
1409
|
-
this.subscribers.forEach((observer) => {
|
|
1410
|
-
if (observer.complete) {
|
|
1411
|
-
try {
|
|
1412
|
-
observer.complete();
|
|
1413
|
-
} catch (err) {
|
|
1414
|
-
console.error("Error in complete handler:", err);
|
|
1436
|
+
if (isUnsubscribed)
|
|
1437
|
+
return;
|
|
1438
|
+
isUnsubscribed = true;
|
|
1439
|
+
if (cleanup) {
|
|
1440
|
+
try {
|
|
1441
|
+
cleanup();
|
|
1442
|
+
} catch (err) {
|
|
1443
|
+
console.error("Error during cleanup:", err);
|
|
1444
|
+
}
|
|
1415
1445
|
}
|
|
1416
1446
|
}
|
|
1417
|
-
}
|
|
1418
|
-
this.subscribers.clear();
|
|
1447
|
+
};
|
|
1419
1448
|
}
|
|
1420
1449
|
pipe(...operations) {
|
|
1421
1450
|
if (operations.length === 0) {
|
|
@@ -1426,10 +1455,14 @@ var kithinjiorca = (() => {
|
|
|
1426
1455
|
};
|
|
1427
1456
|
function from(iterable) {
|
|
1428
1457
|
return new Observable((observer) => {
|
|
1429
|
-
|
|
1430
|
-
|
|
1458
|
+
try {
|
|
1459
|
+
for (const value of iterable) {
|
|
1460
|
+
observer.next(value);
|
|
1461
|
+
}
|
|
1462
|
+
observer.complete?.();
|
|
1463
|
+
} catch (err) {
|
|
1464
|
+
observer.error?.(err);
|
|
1431
1465
|
}
|
|
1432
|
-
observer.complete?.();
|
|
1433
1466
|
});
|
|
1434
1467
|
}
|
|
1435
1468
|
function interval(ms) {
|
|
@@ -1443,8 +1476,12 @@ var kithinjiorca = (() => {
|
|
|
1443
1476
|
}
|
|
1444
1477
|
function of(...values) {
|
|
1445
1478
|
return new Observable((observer) => {
|
|
1446
|
-
|
|
1447
|
-
|
|
1479
|
+
try {
|
|
1480
|
+
values.forEach((value) => observer.next(value));
|
|
1481
|
+
observer.complete?.();
|
|
1482
|
+
} catch (err) {
|
|
1483
|
+
observer.error?.(err);
|
|
1484
|
+
}
|
|
1448
1485
|
});
|
|
1449
1486
|
}
|
|
1450
1487
|
function observable(producer) {
|
|
@@ -1455,12 +1492,484 @@ var kithinjiorca = (() => {
|
|
|
1455
1492
|
const subst = obs.subscribe((val) => {
|
|
1456
1493
|
sig.value = val;
|
|
1457
1494
|
});
|
|
1458
|
-
instance.__cleanup = [
|
|
1495
|
+
instance.__cleanup = [
|
|
1496
|
+
...instance.__cleanup || [],
|
|
1497
|
+
() => subst.unsubscribe()
|
|
1498
|
+
];
|
|
1459
1499
|
return sig;
|
|
1460
1500
|
}
|
|
1461
1501
|
function isObservable(value) {
|
|
1462
1502
|
return value && value.__isObservable === true;
|
|
1463
1503
|
}
|
|
1504
|
+
function map(fn) {
|
|
1505
|
+
return (source) => {
|
|
1506
|
+
return new Observable((observer) => {
|
|
1507
|
+
const subscription = source.subscribe(
|
|
1508
|
+
(value) => {
|
|
1509
|
+
try {
|
|
1510
|
+
observer.next(fn(value));
|
|
1511
|
+
} catch (err) {
|
|
1512
|
+
observer.error?.(err);
|
|
1513
|
+
}
|
|
1514
|
+
},
|
|
1515
|
+
(err) => observer.error?.(err),
|
|
1516
|
+
() => observer.complete?.()
|
|
1517
|
+
);
|
|
1518
|
+
return () => subscription.unsubscribe();
|
|
1519
|
+
});
|
|
1520
|
+
};
|
|
1521
|
+
}
|
|
1522
|
+
function filter(predicate) {
|
|
1523
|
+
return (source) => {
|
|
1524
|
+
return new Observable((observer) => {
|
|
1525
|
+
const subscription = source.subscribe(
|
|
1526
|
+
(value) => {
|
|
1527
|
+
try {
|
|
1528
|
+
if (predicate(value)) {
|
|
1529
|
+
observer.next(value);
|
|
1530
|
+
}
|
|
1531
|
+
} catch (err) {
|
|
1532
|
+
observer.error?.(err);
|
|
1533
|
+
}
|
|
1534
|
+
},
|
|
1535
|
+
(err) => observer.error?.(err),
|
|
1536
|
+
() => observer.complete?.()
|
|
1537
|
+
);
|
|
1538
|
+
return () => subscription.unsubscribe();
|
|
1539
|
+
});
|
|
1540
|
+
};
|
|
1541
|
+
}
|
|
1542
|
+
function tap(fn) {
|
|
1543
|
+
return (source) => {
|
|
1544
|
+
return new Observable((observer) => {
|
|
1545
|
+
const subscription = source.subscribe(
|
|
1546
|
+
(value) => {
|
|
1547
|
+
try {
|
|
1548
|
+
fn(value);
|
|
1549
|
+
observer.next(value);
|
|
1550
|
+
} catch (err) {
|
|
1551
|
+
observer.error?.(err);
|
|
1552
|
+
}
|
|
1553
|
+
},
|
|
1554
|
+
(err) => observer.error?.(err),
|
|
1555
|
+
() => observer.complete?.()
|
|
1556
|
+
);
|
|
1557
|
+
return () => subscription.unsubscribe();
|
|
1558
|
+
});
|
|
1559
|
+
};
|
|
1560
|
+
}
|
|
1561
|
+
function take(count) {
|
|
1562
|
+
return (source) => {
|
|
1563
|
+
return new Observable((observer) => {
|
|
1564
|
+
let taken = 0;
|
|
1565
|
+
const subscription = source.subscribe(
|
|
1566
|
+
(value) => {
|
|
1567
|
+
if (taken < count) {
|
|
1568
|
+
observer.next(value);
|
|
1569
|
+
taken++;
|
|
1570
|
+
if (taken === count) {
|
|
1571
|
+
observer.complete?.();
|
|
1572
|
+
subscription.unsubscribe();
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
},
|
|
1576
|
+
(err) => observer.error?.(err),
|
|
1577
|
+
() => observer.complete?.()
|
|
1578
|
+
);
|
|
1579
|
+
return () => subscription.unsubscribe();
|
|
1580
|
+
});
|
|
1581
|
+
};
|
|
1582
|
+
}
|
|
1583
|
+
function skip(count) {
|
|
1584
|
+
return (source) => {
|
|
1585
|
+
return new Observable((observer) => {
|
|
1586
|
+
let skipped = 0;
|
|
1587
|
+
const subscription = source.subscribe(
|
|
1588
|
+
(value) => {
|
|
1589
|
+
if (skipped < count) {
|
|
1590
|
+
skipped++;
|
|
1591
|
+
} else {
|
|
1592
|
+
observer.next(value);
|
|
1593
|
+
}
|
|
1594
|
+
},
|
|
1595
|
+
(err) => observer.error?.(err),
|
|
1596
|
+
() => observer.complete?.()
|
|
1597
|
+
);
|
|
1598
|
+
return () => subscription.unsubscribe();
|
|
1599
|
+
});
|
|
1600
|
+
};
|
|
1601
|
+
}
|
|
1602
|
+
function debounceTime(ms) {
|
|
1603
|
+
return (source) => {
|
|
1604
|
+
return new Observable((observer) => {
|
|
1605
|
+
let timeoutId;
|
|
1606
|
+
const subscription = source.subscribe(
|
|
1607
|
+
(value) => {
|
|
1608
|
+
clearTimeout(timeoutId);
|
|
1609
|
+
timeoutId = setTimeout(() => {
|
|
1610
|
+
observer.next(value);
|
|
1611
|
+
}, ms);
|
|
1612
|
+
},
|
|
1613
|
+
(err) => observer.error?.(err),
|
|
1614
|
+
() => observer.complete?.()
|
|
1615
|
+
);
|
|
1616
|
+
return () => {
|
|
1617
|
+
clearTimeout(timeoutId);
|
|
1618
|
+
subscription.unsubscribe();
|
|
1619
|
+
};
|
|
1620
|
+
});
|
|
1621
|
+
};
|
|
1622
|
+
}
|
|
1623
|
+
function throttleTime(ms) {
|
|
1624
|
+
return (source) => {
|
|
1625
|
+
return new Observable((observer) => {
|
|
1626
|
+
let lastEmit = 0;
|
|
1627
|
+
const subscription = source.subscribe(
|
|
1628
|
+
(value) => {
|
|
1629
|
+
const now = Date.now();
|
|
1630
|
+
if (now - lastEmit >= ms) {
|
|
1631
|
+
lastEmit = now;
|
|
1632
|
+
observer.next(value);
|
|
1633
|
+
}
|
|
1634
|
+
},
|
|
1635
|
+
(err) => observer.error?.(err),
|
|
1636
|
+
() => observer.complete?.()
|
|
1637
|
+
);
|
|
1638
|
+
return () => subscription.unsubscribe();
|
|
1639
|
+
});
|
|
1640
|
+
};
|
|
1641
|
+
}
|
|
1642
|
+
function distinctUntilChanged(compare) {
|
|
1643
|
+
return (source) => {
|
|
1644
|
+
return new Observable((observer) => {
|
|
1645
|
+
let hasLast = false;
|
|
1646
|
+
let last;
|
|
1647
|
+
const subscription = source.subscribe(
|
|
1648
|
+
(value) => {
|
|
1649
|
+
const isDistinct = !hasLast || (compare ? !compare(last, value) : last !== value);
|
|
1650
|
+
if (isDistinct) {
|
|
1651
|
+
hasLast = true;
|
|
1652
|
+
last = value;
|
|
1653
|
+
observer.next(value);
|
|
1654
|
+
}
|
|
1655
|
+
},
|
|
1656
|
+
(err) => observer.error?.(err),
|
|
1657
|
+
() => observer.complete?.()
|
|
1658
|
+
);
|
|
1659
|
+
return () => subscription.unsubscribe();
|
|
1660
|
+
});
|
|
1661
|
+
};
|
|
1662
|
+
}
|
|
1663
|
+
function switchMap(fn) {
|
|
1664
|
+
return (source) => {
|
|
1665
|
+
return new Observable((observer) => {
|
|
1666
|
+
let innerSubscription = null;
|
|
1667
|
+
const outerSubscription = source.subscribe(
|
|
1668
|
+
(value) => {
|
|
1669
|
+
if (innerSubscription) {
|
|
1670
|
+
innerSubscription.unsubscribe();
|
|
1671
|
+
}
|
|
1672
|
+
try {
|
|
1673
|
+
const innerObservable = fn(value);
|
|
1674
|
+
innerSubscription = innerObservable.subscribe(
|
|
1675
|
+
(innerValue) => observer.next(innerValue),
|
|
1676
|
+
(err) => observer.error?.(err)
|
|
1677
|
+
);
|
|
1678
|
+
} catch (err) {
|
|
1679
|
+
observer.error?.(err);
|
|
1680
|
+
}
|
|
1681
|
+
},
|
|
1682
|
+
(err) => observer.error?.(err),
|
|
1683
|
+
() => observer.complete?.()
|
|
1684
|
+
);
|
|
1685
|
+
return () => {
|
|
1686
|
+
if (innerSubscription) {
|
|
1687
|
+
innerSubscription.unsubscribe();
|
|
1688
|
+
}
|
|
1689
|
+
outerSubscription.unsubscribe();
|
|
1690
|
+
};
|
|
1691
|
+
});
|
|
1692
|
+
};
|
|
1693
|
+
}
|
|
1694
|
+
function mergeMap(fn) {
|
|
1695
|
+
return (source) => {
|
|
1696
|
+
return new Observable((observer) => {
|
|
1697
|
+
const innerSubscriptions = [];
|
|
1698
|
+
let outerComplete = false;
|
|
1699
|
+
let activeCount = 0;
|
|
1700
|
+
const checkComplete = () => {
|
|
1701
|
+
if (outerComplete && activeCount === 0) {
|
|
1702
|
+
observer.complete?.();
|
|
1703
|
+
}
|
|
1704
|
+
};
|
|
1705
|
+
const outerSubscription = source.subscribe(
|
|
1706
|
+
(value) => {
|
|
1707
|
+
try {
|
|
1708
|
+
const innerObservable = fn(value);
|
|
1709
|
+
activeCount++;
|
|
1710
|
+
const innerSub = innerObservable.subscribe(
|
|
1711
|
+
(innerValue) => observer.next(innerValue),
|
|
1712
|
+
(err) => observer.error?.(err),
|
|
1713
|
+
() => {
|
|
1714
|
+
activeCount--;
|
|
1715
|
+
checkComplete();
|
|
1716
|
+
}
|
|
1717
|
+
);
|
|
1718
|
+
innerSubscriptions.push(innerSub);
|
|
1719
|
+
} catch (err) {
|
|
1720
|
+
observer.error?.(err);
|
|
1721
|
+
}
|
|
1722
|
+
},
|
|
1723
|
+
(err) => observer.error?.(err),
|
|
1724
|
+
() => {
|
|
1725
|
+
outerComplete = true;
|
|
1726
|
+
checkComplete();
|
|
1727
|
+
}
|
|
1728
|
+
);
|
|
1729
|
+
return () => {
|
|
1730
|
+
innerSubscriptions.forEach((sub) => sub.unsubscribe());
|
|
1731
|
+
outerSubscription.unsubscribe();
|
|
1732
|
+
};
|
|
1733
|
+
});
|
|
1734
|
+
};
|
|
1735
|
+
}
|
|
1736
|
+
function concatMap(fn) {
|
|
1737
|
+
return (source) => {
|
|
1738
|
+
return new Observable((observer) => {
|
|
1739
|
+
const queue = [];
|
|
1740
|
+
let innerSubscription = null;
|
|
1741
|
+
let outerComplete = false;
|
|
1742
|
+
let isProcessing = false;
|
|
1743
|
+
const processNext = () => {
|
|
1744
|
+
if (isProcessing || queue.length === 0) {
|
|
1745
|
+
if (outerComplete && queue.length === 0) {
|
|
1746
|
+
observer.complete?.();
|
|
1747
|
+
}
|
|
1748
|
+
return;
|
|
1749
|
+
}
|
|
1750
|
+
isProcessing = true;
|
|
1751
|
+
const value = queue.shift();
|
|
1752
|
+
try {
|
|
1753
|
+
const innerObservable = fn(value);
|
|
1754
|
+
innerSubscription = innerObservable.subscribe(
|
|
1755
|
+
(innerValue) => observer.next(innerValue),
|
|
1756
|
+
(err) => observer.error?.(err),
|
|
1757
|
+
() => {
|
|
1758
|
+
isProcessing = false;
|
|
1759
|
+
processNext();
|
|
1760
|
+
}
|
|
1761
|
+
);
|
|
1762
|
+
} catch (err) {
|
|
1763
|
+
observer.error?.(err);
|
|
1764
|
+
}
|
|
1765
|
+
};
|
|
1766
|
+
const outerSubscription = source.subscribe(
|
|
1767
|
+
(value) => {
|
|
1768
|
+
queue.push(value);
|
|
1769
|
+
processNext();
|
|
1770
|
+
},
|
|
1771
|
+
(err) => observer.error?.(err),
|
|
1772
|
+
() => {
|
|
1773
|
+
outerComplete = true;
|
|
1774
|
+
if (queue.length === 0 && !isProcessing) {
|
|
1775
|
+
observer.complete?.();
|
|
1776
|
+
}
|
|
1777
|
+
}
|
|
1778
|
+
);
|
|
1779
|
+
return () => {
|
|
1780
|
+
if (innerSubscription) {
|
|
1781
|
+
innerSubscription.unsubscribe();
|
|
1782
|
+
}
|
|
1783
|
+
outerSubscription.unsubscribe();
|
|
1784
|
+
};
|
|
1785
|
+
});
|
|
1786
|
+
};
|
|
1787
|
+
}
|
|
1788
|
+
function catchError(handler) {
|
|
1789
|
+
return (source) => {
|
|
1790
|
+
return new Observable((observer) => {
|
|
1791
|
+
const subscription = source.subscribe(
|
|
1792
|
+
(value) => observer.next(value),
|
|
1793
|
+
(err) => {
|
|
1794
|
+
try {
|
|
1795
|
+
const fallback = handler(err);
|
|
1796
|
+
const fallbackSub = fallback.subscribe(
|
|
1797
|
+
(value) => observer.next(value),
|
|
1798
|
+
(e) => observer.error?.(e),
|
|
1799
|
+
() => observer.complete?.()
|
|
1800
|
+
);
|
|
1801
|
+
subscription.__fallback = fallbackSub;
|
|
1802
|
+
} catch (e) {
|
|
1803
|
+
observer.error?.(e);
|
|
1804
|
+
}
|
|
1805
|
+
},
|
|
1806
|
+
() => observer.complete?.()
|
|
1807
|
+
);
|
|
1808
|
+
return () => {
|
|
1809
|
+
if (subscription.__fallback) {
|
|
1810
|
+
subscription.__fallback.unsubscribe();
|
|
1811
|
+
}
|
|
1812
|
+
subscription.unsubscribe();
|
|
1813
|
+
};
|
|
1814
|
+
});
|
|
1815
|
+
};
|
|
1816
|
+
}
|
|
1817
|
+
function startWith(...values) {
|
|
1818
|
+
return (source) => {
|
|
1819
|
+
return new Observable((observer) => {
|
|
1820
|
+
values.forEach((value) => observer.next(value));
|
|
1821
|
+
const subscription = source.subscribe(
|
|
1822
|
+
(value) => observer.next(value),
|
|
1823
|
+
(err) => observer.error?.(err),
|
|
1824
|
+
() => observer.complete?.()
|
|
1825
|
+
);
|
|
1826
|
+
return () => subscription.unsubscribe();
|
|
1827
|
+
});
|
|
1828
|
+
};
|
|
1829
|
+
}
|
|
1830
|
+
function scan(accumulator, seed) {
|
|
1831
|
+
return (source) => {
|
|
1832
|
+
return new Observable((observer) => {
|
|
1833
|
+
let acc = seed;
|
|
1834
|
+
const subscription = source.subscribe(
|
|
1835
|
+
(value) => {
|
|
1836
|
+
try {
|
|
1837
|
+
acc = accumulator(acc, value);
|
|
1838
|
+
observer.next(acc);
|
|
1839
|
+
} catch (err) {
|
|
1840
|
+
observer.error?.(err);
|
|
1841
|
+
}
|
|
1842
|
+
},
|
|
1843
|
+
(err) => observer.error?.(err),
|
|
1844
|
+
() => observer.complete?.()
|
|
1845
|
+
);
|
|
1846
|
+
return () => subscription.unsubscribe();
|
|
1847
|
+
});
|
|
1848
|
+
};
|
|
1849
|
+
}
|
|
1850
|
+
function reduce(accumulator, seed) {
|
|
1851
|
+
return (source) => {
|
|
1852
|
+
return new Observable((observer) => {
|
|
1853
|
+
let acc = seed;
|
|
1854
|
+
const subscription = source.subscribe(
|
|
1855
|
+
(value) => {
|
|
1856
|
+
try {
|
|
1857
|
+
acc = accumulator(acc, value);
|
|
1858
|
+
} catch (err) {
|
|
1859
|
+
observer.error?.(err);
|
|
1860
|
+
}
|
|
1861
|
+
},
|
|
1862
|
+
(err) => observer.error?.(err),
|
|
1863
|
+
() => {
|
|
1864
|
+
observer.next(acc);
|
|
1865
|
+
observer.complete?.();
|
|
1866
|
+
}
|
|
1867
|
+
);
|
|
1868
|
+
return () => subscription.unsubscribe();
|
|
1869
|
+
});
|
|
1870
|
+
};
|
|
1871
|
+
}
|
|
1872
|
+
|
|
1873
|
+
// src/shared/observable/subject.ts
|
|
1874
|
+
var Subject = class extends Observable {
|
|
1875
|
+
constructor() {
|
|
1876
|
+
super();
|
|
1877
|
+
this.subscribers = /* @__PURE__ */ new Set();
|
|
1878
|
+
this._isCompleted = false;
|
|
1879
|
+
this._hasError = false;
|
|
1880
|
+
}
|
|
1881
|
+
subscribe(observerOrNext, error, complete) {
|
|
1882
|
+
if (this._isCompleted) {
|
|
1883
|
+
const obs = typeof observerOrNext === "function" ? { complete } : observerOrNext;
|
|
1884
|
+
obs.complete?.();
|
|
1885
|
+
return { unsubscribe: () => {
|
|
1886
|
+
} };
|
|
1887
|
+
}
|
|
1888
|
+
if (this._hasError) {
|
|
1889
|
+
return { unsubscribe: () => {
|
|
1890
|
+
} };
|
|
1891
|
+
}
|
|
1892
|
+
const observer = typeof observerOrNext === "function" ? { next: observerOrNext, error, complete } : observerOrNext;
|
|
1893
|
+
this.subscribers.add(observer);
|
|
1894
|
+
return {
|
|
1895
|
+
unsubscribe: () => {
|
|
1896
|
+
this.subscribers.delete(observer);
|
|
1897
|
+
}
|
|
1898
|
+
};
|
|
1899
|
+
}
|
|
1900
|
+
next(value) {
|
|
1901
|
+
if (this._isCompleted || this._hasError)
|
|
1902
|
+
return;
|
|
1903
|
+
const currentSubscribers = Array.from(this.subscribers);
|
|
1904
|
+
currentSubscribers.forEach((observer) => {
|
|
1905
|
+
if (this.subscribers.has(observer)) {
|
|
1906
|
+
try {
|
|
1907
|
+
observer.next(value);
|
|
1908
|
+
} catch (err) {
|
|
1909
|
+
console.error("Error in observer:", err);
|
|
1910
|
+
}
|
|
1911
|
+
}
|
|
1912
|
+
});
|
|
1913
|
+
}
|
|
1914
|
+
error(err) {
|
|
1915
|
+
if (this._isCompleted || this._hasError)
|
|
1916
|
+
return;
|
|
1917
|
+
this._hasError = true;
|
|
1918
|
+
const currentSubscribers = Array.from(this.subscribers);
|
|
1919
|
+
currentSubscribers.forEach((observer) => {
|
|
1920
|
+
if (observer.error) {
|
|
1921
|
+
try {
|
|
1922
|
+
observer.error(err);
|
|
1923
|
+
} catch (e) {
|
|
1924
|
+
console.error("Error in error handler:", e);
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
});
|
|
1928
|
+
this.subscribers.clear();
|
|
1929
|
+
}
|
|
1930
|
+
complete() {
|
|
1931
|
+
if (this._isCompleted || this._hasError)
|
|
1932
|
+
return;
|
|
1933
|
+
this._isCompleted = true;
|
|
1934
|
+
const currentSubscribers = Array.from(this.subscribers);
|
|
1935
|
+
currentSubscribers.forEach((observer) => {
|
|
1936
|
+
if (observer.complete) {
|
|
1937
|
+
try {
|
|
1938
|
+
observer.complete();
|
|
1939
|
+
} catch (err) {
|
|
1940
|
+
console.error("Error in complete handler:", err);
|
|
1941
|
+
}
|
|
1942
|
+
}
|
|
1943
|
+
});
|
|
1944
|
+
this.subscribers.clear();
|
|
1945
|
+
}
|
|
1946
|
+
};
|
|
1947
|
+
|
|
1948
|
+
// src/shared/observable/bsubject.ts
|
|
1949
|
+
var BehaviorSubject = class extends Subject {
|
|
1950
|
+
constructor(initialValue) {
|
|
1951
|
+
super();
|
|
1952
|
+
this._value = initialValue;
|
|
1953
|
+
}
|
|
1954
|
+
get $value() {
|
|
1955
|
+
return this._value;
|
|
1956
|
+
}
|
|
1957
|
+
next(value) {
|
|
1958
|
+
this._value = value;
|
|
1959
|
+
super.next(value);
|
|
1960
|
+
}
|
|
1961
|
+
subscribe(observerOrNext, error, complete) {
|
|
1962
|
+
const observer = typeof observerOrNext === "function" ? { next: observerOrNext, error, complete } : observerOrNext;
|
|
1963
|
+
try {
|
|
1964
|
+
observer.next(this._value);
|
|
1965
|
+
} catch (err) {
|
|
1966
|
+
if (observer.error) {
|
|
1967
|
+
observer.error(err);
|
|
1968
|
+
}
|
|
1969
|
+
}
|
|
1970
|
+
return super.subscribe(observer);
|
|
1971
|
+
}
|
|
1972
|
+
};
|
|
1464
1973
|
|
|
1465
1974
|
// src/shared/component.ts
|
|
1466
1975
|
var OrcaComponent = class {
|
|
@@ -1508,7 +2017,6 @@ var kithinjiorca = (() => {
|
|
|
1508
2017
|
window.addEventListener("popstate", (e) => {
|
|
1509
2018
|
const newIndex = e.state?.cursor ?? 0;
|
|
1510
2019
|
this.cursor = newIndex;
|
|
1511
|
-
this.pages.next([...this.pages.$value || []]);
|
|
1512
2020
|
});
|
|
1513
2021
|
}
|
|
1514
2022
|
getHome() {
|
|
@@ -1519,18 +2027,20 @@ var kithinjiorca = (() => {
|
|
|
1519
2027
|
});
|
|
1520
2028
|
}
|
|
1521
2029
|
push(component) {
|
|
1522
|
-
const currentPages =
|
|
2030
|
+
const currentPages = (
|
|
2031
|
+
/*this.pages.$value ||*/
|
|
2032
|
+
[]
|
|
2033
|
+
);
|
|
1523
2034
|
const newPages = currentPages.slice(0, this.cursor + 1);
|
|
1524
2035
|
this.cursor++;
|
|
1525
2036
|
newPages.push(component);
|
|
1526
2037
|
history.pushState({ cursor: this.cursor }, "");
|
|
1527
|
-
this.pages.next(newPages);
|
|
1528
2038
|
}
|
|
1529
2039
|
replace(component) {
|
|
1530
|
-
const currentPages = [
|
|
2040
|
+
const currentPages = [.../*this.pages.$value ||*/
|
|
2041
|
+
[]];
|
|
1531
2042
|
currentPages[this.cursor] = component;
|
|
1532
2043
|
history.replaceState({ cursor: this.cursor }, "");
|
|
1533
|
-
this.pages.next(currentPages);
|
|
1534
2044
|
}
|
|
1535
2045
|
goBack() {
|
|
1536
2046
|
if (this.cursor > 0) {
|
|
@@ -1538,7 +2048,10 @@ var kithinjiorca = (() => {
|
|
|
1538
2048
|
}
|
|
1539
2049
|
}
|
|
1540
2050
|
goForward() {
|
|
1541
|
-
const currentPages =
|
|
2051
|
+
const currentPages = (
|
|
2052
|
+
/*this.pages.$value ||*/
|
|
2053
|
+
[]
|
|
2054
|
+
);
|
|
1542
2055
|
if (this.cursor < currentPages.length - 1) {
|
|
1543
2056
|
history.forward();
|
|
1544
2057
|
}
|
|
@@ -1547,16 +2060,21 @@ var kithinjiorca = (() => {
|
|
|
1547
2060
|
return this.cursor > 0;
|
|
1548
2061
|
}
|
|
1549
2062
|
canGoForward() {
|
|
1550
|
-
const currentPages =
|
|
2063
|
+
const currentPages = (
|
|
2064
|
+
/*this.pages.$value ||*/
|
|
2065
|
+
[]
|
|
2066
|
+
);
|
|
1551
2067
|
return this.cursor < currentPages.length - 1;
|
|
1552
2068
|
}
|
|
1553
2069
|
getCurrentPage() {
|
|
1554
|
-
const currentPages =
|
|
2070
|
+
const currentPages = (
|
|
2071
|
+
/*this.pages.$value ||*/
|
|
2072
|
+
[]
|
|
2073
|
+
);
|
|
1555
2074
|
return currentPages[this.cursor];
|
|
1556
2075
|
}
|
|
1557
2076
|
clear() {
|
|
1558
2077
|
this.cursor = 0;
|
|
1559
|
-
this.pages.next([]);
|
|
1560
2078
|
history.replaceState({ cursor: 0 }, "");
|
|
1561
2079
|
}
|
|
1562
2080
|
};
|
|
@@ -1603,7 +2121,6 @@ var kithinjiorca = (() => {
|
|
|
1603
2121
|
}
|
|
1604
2122
|
}, () => {
|
|
1605
2123
|
}, () => {
|
|
1606
|
-
this.navigate.pages.setValue([osc.tree.dom]);
|
|
1607
2124
|
});
|
|
1608
2125
|
const subscription = this.navigate.pages.subscribe((pages) => {
|
|
1609
2126
|
const top = pages[this.navigate.cursor];
|
|
@@ -2165,12 +2682,6 @@ var kithinjiorca = (() => {
|
|
|
2165
2682
|
attach(value.value);
|
|
2166
2683
|
});
|
|
2167
2684
|
registerEffect(parent, cleanup);
|
|
2168
|
-
} else if (isObservable(value)) {
|
|
2169
|
-
const obs = value;
|
|
2170
|
-
const subst = obs.subscribe((val) => {
|
|
2171
|
-
attach(val);
|
|
2172
|
-
});
|
|
2173
|
-
registerEffect(parent, () => subst.unsubscribe());
|
|
2174
2685
|
} else if (typeof value == "function") {
|
|
2175
2686
|
const cleanup = effect(() => {
|
|
2176
2687
|
attach(value());
|