@nimbus-sh/worker 0.5.0 → 0.6.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/dist/_shared/preview-host.d.ts +26 -8
- package/dist/_shared/preview-host.d.ts.map +1 -1
- package/dist/_shared/preview-host.js +51 -11
- package/dist/facets/durable-images.d.ts +9 -0
- package/dist/facets/durable-images.d.ts.map +1 -1
- package/dist/facets/durable-images.js +20 -1
- package/dist/facets/durable-slots.d.ts +1 -1
- package/dist/facets/durable-slots.d.ts.map +1 -1
- package/dist/facets/durable-slots.js +2 -1
- package/dist/facets/manager.d.ts +98 -15
- package/dist/facets/manager.d.ts.map +1 -1
- package/dist/facets/manager.js +443 -116
- package/dist/facets/resident-identity.d.ts +23 -0
- package/dist/facets/resident-identity.d.ts.map +1 -0
- package/dist/facets/resident-identity.js +31 -0
- package/dist/git/commands.d.ts +0 -1
- package/dist/git/commands.d.ts.map +1 -1
- package/dist/git/commands.js +0 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +47 -10
- package/dist/router/public-directory.d.ts +5 -1
- package/dist/router/public-directory.d.ts.map +1 -1
- package/dist/router/public-directory.js +9 -2
- package/dist/router/remote-api.d.ts +18 -0
- package/dist/router/remote-api.d.ts.map +1 -1
- package/dist/router/remote-api.js +33 -4
- package/dist/runtime/cpython-resident.d.ts.map +1 -1
- package/dist/runtime/cpython-resident.js +3 -1
- package/dist/runtime/package-manager.d.ts +44 -1
- package/dist/runtime/package-manager.d.ts.map +1 -1
- package/dist/runtime/package-manager.js +168 -3
- package/dist/runtime/ruby-resident.d.ts.map +1 -1
- package/dist/runtime/ruby-resident.js +2 -0
- package/dist/session/agent.d.ts.map +1 -1
- package/dist/session/agent.js +28 -1
- package/dist/session/init.d.ts.map +1 -1
- package/dist/session/init.js +9 -0
- package/dist/session/keys.d.ts +4 -0
- package/dist/session/keys.d.ts.map +1 -1
- package/dist/session/keys.js +4 -0
- package/dist/session/nimbus-session.d.ts +34 -1
- package/dist/session/nimbus-session.d.ts.map +1 -1
- package/dist/session/nimbus-session.js +71 -10
- package/dist/session/port-capability.d.ts +46 -0
- package/dist/session/port-capability.d.ts.map +1 -1
- package/dist/session/port-capability.js +109 -9
- package/dist/session/programmatic.d.ts +95 -1
- package/dist/session/programmatic.d.ts.map +1 -1
- package/dist/session/programmatic.js +350 -26
- package/dist/session/routes.d.ts +9 -0
- package/dist/session/routes.d.ts.map +1 -1
- package/dist/session/routes.js +27 -2
- package/dist/session/rpc.d.ts +24 -1
- package/dist/session/rpc.d.ts.map +1 -1
- package/dist/session/rpc.js +51 -94
- package/dist/session/supervisor-op.d.ts +41 -4
- package/dist/session/supervisor-op.d.ts.map +1 -1
- package/dist/session/supervisor-op.js +95 -73
- package/dist/session/supervisor-rpc.d.ts.map +1 -1
- package/dist/session/supervisor-rpc.js +2 -3
- package/package.json +4 -4
|
@@ -15,9 +15,11 @@ import { CRED_KERNEL } from '@nimbus-sh/core/runtime/os-contracts.js';
|
|
|
15
15
|
import { endProcessInput, resizeProcess, signalProcess, writeProcessInput, } from '@nimbus-sh/core/runtime/process-input-routing.js';
|
|
16
16
|
import { z } from 'zod/v4';
|
|
17
17
|
import { SESSION_DESTROYED_KEY, SHELL_STATE_KEY_PREFIX, VITE_CONFIG_KEY } from './keys.js';
|
|
18
|
-
import { clearPortCapability, persistPortCapability, PortRecordSchema, portRecordKey, readPortReservation, reservePort, restorePortCapability, } from './port-capability.js';
|
|
18
|
+
import { clearPortCapability, isValidAppName, persistPortCapability, PortRecordSchema, portRecordKey, readPortReservation, readPortReservationByName, readPortReservationByOwner, reservePort, restorePortCapability, rotatePortCapability, } from './port-capability.js';
|
|
19
19
|
import { PORT_CAPABILITY_KEY_PREFIX } from './keys.js';
|
|
20
20
|
import { bindPublicPortCapability, unbindPublicPortCapability } from '../router/public-directory.js';
|
|
21
|
+
import { buildPreviewHost, buildPublicPreviewHost, isPreviewHostSafeSid, readPreviewHostSuffix, } from '../_shared/preview-host.js';
|
|
22
|
+
import { RESTART_POLICY_ENV } from '../facets/manager.js';
|
|
21
23
|
import { GENERATION_KEY, assumeGeneration, generation } from '@nimbus-sh/fabric/generation.js';
|
|
22
24
|
import { HeadlessTerminal, Shell } from '@nimbus-sh/core/substrate/lifo/index.js';
|
|
23
25
|
const ShellIdSchema = z.string().min(1).max(160).regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/);
|
|
@@ -352,7 +354,16 @@ function collectJobOutput(self, pid) {
|
|
|
352
354
|
*/
|
|
353
355
|
export async function rpcStartProcess(self, command, options = {}) {
|
|
354
356
|
await ensureProgrammaticReady(self, options);
|
|
355
|
-
|
|
357
|
+
if (options.restart !== undefined && options.restart !== 'never' && options.restart !== 'on-failure') {
|
|
358
|
+
throw new Error(`startProcess: restart must be 'never' or 'on-failure', got ${String(options.restart)}`);
|
|
359
|
+
}
|
|
360
|
+
// The policy rides the command's environment: the resident the command
|
|
361
|
+
// starts reads it off its env at launch and journals it, so the shell,
|
|
362
|
+
// the SDK and a child_process spawn all carry it the same way.
|
|
363
|
+
const withPolicy = options.restart === 'on-failure'
|
|
364
|
+
? { ...options, env: { ...(options.env ?? {}), [RESTART_POLICY_ENV]: 'on-failure' } }
|
|
365
|
+
: options;
|
|
366
|
+
return withShellState(self, withPolicy, true, (scoped) => startOnShell(self, command, withPolicy, scoped));
|
|
356
367
|
}
|
|
357
368
|
async function startOnShell(self, command, options, scoped) {
|
|
358
369
|
const job = startShellJob(self, command, options, { background: true }, scoped);
|
|
@@ -524,45 +535,359 @@ export async function rpcListPorts(self) {
|
|
|
524
535
|
await Promise.all(entries.map((entry) => persistPortCapability(self, entry.port, entry.capability)));
|
|
525
536
|
return entries.map(serializePort);
|
|
526
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* Browser-facing URL for an application, built inside the session: the
|
|
540
|
+
* host form when the deployment carries a preview suffix (name first, port
|
|
541
|
+
* otherwise; the public bearer form when public and a capability exists),
|
|
542
|
+
* else the path form on the origin the session was last reached at. Null
|
|
543
|
+
* when the session has never been reached over HTTP and has no suffix —
|
|
544
|
+
* an embedder builds its own from the port and capability in that case.
|
|
545
|
+
*/
|
|
546
|
+
export function appUrl(self, app) {
|
|
547
|
+
const sid = sessionIdOf(self);
|
|
548
|
+
const suffix = readPreviewHostSuffix(self.env);
|
|
549
|
+
if (suffix !== null && sid !== null && isPreviewHostSafeSid(sid)) {
|
|
550
|
+
const label = app.name ?? app.port;
|
|
551
|
+
if (app.visibility === 'public' && typeof app.capability === 'string') {
|
|
552
|
+
return `https://${buildPublicPreviewHost(sid, label, app.capability, suffix)}/`;
|
|
553
|
+
}
|
|
554
|
+
return `https://${buildPreviewHost(sid, label, suffix)}/`;
|
|
555
|
+
}
|
|
556
|
+
const origin = self.sessionOrigin;
|
|
557
|
+
if (!origin || sid === null)
|
|
558
|
+
return null;
|
|
559
|
+
const base = self.sessionBasePath || `/s/${sid}`;
|
|
560
|
+
return app.name ? `${origin}${base}/app/${app.name}/` : `${origin}${base}/port/${app.port}/`;
|
|
561
|
+
}
|
|
562
|
+
/** The sid this DO serves: the last segment of its name, `tn:sub:sid`. */
|
|
563
|
+
function sessionIdOf(self) {
|
|
564
|
+
const name = self.ctx.id?.name;
|
|
565
|
+
if (typeof name === 'string' && name.length > 0) {
|
|
566
|
+
const cut = name.lastIndexOf(':');
|
|
567
|
+
if (cut > 0)
|
|
568
|
+
return name.slice(cut + 1);
|
|
569
|
+
}
|
|
570
|
+
const fromBase = (self.sessionBasePath || '').replace(/^\/s\//, '');
|
|
571
|
+
return fromBase.length > 0 ? fromBase : null;
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* The port-centric surface, kept for every caller that has a port and
|
|
575
|
+
* nothing else — a dev server or a process outside the
|
|
576
|
+
* resident lifecycle. When the port's occupant carries an identity the
|
|
577
|
+
* exposure is the same lazy reservation `apps.expose` makes; when it does
|
|
578
|
+
* not, this compatibility path writes the row port-only, as before. One implementation:
|
|
579
|
+
* `applyExposure` below.
|
|
580
|
+
*/
|
|
527
581
|
export async function rpcExposePort(self, port, options) {
|
|
528
582
|
await ensureProgrammaticReady(self);
|
|
529
583
|
const n = Number(port);
|
|
530
584
|
const entry = self.portRegistry.get(n);
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
585
|
+
const identity = entry === undefined ? null : await self.facetManager.residentIdentity(entry.pid);
|
|
586
|
+
if (identity?.ephemeral) {
|
|
587
|
+
throw new Error(`port ${n} is served by the second instance of its program, which is not the durable one`);
|
|
588
|
+
}
|
|
589
|
+
const exposed = await applyExposure(self, n, identity?.owner ?? null, options ?? {});
|
|
590
|
+
return {
|
|
591
|
+
port: n,
|
|
592
|
+
listening: !!entry,
|
|
593
|
+
pid: entry?.pid ?? null,
|
|
594
|
+
registeredAt: entry?.registeredAt ?? null,
|
|
595
|
+
capability: exposed.capability,
|
|
596
|
+
visibility: exposed.visibility,
|
|
597
|
+
owner: exposed.owner,
|
|
598
|
+
name: exposed.name,
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
602
|
+
* The identity-centric surface: the target names a running application —
|
|
603
|
+
* by port, by pid, or by name — and the exposure is what makes it durable
|
|
604
|
+
* under its identity: the port is reserved for the owner lazily, the
|
|
605
|
+
* capability minted when public and bound in the directory, the name
|
|
606
|
+
* stored on the reservation. Returns the address the caller can reach.
|
|
607
|
+
*/
|
|
608
|
+
export async function rpcExposeApp(self, target, options = {}) {
|
|
609
|
+
await ensureProgrammaticReady(self);
|
|
610
|
+
const resolved = await resolveAppTarget(self, target);
|
|
611
|
+
if (resolved.port === null) {
|
|
612
|
+
throw new Error(`${describeTarget(target)} has not bound a port yet — expose it once it is listening`);
|
|
613
|
+
}
|
|
614
|
+
if (resolved.owner === null) {
|
|
615
|
+
throw new Error(`${describeTarget(target)} has no launch record to bind an identity to — `
|
|
616
|
+
+ 'only journalled residents carry one; use ports.expose for a bare port');
|
|
617
|
+
}
|
|
618
|
+
const exposed = await applyExposure(self, resolved.port, resolved.owner, options);
|
|
619
|
+
const live = self.portRegistry.get(resolved.port);
|
|
620
|
+
return {
|
|
621
|
+
owner: resolved.owner,
|
|
622
|
+
name: exposed.name,
|
|
623
|
+
port: resolved.port,
|
|
624
|
+
pid: live?.pid ?? null,
|
|
625
|
+
capability: exposed.capability,
|
|
626
|
+
visibility: exposed.visibility,
|
|
627
|
+
url: appUrl(self, { port: resolved.port, ...exposed }),
|
|
628
|
+
};
|
|
629
|
+
}
|
|
630
|
+
/**
|
|
631
|
+
* The one exposure implementation. With an owner: reserve the port for it
|
|
632
|
+
* (a conflict if another owner holds it), carrying the name and visibility
|
|
633
|
+
* onto the reservation and adopting the live capability so the URL in
|
|
634
|
+
* circulation is the one the reservation re-adopts after a reset; public
|
|
635
|
+
* exposures mint a capability if none is live yet and bind the directory.
|
|
636
|
+
* Without an owner: the row is written port-only, exactly as `exposePort`
|
|
637
|
+
* always did.
|
|
638
|
+
*/
|
|
639
|
+
async function applyExposure(self, port, owner, options) {
|
|
640
|
+
if (options.name !== undefined && !isValidAppName(options.name)) {
|
|
641
|
+
throw new Error(`'${options.name}' is not a valid app name: one DNS label, not all digits, not 24 hex`);
|
|
642
|
+
}
|
|
643
|
+
const entry = self.portRegistry.get(port);
|
|
644
|
+
if (owner !== null) {
|
|
645
|
+
await assertServingOwner(self, port, owner);
|
|
646
|
+
const occupied = new Set(self.portRegistry.getAll().map((live) => live.port));
|
|
647
|
+
occupied.delete(port);
|
|
648
|
+
await reservePort(self.ctx, {
|
|
649
|
+
owner,
|
|
650
|
+
kind: 'derived',
|
|
651
|
+
preferredPort: port,
|
|
652
|
+
occupiedPorts: occupied,
|
|
653
|
+
...(entry !== undefined ? { capability: entry.capability } : {}),
|
|
654
|
+
...(options.visibility !== undefined ? { visibility: options.visibility } : {}),
|
|
655
|
+
...(options.name !== undefined ? { name: options.name } : {}),
|
|
656
|
+
});
|
|
657
|
+
}
|
|
658
|
+
else {
|
|
659
|
+
if (entry)
|
|
660
|
+
await persistPortCapability(self, port, entry.capability);
|
|
661
|
+
// A visibility or name choice is a write on the stored row, not a
|
|
662
|
+
// reservation claim: owner and capability stay exactly as they were.
|
|
663
|
+
if (options.visibility !== undefined || options.name !== undefined) {
|
|
664
|
+
await self.ctx.storage.transaction(async (txn) => {
|
|
665
|
+
const stored = await readPortReservation({ storage: txn }, port);
|
|
666
|
+
if (stored === null)
|
|
667
|
+
return;
|
|
668
|
+
const visibility = options.visibility ?? stored.visibility;
|
|
669
|
+
const name = options.name ?? stored.name;
|
|
670
|
+
if (visibility === stored.visibility && name === stored.name)
|
|
671
|
+
return;
|
|
672
|
+
await txn.put(portRecordKey(port), {
|
|
543
673
|
owner: stored.owner,
|
|
674
|
+
kind: stored.kind,
|
|
544
675
|
capability: stored.capability,
|
|
545
|
-
visibility
|
|
676
|
+
visibility,
|
|
677
|
+
...(name !== undefined ? { name } : {}),
|
|
546
678
|
});
|
|
547
|
-
}
|
|
679
|
+
});
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
let record = await readPortReservation(self.ctx, port);
|
|
683
|
+
if (record?.visibility === 'public' && record.capability === null && owner !== null) {
|
|
684
|
+
// Public before the application has bound: mint now, so the URL exists
|
|
685
|
+
// and the binding re-adopts it, exactly as ensureDurableApp does.
|
|
686
|
+
await reservePort(self.ctx, {
|
|
687
|
+
owner, preferredPort: port, occupiedPorts: new Set(), capability: createPortCapability(),
|
|
548
688
|
});
|
|
689
|
+
record = await readPortReservation(self.ctx, port);
|
|
549
690
|
}
|
|
550
|
-
|
|
551
|
-
|
|
691
|
+
// The live registration must answer the stored capability, or a URL
|
|
692
|
+
// minted before the bind 404s until the next restore.
|
|
693
|
+
if (record?.capability !== null && record?.capability !== undefined) {
|
|
694
|
+
const capability = record.capability;
|
|
695
|
+
if (record.owner !== null) {
|
|
696
|
+
await assertServingOwner(self, port, record.owner, () => self.portRegistry.restoreCapability(port, capability));
|
|
697
|
+
}
|
|
698
|
+
else {
|
|
699
|
+
self.portRegistry.restoreCapability(port, capability);
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
if (record?.visibility === 'public' && record.capability !== null) {
|
|
552
703
|
// A port that goes public must be resolvable: the capability the URL
|
|
553
704
|
// carries has to name this session in the directory, and a non-legacy
|
|
554
705
|
// deployment without the binding is refused loudly — never half-public.
|
|
555
|
-
await bindPublicPortCapability(self,
|
|
706
|
+
await bindPublicPortCapability(self, record.capability, port, record.name);
|
|
556
707
|
}
|
|
557
708
|
return {
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
registeredAt: entry?.registeredAt ?? null,
|
|
562
|
-
capability: entry?.capability ?? null,
|
|
709
|
+
owner: record?.owner ?? owner,
|
|
710
|
+
name: record?.name ?? null,
|
|
711
|
+
capability: record?.capability ?? entry?.capability ?? null,
|
|
563
712
|
visibility: record?.visibility ?? 'scoped',
|
|
564
713
|
};
|
|
565
714
|
}
|
|
715
|
+
/**
|
|
716
|
+
* Mint a new capability for the application and rebind the directory:
|
|
717
|
+
* every URL built on the old one stops resolving. The registry adopts the
|
|
718
|
+
* new value at once if the port is live, so the new URL answers without
|
|
719
|
+
* waiting for a restore.
|
|
720
|
+
*/
|
|
721
|
+
export async function rpcRotateLink(self, target) {
|
|
722
|
+
await ensureProgrammaticReady(self);
|
|
723
|
+
const resolved = await resolveAppTarget(self, target);
|
|
724
|
+
if (resolved.port === null || resolved.reservation === null) {
|
|
725
|
+
throw new Error(`${describeTarget(target)} is not exposed — nothing to rotate`);
|
|
726
|
+
}
|
|
727
|
+
const previous = resolved.reservation;
|
|
728
|
+
if (previous.owner !== null)
|
|
729
|
+
await assertServingOwner(self, resolved.port, previous.owner);
|
|
730
|
+
if (previous.visibility === 'public' && previous.capability !== null) {
|
|
731
|
+
await unbindPublicPortCapability(self, previous.capability);
|
|
732
|
+
}
|
|
733
|
+
if (previous.owner !== null)
|
|
734
|
+
await assertServingOwner(self, resolved.port, previous.owner);
|
|
735
|
+
const capability = await rotatePortCapability(self, resolved.port, createPortCapability());
|
|
736
|
+
if (capability === null)
|
|
737
|
+
throw new Error(`${describeTarget(target)} is not exposed — nothing to rotate`);
|
|
738
|
+
if (previous.owner !== null) {
|
|
739
|
+
await assertServingOwner(self, resolved.port, previous.owner, () => self.portRegistry.restoreCapability(resolved.port, capability));
|
|
740
|
+
}
|
|
741
|
+
else {
|
|
742
|
+
self.portRegistry.restoreCapability(resolved.port, capability);
|
|
743
|
+
}
|
|
744
|
+
if (previous.visibility === 'public') {
|
|
745
|
+
await bindPublicPortCapability(self, capability, resolved.port, previous.name);
|
|
746
|
+
}
|
|
747
|
+
const live = self.portRegistry.get(resolved.port);
|
|
748
|
+
return {
|
|
749
|
+
owner: resolved.owner ?? previous.owner ?? '',
|
|
750
|
+
name: previous.name ?? null,
|
|
751
|
+
port: resolved.port,
|
|
752
|
+
pid: live?.pid ?? null,
|
|
753
|
+
capability,
|
|
754
|
+
visibility: previous.visibility,
|
|
755
|
+
url: appUrl(self, { port: resolved.port, name: previous.name, capability, visibility: previous.visibility }),
|
|
756
|
+
};
|
|
757
|
+
}
|
|
758
|
+
/** A name or owner identifies a reservation, never whoever happens to occupy its port. */
|
|
759
|
+
async function assertServingOwner(self, port, owner, adopt) {
|
|
760
|
+
for (;;) {
|
|
761
|
+
const live = self.portRegistry.get(port);
|
|
762
|
+
if (live === undefined)
|
|
763
|
+
return;
|
|
764
|
+
const identity = await self.facetManager.residentIdentity(live.pid);
|
|
765
|
+
if (self.portRegistry.get(port)?.pid !== live.pid)
|
|
766
|
+
continue;
|
|
767
|
+
if (identity?.owner !== owner || identity.ephemeral) {
|
|
768
|
+
throw new Error(`port ${port} is served by a different process (owner ${identity?.owner ?? 'none'})`);
|
|
769
|
+
}
|
|
770
|
+
adopt?.();
|
|
771
|
+
return;
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
/** Every stamped identity, with the URL each is reachable at. */
|
|
775
|
+
export async function rpcListApps(self) {
|
|
776
|
+
await ensureProgrammaticReady(self);
|
|
777
|
+
const apps = await self.facetManager.listResidentApps();
|
|
778
|
+
return apps.map((app) => ({
|
|
779
|
+
...app,
|
|
780
|
+
url: app.port === null ? null : appUrl(self, { ...app, port: app.port }),
|
|
781
|
+
}));
|
|
782
|
+
}
|
|
783
|
+
/**
|
|
784
|
+
* End an application: kill its live pids, release the reservation, purge
|
|
785
|
+
* its journal rows, free the durable slot and its storage, unbind the
|
|
786
|
+
* directory — `removeDurableApp`, addressed by any target.
|
|
787
|
+
*/
|
|
788
|
+
export async function rpcRemoveApp(self, target) {
|
|
789
|
+
await ensureProgrammaticReady(self);
|
|
790
|
+
const resolved = await resolveAppTarget(self, target);
|
|
791
|
+
if (resolved.owner === null) {
|
|
792
|
+
throw new Error(`${describeTarget(target)} names no application — nothing to remove`);
|
|
793
|
+
}
|
|
794
|
+
return rpcRemoveDurableApp(self, resolved.owner);
|
|
795
|
+
}
|
|
796
|
+
function describeTarget(target) {
|
|
797
|
+
if (typeof target === 'number')
|
|
798
|
+
return `target ${target}`;
|
|
799
|
+
if (typeof target === 'string')
|
|
800
|
+
return `'${target}'`;
|
|
801
|
+
if ('port' in target)
|
|
802
|
+
return `port ${target.port}`;
|
|
803
|
+
if ('pid' in target)
|
|
804
|
+
return `pid ${target.pid}`;
|
|
805
|
+
if ('name' in target)
|
|
806
|
+
return `app '${target.name}'`;
|
|
807
|
+
return `owner '${target.owner}'`;
|
|
808
|
+
}
|
|
809
|
+
/**
|
|
810
|
+
* Resolve an app target to what the verbs need: the owner (from the
|
|
811
|
+
* serving pid's journal row, or the reservation), the port, and the
|
|
812
|
+
* reservation if one exists. A bare number is a port when something
|
|
813
|
+
* listens on it or a reservation names it, else a pid; a string is a name
|
|
814
|
+
* first, then an owner.
|
|
815
|
+
*/
|
|
816
|
+
async function resolveAppTarget(self, target) {
|
|
817
|
+
const fm = self.facetManager;
|
|
818
|
+
const byPort = async (port) => {
|
|
819
|
+
const live = self.portRegistry.get(port);
|
|
820
|
+
const reservation = await readPortReservation(self.ctx, port);
|
|
821
|
+
const identity = live === undefined ? null : await fm.residentIdentity(live.pid);
|
|
822
|
+
if (identity?.ephemeral) {
|
|
823
|
+
throw new Error(`port ${port} is served by the second instance of its program, which is not the durable one`);
|
|
824
|
+
}
|
|
825
|
+
return { owner: identity?.owner ?? reservation?.owner ?? null, port, reservation };
|
|
826
|
+
};
|
|
827
|
+
const byPid = async (pid) => {
|
|
828
|
+
const identity = await fm.residentIdentity(pid);
|
|
829
|
+
if (identity === null)
|
|
830
|
+
return null;
|
|
831
|
+
if (identity.ephemeral) {
|
|
832
|
+
throw new Error(`pid ${pid} is the second instance of its program, which is not the durable one`);
|
|
833
|
+
}
|
|
834
|
+
const port = self.portRegistry.getAll().find((live) => live.pid === pid)?.port ?? identity.port ?? null;
|
|
835
|
+
const reservation = port === null ? null : await readPortReservation(self.ctx, port);
|
|
836
|
+
return { owner: identity.owner ?? null, port, reservation };
|
|
837
|
+
};
|
|
838
|
+
const byOwner = async (owner) => {
|
|
839
|
+
const held = await readPortReservationByOwner(self.ctx, owner);
|
|
840
|
+
if (held !== null)
|
|
841
|
+
return { owner, port: held.port, reservation: held.reservation };
|
|
842
|
+
const app = (await fm.listResidentApps()).find((candidate) => candidate.owner === owner);
|
|
843
|
+
return app === undefined ? null : { owner, port: app.port, reservation: null };
|
|
844
|
+
};
|
|
845
|
+
const byName = async (name) => {
|
|
846
|
+
const held = await readPortReservationByName(self.ctx, name);
|
|
847
|
+
return held === null ? null : { owner: held.reservation.owner, port: held.port, reservation: held.reservation };
|
|
848
|
+
};
|
|
849
|
+
if (typeof target === 'number') {
|
|
850
|
+
if (!Number.isInteger(target) || target <= 0)
|
|
851
|
+
throw new Error(`target ${target} is not a port or a pid`);
|
|
852
|
+
if (self.portRegistry.has(target) || (await readPortReservation(self.ctx, target)) !== null) {
|
|
853
|
+
return byPort(target);
|
|
854
|
+
}
|
|
855
|
+
const asPid = await byPid(target);
|
|
856
|
+
if (asPid !== null)
|
|
857
|
+
return asPid;
|
|
858
|
+
if (target <= 65535)
|
|
859
|
+
return byPort(target);
|
|
860
|
+
throw new Error(`nothing listens on port ${target} and no process ${target} exists`);
|
|
861
|
+
}
|
|
862
|
+
if (typeof target === 'string') {
|
|
863
|
+
const asName = await byName(target);
|
|
864
|
+
if (asName !== null)
|
|
865
|
+
return asName;
|
|
866
|
+
const asOwner = await byOwner(target);
|
|
867
|
+
if (asOwner !== null)
|
|
868
|
+
return asOwner;
|
|
869
|
+
throw new Error(`no application is named or owned '${target}'`);
|
|
870
|
+
}
|
|
871
|
+
if ('port' in target)
|
|
872
|
+
return byPort(Number(target.port));
|
|
873
|
+
if ('pid' in target) {
|
|
874
|
+
const asPid = await byPid(Number(target.pid));
|
|
875
|
+
if (asPid === null) {
|
|
876
|
+
throw new Error(`pid ${target.pid} has no launch record — only journalled residents carry one`);
|
|
877
|
+
}
|
|
878
|
+
return asPid;
|
|
879
|
+
}
|
|
880
|
+
if ('name' in target) {
|
|
881
|
+
const asName = await byName(target.name);
|
|
882
|
+
if (asName === null)
|
|
883
|
+
throw new Error(`no application is named '${target.name}'`);
|
|
884
|
+
return asName;
|
|
885
|
+
}
|
|
886
|
+
const asOwner = await byOwner(target.owner);
|
|
887
|
+
if (asOwner === null)
|
|
888
|
+
throw new Error(`no application is owned by '${target.owner}'`);
|
|
889
|
+
return asOwner;
|
|
890
|
+
}
|
|
566
891
|
/**
|
|
567
892
|
* The embedder's durable-application seam: reserve (or re-answer) the port
|
|
568
893
|
* `owner` holds, minting the capability the application's public URL is
|
|
@@ -896,8 +1221,7 @@ function resetInMemorySessionState(self) {
|
|
|
896
1221
|
self.nimbusWrangler = null;
|
|
897
1222
|
self.npmInstaller = null;
|
|
898
1223
|
self.fetchProxyEntrypoint = null;
|
|
899
|
-
self.
|
|
900
|
-
self.runtimeFsBridges = null;
|
|
1224
|
+
self._supervisorOps = null;
|
|
901
1225
|
self._cpRegistry = null;
|
|
902
1226
|
self._viteShimPid = null;
|
|
903
1227
|
self._viteShimPort = null;
|
package/dist/session/routes.d.ts
CHANGED
|
@@ -43,6 +43,15 @@ type RoutesHost = any;
|
|
|
43
43
|
export declare function routeToSessionPort(self: RoutesHost, port: number, request: Request, innerPath: string, mountBase: string, capability?: string): Promise<Response>;
|
|
44
44
|
/** Route a capability-authenticated embedder request to a guest HTTP server. */
|
|
45
45
|
export declare function routeCapabilityPort(self: RoutesHost, port: number, capability: string, request: Request, innerPath: string): Promise<Response>;
|
|
46
|
+
/**
|
|
47
|
+
* The name-addressed door: `/app/<name>/…` — what the scoped `<name>--<sid>`
|
|
48
|
+
* host is forwarded as, and reachable in path form as `/s/<sid>/app/<name>/`.
|
|
49
|
+
* The name is a reservation alias only this session's records know, so it
|
|
50
|
+
* is resolved here and the request continues exactly as the port form would
|
|
51
|
+
* — same routing, same durable re-drive, same capability gate. A name
|
|
52
|
+
* nothing holds is a 404, never a guess.
|
|
53
|
+
*/
|
|
54
|
+
export declare function routeToSessionApp(self: RoutesHost, name: string, request: Request, innerPath: string, capability?: string): Promise<Response>;
|
|
46
55
|
export declare function handleFetch(self: RoutesHost, request: Request): Promise<Response>;
|
|
47
56
|
export {};
|
|
48
57
|
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/session/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/session/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAyDH,KAAK,UAAU,GAAG,GAAG,CAAC;AA2HtB;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAyDnB;AA2BD,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAEnB;AAeD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC,CAMnB;AA4FD,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmhCvF"}
|
package/dist/session/routes.js
CHANGED
|
@@ -41,13 +41,14 @@ import { ViteDevServer } from '../facets/vite-dev-server.js';
|
|
|
41
41
|
import { notifyTerminalEvent, wireProcessLogSocketBroadcast } from '../runtime/process-logs-api.js';
|
|
42
42
|
import { makeLongRunningPortStub } from '@nimbus-sh/core/runtime/long-running-handle.js';
|
|
43
43
|
import { startRealVite } from './start-real-vite.js';
|
|
44
|
+
import { withResolvers } from '@nimbus-sh/fabric/turn-budget.js';
|
|
44
45
|
import { getLoadedCodesStats } from '@nimbus-sh/fabric/bindings.js';
|
|
45
46
|
import { generation } from '@nimbus-sh/fabric/generation.js';
|
|
46
47
|
import { facetIdBudget } from '@nimbus-sh/fabric/budgets.js';
|
|
47
48
|
import { loaderLedgerStats } from '@nimbus-sh/fabric/budgets.js';
|
|
48
49
|
import { HOSTED_WEBSOCKET_CAPABILITY_HEADER, HOSTED_WEBSOCKET_KEY_HEADER, } from '@nimbus-sh/fabric/process-host.js';
|
|
49
50
|
import { routeHostedWebSocket } from './rpc.js';
|
|
50
|
-
import { clearPortCapability, persistPortCapability, readPortCapability, readPortReservation, restorePortCapability, } from './port-capability.js';
|
|
51
|
+
import { clearPortCapability, persistPortCapability, readPortCapability, readPortReservation, readPortReservationByName, restorePortCapability, } from './port-capability.js';
|
|
51
52
|
import { PREVIEW_CAPABILITY_HEADER, PUBLIC_BEARER_HEADER, CALLER_SCOPES_HEADER, renderSessionStatusPage } from '../_shared/session-router.js';
|
|
52
53
|
import { renderNoDevServerHtml } from './helpers.js';
|
|
53
54
|
import { handleAgentRequest } from './agent.js';
|
|
@@ -291,6 +292,22 @@ function portRouteMountBase(request, port) {
|
|
|
291
292
|
const header = request.headers.get(BASE_PATH_HEADER);
|
|
292
293
|
return header ? `${header}/port/${port}` : '';
|
|
293
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* The name-addressed door: `/app/<name>/…` — what the scoped `<name>--<sid>`
|
|
297
|
+
* host is forwarded as, and reachable in path form as `/s/<sid>/app/<name>/`.
|
|
298
|
+
* The name is a reservation alias only this session's records know, so it
|
|
299
|
+
* is resolved here and the request continues exactly as the port form would
|
|
300
|
+
* — same routing, same durable re-drive, same capability gate. A name
|
|
301
|
+
* nothing holds is a 404, never a guess.
|
|
302
|
+
*/
|
|
303
|
+
export async function routeToSessionApp(self, name, request, innerPath, capability) {
|
|
304
|
+
const held = await readPortReservationByName(self.ctx, name);
|
|
305
|
+
if (held === null)
|
|
306
|
+
return new Response('Not found', { status: 404 });
|
|
307
|
+
const header = request.headers.get(BASE_PATH_HEADER);
|
|
308
|
+
const mountBase = header ? `${header}/app/${name}` : '';
|
|
309
|
+
return routeToSessionPort(self, held.port, request, innerPath, mountBase, capability);
|
|
310
|
+
}
|
|
294
311
|
/** True if `innerPath` targets the cirrus-real HMR socket, under any mount
|
|
295
312
|
* base — the client opens `<base>/__nimbus_hmr`, and on a `<port>--<sid>` host
|
|
296
313
|
* the router forwards the whole path, base and all, under `/port/N`. */
|
|
@@ -1337,6 +1354,12 @@ export async function handleFetch(self, request) {
|
|
|
1337
1354
|
const capability = request.headers.get(PREVIEW_CAPABILITY_HEADER);
|
|
1338
1355
|
return routeToSessionPort(self, port, request, path, portRouteMountBase(request, port), capability ?? undefined);
|
|
1339
1356
|
}
|
|
1357
|
+
// ── App route: the same door, addressed by a reservation's name ──
|
|
1358
|
+
const appMatch = url.pathname.match(/^\/app\/([a-z0-9][a-z0-9-]{0,62})(\/.*)?$/);
|
|
1359
|
+
if (appMatch) {
|
|
1360
|
+
const capability = request.headers.get(PREVIEW_CAPABILITY_HEADER);
|
|
1361
|
+
return routeToSessionApp(self, appMatch[1], request, normalizeForwardedHttpPath(appMatch[2] || '/'), capability ?? undefined);
|
|
1362
|
+
}
|
|
1340
1363
|
// ── /api/_diag/cache — per-tier cache observability ───────────────
|
|
1341
1364
|
//
|
|
1342
1365
|
// Cache-observability wave: surfaces the L1/L2/L3/L4 × tarball/
|
|
@@ -1395,7 +1418,9 @@ export async function handleFetch(self, request) {
|
|
|
1395
1418
|
if (!callerScopes.includes('session:admin')) {
|
|
1396
1419
|
return new Response('forbidden: session:admin scope required', { status: 403 });
|
|
1397
1420
|
}
|
|
1398
|
-
|
|
1421
|
+
const { promise: abortDue, resolve: abortReady } = withResolvers();
|
|
1422
|
+
self.ctx.waitUntil(abortDue.then(() => self.ctx.abort()));
|
|
1423
|
+
setTimeout(abortReady, 250);
|
|
1399
1424
|
return new Response(null, { status: 204 });
|
|
1400
1425
|
}
|
|
1401
1426
|
return new Response('Not found', { status: 404 });
|
package/dist/session/rpc.d.ts
CHANGED
|
@@ -21,12 +21,30 @@
|
|
|
21
21
|
* these ~3 sites would each need ctx threaded through; cast at boundary
|
|
22
22
|
* is acceptable per plan §IX recommendation 1.
|
|
23
23
|
*/
|
|
24
|
+
import { SqliteRuntimeFsBridge } from '@nimbus-sh/core/runtime/sqlite-runtime-fs-bridge.js';
|
|
24
25
|
import { type ResidentFacet } from '@nimbus-sh/fabric/workerd-facet-host.js';
|
|
25
26
|
import { type HostedHttpRequest, type HostedHttpResponse } from '@nimbus-sh/fabric/process-host.js';
|
|
26
27
|
import { type RuntimeOpenFlags, type VfsAcquireResult, type VfsListPage } from '@nimbus-sh/core/runtime/os-contracts.js';
|
|
27
28
|
import type { WriteBatchStreamResult } from '@nimbus-sh/core/vfs/sqlite-vfs.js';
|
|
28
29
|
import { z } from 'zod/v4';
|
|
29
30
|
type RpcHost = any;
|
|
31
|
+
export declare function checkedReadPayloadBytes(bytes: number): number;
|
|
32
|
+
/**
|
|
33
|
+
* Bytes a ranged read can actually return, so the reservation covers the
|
|
34
|
+
* result rather than the ask. A 64 KiB range over a 200-byte file retains 200
|
|
35
|
+
* bytes; reserving the range would let a handful of small reads exhaust the
|
|
36
|
+
* read reserve and serialise a workload whose real cost is negligible.
|
|
37
|
+
*
|
|
38
|
+
* `stat` here is a local SQLite lookup inside the DO — the same one
|
|
39
|
+
* `_rpcReadFile` makes for the same reason — not a second round trip.
|
|
40
|
+
*/
|
|
41
|
+
export declare function rangeReadBytes(fs: SqliteRuntimeFsBridge, path: string, offset: number, length: number): Promise<number>;
|
|
42
|
+
export declare function withReadAllocation<T>(bytes: number, read: () => Promise<T>): Promise<T>;
|
|
43
|
+
/**
|
|
44
|
+
* `files.readFile` — the read with the supervisor's allocation lease.
|
|
45
|
+
* The body lives in `buildSessionSupervisorOps`'s `readFile` override so
|
|
46
|
+
* direct `_rpc*` calls and the supervisor envelope share it.
|
|
47
|
+
*/
|
|
30
48
|
export declare function _rpcReadFile(self: RpcHost, path: string, pid?: number): Promise<string | null>;
|
|
31
49
|
/**
|
|
32
50
|
* Read a file as raw bytes (Uint8Array). Used by git network facet for
|
|
@@ -94,6 +112,11 @@ export declare function _rpcRmdir(self: RpcHost, path: string, pid?: number): Pr
|
|
|
94
112
|
export declare function _rpcRename(self: RpcHost, from: string, to: string, pid?: number): Promise<void>;
|
|
95
113
|
export declare function _rpcReadlink(self: RpcHost, path: string, pid?: number): Promise<string | null>;
|
|
96
114
|
export declare function _rpcSymlink(self: RpcHost, target: string, path: string, pid?: number): Promise<void>;
|
|
115
|
+
export declare const FsReadRangeArgsSchema: z.ZodObject<{
|
|
116
|
+
path: z.ZodString;
|
|
117
|
+
offset: z.ZodNumber;
|
|
118
|
+
length: z.ZodNumber;
|
|
119
|
+
}, z.core.$strip>;
|
|
97
120
|
declare const FsReadBatchArgsSchema: z.ZodArray<z.ZodObject<{
|
|
98
121
|
path: z.ZodString;
|
|
99
122
|
offset: z.ZodNumber;
|
|
@@ -135,7 +158,7 @@ export declare function _rpcFsAcquire(self: RpcHost, epoch: string | null, curso
|
|
|
135
158
|
/**
|
|
136
159
|
* Enumerate the session filesystem for a process, one bounded page at a time.
|
|
137
160
|
*
|
|
138
|
-
* Goes through `
|
|
161
|
+
* Goes through `self.supervisorBridge(pid)` like every other fs RPC, so the listing
|
|
139
162
|
* is filtered by the calling process's own credential rather than the kernel's
|
|
140
163
|
* — a process must not learn of a path it could not stat.
|
|
141
164
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/session/rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAgBH,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,mCAAmC,CAAC;AAa3C,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,WAAW,EACjB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAYjG,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAO3B,KAAK,OAAO,GAAG,GAAG,CAAC;AAwHnB,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQpG;AAEC;;;;GAIG;AACL,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAK7G;AAEC;;;;;;;;;;GAUG;AACL,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC5B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC5B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CAC1B,CAAC,CAoDH;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ5H;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,UAAU,GAC3B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAEtF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAEvF;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3G;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3H;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtG;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvG;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7F;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAEtH;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5F;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErG;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEpG;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1G;AAUD,QAAA,MAAM,qBAAqB;;;;kBAIa,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC/C;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAC;AA0CxD,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3G;AA2BD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EAAE,EACnB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAG3C;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,OAAO,EACb,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,EAAE,CAAC,CAEpB;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,OAAO,EACb,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,KAAK,EAAE,UAAU,GAAG,IAAI,EACxB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,OAAO,EACb,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CAGtB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAO5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAO5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgC7B;AAkBD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,EAC1C,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,EAC1C,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3G;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAEjH;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,CAAC,CAKrB;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,EAAE,EAC1C,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9F;AAEC;;;;GAIG;AACL,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrG;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;AAEC;;;;;;;;;;GAUG;AACL,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB7C;AAgBC;;;;;;;;;;;;;;GAcG;AACL,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EACpD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,sBAAsB,CAAC,CA0BnC;AAEC;;;;;;;;GAQG;AACL,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAKxH;AAeD,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBxF;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxF;AAcC;;;;;;;GAOG;AACL,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE1G;AAEC;;;;;;;;;;;GAWG;AACL,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAkB5E;AAEC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACL,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAoClH;AAEC;;;;;GAKG;AACL,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA0ClG;AAEC;;;;;EAKC;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAE9E;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASjH;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9F;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQxG;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAiB9H;AASD,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAGxF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAM9G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAapF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAGlH;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAGtE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlG;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAG/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAG/D;AAKC,kEAAkE;AACpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAS3E;AAEC,0DAA0D;AAC5D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ5E;AAEC,uDAAuD;AACzD,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQrJ;AAEC,iCAAiC;AACnC,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAI9D;AAEC,qEAAqE;AACvE,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAQxF;AAEC,oCAAoC;AACtC,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAIjF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EAAE,EACf,QAAQ,GAAE;IACR,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAqCjC;AAmCD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,mEAAmE;IACnE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,IAAI,IAAI,CAAC;CAChB;AA8GD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAE7E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAkE1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAIpG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAGzG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAQjC;AAoBD,OAAO,EAA4D,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAElJ,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAE5D,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlG"}
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/session/rpc.ts"],"names":[],"mappings":"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"}
|