@senpi/runtime 1.0.95-dev.runtime-phase-2-api.20260507134852 → 1.0.95-dev.runtime-phase-2-api.20260507182734
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/runtime-api/routes/state.d.ts +51 -0
- package/dist/runtime-api/routes/state.d.ts.map +1 -0
- package/dist/runtime-api/routes/state.js +94 -0
- package/dist/runtime-api/routes/state.js.map +1 -0
- package/dist/runtime-api/server.d.ts.map +1 -1
- package/dist/runtime-api/server.js +5 -0
- package/dist/runtime-api/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fastify route: `GET /state`.
|
|
3
|
+
*
|
|
4
|
+
* Returns the full {@link RuntimeSystemState} for every running runtime —
|
|
5
|
+
* the same shape `senpi runtime state --json` returns over the OpenClaw
|
|
6
|
+
* gateway, exposed here over HTTP for callers (e.g. the producer wrapper's
|
|
7
|
+
* daemon liveness check) that don't want a gateway dependency.
|
|
8
|
+
*
|
|
9
|
+
* Mirrors the existing CLI separation:
|
|
10
|
+
* - {@link registerHealthRoute `/health`} — lightweight readiness probe
|
|
11
|
+
* suitable for LB / Kubernetes probes (returns wallet + queue depth only).
|
|
12
|
+
* - `/state` (this route) — full runtime state including registered
|
|
13
|
+
* scanners, action handles, DSL state, risk gates.
|
|
14
|
+
*
|
|
15
|
+
* HTTP status:
|
|
16
|
+
* - `200` with envelope `{ success: true, data: { runtimes: [...] } }` on
|
|
17
|
+
* success. Always 200 — the response is informational; an empty
|
|
18
|
+
* `runtimes` array is a valid answer ("no runtimes registered").
|
|
19
|
+
* - `503` on internal error from a `getSystemState()` call. Surfaces
|
|
20
|
+
* the senpi-stack error envelope.
|
|
21
|
+
*
|
|
22
|
+
* Optional filter: `?address=0x...` returns only the runtime matching
|
|
23
|
+
* that wallet address (case-insensitive). Saves bytes per probe when a
|
|
24
|
+
* caller only cares about its own wallet.
|
|
25
|
+
*/
|
|
26
|
+
import type { FastifyInstance } from "fastify";
|
|
27
|
+
import type { RuntimeHandle } from "../../runtime/run.js";
|
|
28
|
+
import type { Logger } from "../../utils/logger.js";
|
|
29
|
+
/**
|
|
30
|
+
* Dependencies injected into the `/state` route at registration time.
|
|
31
|
+
*/
|
|
32
|
+
export interface StateRouteDeps {
|
|
33
|
+
/** Live runtime handles maintained by the plugin, keyed by lowercased address. */
|
|
34
|
+
runtimeHandles: Map<string, RuntimeHandle>;
|
|
35
|
+
/** Logger instance for unexpected errors. */
|
|
36
|
+
logger: Logger;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Register `GET /state` on the given Fastify instance.
|
|
40
|
+
*
|
|
41
|
+
* Iterates runtime handles, calls `getSystemState()` on each, returns the
|
|
42
|
+
* collected list under `data.runtimes[]`. A handle whose `getSystemState()`
|
|
43
|
+
* returns `null` (runtime is mid-startup or mid-shutdown) is omitted from
|
|
44
|
+
* the result rather than included as a sentinel — callers waiting for a
|
|
45
|
+
* specific wallet should re-probe rather than try to interpret a null.
|
|
46
|
+
*
|
|
47
|
+
* @param fastify Fastify instance to register the route on.
|
|
48
|
+
* @param deps Route dependencies injected at plugin start.
|
|
49
|
+
*/
|
|
50
|
+
export declare function registerStateRoute(fastify: FastifyInstance, deps: StateRouteDeps): void;
|
|
51
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/runtime-api/routes/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,cAAc,GACnB,IAAI,CAkDN"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fastify route: `GET /state`.
|
|
3
|
+
*
|
|
4
|
+
* Returns the full {@link RuntimeSystemState} for every running runtime —
|
|
5
|
+
* the same shape `senpi runtime state --json` returns over the OpenClaw
|
|
6
|
+
* gateway, exposed here over HTTP for callers (e.g. the producer wrapper's
|
|
7
|
+
* daemon liveness check) that don't want a gateway dependency.
|
|
8
|
+
*
|
|
9
|
+
* Mirrors the existing CLI separation:
|
|
10
|
+
* - {@link registerHealthRoute `/health`} — lightweight readiness probe
|
|
11
|
+
* suitable for LB / Kubernetes probes (returns wallet + queue depth only).
|
|
12
|
+
* - `/state` (this route) — full runtime state including registered
|
|
13
|
+
* scanners, action handles, DSL state, risk gates.
|
|
14
|
+
*
|
|
15
|
+
* HTTP status:
|
|
16
|
+
* - `200` with envelope `{ success: true, data: { runtimes: [...] } }` on
|
|
17
|
+
* success. Always 200 — the response is informational; an empty
|
|
18
|
+
* `runtimes` array is a valid answer ("no runtimes registered").
|
|
19
|
+
* - `503` on internal error from a `getSystemState()` call. Surfaces
|
|
20
|
+
* the senpi-stack error envelope.
|
|
21
|
+
*
|
|
22
|
+
* Optional filter: `?address=0x...` returns only the runtime matching
|
|
23
|
+
* that wallet address (case-insensitive). Saves bytes per probe when a
|
|
24
|
+
* caller only cares about its own wallet.
|
|
25
|
+
*/
|
|
26
|
+
import { Type } from "@sinclair/typebox";
|
|
27
|
+
/**
|
|
28
|
+
* Query schema for `/state`. All filters are optional.
|
|
29
|
+
*/
|
|
30
|
+
const StateQuery = Type.Object({
|
|
31
|
+
/** Filter to a single wallet address (case-insensitive). */
|
|
32
|
+
address: Type.Optional(Type.String({
|
|
33
|
+
pattern: "^0[xX][0-9a-fA-F]{40}$",
|
|
34
|
+
description: "Strategy wallet address (0x-prefixed, 40 hex chars).",
|
|
35
|
+
})),
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Register `GET /state` on the given Fastify instance.
|
|
39
|
+
*
|
|
40
|
+
* Iterates runtime handles, calls `getSystemState()` on each, returns the
|
|
41
|
+
* collected list under `data.runtimes[]`. A handle whose `getSystemState()`
|
|
42
|
+
* returns `null` (runtime is mid-startup or mid-shutdown) is omitted from
|
|
43
|
+
* the result rather than included as a sentinel — callers waiting for a
|
|
44
|
+
* specific wallet should re-probe rather than try to interpret a null.
|
|
45
|
+
*
|
|
46
|
+
* @param fastify Fastify instance to register the route on.
|
|
47
|
+
* @param deps Route dependencies injected at plugin start.
|
|
48
|
+
*/
|
|
49
|
+
export function registerStateRoute(fastify, deps) {
|
|
50
|
+
fastify.get("/state", { schema: { querystring: StateQuery } }, async (req, reply) => {
|
|
51
|
+
const q = req.query;
|
|
52
|
+
const filterAddress = q.address?.toLowerCase();
|
|
53
|
+
// The runtimeHandles map is keyed by runtime id (e.g.
|
|
54
|
+
// "pangolin-tracker-68ef"), NOT by wallet address — so address
|
|
55
|
+
// filtering must walk values and compare `handle.wallet`. N is
|
|
56
|
+
// small (typically 1–2 runtimes per host), so the O(N) walk is
|
|
57
|
+
// negligible compared to the per-handle getSystemState() that
|
|
58
|
+
// follows.
|
|
59
|
+
const allHandles = Array.from(deps.runtimeHandles.values());
|
|
60
|
+
const handles = filterAddress !== undefined
|
|
61
|
+
? allHandles.filter((h) => h.wallet.toLowerCase() === filterAddress)
|
|
62
|
+
: allHandles;
|
|
63
|
+
const collected = [];
|
|
64
|
+
for (const handle of handles) {
|
|
65
|
+
try {
|
|
66
|
+
const state = await handle.getSystemState();
|
|
67
|
+
if (state !== null)
|
|
68
|
+
collected.push(state);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
deps.logger.error("[senpi-core][runtime-api] /state getSystemState failed", {
|
|
72
|
+
err,
|
|
73
|
+
wallet: handle.wallet,
|
|
74
|
+
});
|
|
75
|
+
return reply.status(503).send({
|
|
76
|
+
success: false,
|
|
77
|
+
error: {
|
|
78
|
+
code: "UNAVAILABLE",
|
|
79
|
+
message: err instanceof Error
|
|
80
|
+
? `getSystemState failed: ${err.message}`
|
|
81
|
+
: "getSystemState failed",
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return reply
|
|
87
|
+
.header("Cache-Control", "no-store")
|
|
88
|
+
.send({
|
|
89
|
+
success: true,
|
|
90
|
+
data: { runtimes: collected },
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/runtime-api/routes/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAezC;;GAEG;AACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,OAAO,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,MAAM,CAAC;QACV,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,sDAAsD;KACpE,CAAC,CACH;CACF,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAwB,EACxB,IAAoB;IAEpB,OAAO,CAAC,GAAG,CACT,QAAQ,EACR,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EACvC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAkC,CAAC;QACjD,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAE/C,sDAAsD;QACtD,+DAA+D;QAC/D,+DAA+D;QAC/D,+DAA+D;QAC/D,8DAA8D;QAC9D,WAAW;QACX,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,aAAa,KAAK,SAAS;YACzC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;YACpE,CAAC,CAAC,UAAU,CAAC;QAEf,MAAM,SAAS,GAAyB,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC5C,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE;oBAC1E,GAAG;oBACH,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,aAAa;wBACnB,OAAO,EACL,GAAG,YAAY,KAAK;4BAClB,CAAC,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE;4BACzC,CAAC,CAAC,uBAAuB;qBAC9B;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK;aACT,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;aACnC,IAAI,CAAC;YACJ,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;SAC9B,CAAC,CAAC;IACP,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/runtime-api/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/runtime-api/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kFAAkF;IAClF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,4EAA4E;IAC5E,SAAS,EAAE,SAAS,CAAC;IACrB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CA0E3D"}
|
|
@@ -17,6 +17,7 @@ import Fastify from "fastify";
|
|
|
17
17
|
import { registerSignalsRoute } from "./routes/signals.js";
|
|
18
18
|
import { registerAuditRoute } from "./routes/audit.js";
|
|
19
19
|
import { registerHealthRoute } from "./routes/health.js";
|
|
20
|
+
import { registerStateRoute } from "./routes/state.js";
|
|
20
21
|
import { createReadiness } from "./readiness.js";
|
|
21
22
|
/**
|
|
22
23
|
* Create and configure the Fastify HTTP server.
|
|
@@ -104,6 +105,10 @@ export function createApi(deps) {
|
|
|
104
105
|
version: deps.version,
|
|
105
106
|
bootedAt,
|
|
106
107
|
});
|
|
108
|
+
registerStateRoute(fastify, {
|
|
109
|
+
runtimeHandles: deps.runtimeHandles,
|
|
110
|
+
logger: deps.logger,
|
|
111
|
+
});
|
|
107
112
|
return { fastify, readiness, bootedAt };
|
|
108
113
|
}
|
|
109
114
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/runtime-api/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAsCjD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,SAAS,CAAC,IAAmB;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC;QACtB,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACzB,SAAS,EAAE,GAAG,GAAG,IAAI,EAAE,2DAA2D;QAClF,qBAAqB,EAAE,KAAK;QAC5B;;;;;WAKG;QACH,cAAc,EAAE,MAAM;KACvB,CAAC,CAAC;IAEH,6EAA6E;IAC7E,2EAA2E;IAC3E,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC7C,8EAA8E;QAC9E,MAAM,GAAG,GAAG,KAAwC,CAAC;QACrD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAClC,IACE,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,GAAG,EAClB,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;YAC7D,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC5B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,oBAAoB,CAAC,OAAO,EAAE;QAC5B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB;QAClD,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,EAAE;QAC1B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,mBAAmB,CAAC,OAAO,EAAE;QAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACnE,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/runtime-api/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAsCjD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,SAAS,CAAC,IAAmB;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC;QACtB,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACzB,SAAS,EAAE,GAAG,GAAG,IAAI,EAAE,2DAA2D;QAClF,qBAAqB,EAAE,KAAK;QAC5B;;;;;WAKG;QACH,cAAc,EAAE,MAAM;KACvB,CAAC,CAAC;IAEH,6EAA6E;IAC7E,2EAA2E;IAC3E,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC7C,8EAA8E;QAC9E,MAAM,GAAG,GAAG,KAAwC,CAAC;QACrD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAClC,IACE,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,GAAG,EAClB,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;YAC7D,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC5B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,oBAAoB,CAAC,OAAO,EAAE;QAC5B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB;QAClD,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,EAAE;QAC1B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,mBAAmB,CAAC,OAAO,EAAE;QAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACnE,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ;KACT,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,EAAE;QAC1B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC"}
|
package/package.json
CHANGED